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