王孝峰



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