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

評論