作者:張彧,陳培然,馮輝宗
一、前言
隨著汽車電子技術的發(fā)展,電子控制單元(ECU)的標定已成為汽車電子控制裝置開發(fā)的一個重要環(huán)節(jié)。大多數(shù)ECU都需要經(jīng)過匹配標定的過程,從而確定其運行參數(shù)和控制參數(shù)。目前國內(nèi)還沒有成熟的基于CCP的ECU標定系統(tǒng),已有的一些系統(tǒng)主要是采用Vector提供的freeCCPDriver,或者基于MATLAB的相關工具包,在此基礎上作自己的應用軟件,并沒有獨立的CCP驅動;國外的產(chǎn)品功能強大,但價格昂貴。因此,研究、掌握CCP的核心技術,開發(fā)針對不同用戶需求提供不同的定制功能,并能適應PCI、USB等不同主機接口的ECU標定軟件就具有非常重要的意義。
二、CCP協(xié)議簡介
(一)CCP協(xié)議的通信方式
基于CCP協(xié)議的ECU標定采用主-從通信方式,主設備通過CAN總線與多個從設備相連,如圖1所示。其中主設備測量標定系統(tǒng)MCS(Measurement Calibration System),從設備是需要標定的ECU。根據(jù)CCP協(xié)議,主設備首先與其中一個從設備建立邏輯連接。建立邏輯連接后,主、從機之間所有的數(shù)據(jù)傳遞均由主機控制,從機執(zhí)行主機命令后返回包含命令響應值或錯誤代碼等信息的報文。任何一個從機都可以定時地根據(jù)由主機通過控制命令所設置的列表來傳遞內(nèi)部的數(shù)據(jù)。所以說數(shù)據(jù)的傳遞是由主機初始化,由從機來執(zhí)行,并且是由固定的循環(huán)采樣頻率或事件觸發(fā)的。
圖1CCP通信結構
CCP協(xié)議定義了兩種工作模式:一種是Polling(查詢)模式,另一種是DAQ(數(shù)據(jù)采集)模式。在本文所設計的標定系統(tǒng)中,根據(jù)實際需求情況,采用了DAQ模式。
(二)CCP協(xié)議的通信數(shù)據(jù)對象
CCP協(xié)議只采用了兩個CAN報文對象,且每個對象根據(jù)其數(shù)據(jù)流向,都有一個唯一的ID標識符進行標識:
1.命令接收對象(主機一從機):簡稱CRO。CRO用于傳遞指令代碼和內(nèi)部功能碼或主、從機之間交換的存儲區(qū)數(shù)據(jù)。
2.數(shù)據(jù)傳輸對象(從機一主機):簡稱DTO。DTO指由從設備反饋的報文。
根據(jù)報文PID的不同,DTO又可以分為三種形式:
命令返回消息CRM(PID=255):由從設備發(fā)送,針對CRO的反饋報文。
事件消息(PID=254):當從設備檢測到內(nèi)部發(fā)生錯誤機制時,由從設備自行向主設備發(fā)送,報告其當前的運行狀態(tài),并請求主設備暫停當前工作進程以處理發(fā)生的錯誤。
DAQ-DTO(0≤PID≤254):用在DAQ模式中,由從設備組織,定期向主設備發(fā)送。
三、基于CCP的ECU標定系統(tǒng)實現(xiàn)
(一)標定系統(tǒng)工作原理
基于CCP的ECU標定系統(tǒng)工作原理如圖2所示,對部分控制參數(shù)進行調(diào)整后,通過一個USB轉CAN的驅動模塊就可以將數(shù)據(jù)送到發(fā)動機ECU當中,ECU收到控制信號后,通過內(nèi)部處理又會由驅動模塊返回ECU內(nèi)部重要的數(shù)據(jù)到平臺上顯示,標定軟件與發(fā)動機ECU的通信符合CCP標定協(xié)議。
圖2標定系統(tǒng)工作原理圖
CCP通信部分調(diào)用CCPDriver,為標定軟件實現(xiàn)與ECU的通信,包括將用戶指定的標定參數(shù)下載到ECU、接收ECU的測量數(shù)據(jù)供數(shù)據(jù)顯示子窗口使用。
(二)標定系統(tǒng)的數(shù)據(jù)采集機制
本文采用的是DAQ模式,從而可以實現(xiàn)從設備按照指定的周期將需要監(jiān)視的數(shù)據(jù)上傳。
DAQ傳送的數(shù)據(jù)由一系列表來組織,這些表被稱為ODT(Object Descriptor Tables)。每個ODT表含7個元素,可描述7個ECU內(nèi)部參數(shù)的相對地址及數(shù)據(jù)長度等屬性。這些被ODT描述的參數(shù),就是需要從設備用DAQ-DTO幀周期發(fā)送給主設備的被監(jiān)視數(shù)據(jù);而這些屬性被稱為“參數(shù)描述”,它們可幫助從設備DAQ處理代碼確定該參數(shù)的當前值,如圖3所示。ODT中描述的參數(shù),及各參數(shù)的“參數(shù)描述”由主設備通過CRO命令寫入。當從設備的DAQ機制被啟動時,從設備按主設備要求的周期,將每個ODT表描述的ECU參數(shù)當前值順次放入相應的DAQ-DTO幀中,并發(fā)送給主設備。
圖3數(shù)據(jù)描述表
(三)標定系統(tǒng)DAQ模式的軟件實現(xiàn)
標定系統(tǒng)的軟件設計主要分為兩個部分:CANDrvier和CCPDriver。本方案的ECU采用MC9S12Dg128,因此可以直接應用芯片CAN模塊提供的接口發(fā)送CAN數(shù)據(jù)。CCPDriver是標定系統(tǒng)的核心部分,它主要通過調(diào)用CANDriver實現(xiàn)與上位機標定軟件的通信,從而進行對ECU的在線標定。
標定系統(tǒng)的實現(xiàn)過程如下:
1.上層標定軟件部分定義List的數(shù)目、每個List中的ODT數(shù)目、每個ODT中的元素數(shù)目。
2.ECU按照上層的定義,確定自己的數(shù)據(jù)結構。即上下層都定義一個三維的數(shù)組(List,ODT,Element),用來存放映射關系。
3.上層通過協(xié)議命令初始化ODT。首先,上層發(fā)送GET_DAQ_SIZE命令(參數(shù)為List號),得到指定的List大小(numberofODTinthislist),并得到該List中DTO的第一個PID號。然后,上層發(fā)送SET_DAQ_PTR命令(參數(shù)為List號、ODT號、ODT中的元素號),指定需要初始化的參數(shù)單元。最后,上層根據(jù)SET_DAQ_PTR命令設置的具體元素,發(fā)送WRITE_DAQ命令(參數(shù)為DAQ元素的byte大小,DAQ元素的地址),反復通過SET_PTR和WRITE_DAQ兩條命令,初始化完一個具體的ODT表,然后初始化完一個具體的List表,最后初始化完所有的List表格。至此,初始化ODT工作結束。
4.開始和停止DAQ數(shù)據(jù)的傳輸。上層發(fā)送START_STOP命令,指定的ODT數(shù)據(jù)開始上傳。ODT將其中的每個元素復制到其對應的DTO(8個字節(jié),1個PID號,7個存放數(shù)據(jù))中,然后以DataAcquisitionMessage的形式返回給上層的標定系統(tǒng)。DAQ模式到此為止。
四、結語
ECU標定軟件運行情況如圖4所示,經(jīng)過多次不斷的調(diào)試,此標定系統(tǒng)運行穩(wěn)定可靠,能夠對汽車系統(tǒng)中的ECU進行在線標定,并可以針對不同用戶需求提供不同的定制功能。
圖4標定軟件示意圖
這個采用CCP協(xié)議的汽車發(fā)動機標定系統(tǒng)具有符合國際通用標準、通用性好、對不同硬件與不同需求適應性強的特點,因此有很好的開發(fā)應用前景。
責任編輯:gt
-
發(fā)動機
+關注
關注
33文章
2498瀏覽量
69711 -
CAN總線
+關注
關注
145文章
1955瀏覽量
131090 -
汽車電子
+關注
關注
3029文章
8023瀏覽量
167804
發(fā)布評論請先 登錄
相關推薦
評論