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