OBD诊断

什么是OBD?

OBD代表”诊断接口”(On-Board Diagnostics),它是一种用于汽车的标准化接口系统,旨在监测和报告车辆的运行状况。主要有两个版本,OBD-I和OBD-II。

  1. OBD-I: 早期的汽车诊断系统,它的实施并不标准化,各个汽车制造商可能有不同的实现方式。OBD-I 主要用于20世纪80年代和90年代的汽车。
  2. OBD-II: 在1996年后引入的,并成为几乎所有新型汽车的标准。OBD-II标准化了诊断接口和故障码的格式,使得无论是何种汽车制造商,诊断工具都能够兼容。这使得汽车技师和车主能够更容易地检测和修复车辆问题。

OBD-II接口通常位于车辆驾驶室下部,可以通过连接OBD-II扫描工具与车辆的电脑系统通信。通过这个接口,可以读取车辆的实时数据,诊断发动机和车辆系统的问题,并检索故障码,这有助于更快地定位和解决车辆故障。

接口针脚定义图


对应关系

具体情况不同厂家可能存在差异

针脚 对应关系
1针脚 开电门12V(可打开功率试灯),关电门0V。
4/5针脚 长地线,找个正极接起来(4/5)可以点亮功率试灯。
6针脚 CAN高 通讯线
7针脚 诊断K线,单独和变速箱,电脑板之间通讯,比电瓶电压低1V(11V左右)
14针脚 CAN低 通讯线
15针脚 L线,汽车电脑板连接(电压一般是电瓶的一半,6V左右)
16针脚 30长电源,在任何情况下,必须可以点亮功率试灯
3针脚 CAN高
11针脚 CAN低

OBD 如何工作?

基本的 OBD 系统由中央系统、传感器网络、连接点和指示器组成,创建具有标准化访问和可读性的完整监控系统。 OBD系统由以下部分组成:

  • ECU: OBD 系统的核心部分是电子控制单元(ECU)。 ECU 收集来自车辆各个传感器的输入。然后,ECU 使用这些数据来控制车辆的部件(例如喷油器)或监控问题。
  • 传感器:车辆各处都有传感器,覆盖从发动机和底盘到电子系统本身的每个区域。这些系统中的每一个都会向 ECU 发送代码,指定信号源和信号参数。然后 ECU“读取”并解释该信号。
  • DTC:如果传感器向 ECU 发送的信息超出正常范围,ECU 会将信息保存为称为诊断故障代码 (DTC) 的代码。 DTC 代码本质上是字母和数字的列表,表明问题的根源和性质。 DTC 代码通常是标准化的,但也可能是制造商特定的。保存 DTC 后,ECU 会向指示灯发送信号,表明已发现问题。还可以通过将传感器连接到 OBD 系统的连接器来提取 DTC。
  • MIL:当ECU收集到DTC代码时,它会向车辆仪表板发送信号以打开相应的指示灯。这些灯的正式名称为故障指示灯或 MIL,为车辆故障提供早期预警系统。一般来说,如果灯亮起并保持亮起状态,则问题较小。如果指示灯闪烁,则表明问题很紧急。
  • DLC: ECU 收集的所有数据和 DTC 代码都可以通过诊断链路连接器或 DLC 访问。 DLC 端口是带有 OBD 系统的车辆的接入点,通常位于车辆驾驶员侧仪表板下方,但也可能位于商用车的其他位置。当前的车辆采用标准 OBDII 系统制造,因此任何带有2 型电缆的扫描工具都可以连接到 2 型连接器。

OBD-II数据包

  • 标识符:标识符是标准的11位,用于区分请求消息和响应消息。 OBD-II请求消息为7DF,响应标识范围为7E8~7EF。
    长度:数据包中剩余数据的字节数。
  • 模式:SAE J1979 OBD2 标准中描述的 10 种模式。模式1显示当前数据和实时数据,模式为1,其他模式用于显示或清除存储的DTC。
模式 描述
01 当前数据
02 用于当前冻结帧数据
03 存储诊断故障代码
04 清除任何存储的值或 DTC
05 显示非 CAN O2 传感器的结果
06 显示系统监控的测试结果
07 待处理的 DTC
08 用于机载系统控制操作
09 获取 VIN 码
10 永久性 DTC

安全测试

OBD接口可能存在多种安全风险,我们可以使用安全测试工具对如下风险进行测试

  • 物理访问:OBD接口通常用于诊断端口进行访问,该端口通常位于汽车易于访问的区域,如仪表板下方,这使攻击者很容易物理访问端口并进行恶意连接。
  • 身份校验:许多OBD端口不需要身份验证,这使得攻击者不需要密码或凭证即可直接访问汽车上的计算机。
  • 安全控制:OBD系统旨在促进诊断和维修工作,通常没有考虑安全性,因此它们可能存在缺少加密、访问控制和入侵检测等安全控制,从而容易受到攻击。

最常见的OBD工具是OBD诊断仪,车辆在维修机构开始维修汽车前,通常使用OBD诊断仪来读取车内的故障码,以帮助维修人员快速定位故障。

  1. 找到OBD-II接口: 通常位于车辆驾驶座下方,在仪表板附近或驾驶座的脚踏板下。连接OBD诊断仪时,确保车辆处于关键位置,以便OBD-II接口处于活动状态。
  2. 插入OBD诊断仪: 将OBD诊断仪的插头插入车辆的OBD-II接口,确保插头正确对准并完全插入。
  3. 启动车辆引擎: 有些OBD诊断仪要求车辆引擎运行,以便能够读取实时数据。在连接后,启动车辆引擎。
  4. 选择功能: 使用OBD诊断仪的控制面板或连接的移动设备选择所需的功能。这可能包括读取实时数据、检索故障码、执行特定测试等。
  5. 读取实时数据: 如果您希望监视车辆的实时性能数据,选择相应的功能并查看屏幕上的数据。这可以包括引擎转速、车速、冷却液温度等信息。
  6. 检索故障码: 如果车辆发生故障,您可以使用诊断仪读取存储在车辆电脑系统中的故障码。这些故障码提供有关车辆问题的信息,有助于定位和解决故障。
  7. 执行测试和操作: 一些高级的OBD诊断仪具有执行特定测试或操作的功能。根据需要,执行相应的操作,例如发动机测试或清除故障码。
  8. 断开连接: 在完成使用后,安全地断开OBD诊断仪与车辆的连接。这通常涉及从OBD-II接口中拔出插头。

使用OBD访问车内ECU和通信数据

  1. 将CAN工具连接到OBD接口,例如,可以使用CANoe,将CAN设备的CANH和CANL通过电线连接到OBD接口的CANH和CANL上。
  2. 使用该工具,可以通过CAN发送“请求帧”。
  3. 相关ECU通过CAN发送“响应帧”。
  4. 读取相关通信报文,并使用DBC文件进行解码。

OBD诊断
https://g1at.github.io/2024/03/14/OBD/
作者
g0at
发布于
2024年3月14日
许可协议