基于CCP協(xié)議的汽車(chē)ECU標定系統DAQ模式的實(shí)現
本文采用的是DAQ模式,從而可以實(shí)現從設備按照指定的周期將需要監視的數據上傳。
DAQ傳送的數據由一系列表來(lái)組織,這些表被稱(chēng)為ODT(Object Descriptor Tables)。每個(gè)ODT表含7個(gè)元素,可描述7個(gè)ECU內部參數的相對地址及數據長(cháng)度等屬性。這些被ODT描述的參數,就是需要從設備用DAQ-DTO幀周期發(fā)送給主設備的被監視數據;而這些屬性被稱(chēng)為“參數描述”,它們可幫助從設備DAQ處理代碼確定該參數的當前值,如圖3所示。ODT中描述的參數,及各參數的“參數描述”由主設備通過(guò)CRO命令寫(xiě)入。當從設備的DAQ機制被啟動(dòng)時(shí),從設備按主設備要求的周期,將每個(gè)ODT表描述的ECU參數當前值順次放入相應的DAQ-DTO幀中,并發(fā)送給主設備。
圖3數據描述表
標定系統的軟件設計主要分為兩個(gè)部分:CANDrvier和CCPDriver。本方案的ECU采用MC9S12Dg128,因此可以直接應用芯片CAN模塊提供的接口發(fā)送CAN數據。CCPDriver是標定系統的核心部分,它主要通過(guò)調用CANDriver實(shí)現與上位機標定軟件的通信,從而進(jìn)行對ECU的在線(xiàn)標定。
標定系統的實(shí)現過(guò)程如下:
1.上層標定軟件部分定義List的數目、每個(gè)List中的ODT數目、每個(gè)ODT中的元素數目。
2.ECU按照上層的定義,確定自己的數據結構。即上下層都定義一個(gè)三維的數組(List,ODT,Element),用來(lái)存放映射關(guān)系。
3.上層通過(guò)協(xié)議命令初始化ODT。首先,上層發(fā)送GET_DAQ_SIZE命令(參數為L(cháng)ist號),得到指定的List大?。╪umberofODTinthislist),并得到該List中DTO的第一個(gè)PID號。然后,上層發(fā)送SET_DAQ_PTR命令(參數為L(cháng)ist號、ODT號、ODT中的元素號),指定需要初始化的參數單元。最后,上層根據SET_DAQ_PTR命令設置的具體元素,發(fā)送WRITE_DAQ命令(參數為DAQ元素的byte大小,DAQ元素的地址),反復通過(guò)SET_PTR和WRITE_DAQ兩條命令,初始化完一個(gè)具體的ODT表,然后初始化完一個(gè)具體的List表,最后初始化完所有的List表格。至此,初始化ODT工作結束。
4.開(kāi)始和停止DAQ數據的傳輸。上層發(fā)送START_STOP命令,指定的ODT數據開(kāi)始上傳。ODT將其中的每個(gè)元素復制到其對應的DTO(8個(gè)字節,1個(gè)PID號,7個(gè)存放數據)中,然后以DataAcquisitionMessage的形式返回給上層的標定系統。DAQ模式到此為止。
四、結語(yǔ)
ECU標定軟件運行情況如圖4所示,經(jīng)過(guò)多次不斷的調試,此標定系統運行穩定可靠,能夠對汽車(chē)系統中的ECU進(jìn)行在線(xiàn)標定,并可以針對不同用戶(hù)需求提供不同的定制功能。
圖4標定軟件示意圖
這個(gè)采用CCP協(xié)議的汽車(chē)發(fā)動(dòng)機標定系統具有符合國際通用標準、通用性好、對不同硬件與不同需求適應性強的特點(diǎn),因此有很好的開(kāi)發(fā)應用前景。
評論