基于ARM和μC/OS-II的車載定位終端的設計

3 系統軟件設計
為實現車載定位終端數據處理的實時性和運行的穩定性,確保電控車工況信息讀取任務和GPS衛星數據接收任務能在第一時間內完成,本設計引入了μC/OS—II操作系統。μC/OS—II能夠根據任務的優先級動態地切換任務,保證系統對實時性的要求。
如圖4所示為系統主函數流程圖,系統上電,經過對S3C44BOX的時鐘電路以及相關寄存器配置完成對S3C44BOX的初始化操作,之后調用OSInit()函數完成對μC/OS—II的初始化操作,接著系統通過OSTaskCreate(void(*task)(void*pd),void*pdata,OS_STK*ptos,INT8U prio)函數創建車載定位終端的應用任務,最后通過OSStart()函數調用任務調度函數OSCtxSw()開始任務調度。各應用任務間的同步及數據交互通過信號量和消息郵箱來完成。

基于車載定位終端的主要功能,該車載定位終端應用程序主要包括3個任務和2個中斷。分別是電控車工況信息讀取任務(void VehInf Read_ Task(void*pada)),該任務主要用來接收來自ECU、EGR等車載控制器傳來的反應車輛工作狀況的信息,如:發動機冷卻液溫度、發動機潤滑油壓力、發動機曲軸轉速、發動機凸輪軸轉速、廢氣后處理閥門開度等等,由于車載定位終端要同時接收多個車載控制器的數據,為確保車載定位終端能夠精確識別各車載控制器上傳的數據,此處采用主叫-應答機制實現車載定位終端和各車載控制器間的數據通信;GPS衛星數據處理任務(void SatDatPro_Task(void*pada))則主要對GS-89M-J模塊傳來的數據幀進行篩選并從篩選出來的數據幀中提取車輛位置的信息;GPRS數據上傳任務(void DatSend_Task(void*pada))則主要將車輛工況信息和位置信息按照固定數據幀格式進行打包并通過SIM900以無線方式上傳給監控中心;CAN接收中斷函數(void_irq CANRev(void))是由CAN收發器觸發的,CAN收發器每接收到一幀來自各車載控制器的數據時,中斷即被觸發,該中斷函數主要將接收到數據幀通過消息郵箱傳送給電控車工況信息讀取任務;串口接收中斷函數(void_irq Seri Rev(void))則主要是在GS-89M-J完成衛星信號解算并向S3C44BOX的串口進行數據輸出時被觸發的。
影響車載定位終端實時性的主要因素是對GPS衛星數據的處理速度,因此車載定位終端中各任務的優先級分配如下表(優先級值越小則對應的優先級越高)。

4 結束語
文中所設計的車載定位終端應用ARM處理器和μC/OS—II操作系統最大限度地保證了終端數據交換的實時性與運行的穩定性。經證實,該車載定位終端在貨車、工程車、農用車等領域擁有廣闊的應用前景。
評論