王孝峰
摘要:本文從CCP協(xié)議和A2L文件出發(fā),分析了CAN總線負(fù)荷較重時,CCP通信數(shù)據(jù)丟失產(chǎn)生的原因,并有針對性地提出了解決方案。經(jīng)過實驗驗證,該方案有效解決了通信故障。
關(guān)鍵詞:INCA;ECU;ASAM;A2L文件;CCP協(xié)議
1 ?故障現(xiàn)象描述
在某型號柴油機的臺架試驗過程中,ECU與INCA軟件的通信出現(xiàn)問題。在INCA軟件執(zhí)行測量數(shù)據(jù)顯示時,ECU通信到INCA的測量參數(shù)經(jīng)常出現(xiàn)數(shù)據(jù)丟失,尤其是電路板ID5,電路板ID2偶爾出現(xiàn)。當(dāng)出現(xiàn)通信數(shù)據(jù)丟失后,執(zhí)行停止測量,然后再次執(zhí)行測量數(shù)據(jù)顯示,通信數(shù)據(jù)有時候會恢復(fù)正常,有時候仍舊處于丟失狀態(tài),而且恢復(fù)正常的通信數(shù)據(jù)經(jīng)過一段時間的運行,仍有可能再次發(fā)生丟失。
2 ?INCA與ECU通信原理
INCA通過專用硬件ES592和ECU連接,按照CCP協(xié)議(CAN Calibration Protocol)進行通信,CCP協(xié)議是一種基于CAN總線的ECU標(biāo)定協(xié)議,它是滿足ASAM標(biāo)準(zhǔn)體系中ASAM MCD-1MCa標(biāo)準(zhǔn)的一種ECU標(biāo)定協(xié)議。CCP協(xié)議的設(shè)計實現(xiàn)不需要ECU在硬件上有太多的限制,只需要ECU支持CAN總線接口并實現(xiàn)一個基本的CCP驅(qū)動,就能實現(xiàn)測量和標(biāo)定功能。CCP協(xié)議支持如下功能:
①能夠?qū)ξ挥贓CU合法內(nèi)存地址中(RAM或ROM)的任意地址的值進行讀取和寫入。
②基于時間周期或事件驅(qū)動的工作模式。
③可同時進行數(shù)據(jù)測量和數(shù)據(jù)標(biāo)定。
④可同時對多個ECU進行操作。
⑤Flash編程功能。
⑥即插即用。
⑦設(shè)置數(shù)據(jù)讀寫保護。
CCP協(xié)議已經(jīng)在許多歐美汽車廠商得到應(yīng)用,采用CCP協(xié)議可以快速有效地實現(xiàn)對ECU參數(shù)的測量和標(biāo)定。
本文所述柴油機臺架的通信網(wǎng)絡(luò)拓?fù)淙鐖D1所示。
A2L文件是ASAM MCD-2MC標(biāo)準(zhǔn)規(guī)定的ECU內(nèi)部數(shù)據(jù)單元描述文件,INCA在對ECU的參數(shù)進行測量和標(biāo)定時,需要從A2L文件中獲取ECU內(nèi)部數(shù)據(jù)單元的內(nèi)存地址、數(shù)據(jù)類型和字節(jié)順序等信息,利用這些信息INCA和ECU對交互的信息就會有一致的認(rèn)識,從而使INCA準(zhǔn)確并友好的將ECU中的信息展現(xiàn)給用戶。因此,A2L文件對INCA測量和標(biāo)定功能的實現(xiàn)至關(guān)重要。
3 ?A2L文件解析
A2L文件的整體結(jié)構(gòu)如圖2所示。
一個A2L文件有且只有一個PROJECT,PROJECT分為兩部分:HEADER和MODULE。HEADER包含了PROJECT的頭信息,MODULE包含了PROJECT的設(shè)備信息。MODULE中的成員主要包括以下幾種:
A2ML:描述接口參數(shù)格式,對基本的數(shù)據(jù)結(jié)構(gòu)和特定接口參數(shù)進行了描述。
MOD_PAR:設(shè)備參數(shù)描述,包含了用于管理ECU的數(shù)據(jù),比如供應(yīng)商名、客戶名、客戶編號、CPU類型、ECU的內(nèi)存分配等,其中最重要的就是ECU的內(nèi)存分配。
MOD_COMMON:定義設(shè)備公共參數(shù),指定了ECU一些公共屬性,比如大小端、數(shù)據(jù)的對齊方式、FLOAT變量的處理方式等,一個MODULE里也只能出現(xiàn)一次。
IF_DATA:定義接口數(shù)據(jù)具體參數(shù),定義了測量標(biāo)定系統(tǒng)與ECU通信的基本信息,主要包括SOURCE模塊、RASTER模塊以及TP_BLOB模塊。SOURCE模塊主要描述DAQ列表以及各DAQ列表中的ODT列表詳細(xì)信息;RASTER模塊主要描述相關(guān)的事件通道信息;TP_BLOB模塊主要描述CCP協(xié)議的基本參數(shù),包括CAN通信速率、DTO的ID號、CRO的ID號、CCP協(xié)議版本等。
CHARACTERISTIC:定義標(biāo)定變量,包含了可以被標(biāo)定的變量的名字、地址、長度、計算公式、精度、最大最小值等信息,一個MODULE里邊可以出現(xiàn)很多次這樣的塊,也就是說一個ECU可以有很多的標(biāo)定變量。
MEASUREMENT:定義測量變量,包含了可以被測量的變量的名字、地址、長度、計算公式、精度、最大最小值等信息,一個MODULE里邊可以出現(xiàn)很多次這樣的塊,也就是說一個ECU可以有很多的測量變量。
COMPU_METHOD:定義計算公式,即原始值和物理值之間的轉(zhuǎn)換關(guān)系,這些公式可以被標(biāo)定變量和測量變量來引用,從而將原始值轉(zhuǎn)換成便于用戶閱讀和使用的物理值。
RECORD_LAYOUT:定義內(nèi)存布局,描述數(shù)據(jù)的存放方式。
4 ?故障分析與解決方法
本文所述ECU的CCP網(wǎng)關(guān)集成在電路板ID1上,各電路板采集到的數(shù)據(jù)需要先經(jīng)過內(nèi)部總線通信到電路板ID1的CCP網(wǎng)關(guān),然后按照CCP協(xié)議通信到INCA。ECU內(nèi)CCP協(xié)議的工作模式采用DAQ模式。DAQ模式下,INCA首先發(fā)送一條請求DAQ命令,ECU收到后,按命令中參數(shù)自行配置并組織需要上傳數(shù)據(jù),然后按一定周期自主向INCA上傳數(shù)據(jù)。電路板ID2和ID5的上傳周期有三種:10ms、100ms和250ms。INCA實驗環(huán)境中電路板ID2和ID5測量參數(shù)的相關(guān)信息如表1所示。
由表1可知,電路板ID5的通信數(shù)據(jù)量比電路板ID2大,這與第一節(jié)所描述的通信故障現(xiàn)象相符,可判定是CAN總線負(fù)荷較重導(dǎo)致通信數(shù)據(jù)丟失?;谝陨戏治?,本文提出一個解決方案:修改電路板ID5對應(yīng)的A2L文件中描述CCP協(xié)議的IF_DATA ASAP1B_CCP模塊,這樣可減輕CAN總線的負(fù)荷。IF_DATA ASAP1B_CCP模塊如圖3所示。
具體的修改方法是刪除電路板ID5對應(yīng)的A2L文件中與10ms相關(guān)的部分,即刪掉304到323行,這樣極大地減輕了CAN總線負(fù)荷。然后將修改后的A2L文件配置到INCA軟件,進入實驗環(huán)境,INCA軟件提示將上傳周期10ms的測量參數(shù)改為上傳周期為100ms或者250ms。執(zhí)行測量數(shù)據(jù)顯示,電路板ID2和電路板ID5的參數(shù)通信恢復(fù)正常,不再出現(xiàn)數(shù)據(jù)丟失。
5 ?結(jié)束語
本文從CCP協(xié)議和A2L文件出發(fā),分析了CAN總線負(fù)荷較重時,CCP通信數(shù)據(jù)丟失產(chǎn)生的原因,并有針對性地提出了解決方案。該方案雖然加大了部分測量參數(shù)的上傳周期,但仍能滿足系統(tǒng)的實時性要求,為類似的CCP通信故障提供了簡單易行可靠的解決方案。
參考文獻:
[1]ETAS INCA V7.1 Get Started[Z].2013.
[2]Association for Standardisation of Automation and Measuring Systems. ASAM MCD-2MC Version 1.6[S].2003.
[3]Association for Standardisation of Automation and Measuring Systems. CAN Calibration Protocol Version 2.1[S].1999.