黃傲成,冉全*,廖永富,劉帥
1.武漢工程大學計算機科學與工程學院,湖北 武漢 430205; 2.智能機器人湖北省重點實驗室(武漢工程大學),湖北 武漢 430205
CortexA8與M3的多CPU控制平臺構建方案
黃傲成1,2,冉全1,2*,廖永富1,劉帥1
1.武漢工程大學計算機科學與工程學院,湖北 武漢 430205; 2.智能機器人湖北省重點實驗室(武漢工程大學),湖北 武漢 430205
為了滿足工控平臺實時需求提高Android平臺的性價比,設計一種基于CortexA8和CortexM3的多中央處理器控制平臺.該控制平臺采用上下分層架構.上層平臺使用以CortexA8為內(nèi)核的主控芯片S5PV210,裝載Android4.0系統(tǒng)和應用程序.下層平臺使用以CortexM3為內(nèi)核的主控芯片STM32F103ZET6,板載任務管理器以及外設驅動程序.上下層平臺之間使用自定義的通訊協(xié)議進行串口通訊,上位機發(fā)送命令到下位機,下位機接收命令并處理后將結果反饋給上位機App,從而實現(xiàn)對下位機平臺的控制.通過醫(yī)療設備項目的應用測試,證明該控制平臺能夠滿足實際醫(yī)療設備控制和監(jiān)測的基本需求.
CortexA8;CortexM3;實時;通訊;界面
控制平臺是指用特定的技術方案實現(xiàn)的具有通用控制功能和較強的擴展應用功能的基礎系統(tǒng).常見的嵌入式控制平臺以各種檔次的處理器為核心,結合了半導體、傳感器、通訊、計算機、自動化等技術,已被廣泛應用到各行各業(yè).作為高端的嵌入式控制平臺,例如手機,因為在通信領域有巨大的優(yōu)勢,已經(jīng)成為眾多專家重點研究的控制系統(tǒng)[1].
近些年來,由于帶有各種智能系統(tǒng)的手機、平板電腦等給人們帶來了更佳的觸控體驗,各種智能觸控平臺以其獨特的優(yōu)勢紛紛進入工控領域,醫(yī)療設備行業(yè)也同樣如此,特別是大型全自動化設備對智能觸控平臺的需求日益強烈.而且隨著物聯(lián)網(wǎng)的發(fā)展,帶有智能系統(tǒng)的醫(yī)療平臺才能更符合醫(yī)療單位對數(shù)字化、信息化設備的要求.這種新型醫(yī)療設備將帶來新一輪的更新?lián)Q代,而多CPU控制平臺在控制實時性、并發(fā)性、獨立性方面展現(xiàn)出獨特的優(yōu)勢.與此同時,一般的基于可編程邏輯控制器實現(xiàn)的系統(tǒng)已不能滿足軋鋼、大型傳動、交通、磁懸浮以及航空航天等高性能控制領域的高速、高采樣精度、高可靠性的控制要求.所以多CPU控制平臺正在成為工業(yè)自動化領域中的熱點之一,同時也會產(chǎn)生巨大的市場.
多CPU控制平臺的研究一直是嵌入式熱門研究的領域,國內(nèi)外出現(xiàn)了多種模式的多CPU控制平臺,并且得到了廣泛應用.如基于RS-485的多CPU控制系統(tǒng),此種控制系統(tǒng)基于網(wǎng)絡TCP/IP模型,制定出一種適用于基于RS-485總線的多CPU控制系統(tǒng)的簡化網(wǎng)絡模型和通訊協(xié)議.另外有基于VME總線的多CPU控制系統(tǒng),它采用實時操作系統(tǒng)VxWorks作為軟件平臺,還有基于高速雙口RAM的雙CPU控制平臺,無論是在并行模式中進行共享內(nèi)存,還是在流水模式中傳送數(shù)據(jù),數(shù)據(jù)暢通性更佳.使用多CPU架構的系統(tǒng),可以采用性價比更高的CPU,隨著MCU的價格不斷降低,成本也會快速降低,將會獲得更好的效益.
多CPU控制平臺采用分層架構,上層平臺使用以CortexA8為內(nèi)核的主控芯片S5PV210,裝載Android4.0系統(tǒng)和應用程序.下層平臺使用以CortexM3為內(nèi)核的主控芯片STM32F103ZET6,板載按照需求開發(fā)的高效任務管理器以及外設驅動程序.上下層平臺之間使用自定義的通訊協(xié)議進行串口通訊,上位機發(fā)送命令到下位機,下位機接收命令并處理后將結果反饋給上位機App,App將實時的數(shù)據(jù)圖像化現(xiàn)實在軟件界面上從而實現(xiàn)對下位機平臺的控制.不僅可以滿足實時控制,而且用戶界面更加美觀,其總體架構如圖1所示.
圖1 總體架構圖Fig.1 Overall architecture diagram
雙平臺之間建立自定義的可靠通訊協(xié)議,Android應用程序向下位機平臺發(fā)送命令和命令參數(shù)后,下位機平臺接收命令后首先進行校驗,然后解析和執(zhí)行,并將執(zhí)行后結果依照對應的格式反饋給上位機Android程序[2].
1.1 A8平臺構建
S5PV210處理器需要外加內(nèi)存和Flash ROM以確保Android系統(tǒng)正常運行,處理器外圍電路還包括有電源管理,時鐘信號,復位電路,JTAG電路、以及外部存儲電路,LCD屏,串口模塊等.S5PV210最小系統(tǒng)如圖2所示.
圖2 CortexA8上位機平臺框架Fig.2 Cortex A8 upper machine platform framework
電源的穩(wěn)定性直接影響嵌入式系統(tǒng)的性能,嵌入式系統(tǒng)的供電方案的選擇非常重要,電源的輸入電壓范圍,輸出電壓變化幅值,功耗和成本需要綜合考慮.CortexA8處理器相對較為復雜,外設多種多樣,內(nèi)核、內(nèi)存、外設所需的供電電壓各不相同.根據(jù)最小系統(tǒng)板的需要,選定XC6209為S5PV210供電,XC6209為低壓差穩(wěn)壓電源,選定EUP3412為DDR供電,RT8024為NAND Flash供電.
內(nèi)存是系統(tǒng)的程序代碼運行和進行數(shù)據(jù)處理的地方,其性能的穩(wěn)定性對于系統(tǒng)的整體性能至關重要.本設計給ARM Cortex-A8核心板使用4片三星公司出產(chǎn)的K4T1G084QQ-BCF7芯片,DDR2SDRAM存儲器總共為1GBit.,時鐘頻率可高達800 MHz.
Flash也就是閃存(Flash Memory),是目前廣泛應用的非易失性存儲器.Flash分為NOR Flash和NAND Flash,后者更適宜于大容量文件系統(tǒng)的構建.因此本設計選用Samsung公司K9GAG08U0F型號、2 GBytes NAND FLASH.主要用于存儲內(nèi)核代碼、應用程序和用戶數(shù)據(jù)文件.
ARM Cortex-A8系統(tǒng)時鐘源為四個外部無源晶振,系統(tǒng)主時鐘和鎖相環(huán)時鐘的輸入輸出端為XXT1/XXT0,頻率為24 MHZ,USB工作時鐘輸入輸出端為Xusb/XusbXT0,頻率也為24 MHz,RTC時鐘輸入輸出端為XrtcXTI/XrtcXTO,頻率32.768 kHz,VEDIO時鐘輸入輸出端為XhdmiXT/XhdmiXTO,頻率是27 MHz.串口是平臺通訊中的重要組成部分,是鏈接上位機和下位機的橋梁.為提高通訊距離和使用計算機調(diào)試系統(tǒng)的方便,上位機和下位機平臺的串口通訊都使用了232電平.
1.2 M3平臺構建
下位機控制系統(tǒng)使用以CortexM3為內(nèi)核的STM32f103ZET6為主控芯片,系統(tǒng)框架如圖3所示.
圖3 M3平臺的硬件架構圖Fig.3 M3 platform hardware architecture diagram
外設包括:串口通訊模塊,用于實現(xiàn)和上位機平臺的通訊;電位器模塊,用于模擬AD采樣功能;電機驅動模塊;藍牙模塊,用于無線模式下雙平臺的通訊控制;還有基本的蜂鳴器和信號燈控制模塊.如圖3所示.STM32F103ZET6的工作電壓范圍(VDD)是2.0~3.6 V.內(nèi)置電壓調(diào)節(jié)器自動提供內(nèi)部所需的1.8 V電壓.實時時鐘和備份寄存器在系統(tǒng)主電源掉電后,通過電池供電.本設計中無需外置備用電池,所以VBAT腳和外部的供電電源連在一起[3-4].系統(tǒng)使用HSE外部晶體/陶瓷諧振器和HSE用戶外部時鐘為系統(tǒng)提供高速時鐘.
為使系統(tǒng)啟動后盡快穩(wěn)定,以及減少時鐘失真,提供時鐘的晶振、負載電容器須盡可能的靠近振蕩器.負載電容大小需要根據(jù)所用的振蕩器匹配.如果使用外部時鐘源,需要提供外部時鐘.頻率最高可達25 MHz.通過配置寄存器HSEBYP和HSEON來選擇這種運行模式.
本設計選用東芝公司的TB6560作為步進電機驅動的主芯片.TB6560AHQ是一款低功耗、高集成的兩相混合式步進電機通用驅動芯片,它僅使用一個時鐘信號和一個方向信號,就可以提供正向和反向驅動給兩相雙極步進電機,配合簡單的外圍電路即可實現(xiàn)高性能的電機驅動.調(diào)整脈沖輸入的頻率可實現(xiàn)調(diào)速,也可以通過設置相關引腳,來調(diào)整驅動電流和相位的細分參數(shù),以便驅動各種不同的步進電機.
通訊協(xié)議是本系統(tǒng)的重要組成部分,是連接CortexA8與CortexM3的橋梁,直接關系到系統(tǒng)的穩(wěn)定性.本設計根據(jù)實際應用的基本需求,自定義了一套簡單的基于串口的通訊協(xié)議.此通訊協(xié)議內(nèi)容包括:串口通訊基本參數(shù)的約定(如波特率);數(shù)據(jù)幀格式;校驗方法約定;自定義部分[5].此通訊協(xié)議只是通訊的基本約定,數(shù)據(jù)幀中包括可自定義的命令字、數(shù)據(jù)、狀態(tài),具體含義可根據(jù)具體應用自定義.
串口通訊參數(shù)約定:
8位數(shù)據(jù)位、1停止位、無校驗、9 600 bps;
數(shù)據(jù)幀包括發(fā)送幀和返回幀,數(shù)據(jù)幀格式如下:發(fā)送幀如表1所示,返回幀如表2所示.
表1 通訊協(xié)議發(fā)送幀格式Table 1 Format of communication protocol frame
表2 通訊協(xié)議返回幀格式Table.2 The format communication protocol of the response frame
起始符:0x0D03
結束符:0x55AA
幀編號:在0~255之間循環(huán)變化,返回幀的幀編號和發(fā)送幀的幀編號須相同.
校驗字:從包號開始到數(shù)據(jù)最后一字節(jié)進行異或取反.
自定義部分:是本設計根據(jù)醫(yī)療控制平臺的基本需求定義的一套命令字、狀態(tài)字、數(shù)據(jù).
通訊程序流程如圖4所示,上位機發(fā)送命令后,首先啟動定時器,然后定時檢測是否接受到下位機上傳的命令,如果收到命令進行幀檢測和校驗,如果校驗通過,則按照命令分類處理后將處理結果以返回幀格式發(fā)送到上位機并關閉定時器,如果檢驗錯誤,則返回錯誤幀,幀狀態(tài)中包含錯誤的狀態(tài)類型,然后檢測返回幀是否超時,如果沒有,則繼續(xù)檢測,如果超時則關閉定時器.
圖4 通訊程序流程圖Fig.4 Communication program flow chart
上位機平臺使用以CortexA8為內(nèi)核的芯片S5PV210,裝載Android4.1系統(tǒng),系統(tǒng)使用Eclipse進行軟件開發(fā),開發(fā)語言為Java.
3.1 Andorid主程序軟件框架
Android主程序使用從TabActivity類派生的一個主類TabActivity,由這種類派生的軟件本身就是一個大的Tab,可以方便的加入一個模塊程序.TabActivity類位于android SDK中android.a(chǎn)pp.TabActivity下,它本身繼承自ActivityGroup,主要功能是實現(xiàn)多個activity或者view之間的切換和顯示.要使用該類必須新建一個類來繼承TabActivity,并且該類的xml配置文件中必須包含<Tab-Host>、<TabWidget>、<FrameLayout>三個視圖(View),其中后面兩個標簽是前面一個標簽的子標簽,<TabWidget>表示tab頁的選項卡,相當于菜單頁,<FrameLayout>表示顯示內(nèi)容的區(qū)域.另外為增加動畫效果,使用了從TabHost派生的一個新類AnimationTabHost,此類用于對TabAcitivity中的TabHost控件進行升級,使用此類后,切換頁面時會產(chǎn)品動態(tài)的切換效果,使主程序界面更加美觀.
3.2 串口通訊程序開發(fā)
CortexA8串口通訊直接使用SerialPortOpt函數(shù)庫,該庫是一個專門用于串口開發(fā)的一個類庫,其中包括了串口操作的所有函數(shù),如打開串口、關閉串口、設置波特率、讀取數(shù)據(jù)、發(fā)送數(shù)據(jù).
為了方便測試,為Android串口模塊設計了一個Android界面程序.程序中通過使用Spinner類和Spinner控件來完成對串口號,波特率,數(shù)據(jù)位,校驗位,停止位的選擇.主要實現(xiàn)了串口參數(shù)的基本配置,打開串口和關閉串口等基本功能.Android串口通訊樣例界面如圖5所示.
圖5 串口應用程序效果圖Fig.5 Communication program flow chart
CortexM3中的程序是下位機平臺的主要程序,此部分程序對上層提供執(zhí)行命令的服務,對硬件層需要執(zhí)行驅動層的API函數(shù).為了便于開發(fā)和維護,此程序被設計成兩層:主程序層(main)和應用層(任務層).
主程序的分層結構和程序執(zhí)行流程圖如圖6所示.
圖6 CortexM3下位機程序框圖Fig.6 CortexM3 under machine program block diagram
主程序層為核心中樞,但是此層程序無需知道如何獲取任務或者消息,無需知道是什么任務,也不需要關心任務該如何處理,而只需要管理好兩個消息映射表和一個消息池.
消息映射表分別是消息采集映射表和消息處理映射表.消息采集映射表是一個消息采集函數(shù)的地址到一個消息的地址映射,消息處理映射表是消息處理函數(shù)地址的映射,此表由上層應用程序模塊進行注冊,即應用程序將消息采集函數(shù)的地址、消息、消息處理函數(shù)注冊到主程序的消息表和消息池中[6].
主程序無需關心此消息表和消息池的具體內(nèi)容,只需要循環(huán)從消息采集函數(shù)地址獲得消息后,投遞到消息池,然后把消息池中的消息交由消息處理函數(shù)處理即可.
應用程序層無需知道主程序的執(zhí)行過程,只需要關心自己需要處理的任務.即獲取自己需要的消息,并且處理消息.在應用程序初始化時將這些全部注冊到主程序的消息映射表和消息池中.
以一套高低搭配的雙CPU控制平臺為目標,研究了多CPU控制平臺的架構,平臺內(nèi)部的通訊協(xié)議,并實現(xiàn)了上層和下層平臺的通訊和控制功能.通過實際應用,證明本研究方案能夠滿足實際醫(yī)療設備控制和監(jiān)測的基本需求.
多CPU控制平臺與目前智能化醫(yī)療設備的研究方向和發(fā)展現(xiàn)狀相符合,滿足多種醫(yī)用儀器類產(chǎn)品的升級換代需求,具有較強的實用價值和經(jīng)濟效益.
致謝
感謝吳云幍老師對論文提出寶貴的指導意見!
[1]戴勝華.嵌入式系統(tǒng)[M].北京.中國鐵道出版社,2007:11-21.
DAI Sheng-h(huán)ua.Anembeddedsystem[M].Beijing.China railway Publishing House.2007:11-2.(in Chinese)
[2]庹云鳳,江先陽.基于ARM Cortex-A8平臺的警務終端硬件設計[J].工業(yè)技術.2011(17):80-81.
TUO Yun-feng,Jiang Xian-yang The hardwa-re design of policing terminal based on ARM architecture A8 platform[J].Industrial Technology,2011(17):80-81.(in Chinese)
[3]周立功.ARM微控制器基礎與實踐[M].北京:北京航空航天大學出版社,2003.
ZHOU Li-gong.ARMbasis and practice[M].Beijing: Beijing University of Aeronautics and Astronautics Press,2003.(in Chinese)
[4]趙志熙.車站信號控制系統(tǒng)[J].北京.中國鐵道出版社.2005:1-3.
ZHAO Zhi-xi.The station signal control sys-tem[J].Beijing:Railroad Publication House of China 2005:1-3.(in Chinese)
[5]張凡,盛殉華,戴勝華.微機原理與接口技術[M].北京:北方交通大學出版社.2002:244-272.
ZHANG Fan,HENG Xun-h(huán)ua,DAI Sheng-h(huán)ua.Microcomputerprinciple and interface technology[M].Beijing:TheNorthernJiaotongUniversityPress,2002:244-272.(in Chinese)
[6]譚浩強.C程序設計[M].北京:清華大學出版社.1999:87-141.
TAN Hao-qiang.C program design[M].BeiJing:Ts-inghua university press,1999:87-141.(in Chinese)
Construction plan of mutiple central processing unit control patform for CortexA8 and M3
HUANG Ao-cheng1,2,RAN Quan1,2*,LIAO Yong-fu1,LIU Shuai1
1.School of Computer Science and Technology,Wuhan Institute of Technology,Wuhan 430205,China 2.Hubei Key Laboratory of Intelligent Robot(Wuhan Institute of Technology),Wuhan 430205,China
To meet the demands of real time industrial control platform and improve the performance of the Android platform,a kind of multiple central processing unit control platform based on CortexA8 and CortexM3 was proposed.The layered architecture was adopted for the control platform.We used S5PV210 with Cortex-A8 kernel as the master control of the upper platform,and used the STM32F103ZET6 with CortexM3 kernel as the master control chip of the lower platform.The custom communication protocol was applied to serial communication for the upper platform and the lower platform.The upper computer sent commands to the lower computer which received commands and gave feedback to the App of upper computer after processing,realizing the control to the lower platform.Proved by the application test of the medical equipment project,the control platform satisfies the basic needs of control and monitor for actual medical equipment.
CortexA8;CortexM3;real-time;communication;interface.
TP274
A
10.3969/j.issn.1674-2869.2015.07.009
1674-2869(2015)07-0040-05
本文編輯:陳小平
2015-05-27
黃傲成(1989-),男,湖北隨州人,碩士研究生.研究方向:嵌入式軟件.*通信聯(lián)系人