- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
ISO15031协议9种模式详解
15031-5 中描述的关于 OBD 输出信息的 9 种模式
1, 请求动力系当前数据
2 , 请求冻结帧数据
3, 请求排放相关的动力系诊断故障码
4 , 清除/复位排放相关的诊断信息
5, 请求氧传感器监测测试结果
6, 请求非连续监测系统 OBD 测试结果
7, 请求连续监测系统 OBD 测试结果
8, 请求车载系统,测试或者部件
9, 读取车辆和标定识别号
在 CAN 通讯中的使用
1. 请求动力系的当前数据
1) 第一步:
在请求具体 PID 之前,应该发一些探测该 ECU 支持哪些 PID 的指令:
描述 十六进制数值
SID 01
用来查询在$00~$20 之间支持 PID 的 PID 00
用来查询在$21~$40 之间支持 PID 的 PID 20
用来查询在$41~$60 之间支持 PID 的 PID 40
用来查询在$61~$80 之间支持 PID 的 PID 60
用来查询在$81~$A0 之间支持 PID 的 PID 80
用来查询在$A1~$C0 之间支持 PID 的 PID A0
回应:如果发送的消息为-$02 01 00 FF FF FF FF FF
描述 十六进制数值
#2 :SID 01
#3 :PID 00
#4 :PID$01~08 Supported BF 表示支持 01,03~08
#5 :PID$09~10Supported BF 表示支持 09,0B~10
#6 :PID$11~08Supported A8 表示支持 11,13,15
#7 :PID$09~20Supported 91 表示支持 19,1C,20
在请求 01~20 段到底支持哪些 PID 时,回应消息中分了4 个字节来描述支持,每个字节
正好描述 8 个 PID 的支持情况,如:在#4 描述的是第一个 8 个 PID ,如果 BF (Hex )
就是 (Bin )1 表示支持,0 表示不支持,MSB 对应的 01,LSB 对应着 08,可
知 01,03~08 是支持的,而 02 不支持。在请求 21~40,41~60 等其他段同理。
2) 第二步
在第一步之后就可以请求支持的 PID 了。
在一个请求消息帧中,最大可以请求 6 个 PID ,通常情况下,请求的数据可能来自
不同的 ECU,如果用物理寻址分别请求不方便,不如功能寻址,直接从不同的 ECU
中拉取数据。
在返回消息中,可以根据在 PID 后面的数据是占 ByteA,还是 ByteA+B 来断句,翻
译出返回的数据,也可以一个请求消息中只有一个 PID ,但这样需要 6 条 CAN 消
息去请求,6 条接收。
2. 请求冻结帧数据
在请求冻结帧数据时,依然需要知道请求的冻结帧中支持的 PID ,然后再去在该冻
结帧中请求数据,请求支持的数据的格式:
参数名 Hex 数值
请求冻结帧服务 SID 02
PID#1 (如 00,10,20 等) XX
帧序号 Frame# XX
PID#2 XX
帧序号 F
原创力文档


文档评论(0)