APP下载

INCA与ECU通信故障的原因分析与解决方法

2020-09-10王孝峰

内燃机与配件 2020年10期

王孝峰

摘要:本文从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.