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