摘 要: 提出了采用異構多處理器體系結構構建嵌入式計算平臺的思想,并基于該思想采用Cortex M3主處理器和MSP430協處理器構建了異構多處理器體系結構的433 MHz有源RFID讀寫機具。實際驗證結果表明,采用異構多處理器構建的嵌入式計算平臺實現了計算密集型應用與控制密集型應用的有效分離,大大提高了系統的靈活性和資源分配的合理性。基于該體系結構重構傳統嵌入式計算平臺時對應用系統透明,使其具有廣泛的應用前景。
關鍵詞: 異構多處理器;嵌入式計算平臺;RFID讀寫機具;Cortex-M3;MSP430
嵌入式計算平臺是以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積和功耗有嚴格要求的專用計算機系統[1]。隨著應用需求的發展和嵌入式系統的不斷完善,業務應用對嵌入式計算平臺在性能、靈活性、功耗和成本等方面提出了更高的需求[2]。在桌面計算和商用服務器計算領域,參考文獻[3]指出了采用降低處理器主頻并增加處理器個數的方式,成為業界延續摩爾定律的主要手段。為了滿足業界對嵌入式計算平臺的更高要求,采用多處理器構建嵌入式系統成為業界的主要研究熱點[2]。多處理器的組織方式包括同構多處理器組織方式和異構多處理器組織方式。研究表明,在嵌入式計算平臺領域,將結構、功能、功耗和運算性能各不相同的多個處理器集成在計算平臺中,并通過任務分工和劃分將不同的任務分配給不同的核心,讓每個核心處理自己擅長的任務時,采用異構多處理器的組織方式比采用同構的多核處理器執行任務更加高效,實現了資源的最佳配置,并且降低了嵌入式計算平臺的整體功耗[4]。
本文介紹了依據異構多處理器構建的嵌入式計算平臺的軟硬件體系結構,并對基于異構多處理器體系構建的433 MHz有源RFID讀寫機具進行了實驗驗證。
1 硬件體系結構
基于異構多處理器嵌入式計算平臺構建的433 MHz有源RFID讀寫機具硬件體系結構如圖1所示。該平臺采用意法半導體公司(ST)的32 bit ARM CortexTM-M3內核處理器STM32F107作為主處理器,采用德州儀器半導體公司(TI)的16 bit MSP430微控制器CC430F5137作為協處理器。STM32F107主處理器與CC430F5137協處理器之間采用串口進行通信。
1.1 主處理器端硬件體系結構
本文構建的433 MHz有源RFID讀寫機具主處理器STM32F107端提供了3個與上位機通信的接口:USB接口、10/100M自適應以太網接口和UART串口,其中USB接口支持OTG通信模式。為了提高整個系統的安全性,系統還提供了7816 PSAM智能卡接口,該接口能夠與PSAM智能卡進行通信。為了保存從協處理器接收到的數據,系統外置了Numonyx恒憶半導體公司的16 MB N25Q128 Nor Flash芯片。
1.2 協處理器端硬件體系結構
為使其協處理器CC430端能夠發射125 kHz的低頻載波,該讀寫機具外置了125 kHz的調制放大器。同時,系統還外置了Balun濾波器, 外接433 MHz的天線和433 MHz有源電子標簽進行射頻通信。
2 軟件體系結構
該讀寫機具軟件體系結構如圖2所示。其軟件系統主要包括主處理器端的軟件系統和協處理器端的軟件系統。主處理器端軟件系統主要包括各個外圍設備與接口的驅動模塊(如串口驅動模塊、網卡驅動模塊、USB接口驅動模塊、Flash驅動模塊、PSAM接口驅動模塊、SPI接口驅動模塊等)、?滋C/OS-II實時操作系統、基于?滋C/OS-II的TCP/IP協議棧和USB協議棧,以及基于網絡接口、USB接口和串口構建的讀寫機具與上位機之間的通信協議。協處理器端軟件系統主要包括相關外圍設備與接口的驅動模塊(如串口驅動模塊和RF1A射頻驅動模塊等)、系統依據硬件提供的PWM模塊所構建的125 kHz低頻喚醒通信協議, 以及基于RF1A射頻驅動模塊構建的433 MHz射頻通信協議,該通信協議遵守參考文獻[5]中提到的ISO/IEC 18000-7空中接口協議。本文設計和實現了主處理器端軟件系統與協處理器端軟件系統的串口通信協議。
2.1 主處理器端軟件設計
主處理器端軟件處理流程如圖3所示。系統上電啟動后直接從主處理器規定的地址開始執行,首先進行中斷向量表和堆棧以及平臺相關寄存器的初始化;初始化完成后跳轉到?滋C/OS-II實時操作系統主函數,依次初始化系統中的各個硬件設備(如串口、網卡、USB接口、Flash芯片、PSAM接口和SPI接口等);相關硬件設備驅動模塊初始化成功后,系統開始?滋C/OS-II操作系統本身的存儲管理子系統和進程管理子系統的初始化,然后初始化TCP/IP網絡協議棧和USB軟件協議棧;各種初始化工作完成后,系統依次創建網絡監聽服務進程、上位機串口監聽服務進程和協處理器串口監聽服務進程,其中網絡監聽服務進程和上位機串口監聽服務進程分別用于從網口和串口監聽上位機發送的命令并依據讀寫機具與上位機的通信協議對接收到的數據包進行處理,協處理器串口監聽服務進程用于監聽從協處理器發出的命令數據包并依據主處理器與協處理器之間的通信協議對命令數據包進行處理。一次數據包處理完成后,系統等待接收下一個數據包進行處理,?滋C/OS-II實時操作系統實現系統相關進程的調度。
2.2 協處理器端軟件設計
協處理器端軟件處理流程如圖4所示。系統上電啟動后從處理器指定的地址開始運行,并進行MSP430處理器的中斷向量、堆棧和處理器平臺的初始化;然后,進行相關外圍硬件設備(如串口和RF1A射頻模塊等)的初始化;初始化完成后進入主循環處理程序。在主循環處理器程序中, 系統利用PWM模塊向外發射125 kHz低頻喚醒信號,以使射頻讀寫機具喚醒處于休眠狀態中的有源電子標簽,進而使射頻讀寫機具與有源電子標簽之間能夠采用433 MHz射頻載波進行數據通信,目前讀寫機具采用OOK(On-Off Keying)調制方式、利用125 kHz的載波與有源電子標簽進行數據通信;然后系統打開RF1A射頻模塊與串口模塊的中斷,系統產生串口中斷即表示接收到主處理器從串口發送的命令數據包,協處理器依據主處理器與協處理器的串口通信協議對命令數據包進行解析;然后系統通過控制RF1A射頻模塊、依據ISO/IEC 18000-7空中接口協議與有源電子標簽采用433 MHz射頻信號進行通信。
2.3 主處理器與協處理器通信協議設計
基于異構多處理器的嵌入式計算平臺為主處理器與協處理器之間的串口通信定義了相應的通信協議,協議數據包的格式如表1和表2所示。其中,表1為主處理器向協處理器發送的請求數據包格式,表2為協處理器應答主處理器的應答數據包格式。
由于利用串口進行數據通信的過程中,系統需要逐個字節從串口接收數據或向串口發送數據,因此為了有效地對這種通信方式進行處理,參考文獻[6]提出采用狀態機的方式實現該通信協議。根據協議要求,將整個串口通信的過程分為接收幀頭狀態、接收幀長度狀態、接收命令類型狀態、接收命令代碼狀態、接收參數長度狀態、接收命令參數狀態和接收校驗位狀態,系統只有在接收到完整正確的數據包后才將該協議數據包傳遞給相應的處理進程進行處理。系統的狀態轉換圖如圖5所示。
3 實驗方案與結果
3.1 實驗方案
基于異構多處理器架構的嵌入式計算平臺構建的433 MHz有源RFID讀寫機具測試實驗驗證方案如圖6所示。系統采用了433 MHz有源RFID電子標簽與433 MHz有源RFID讀寫機具進行通信,讀寫機具通過以太網接口、串口和USB接口與上位機進行連接,上位機上的應用程序依據有源RFID讀寫機具與上位機的通信協議與讀寫機具進行通信,讀寫機具依據ISO/IEC 18000-7協議規范與有源電子標簽進行通信,讀寫機具內部采用Cortex M3處理器和MSP430處理器構建的異構多處理器架構的嵌入式計算平臺對上位機應用程序開發人員和有源電子標簽設計人員透明。
3.2 結果與討論
依據參考文獻[7]中提出的量化研究方法,當業務需求發生變化時,系統采用嵌入式計算平臺需要修改的業務數據部分相關的代碼量和在整個代碼中修改相關代碼的復雜度來衡量系統的靈活性。本設計構建的433 MHz有源RFID讀寫機具系統中的業務數據部分的代碼行為70 080行,控制數據部分的代碼行為5 014行,業務數據發生變化時需要修改的代碼量2 747行。圖7為業務需求發生變化時采用異構多處理器嵌入式計算平臺和傳統嵌入式計算平臺時修改代碼的復雜性。傳統嵌入
本文在保證系統性能的情況下,采用衡量系統功耗的方式對資源分配的合理性進行度量。所構建的433 MHz有源RFID讀寫機具中,STM32F107的單位功耗為200 μA/MHz,系統運行頻率為70 MHz,因此系統功耗為14 mA;MSP430的單位功耗約為340 ?滋A/MHz,系統運行的頻率為20 MHz,因此子系統功耗為6.8 mA,控制部分的代碼量占整個代碼量的3.772%,系統功耗降低量隨控制部分代碼比例的變化如圖8所示。采用異構多處理器構建的嵌入式計算平臺實現了資源更加合理的分配,在保證系統性能的情況下降低了系統的功耗,提高了嵌入式計算平臺的可用性。
本文提出了采用異構多處理器體系結構構建嵌入式計算平臺的新思路,并依據提出的異構多處理器體系結構、采用Cortex M3內核的STM32F107主處理器和MSP430內核的CC430協處理器構建了433 MHz有源RFID讀寫機具。對該讀寫機具和433 MHz有源電子標簽用桌面計算系統中的應用程序進行了實際測試。測試結果表明,采用異構多處理器體系結構構建的嵌入式計算平臺有效地實現了業務數據部分和控制數據部分的分離,通過將計算密集型應用和控制密集型應用合理分配到不同的計算單元中,使得在業務數據處理流程發生變更時,系統不需要修改控制數據部分,大大提高了系統的靈活性;另一方面,采用異構多處理器架構構建的嵌入式計算平臺充分利用不同處理器不同的處理能力,既降低了系統的整體成本又更加合理地利用了系統的資源,提高了系統的效率。最后,采用異構多處理器體系結構重構傳統嵌入式計算系統對應用程序開發人員透明,使其具有廣泛的應用前景。
參考文獻
[1] 王蕾,謝應科,翟杰夫.嵌入式異構多處理器系統中的通信實現[J]. 計算機應用研究,2005,22(2):200-201.
[2] 岳虹. 嵌入式異構多核處理器設計與實現關鍵技術研究[D]. 湖南:國防科學技術大學,2006.
[3] Intel Corporation. Enhanced Intel SpeedStep technology for the Intel Pentium M processor[Z]. 2004.
[4] 陳芳園,張冬松,王志英.異構多核處理器體系結構設計研究[J]. 計算機工程與科學,2011,33(12):27-36.
[5] ISO 2003.ISO/FCD 18000-7 Information technology-Radio frequency identification for item management-Part 7:Parameters for active air interface communications at 433 MHz[S].2009.
[6] 劉宏斌.采用狀態機和消息機制的串口接收程序[J]. 單片機與嵌入式系統應用,2004(10):72-73.
[7] HENNESSY J L,PATTERSON D A. Computer architecture: a quantitative approach[M].5th Edition. San Francisco:Morgan Kaufman Publisher, 2011.