库里南价格电动汽车CAN报文解析及应用
钟文浩
【摘 要】为了更准确地确定电动汽车有关充电部分的故障范围,熟练掌握电动汽车CAN报文非常重要.本文论述CAN报文定义、接收CAN报文的方法以及CAN报文的组成与帧结构;通过实例解析电动汽车整车控制与电池管理系统之间CAN通信报文的含义,并分析如何应用CAN报文的解析来诊断有关电动汽车的故障.
【期刊名称】《汽车电器》
【年(卷),期】2017(000)006
【总页数】4页(P13-16)
【关键词】电动汽车;CAN报文;解析;应用
【作 者】钟文浩
【作者单位】惠州经济职业技术学院,广东 惠州 516057
【正文语种】中 文
【中图分类】U463.6
CAN报文是指发送单元向接受单元传送数据的帧。我们通常所说的CAN报文是指在CAN线(内部CAN、整车CAN、充电CAN)上利用ECU和CAN卡接收到的十六进制报文。
1)所需的工具和软件:①手提电脑;②周立功CAN卡;③安装ZLGCANTest软件。
2)接收CAN报文的方法:①到需要的CAN线(如果接收整车报文则要接整车CAN),连接CAN线和CAN卡,确认CANH与CANL未接反;②连接CAN卡和电脑,确认USB接头与CAN卡连接可靠;③打开ZLGCANTest软件,点击打开设备设置波特率(常用的波特率一般为250 kbit/s和500 kbit/s2种);④点击启动CAN接收报文;⑤如需保存报文分析,则点击保存。
通常接收到的CAN报文由很多部分组成(图1),解析报文时用到的主要是帧ID和数据两部分。
3.1 帧ID的组成
接收到的十六进制的ID实际上是由29位标识符转换而来,目前大多数的通信协议中都直接给出了相应的帧ID,不需要换算。如表1所示。
表1中,P为优先级,有3位,可以有8个优先级(0~7);R为保留位,有1位,固定为0;DP为数据页,有1位,固定为0;PF为报文的代码,有8位;PS为报文的目标地址(也就是报文的接收方),有8位;SA为报文的源地址(也就是报文的接收方),有8位。
根据通信协议换算一个帧ID。如表2所示。
表2中,P为优先级,6转为二进制110;R、DP固定为0;PF为8位的报文代码,24转为二进制00011000;PS为8位的目标地址,即整车控制器的地址,在协议中它的地址定义为208,转化为二进制11010000;SA为8位的源地址,即BMS的地址,在协议中它的地址为243,转化为二进制11110011。
s-line这些代码合起来为11000000110001101000011110011,转化为十六进制为1818D0F3。以上就是29位标识符(ID)的由来。其中,29位标识符,如表3所示。
3.2 数据段的组成
数据段一般由1~8个字节(Byte)组成,来代表通信协议中相应的含义。每个字节有2个字符,分为高4位和低4位。有的数据需要相邻的2个字节组合才能表示,则需要分为高字节和低字节。
例如,收到表2所示通信协议中需要的报文(ID:1818D0F3):1818D0F3 ce 0d 00 7d 00 6d 11 00。第1个字节ce中的c为高4位,e为低4位。第1、2字节表示总电压,而且注明Byte1为低字节,Byte2为高字节,那么解析时就应该为:0dce。
根据需要收到CAN报文之后,需要根据具体的通信协议解析,然后分析解析出的数据是否正确。下面进行报文实例解析。数据类型定义如表4所示。
报文内容如表2所示。收到的报文为:1818D0F3 ce 0d 00 7d 00 6d 11 00。
1)协议中规定报文的第一、二字节表示总电压,高字节在前,低字节在后。又总电压的单位为0.1 V。所以在上面的数据中0dce代表总电压,转为十进制为3 534,乘以0.1 V的单位,则得到总电压值为353.4 V。
马三2)协议中规定报文的第三、四字节表示总电流,又总电流的单位为0.1 A,偏移量为32 00
0。所以在上面的数据中7d00代表总电流,转为十进制为32 000,乘以0.1再减去3 200的偏移量等于0,则说明此时电池组没有被充电或放电,电流为0。
3)协议中规定报文的第六、七字节表示最高电池电压及位置。单体电池电压单位为0.01 V。最高4位代表箱号。所以在上面的数据中116d 代表最高电池电压及位置,其中1代表箱号,即最高电池电压在第1箱。116d代表最高电池电压,转为十进制为365,乘以0.01 A的单位,则得到最高电池电压为3.65 V。
5.1 案例1:江淮3代车仪表无SOC和电池总压
1)首先到相应的通信协议,如表5所示。
广汇认证二手车2)然后通过整车CAN收到相应报文,如表6所示。
3)接着到ID:180460F4的报文(180460F4 数据帧扩展帧 0x08 60 5f 00 07 0c 76 07 d0)进行解析。①当前SOC= 95(5f转换为十进制)×1 %(分辨率)+0(偏移量)=95 %。②电池组电压=3190(0c76转换为十进制)×0.1(分辨率)+0(偏移量)=319。
最后得出结论:BMS已经正常发送SOC和电池总压至整车CAN,仪表未显示可能是仪表本身问题或者仪表连接整车CAN线路出了问题。
5.2 案例2:江淮4代车无法进行慢充
1)首先插上充电后确认充电回路已形成(充电机直流输出端能测到电池电压)。
2)再到通信协议中BMS的慢充部分,如表7所示。
3)然后通过整车CAN接收到报文,如表8所示。
4)接着到ID:403(0x00000403 数据帧 标准帧 0x08 03 00 3c 0d 8e 00 00 00)进行解析。①控制指令:03转换为二进制为11—充电器开启,说明BMS允许充电。②充电电流需求=60(003c转换为十进制)×0.1(分辨率)+0(偏移量)=6 A。③充电电压需求=3470(0d8e转换为十进制)×0.1(分辨率)+0(偏移量)=347 V。
最后可以得出结论:在充电回路形成、BMS允许充电、充电需求正常的情况下,充电机仍然无输出,肯定是充电机本身有问题。
混合动力车型推荐
江淮电动汽车
【相关文献】
[1]刘永木,刘望生,李洪泽.SAE J1939标准下的汽车CAN通信报文/帧格式[J].长春工业大学学报(自然科学版),2003(1):53-55.
[2]合肥国轩高科动力能源有限公司.正宇纯电动车电池管理系统与整车系统CAN通信协议(GX-ZY-CAN-V1.00)[Z].