文档介绍:OBD2诊断程序开发
开发标准0BD2诊断程序要预备的资料及硬件
发送必须以OxOd(回车符)终止的ASCII码字符,回车符后面的字符被TL 718丢弃。
TL718内部命令以“AT"开头,后面跟可见字符。不可见字附及空格被 忽视。
如上图所示,连接好线路及打开车匙到ON,不要起动车 辆。不用做任何设定,只要你向TL718发送指令,TL718自动返回车辆响 应的数据。
例 1: 图所示:“0100"代表 ISO15031-5 定义 MODE 01 PID 00 指令。
>01 00
41 00 BF 9F B9 90
第1个字节41 代表 Mode 01 (01+40,标准定
义)
第2个字节00 代表 PID 00
3-6字节是车辆发送回来关于MODE 01 PID 00要求返 回来的数据
表示模式00所支持其他(PID01---PID32)标识的按位定 义的数据1代表支持0代表不支持。
例2:要求(读取)发动机水温MODE 01 PID 05
我们只要简单的向车辆发送0105指令
>0105
41 05 7B
41 代表 MODE 01
05 代表 PID 05
7B是水温值10进制数值是(7*16+11)123水温是123-40 =80度
例3:读取发动机转速rpm MODE 01 PID 0C
同样只要向TL718发送:010C
>01 oc
41 OC 1A F8
1AF8是2字节的16进制值,转换为10进制数是6904,每格
1/4 rpm
转速是 6904/4=1726 rpm
注:以上数据的转换,及格式在ISO15031-5内有详细定义
读 OBD2 故障码(DTCs Diagnostic Trouble Codes)
读故障码是诊断仪最常用的功能,那个地点只是简单的讲明一下,
详细内容请查阅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 X返回了一行数据,然而如果有另外的操纵模 块也附合响应条件,有可能返回多行信息。
比喻常见的:发动机电脑和自动波箱操纵电脑同时返回信息,就会有2行 信息,要确认是哪一个电脑返回的是哪一行
信息,必须设置返回OBD消息保的三字节头(AT H1内部命令打开),查 看消息头字节中的第三个字节(源地址)确定
是那个电脑模块返回的消息包。那个地点先不讨论,在另外章节来详细讨 论,多消息包数据。
现在差不多读了有多少个故障码,下一步读实际的故障码是什么。
用OBD2诊断模式MODE 0