黃傲成,冉全*,廖永富,劉帥
1.武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430205; 2.智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室(武漢工程大學(xué)),湖北 武漢 430205
CortexA8與M3的多CPU控制平臺(tái)構(gòu)建方案
黃傲成1,2,冉全1,2*,廖永富1,劉帥1
1.武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430205; 2.智能機(jī)器人湖北省重點(diǎn)實(shí)驗(yàn)室(武漢工程大學(xué)),湖北 武漢 430205
為了滿足工控平臺(tái)實(shí)時(shí)需求提高Android平臺(tái)的性價(jià)比,設(shè)計(jì)一種基于CortexA8和CortexM3的多中央處理器控制平臺(tái).該控制平臺(tái)采用上下分層架構(gòu).上層平臺(tái)使用以CortexA8為內(nèi)核的主控芯片S5PV210,裝載Android4.0系統(tǒng)和應(yīng)用程序.下層平臺(tái)使用以CortexM3為內(nèi)核的主控芯片STM32F103ZET6,板載任務(wù)管理器以及外設(shè)驅(qū)動(dòng)程序.上下層平臺(tái)之間使用自定義的通訊協(xié)議進(jìn)行串口通訊,上位機(jī)發(fā)送命令到下位機(jī),下位機(jī)接收命令并處理后將結(jié)果反饋給上位機(jī)App,從而實(shí)現(xiàn)對(duì)下位機(jī)平臺(tái)的控制.通過醫(yī)療設(shè)備項(xiàng)目的應(yīng)用測(cè)試,證明該控制平臺(tái)能夠滿足實(shí)際醫(yī)療設(shè)備控制和監(jiān)測(cè)的基本需求.
CortexA8;CortexM3;實(shí)時(shí);通訊;界面
控制平臺(tái)是指用特定的技術(shù)方案實(shí)現(xiàn)的具有通用控制功能和較強(qiáng)的擴(kuò)展應(yīng)用功能的基礎(chǔ)系統(tǒng).常見的嵌入式控制平臺(tái)以各種檔次的處理器為核心,結(jié)合了半導(dǎo)體、傳感器、通訊、計(jì)算機(jī)、自動(dòng)化等技術(shù),已被廣泛應(yīng)用到各行各業(yè).作為高端的嵌入式控制平臺(tái),例如手機(jī),因?yàn)樵谕ㄐ蓬I(lǐng)域有巨大的優(yōu)勢(shì),已經(jīng)成為眾多專家重點(diǎn)研究的控制系統(tǒng)[1].
近些年來,由于帶有各種智能系統(tǒng)的手機(jī)、平板電腦等給人們帶來了更佳的觸控體驗(yàn),各種智能觸控平臺(tái)以其獨(dú)特的優(yōu)勢(shì)紛紛進(jìn)入工控領(lǐng)域,醫(yī)療設(shè)備行業(yè)也同樣如此,特別是大型全自動(dòng)化設(shè)備對(duì)智能觸控平臺(tái)的需求日益強(qiáng)烈.而且隨著物聯(lián)網(wǎng)的發(fā)展,帶有智能系統(tǒng)的醫(yī)療平臺(tái)才能更符合醫(yī)療單位對(duì)數(shù)字化、信息化設(shè)備的要求.這種新型醫(yī)療設(shè)備將帶來新一輪的更新?lián)Q代,而多CPU控制平臺(tái)在控制實(shí)時(shí)性、并發(fā)性、獨(dú)立性方面展現(xiàn)出獨(dú)特的優(yōu)勢(shì).與此同時(shí),一般的基于可編程邏輯控制器實(shí)現(xiàn)的系統(tǒng)已不能滿足軋鋼、大型傳動(dòng)、交通、磁懸浮以及航空航天等高性能控制領(lǐng)域的高速、高采樣精度、高可靠性的控制要求.所以多CPU控制平臺(tái)正在成為工業(yè)自動(dòng)化領(lǐng)域中的熱點(diǎn)之一,同時(shí)也會(huì)產(chǎn)生巨大的市場(chǎng).
多CPU控制平臺(tái)的研究一直是嵌入式熱門研究的領(lǐng)域,國(guó)內(nèi)外出現(xiàn)了多種模式的多CPU控制平臺(tái),并且得到了廣泛應(yīng)用.如基于RS-485的多CPU控制系統(tǒng),此種控制系統(tǒng)基于網(wǎng)絡(luò)TCP/IP模型,制定出一種適用于基于RS-485總線的多CPU控制系統(tǒng)的簡(jiǎn)化網(wǎng)絡(luò)模型和通訊協(xié)議.另外有基于VME總線的多CPU控制系統(tǒng),它采用實(shí)時(shí)操作系統(tǒng)VxWorks作為軟件平臺(tái),還有基于高速雙口RAM的雙CPU控制平臺(tái),無論是在并行模式中進(jìn)行共享內(nèi)存,還是在流水模式中傳送數(shù)據(jù),數(shù)據(jù)暢通性更佳.使用多CPU架構(gòu)的系統(tǒng),可以采用性價(jià)比更高的CPU,隨著MCU的價(jià)格不斷降低,成本也會(huì)快速降低,將會(huì)獲得更好的效益.
多CPU控制平臺(tái)采用分層架構(gòu),上層平臺(tái)使用以CortexA8為內(nèi)核的主控芯片S5PV210,裝載Android4.0系統(tǒng)和應(yīng)用程序.下層平臺(tái)使用以CortexM3為內(nèi)核的主控芯片STM32F103ZET6,板載按照需求開發(fā)的高效任務(wù)管理器以及外設(shè)驅(qū)動(dòng)程序.上下層平臺(tái)之間使用自定義的通訊協(xié)議進(jìn)行串口通訊,上位機(jī)發(fā)送命令到下位機(jī),下位機(jī)接收命令并處理后將結(jié)果反饋給上位機(jī)App,App將實(shí)時(shí)的數(shù)據(jù)圖像化現(xiàn)實(shí)在軟件界面上從而實(shí)現(xiàn)對(duì)下位機(jī)平臺(tái)的控制.不僅可以滿足實(shí)時(shí)控制,而且用戶界面更加美觀,其總體架構(gòu)如圖1所示.
圖1 總體架構(gòu)圖Fig.1 Overall architecture diagram
雙平臺(tái)之間建立自定義的可靠通訊協(xié)議,Android應(yīng)用程序向下位機(jī)平臺(tái)發(fā)送命令和命令參數(shù)后,下位機(jī)平臺(tái)接收命令后首先進(jìn)行校驗(yàn),然后解析和執(zhí)行,并將執(zhí)行后結(jié)果依照對(duì)應(yīng)的格式反饋給上位機(jī)Android程序[2].
1.1 A8平臺(tái)構(gòu)建
S5PV210處理器需要外加內(nèi)存和Flash ROM以確保Android系統(tǒng)正常運(yùn)行,處理器外圍電路還包括有電源管理,時(shí)鐘信號(hào),復(fù)位電路,JTAG電路、以及外部存儲(chǔ)電路,LCD屏,串口模塊等.S5PV210最小系統(tǒng)如圖2所示.
圖2 CortexA8上位機(jī)平臺(tái)框架Fig.2 Cortex A8 upper machine platform framework
電源的穩(wěn)定性直接影響嵌入式系統(tǒng)的性能,嵌入式系統(tǒng)的供電方案的選擇非常重要,電源的輸入電壓范圍,輸出電壓變化幅值,功耗和成本需要綜合考慮.CortexA8處理器相對(duì)較為復(fù)雜,外設(shè)多種多樣,內(nèi)核、內(nèi)存、外設(shè)所需的供電電壓各不相同.根據(jù)最小系統(tǒng)板的需要,選定XC6209為S5PV210供電,XC6209為低壓差穩(wěn)壓電源,選定EUP3412為DDR供電,RT8024為NAND Flash供電.
內(nèi)存是系統(tǒng)的程序代碼運(yùn)行和進(jìn)行數(shù)據(jù)處理的地方,其性能的穩(wěn)定性對(duì)于系統(tǒng)的整體性能至關(guān)重要.本設(shè)計(jì)給ARM Cortex-A8核心板使用4片三星公司出產(chǎn)的K4T1G084QQ-BCF7芯片,DDR2SDRAM存儲(chǔ)器總共為1GBit.,時(shí)鐘頻率可高達(dá)800 MHz.
Flash也就是閃存(Flash Memory),是目前廣泛應(yīng)用的非易失性存儲(chǔ)器.Flash分為NOR Flash和NAND Flash,后者更適宜于大容量文件系統(tǒng)的構(gòu)建.因此本設(shè)計(jì)選用Samsung公司K9GAG08U0F型號(hào)、2 GBytes NAND FLASH.主要用于存儲(chǔ)內(nèi)核代碼、應(yīng)用程序和用戶數(shù)據(jù)文件.
ARM Cortex-A8系統(tǒng)時(shí)鐘源為四個(gè)外部無源晶振,系統(tǒng)主時(shí)鐘和鎖相環(huán)時(shí)鐘的輸入輸出端為XXT1/XXT0,頻率為24 MHZ,USB工作時(shí)鐘輸入輸出端為Xusb/XusbXT0,頻率也為24 MHz,RTC時(shí)鐘輸入輸出端為XrtcXTI/XrtcXTO,頻率32.768 kHz,VEDIO時(shí)鐘輸入輸出端為XhdmiXT/XhdmiXTO,頻率是27 MHz.串口是平臺(tái)通訊中的重要組成部分,是鏈接上位機(jī)和下位機(jī)的橋梁.為提高通訊距離和使用計(jì)算機(jī)調(diào)試系統(tǒng)的方便,上位機(jī)和下位機(jī)平臺(tái)的串口通訊都使用了232電平.
1.2 M3平臺(tái)構(gòu)建
下位機(jī)控制系統(tǒng)使用以CortexM3為內(nèi)核的STM32f103ZET6為主控芯片,系統(tǒng)框架如圖3所示.
圖3 M3平臺(tái)的硬件架構(gòu)圖Fig.3 M3 platform hardware architecture diagram
外設(shè)包括:串口通訊模塊,用于實(shí)現(xiàn)和上位機(jī)平臺(tái)的通訊;電位器模塊,用于模擬AD采樣功能;電機(jī)驅(qū)動(dòng)模塊;藍(lán)牙模塊,用于無線模式下雙平臺(tái)的通訊控制;還有基本的蜂鳴器和信號(hào)燈控制模塊.如圖3所示.STM32F103ZET6的工作電壓范圍(VDD)是2.0~3.6 V.內(nèi)置電壓調(diào)節(jié)器自動(dòng)提供內(nèi)部所需的1.8 V電壓.實(shí)時(shí)時(shí)鐘和備份寄存器在系統(tǒng)主電源掉電后,通過電池供電.本設(shè)計(jì)中無需外置備用電池,所以VBAT腳和外部的供電電源連在一起[3-4].系統(tǒng)使用HSE外部晶體/陶瓷諧振器和HSE用戶外部時(shí)鐘為系統(tǒng)提供高速時(shí)鐘.
為使系統(tǒng)啟動(dòng)后盡快穩(wěn)定,以及減少時(shí)鐘失真,提供時(shí)鐘的晶振、負(fù)載電容器須盡可能的靠近振蕩器.負(fù)載電容大小需要根據(jù)所用的振蕩器匹配.如果使用外部時(shí)鐘源,需要提供外部時(shí)鐘.頻率最高可達(dá)25 MHz.通過配置寄存器HSEBYP和HSEON來選擇這種運(yùn)行模式.
本設(shè)計(jì)選用東芝公司的TB6560作為步進(jìn)電機(jī)驅(qū)動(dòng)的主芯片.TB6560AHQ是一款低功耗、高集成的兩相混合式步進(jìn)電機(jī)通用驅(qū)動(dòng)芯片,它僅使用一個(gè)時(shí)鐘信號(hào)和一個(gè)方向信號(hào),就可以提供正向和反向驅(qū)動(dòng)給兩相雙極步進(jìn)電機(jī),配合簡(jiǎn)單的外圍電路即可實(shí)現(xiàn)高性能的電機(jī)驅(qū)動(dòng).調(diào)整脈沖輸入的頻率可實(shí)現(xiàn)調(diào)速,也可以通過設(shè)置相關(guān)引腳,來調(diào)整驅(qū)動(dòng)電流和相位的細(xì)分參數(shù),以便驅(qū)動(dòng)各種不同的步進(jìn)電機(jī).
通訊協(xié)議是本系統(tǒng)的重要組成部分,是連接CortexA8與CortexM3的橋梁,直接關(guān)系到系統(tǒng)的穩(wěn)定性.本設(shè)計(jì)根據(jù)實(shí)際應(yīng)用的基本需求,自定義了一套簡(jiǎn)單的基于串口的通訊協(xié)議.此通訊協(xié)議內(nèi)容包括:串口通訊基本參數(shù)的約定(如波特率);數(shù)據(jù)幀格式;校驗(yàn)方法約定;自定義部分[5].此通訊協(xié)議只是通訊的基本約定,數(shù)據(jù)幀中包括可自定義的命令字、數(shù)據(jù)、狀態(tài),具體含義可根據(jù)具體應(yīng)用自定義.
串口通訊參數(shù)約定:
8位數(shù)據(jù)位、1停止位、無校驗(yàn)、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
結(jié)束符:0x55AA
幀編號(hào):在0~255之間循環(huán)變化,返回幀的幀編號(hào)和發(fā)送幀的幀編號(hào)須相同.
校驗(yàn)字:從包號(hào)開始到數(shù)據(jù)最后一字節(jié)進(jìn)行異或取反.
自定義部分:是本設(shè)計(jì)根據(jù)醫(yī)療控制平臺(tái)的基本需求定義的一套命令字、狀態(tài)字、數(shù)據(jù).
通訊程序流程如圖4所示,上位機(jī)發(fā)送命令后,首先啟動(dòng)定時(shí)器,然后定時(shí)檢測(cè)是否接受到下位機(jī)上傳的命令,如果收到命令進(jìn)行幀檢測(cè)和校驗(yàn),如果校驗(yàn)通過,則按照命令分類處理后將處理結(jié)果以返回幀格式發(fā)送到上位機(jī)并關(guān)閉定時(shí)器,如果檢驗(yàn)錯(cuò)誤,則返回錯(cuò)誤幀,幀狀態(tài)中包含錯(cuò)誤的狀態(tài)類型,然后檢測(cè)返回幀是否超時(shí),如果沒有,則繼續(xù)檢測(cè),如果超時(shí)則關(guān)閉定時(shí)器.
圖4 通訊程序流程圖Fig.4 Communication program flow chart
上位機(jī)平臺(tái)使用以CortexA8為內(nèi)核的芯片S5PV210,裝載Android4.1系統(tǒng),系統(tǒng)使用Eclipse進(jìn)行軟件開發(fā),開發(fā)語(yǔ)言為Java.
3.1 Andorid主程序軟件框架
Android主程序使用從TabActivity類派生的一個(gè)主類TabActivity,由這種類派生的軟件本身就是一個(gè)大的Tab,可以方便的加入一個(gè)模塊程序.TabActivity類位于android SDK中android.a(chǎn)pp.TabActivity下,它本身繼承自ActivityGroup,主要功能是實(shí)現(xiàn)多個(gè)activity或者view之間的切換和顯示.要使用該類必須新建一個(gè)類來繼承TabActivity,并且該類的xml配置文件中必須包含<Tab-Host>、<TabWidget>、<FrameLayout>三個(gè)視圖(View),其中后面兩個(gè)標(biāo)簽是前面一個(gè)標(biāo)簽的子標(biāo)簽,<TabWidget>表示tab頁(yè)的選項(xiàng)卡,相當(dāng)于菜單頁(yè),<FrameLayout>表示顯示內(nèi)容的區(qū)域.另外為增加動(dòng)畫效果,使用了從TabHost派生的一個(gè)新類AnimationTabHost,此類用于對(duì)TabAcitivity中的TabHost控件進(jìn)行升級(jí),使用此類后,切換頁(yè)面時(shí)會(huì)產(chǎn)品動(dòng)態(tài)的切換效果,使主程序界面更加美觀.
3.2 串口通訊程序開發(fā)
CortexA8串口通訊直接使用SerialPortOpt函數(shù)庫(kù),該庫(kù)是一個(gè)專門用于串口開發(fā)的一個(gè)類庫(kù),其中包括了串口操作的所有函數(shù),如打開串口、關(guān)閉串口、設(shè)置波特率、讀取數(shù)據(jù)、發(fā)送數(shù)據(jù).
為了方便測(cè)試,為Android串口模塊設(shè)計(jì)了一個(gè)Android界面程序.程序中通過使用Spinner類和Spinner控件來完成對(duì)串口號(hào),波特率,數(shù)據(jù)位,校驗(yàn)位,停止位的選擇.主要實(shí)現(xiàn)了串口參數(shù)的基本配置,打開串口和關(guān)閉串口等基本功能.Android串口通訊樣例界面如圖5所示.
圖5 串口應(yīng)用程序效果圖Fig.5 Communication program flow chart
CortexM3中的程序是下位機(jī)平臺(tái)的主要程序,此部分程序?qū)ι蠈犹峁﹫?zhí)行命令的服務(wù),對(duì)硬件層需要執(zhí)行驅(qū)動(dòng)層的API函數(shù).為了便于開發(fā)和維護(hù),此程序被設(shè)計(jì)成兩層:主程序?qū)樱╩ain)和應(yīng)用層(任務(wù)層).
主程序的分層結(jié)構(gòu)和程序執(zhí)行流程圖如圖6所示.
圖6 CortexM3下位機(jī)程序框圖Fig.6 CortexM3 under machine program block diagram
主程序?qū)訛楹诵闹袠?,但是此層程序無需知道如何獲取任務(wù)或者消息,無需知道是什么任務(wù),也不需要關(guān)心任務(wù)該如何處理,而只需要管理好兩個(gè)消息映射表和一個(gè)消息池.
消息映射表分別是消息采集映射表和消息處理映射表.消息采集映射表是一個(gè)消息采集函數(shù)的地址到一個(gè)消息的地址映射,消息處理映射表是消息處理函數(shù)地址的映射,此表由上層應(yīng)用程序模塊進(jìn)行注冊(cè),即應(yīng)用程序?qū)⑾⒉杉瘮?shù)的地址、消息、消息處理函數(shù)注冊(cè)到主程序的消息表和消息池中[6].
主程序無需關(guān)心此消息表和消息池的具體內(nèi)容,只需要循環(huán)從消息采集函數(shù)地址獲得消息后,投遞到消息池,然后把消息池中的消息交由消息處理函數(shù)處理即可.
應(yīng)用程序?qū)訜o需知道主程序的執(zhí)行過程,只需要關(guān)心自己需要處理的任務(wù).即獲取自己需要的消息,并且處理消息.在應(yīng)用程序初始化時(shí)將這些全部注冊(cè)到主程序的消息映射表和消息池中.
以一套高低搭配的雙CPU控制平臺(tái)為目標(biāo),研究了多CPU控制平臺(tái)的架構(gòu),平臺(tái)內(nèi)部的通訊協(xié)議,并實(shí)現(xiàn)了上層和下層平臺(tái)的通訊和控制功能.通過實(shí)際應(yīng)用,證明本研究方案能夠滿足實(shí)際醫(yī)療設(shè)備控制和監(jiān)測(cè)的基本需求.
多CPU控制平臺(tái)與目前智能化醫(yī)療設(shè)備的研究方向和發(fā)展現(xiàn)狀相符合,滿足多種醫(yī)用儀器類產(chǎn)品的升級(jí)換代需求,具有較強(qiáng)的實(shí)用價(jià)值和經(jīng)濟(jì)效益.
致謝
感謝吳云幍老師對(duì)論文提出寶貴的指導(dǎo)意見!
[1]戴勝華.嵌入式系統(tǒng)[M].北京.中國(guó)鐵道出版社,2007:11-21.
DAI Sheng-h(huán)ua.Anembeddedsystem[M].Beijing.China railway Publishing House.2007:11-2.(in Chinese)
[2]庹云鳳,江先陽(yáng).基于ARM Cortex-A8平臺(tái)的警務(wù)終端硬件設(shè)計(jì)[J].工業(yè)技術(shù).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微控制器基礎(chǔ)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2003.
ZHOU Li-gong.ARMbasis and practice[M].Beijing: Beijing University of Aeronautics and Astronautics Press,2003.(in Chinese)
[4]趙志熙.車站信號(hào)控制系統(tǒng)[J].北京.中國(guó)鐵道出版社.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]張凡,盛殉華,戴勝華.微機(jī)原理與接口技術(shù)[M].北京:北方交通大學(xué)出版社.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]譚浩強(qiáng).C程序設(shè)計(jì)[M].北京:清華大學(xué)出版社.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)系人