采用ARM控制器的制動性能測試儀設(shè)計
硬件設(shè)計
本文引用地址:http://www.ex-cimer.com/article/147857.htm測試儀的核心控制部件采用ST公司的32位的ARM芯片STM32F107VC,其工作頻率達到72MHz,存儲器包括256KB Flash存儲器和64KB SRAM,外部設(shè)備包括2個12位ADC、4個通用16位定時器、2個I2C、3個SPI、2個I2S、5個USART、1個全速USB等[3]。
測試儀采用SD存儲卡存儲測試數(shù)據(jù)。SD卡支持兩種總線方式:SD方式與SPI方式。其中SD方式采用6線制。而SPI方式采用4線制。SD方式比SPI方式數(shù)據(jù)傳輸速度更快,但由于儀表存儲數(shù)據(jù)是在測試完成后進行,對存儲速度的要求不高,而且ARM控制芯片上有現(xiàn)成的SPI接口,使用SPI方式控制更為方便,所以我們采用SPI方式的總線。
測試儀的USB接口有兩個應用,一個應用是與GPS模塊通信,此時儀表的USB接口工作于主機模式,向GPS模塊提供5V電源。另一個應用是與電腦通信,此時USB接口工作于設(shè)備模式,電腦會把SD存儲卡識別為一個可移動磁盤,上位機程序可通過讀取磁盤文件的方式訪問存放在SD存儲卡中的數(shù)據(jù)。
電腦獲取儀表中的測試數(shù)據(jù)還可以通過無線的方式,即使用無線通信模塊把數(shù)據(jù)上傳到電腦,無線通信模塊使用Zigbee無線通信協(xié)議,Zigbee工作在2.4GHz免費頻段,具有設(shè)備功耗低,網(wǎng)絡(luò)容量大,傳輸距離遠(1~1000米),數(shù)據(jù)安全性高等特點。無線通信模塊與ARM控制芯片之間通過串口連接。
測試儀通過紅外線接口控制微型熱敏打印機打印測量數(shù)據(jù)。ARM控制芯片本身沒有紅外線驅(qū)動接口,所以需要外接紅外編碼/解碼器芯片。紅外編碼/解碼器芯片將串口數(shù)據(jù)信號按照一定的編碼規(guī)則轉(zhuǎn)換為驅(qū)動紅外發(fā)光管的信號,對于編程者來說可看作直接通過串口控制打印機,而不需要了解編碼轉(zhuǎn)換的細節(jié)。
測試儀采用4.3吋,分辨率為272*480的觸摸式液晶屏作為人機交互界面。界面內(nèi)容、觸摸設(shè)置等都被固化在觸摸屏的Flash ROM中,不占用儀表主控制芯片的內(nèi)存。ARM控制器對觸摸屏的控制也是通過串口進行的。
軟件設(shè)計
制動性能測試儀的軟件設(shè)計基于μC/OS嵌入式操作系統(tǒng),μC/OS是一個多任務的實時操作系統(tǒng),它的工作原理是把程序分割為多個相對獨立的任務,每個任務有自己的優(yōu)先級,在操作系統(tǒng)的調(diào)度下運行。任務之間的通信通過信號量和消息郵箱方式實現(xiàn)[4]。
根據(jù)儀表的功能,我們把程序劃分為不同的任務,各任務間的關(guān)系如圖6所示,其中人機界面任務負責根據(jù)用戶指令啟動其它各項任務。
現(xiàn)以制動性能測試任務為例介紹測量任務的實現(xiàn)以及與人機界面任務之間的交互通信。圖7是制動性能測試任務的工作流程圖,在測量前首先進行傳感器校準,然后由踏板開關(guān)啟動測量過程,開始采樣加速度傳感器數(shù)據(jù),在測量過程中需要保證采樣時間間隔的精確和穩(wěn)定,為了達到這一要求,我們利用定時器中斷來觸發(fā)A/D轉(zhuǎn)換。數(shù)據(jù)計算主要根據(jù)積分近似計算原理。測量結(jié)束后通過文件系統(tǒng)把測量數(shù)據(jù)和結(jié)論存儲到SD卡上。制動性能測試任務與人機界面任務的交互過程采用消息郵箱方式,如圖8所示,其中OS_Mbox_Brake1、OS_Mbox_Brake2是消息郵箱名稱。制動性能測量任務在校準過程完成后設(shè)置OS_Mbox_Brake1的值為字符A。在系統(tǒng)中運行的人機界面任務不斷地讀取該郵箱,當郵箱收到字符A后該任務控制觸摸屏顯示“準備”,然后設(shè)置OS_Mbox_Brake2的值為字符B,以通知制動性能測量任務進入測試準備狀態(tài)。兩個任務之間就是通過這種方式實現(xiàn)同步的。
評論