CAN协议下ISO15031协议9种OBD模式解析

4星 · 超过85%的资源 需积分: 50 88 下载量 112 浏览量 更新于2024-07-23 1 收藏 13.6MB PDF 举报
"本文详细介绍了ISO15031协议中的9种模式,这些模式主要用于汽车电器CAN协议开发,特别是与OBD(On-Board Diagnosis)相关的功能。文章着重讲解了如何通过CAN通信来请求和获取动力系统当前数据,以及如何查询和处理不同范围的PID(Parameter IDentifier)支持情况。" 在ISO15031协议中,9种模式涵盖了汽车诊断和监控的关键功能: 1. 请求动力系当前数据:这一模式允许获取发动机和其他动力系统组件的实时数据,例如转速、燃油压力等。 2. 请求冻结帧数据:当车辆发生故障时,会记录下当时的车辆状态,即冻结帧数据,此模式用于读取这些关键信息。 3. 请求排放相关的动力系诊断故障码:用于获取与排放系统相关的问题,帮助诊断排放问题。 4. 清除/复位排放相关的诊断信息:清除已存储的故障码,通常在维修后执行。 5. 请求氧传感器监测测试结果:检查氧传感器的性能,确保排放控制系统正常工作。 6. 请求非连续监测系统OBD测试结果:获取那些不连续进行的诊断测试的结果,如催化转化器效率测试。 7. 请求连续监测系统OBD测试结果:获取持续运行的诊断测试结果,如燃油系统压力监测。 8. 请求车载系统,测试或者部件:对特定系统或组件进行诊断测试,例如ABS或空调系统。 9. 读取车辆和标定识别号:获取车辆识别号(VIN)和标定数据,以确认车辆配置和软件版本。 在CAN(Controller Area Network)通讯中,请求动力系的当前数据涉及以下步骤: 1) PID支持查询:首先,发送探测指令(如SID为01的查询)来确定ECU(Electronic Control Unit)支持的PID范围。响应消息包含多个字节,每个字节代表8个连续的PID,通过二进制位来表示是否支持。 2) PID数据请求:在确定支持的PID后,可以发送请求消息来获取特定PID的数据。这些数据可能来自不同ECU,因此可以选择功能寻址一次性获取多个ECU的数据。 注意,CAN消息帧的最大承载限制了每次请求的PID数量,一般不超过6个。根据返回消息中的数据长度,解析并提取所需信息。若仅请求单个PID,可能需要多条CAN消息交互,这在处理大量数据时尤其重要。 ISO15031协议为汽车诊断提供了标准化的方法,通过9种模式确保了不同车辆和设备之间的兼容性,使得维修人员和开发者能够更有效地获取和处理车辆诊断信息。理解并熟练运用这些模式对于汽车电子系统的维护和开发至关重要。