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