汽車ECU 標定系統CCP 軟件的實現
?。?)DAQ 處理機
DAQ 處理機的任務是根據主設備的需要,定時向CAN 總線上發(fā)送DAQ 數據。它由啟動從設備的DAQ 發(fā)送、停止從設備的DAQ 發(fā)送、執(zhí)行DAQ 循環(huán)發(fā)送的任務3 個部分構成。
啟動或停止從設備的 DAQ 發(fā)送,由Command 處理機調用函數Start_DAQ (DAQ List
number ,)和Stop_DAQ (DAQ List number)來完成,該函數啟動或停止相應的DAQ 發(fā)送任務,
其示意性代碼如下:
Start_DAQ(INT8U DAQ_List_num) { //啟動第n 個DAQ_List
DAQ_List[n].Started = 1;
DAQ_List[n].Prepared = 1;
OSTaskCreate (第n 個DAQ_List 的任務); //調用系統函數,創(chuàng)建DAQ 發(fā)送任務,
并使任務進入調度
}}
Stop_DAQ(INT8U DAQ_List_num) { //停止第n 個DAQ_List
DAQ_List[n].Started = 0;
DAQ_List[n].Prepared = 0;
OSTaskDel (第n 個DAQ_List 的任務); //調用系統函數,刪除DAQ 發(fā)送任務
}
執(zhí)行DAQ 循環(huán)發(fā)送的任務,需要按照ODT 設置把DAQ 數據發(fā)送到CAN 總線上,同時需要按照DAQ 周期要求循環(huán)執(zhí)行,該任務示意性代碼如下:
void DAQ_task ( ) {
for( ; ; ) {
CCP.Upload(0); //根據ODT 設置把DAQ 數據發(fā)送到CAN 總線上
OSTimeDlyHMSM(Period); //調用RTOS 函數,等待一個周期的時間
}
}
5 結束語
經過多次反復不斷的實際調試,此 CCP 軟件程序在系統上運行穩(wěn)定可靠,實現了基于MC9S12DP256 上的FLASH 區(qū)的標定。
這種采用環(huán)形緩沖區(qū)以及結合實時操作系統的 CCP 軟件程序設計,有效的避免在ECU標定過程中數據的丟失,并可以對多個ECU 同時進行在線標定,具有很強的實用價值。
參考文獻
?。?]陶恒燕,田江學,屈衛(wèi)東. 基于MC68736 的CCP 軟件程序設計. 測控技術,2005,3:49-52.
?。?]宋雪樺,潘波.汽車電控制單元CAN-RS232-USB 診斷與通訊模塊研制.微計算機信息,2006,2-2:226-228
?。?]邵貝貝. 單片機嵌入式應用的在線開發(fā)方法. 清華大學出版社,2004.
?。?]Jean J.Labrosse. 嵌入式系統構件. 機械工業(yè)出版社,2002.
?。?]李雅博,張俊智,甘海云. 基于CCP 協議的HEV 用ECU 標定系統設計. 汽車工程,2004,4:375-378.
評論