SAE J1939协议读取车辆故障码 | 您所在的位置:网站首页 › cd9304故障码 › SAE J1939协议读取车辆故障码 |
基于SAE J1939协议的车辆,默认开启数据广播。当有故障码时,也会按照故障码的格式进行广播。 此处基于外设主动:读取故障码个数->读取故障码->故障码解析 这个步骤来讲,如果被动接收故障码广播,如下解析也适用。 根据故障码个数分如下几种情况: 一、单个故障码时 读取故障码个数: 请求:18EA00F9 CE FE 00 响应:18FECE00 01 00 09 02 05 05 05 05 根据SAE J1939-73协议,解析响应如下: 01:当前激活故障码个数为1; 00:历史故障码个数为0; 09:符合EOBD、OBD和OBD II; 后面几个字节表明系统支持及状态。有1个当前激活的故障码,下面去读取这个故障码: 请求:18EA00F9 CA FE 00 响应:18FECA00 10 FF B8 04 03 0A FF FF 根据SAE J1939-73协议,解析响应如下: 10:亮红色停车灯; FF:警示灯不闪烁; B8 04 03 0A:一条故障码信息。 FF FF:填充。根据SAE J1939-73协议,一个故障码信息包括4个字节,组成如下: 故障码信息解析如下: 十六进制(B8 04 03 02)转为 二进制(1011 1000 0000 0100 0000 0011 0000 0010) 则:SPN =(000 0000 0100 1011 1000)B=(4B8)H=(1208)D FMI =(00011)B=(3)D CM = 0 OC = (0001010)B=(10)D 根据SAE J1939-71协议,查找SPN=1208的项,根据SAE J1939-73协议附录,找到FMI=3的说明, 此故障码信息为:发动机机油滤清器前机油压力过高,亮红灯,已发生10次。二、没有故障码时 读取故障码个数: 请求:18EA00F9 CE FE 00 响应:18FECE00 00 00 09 02 05 05 05 05 没有故障码,可以不用再去读取了。当然读取也可以,下面去读取故障码: 请求:18EA00F9 CA FE 00 响应:18FECA00 00 FF 00 00 00 00 FF FF 注意:未使用的字节7和8的应设置为FF(根据SAE J1939-21)。 注意:当没有故障码时,此应答字节3到6应设置为零。三、多个故障码时 读取故障码个数: 请求:18EA00F9 CE FE 00 响应:18FECE00 04 00 09 02 05 05 05 05 有4个当前激活的故障码,下面去读取故障码: 请求:18EA00F9 CA FE 00 响应:18EC0000 10 12 00 03 FF CA FE 00 10:为RTS请求应答广播; 12 00:长度为18个字节; 03:后续数据分3帧传送; CA FE 00:对应的请求PGN。请求:18EC00F9 11 03 01 FF FF CA FE 00 表明:准备好接收从编号 1 开始的3个数据包响应:18EB0000 01 10 FF B8 04 03 0A 20 18EB0000 02 3F 01 03 02 51 11 01 18EB0000 03 12 3E 04 02 FF FF FF 4个故障码为:B8 04 03 0A,20 3F 01 03,02 51 11 01,12 3E 04 02 |
CopyRight 2018-2019 实验室设备网 版权所有 |