APP下载

新能源工程机械CAN总线报文解析

2024-12-11蔡智泉李忠峰

时代汽车 2024年21期

摘 要:近几年,随着技术的发展,应用CAN总线系统的工程车越来越多。与普通线路相比,CAN总线具有各电器系统相对独立,相互之间关联较少,线路相对简单等特点。只要能够掌握CAN总线原理,车辆各电气系统的原理图,CAN总线各模块功能及其在车上的位置,就能通过故障现象,迅速准确地排除故障。本文针对新能源工程机械报文解析在故障诊断的方面应用,通过报文的获取,报文解析进而确定故障原因。

关键词:CAN协议 报文 报文格式 报文解析

1 CAN协议概述

1.1 相关术语介绍

总线:节点(功能部件)间信息交换技术;作一个比喻:电脑处理信息就好像在不断穿梭接送乘客的BUS,而各个计算机部件就是一个个车站,从而将信息连接到每个计算机部件的。

CAN总线:CAN总线是英文Controller Area Network的缩写,就是某种信息交换技术的网络布置方法。其等效原理如图1。

总线分类:在工程机械上已经出现了多种总线标准,从总线所实现的功能角度分,

可分为两类:

一类是控制策略驱动的总线,如SAE的J1850、德国大众的ABUS、博世的CAN、ISO11898和ISO11519、美国商用机器的AutoCAN、ISO的VAN、马自达的PALMNET、以及用于低速场合的LIN等。

一类是以大量数据传输为目的的多媒体总线,如IDB-C、IDB-1394、MOST、AMIC-C等。

协议:网络协议的简称,通讯双方必须共同遵从的一组约定。简单的说了,网络中的节点要能够互相顺利的通信,就必须讲同样的语言,协议就相当于符号化的语言。工程机械中采用J1939CAN网络协议。

1.2 通讯协议的三要素

a:语法:数据与控制信息的结构或格式;简单的说,类似语言中的:主谓宾,定状补

b:语义:结构或格式中每部分所表示的现实含义。如:何种控制、何种响应等

c:时序:事件实现顺序的详细描述

在CAN协议中存在大量专业术语,在此不再敖述,可以参考CAN网络协议标准[1]。

2 何为报文

报文:将位于应用层的信息分组称为报文,是网络传输中的数据单元,包含了数据的完整性。以帧为最小传输单位,长度不限且可变。在网络传输过程中不断的封装为段、组、包、帧来传输。封装的本质就是添加一些信息域俗称报文头。

(1)数据单元:报文是计算机网络中传输的数据单元。它是信息在网络中传递的基本单位,类似于日常生活中的信件或邮包。

(2)封装和解封装:报文在传输前需要经过封装的过程,即将数据添加额外的头部信息,以便在网络中正确传递到目标位置。在目标位置,报文会被解封装,也就是将头部信息去除,还原出原始的数据。

(3)标识信息:报文通常包含标识信息,例如源地址和目标地址,以确保数据被正确传送到目标设备,并让接收方知道报文的来源。此外还有控制信息、仲裁信息、检验信息等。

(4)通信协议:报文的格式和规则由通信协议定义。不同的应用和协议可能会使用不同的报文格式,但它们都遵循相应协议规定的结构和处理方式。

CAN通讯协议的基本格式:如图2所示。

基本格式=报文头+报文体+报文尾。

报文头:包含通讯开始时所涉及的必要标识信息,例如控制信息、仲裁信息、功能信息、扩展信息、源地址、目标地址等,对应的是:帧起始、仲裁场、控制场。

报文体:应用层需求的信息,对应的是数据场或域。

报文尾:包含通讯结束时所涉及的必要标识信息,如应答信息、检验信息等。对应的是CRC场、ACK场、帧结束。

(5)数据传输:报文通过计算机网络进行传输,经过多个中间节点,如路由器、交换机等,通过这些节点的转发,最终到达目标设备。

(6)标识符:信息的抽象符号,以位为最小单位,以域为最小功能单位。

3 CAN报文的采集

(1)CAN报文采集所需的软硬件。硬件有:CAN盒(周立功)、测试线、存储设备(SD卡或优盘),与硬件相匹配的软件,CANPRO、USBCAND等。软件安装在笔记本电脑上。

(2)采集过程:通过测试线把CAN盒输入口与整车的诊断口相连--输出口与电脑相连--打开车辆电锁--打开USBCAN软件--选择CAN通讯通道--选择通讯波特率(在工程机械一般为250KB或500KB)--启动车辆,在软件交互窗口获取报文。如图3所示某车型所获取的报文,其中Message Number:报文序号信息;Time Offset(ms):报文采集时间信息;Bus:总线通道信息;Type:报文传输方向(其中Rx表示接受,Tx表示发出)信息;Reserved:保留位(用于功能扩展)Data Lengh Code:表示数据长度信息,其中数字8代表数据长度占8个字节;Data Bytes(Hex):表示报文数据信息,以十六进制形式表示;ID:报文唯一标识符,类似我们身份证,与数据场一一对应。

4 报文的解析

报文的解析分为两部分:第一部分对报文的标识信息的的解析,第二部分对报文体的数据进行解析。下文将对这两部分进行详细的解释。

4.1 报文标识信息的解析:主要是对报文的ID进行解析

CAN报文的ID根据CAN协议中规定可分为:标准帧的ID为11为二进制数构成,以十六进制形式显示;扩展帧的ID为29为二进制数构成,同样以十六进制显示。目前工程车辆都使用扩展帧结构即29位ID。帧ID中所包含的信息:优先级、参数组编号、源地址、目的地址四个信息。现以某车型实际报文为例进行说明:所采集到的报文如图4所示。

ID的十六进制的形式为:0C08E4DC。

其中最后两位DC为:源地址(Source Adress简称SA),作用:告知我们数据场的数据来源,也就是说这些数据是哪个节点发出来的。其中DC为厂家自主定义,源地址与节点一一对应,不可重复,一个节点只能获得唯一一个地址码。该处某厂家定义为:DC-DC模块的地址标识符。表1某厂家节点模块地址码定义。

前面六位十六进制数0C08E4为参数组PGN(Parameter Group Number):传输数据参数的集合,每一个参数组都有一个唯一的标识符称为参数组编号。参数组依据功能进行分配,例如命令参数组、数据参数组、请求参数组、应答参数组等。这些在CAN协议标准中进行明确的规定。PGN如图5所示:

最前面3位二进制 表示优先级(Priority)信息,数值越小,传输优先级越高。作用:可以明确该条报文的收发优先级,如图5所示中:当PF的值大于等于十进制的240,则字节3的数据表示目的地址为全局(GE);当PF的值小于十进制的240,则字节3的数据表示目的地址为特定(DA);作用:可知是哪个或那些节点是需要接受信息。

4.2 报文的数据解析:主要是指数据场的数据进行解析

CAN报文数据场由8个字节组成,共计64位二进制(如表2)。可以存放数据类型:可以是状态值或测量值。1个byte由8个bit组成,byte称为“字节”,bit称为“位”,bit的数值只能是“0”和“1”数据由厂家自行定义。以图4某厂家实际报文为例:该报文的数据为:0A 28 10 27 10 27 38 48。

在解析数据时需要根据厂家实际的DBC(Data Base Can)文件来进行解析(如图6)。

如图6所示,我们先看图5 DCDC工作状态数据在第7字节第7位,根据描述栏:其中“0”表示停机状态,“1”表示运行状态。实际测量值中(图7所示)在第7字节第7位的值位0,说明DCDC没有运行。该车现在存在故障。DCDC工作运行的条件:有输入电压和并有输出电压和。接下来根据图图5中的规定分别计算一下这些值。

DCDC输入电压:用两个字节来表示,分别占用第5字节的0-7位和第6字节的0-7位;再根据图5所示这两个字节中的数据为十六进制的10和27,该协议采用的MBS规则,写成十六进制顺序为2710,将十六进制转化为十进制:(2710)16=(10000)10,得到10000。

根据公式:测量值=十进制数值*分辨率+偏移量,该DCDC输入端电压=10000*0.1-1000=0V。

0V说明DCDC没有输入电压,所以DCDC没有运行。我们可以把故障锁定在DCDC输入端。

最终故障原因为高压盒给DCDC供电的接触器损坏导致。

DCDC输出端电压:用两个字节来表示,分别占用第1字节的0-7位和第2字节的0-7位;再根据表2所示这两个字节中的数据为十六进制的0A和28,该协议采用的MBS规则,写成十六进制顺序为280A,将十六进制转化为十进制:(280A)16=(10250)10,得到10250。

根据公式:测量值=十进制数值*分辨率+偏移量,该DCDC输出端电压=10250*0.1-1000=25V。

重要提示:此数据只能明确蓄电池电压正常但是不能确定DCDC正常。同理可以计算DCDC输入和输出电流均为0A。读者可自行验证。在此不再敖述。

5 结语

本文以实际案例为引线,详细阐述报文获取、解析在实际中的具体应用。包括实际中所用到的硬、软件工具,报文获取以及解析流程步骤。为广大读者提供了具有现实的指导意义。

参考文献:

[1]刘君涛.计算机通信网络安全与防护策略的相关思考[J].通讯世界,2016(19):104-105.

[2]王磊.关于计算机网络信息安全及防护策略探究[J].电脑知识与技术,2014,10(19):4414-4416.

[3]张扬,申朝,曾昭凯,等.CAN总线技术在电动汽车上的实现[J].沈阳工业大学学,2006,28(5):563-565.

[4]韩成浩,高晓红.CAN总线技术及其应用[J].制造业自动,2010,32(2):145-147.

[5]杨兵,耿仁义.国产汽车CAN总线发展[J].科技创新导报,2009,25(32):193-194.