读OBD2故障码 - 汽车OBD2诊断程序开发
读故障码是诊断仪最常用的功能,这里只是简单的说明一下,详细内容请查阅ISO15031-5文本
一般情况下可直接用MODE 03读取当前故障码,但这里我们
先用MODE 01 PID 01读取现在有多少个故障码存在ECU内
>01 01
41 01 81 07 65 04
>
41 01 前面已说明是对MODE 01 PID 01的响应代码,
81 代表当前的故障码数,这个10进制数值是129,不是代表有129个故障码,
81它的最高位MSB 代表是否点亮故障指灯,低7位代表了故障码的数量
16进制算法应是 0x81 & 0x7F = 0x01 所以是一个故障码。也可是10进制数值直接减128
即:129-128=1;
所以81代表了,故障灯点亮,有一个故障码,81后面的数据请参考标准文本,和读故障码没有关系。
在这个例子中,TL718只返回了一行数据,但是如果有另外的控制模块也附合响应条件,有可能返回多行信息。
比喻常见的:发动机电脑和自动波箱控制电脑同时返回信息,就会有2行信息,要确认是哪一个电脑返回的是哪一行
信息,必须设置返回OBD消息保的三字节头(AT H1内部命令打开),查看消息头字节中的第三个字节(源地址)确定
是那个电脑模块返回的消息包。这里先不讨论,在另外章节来详细讨论,多消息包数据。
现在已经读了有多少个故障码,下一步读实际的故障码是什么。
用OBD2诊断模式MODE 03读取:只要简单地向TL718发送03
>03
可能的返回信息数据如下:
43 01 33 00 00 00 00
注:如果故障码数量多于3或多个电脑模块,会返回多行消息包,
43是对MODE 03 请求的响应(03+40),另外的6个字节是故障代码,2个字节代表一个故障码。
这里有3个代表故障码的数据:0133 0000 0000,“0000”是ISO15031在这个模式下返回的填充数据
不是实际的故障码。
故障码含义:ISO定义:二字节故障码(例0133)的第一个数如下表所示 现在来分析上面的故障码 0133:
第一个数字“0”按上表用“P0”代替。0133就代表是故障码P0133。
同样如果收到的是D016则,“D”用U1代替,则故障代码就时U1016;
如果收到是1131则代换后,故障代码是P1131。
注:ISO15765 CAN故障码消息包和J11850、ISO9141 ISO14230返回的信息有稍不同,
编写程序时要注意,ISO 15765 返回的信息第二个数据代表的是电脑模块有多少个故障码(DTCs),
详细看ISO15031-5内定义。
清除故障代码
OBD2诊断模式MODE04 是复位ECU的一个功能,同时也清触故障代码;执行后ECU将:
1、复位故障代码的数量为0
2、删除所有的故障代码
3、删除存储的冻结桢数据
4、删除所有O2传感器听测试数据
5、删除模式MODE06 和 MODE 07的数据信息
复位后你的汽车由于复位了一些数据,短时间内可能会引起工作异常。为了防止不小心复位ECU,
ISO15031-5要求所有的扫描工具(诊断仪)在发送MODE 04指令前,必须加一个“确认信息”。
TL718不监视发送信息的内容是否是复位指令。
>04
44
>
发送04指令后,车辆ECU接收成攻,将立即复位以上内容,
并发回一个MODE 04的响应信息44(04+40)。
一般的流程:
结束语
-
- ISO14230 ISO9141要求通讯前的初始化过程、及连接后要求有一个周期性的握手信号,这些TL718都已经自动完成,OBD2标准的诊断程序都不用更改。怎样更改这些参数:
-
- 看完这些内容,就可开始你的OBD2开发。实际上厂商专用的诊断功能程序差不多也是这么简单。为什么叫专用,是因为它没有公开应用层的协议。开发时比我们OBD2开发多少一个过程。就是怎样用TL718从专用的设备中读得专用的诊断指令(也就是应用层协议)。在开发专用功能的诊断仪中讨论这个问题。
- OBD2其他的诊断模式这里不再说明,诊断方法都是一样的。详细内容查看ISO15031-5或SAE J1979。
- 多试多做你会发现开发诊断程序原来如此简单。
更多有关OBD精彩内容请点击:http://www.elecfans.com/zhuanti/obd.html;
- 第 1 页:汽车OBD2诊断程序开发
- 第 2 页:TL718的OBD命令
- 第 3 页:读OBD2故障码
本文导航
非常好我支持^.^
(89) 50%
不好我反对
(89) 50%
相关阅读:
- [电子说] 多种角度来了解OBD2 2023-09-04
- [电子说] KUKA C2数字电子伺服设备及分解器数字转换器诊断程序 2021-01-03
- [人工智能] 新的人工智能诊断程序可以预测是否感染新冠肺炎 2020-05-26
- [电子说] 怎样制作Arduino OBD2扫描仪 2019-11-14
- [通信设计应用] MAXQ1103破坏性复位诊断程序 2009-10-23
( 发表人:zhangjin )