obd协议 混动车_OBD协议

本文详细介绍了OBD(On-Board-Diagnosis)协议在汽车动力系统诊断中的9个核心服务,包括读取当前动力系统数据、冻结帧数据、故障码、清除诊断信息、氧传感器监测、系统监测测试结果、获取驾驶循环中DTC以及车辆信息等。通过这些服务,诊断仪能有效地监控和诊断车辆排放相关系统。
摘要由CSDN通过智能技术生成

为了监控排放相关系统,比如发动机和变速箱,美国和欧洲制定了OBD(On-Board-Diagnose)标准。OBD定义了排放相关系统必须支持的诊断服务和数据传输格式,支撑OBD数据传输的底层数据链路可以是K线,也可以是CAN线,目前大多数车的OBD接口都是CAN总线。OBD是与UDS并列的一套应用层协议,对于与排放相关的ECU来说,通常这种ECU上既要实现OBD,也实现UDS。下图展示了UDS与OBD在整个诊断通信协议栈中的位置。

59af968ba2e14a3624baad9ac7f52f21.png

ISO为OBD分配了ISO-15031系列标准号,总共7本。而美国的SAE也为OBD分配了相应的标准号。它们在内容上是相同的。具体对应关系如下。

51537e787bae70f260cbfc6e8938354d.png

本文只重点关注ISO-15031-5,即OBD所用的诊断服务。在理解了这些诊断服务之后,其他的内容也就很容易理解了。

OBD总共定义了9个诊断服务,每个服务用一个byte来代表,即所谓的Service

ID(SID),从0x01到0x09。

Service 01 - Request Current Powertrain Diagnostic Data:

该服务用于读取动力系统当前的诊断数据,比如某个传感器的状态、发动机转速、DTC数量、故障指示灯是否亮起等,命令格式是SID + 若干PID(Parameter ID)。每个PID也是一个byte,所以理论上PID取值范围是0x00至0xFF,但是ISO-15031-5只明确定义了部分PID,其余的值都保留。问题来了,OBD定义了如此多的PID,那么某个ECU到底支持哪些PID,诊断仪是如何获知的呢?实际上,PID分为两类,一类用于表征具体的数据,而另一类则用于指出该ECU支持哪些PID。用于第二种目的的PID分别是0x00 , 0x20 , 0x40…. 读取其中一个ID后ECU会返回4个字节的结果,这4个字节中的每个bit表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值