目录
本文结合以下博客或资料整理而成,主要是为了自己日后方便查找OBDII相关知识
OBD-II
OBD-II在功能和标准化方面都是对OBD-I的改进。 OBD-II标准指定了诊断连接器的类型及其引脚,可用的电信号协议以及消息传递格式。它还提供了车辆参数的候选列表,以监控每个参数的编码方式。连接器中有一个插针,可通过车辆电池为扫描工具供电,从而无需将扫描工具单独连接至电源。但是,某些技术人员可能仍将扫描工具连接到辅助电源,以在车辆因故障而导致电力损失的异常情况下保护数据。最后,OBD-II标准提供了DTC的可扩展列表。作为该标准化的结果,单个设备可以查询任何车辆中的车载计算机。该OBD-II有两种型号OBD-IIA和OBD-IIB。 OBD-II标准化是由排放要求推动的,尽管仅要求通过排放相关的代码和数据进行传输,但大多数制造商已将OBD-II数据链路连接器作为车辆中唯一可用来诊断所有系统的连接器。和编程。
OBD-II诊断故障代码是4位数字,后跟一个字母:P代表发动机和变速箱(动力总成),B代表车身,C代表底盘,U代表网络。
1. 引脚定义
Pin | Definition | Pin | Definition |
---|---|---|---|
1 | Manufacturer discretion. GM: J2411 GMLAN/SWC/Single-Wire CAN. VW/Audi: Switched +12 to tell a scan tool whether the ignition is on. 制造商酌情权。 GM:J2411 GMLAN / SWC /单线CAN。 大众/奥迪:切换为+12以告知扫描工具点火开关是否打开。 | 9 | Manufacturer discretion. GM: 8192 baud ALDL where fitted. BMW: RPM signal. 制造商酌情权。 GM:8192波特ALDL(如果已安装)。 宝马:RPM信号。 |
2 | Bus positive Line of SAE J1850 PWM and VPW SAE J1850 PWM和VPW的总线正极线 | 10 | Bus negative Line of SAE J1850 PWM only (not SAE 1850 VPW) 仅限SAE J1850 PWM的总线负极线(非SAE 1850 VPW) |
3 | Manufacturer discretion. Ford DCL(+) Argentina, Brazil (pre OBD-II) 1997–2000, USA, Europe, etc. Chrysler CCD Bus(+) Ethernet TX+ (Diagnostics over IP) 制造商酌情权。 福特DCL(+)阿根廷,巴西(OBD-II之前的版本)1997–2000,美国,欧洲等。 克莱斯勒CCD总线(+) 以太网TX +(基于IP的诊断) | 11 | Manufacturer discretion. Ford DCL(-) Argentina, Brazil (pre OBD-II) 1997–2000, USA, Europe, etc. Chrysler CCD Bus(-) Ethernet TX- (Diagnostics over IP) 制造商酌情权。 福特DCL(-)阿根廷,巴西(OBD-II之前的版本)1997-2000年,美国,欧洲等。 克莱斯勒CCD总线(-) 以太网TX-(基于IP的诊断) |
4 | Chassis ground 车身地 | 12 | Not connected Manufacturer discretion: Ethernet RX+ (Diagnostics over IP) 未连接 制造商酌情权: 以太网RX +(基于IP的诊断) |
5 | Signal ground 信号地 | 13 | Manufacturer discretion. Ford: FEPS - Programming PCM voltage Ethernet RX- (Diagnostics over IP) 制造商酌情权。 福特:FEPS-编程PCM电压 以太网RX-(基于IP的诊断) |
6 | CAN high (ISO 15765-4 and SAE J2284) | 14 | CAN low (ISO 15765-4 and SAE J2284) |
7 | K-line of ISO 9141-2 and ISO 14230-4 | 15 | L-line of ISO 9141-2 and ISO 14230-4 |
8 | Manufacturer discretion. Many BMWs: A second K-line for non OBD-II (Body/Chassis/Infotainment) systems. Activate Ethernet (Diagnostics over IP) 制造商酌情权。 许多宝马:第二条用于非OBD-II(车身/底盘/信息娱乐)系统的K线。 激活以太网(基于IP的诊断) | 16 | Battery voltage 电池电压 |
2. OBD-II 信号协议
OBD-II接口允许使用五种信令协议。大多数车辆仅实现一种协议。通常可以根据J1962连接器上存在的引脚来推断所使用的协议:
- SAE J1850 PWM(脉冲宽度调制— 41.6 kB / sec,福特汽车公司的标准)
- SAE J1850 VPW(可变脉冲宽度— 10.4 / 41.6 kB / sec,通用汽车标准)
- 引脚2:Bus +
- Bus空闲低电平
- 高压为+7 V
- 判定点为+3.5 V
- 数据包长度限制为12个字节,包括CRC
- 采用CSMA / NDA
- ISO 9141-2[18]该协议的异步串行数据速率为10.4 kbps。[19]它有点类似于RS-232;但是,信号电平不同,并且通信发生在一条双向线路上,而没有其他握手信号。ISO 9141-2主要用于克莱斯勒,欧洲和亚洲的汽车。
- 引脚7:K线
- 引脚15:L线(可选)
- UART信令
- K线闲置为高电平,并带有一个510欧姆的电阻,可连接至V batt
- 有源/显性状态通过集电极开路驱动器驱动为低电平。
- 数据包长度最大为260Bytes。数据字段MAX 255。
- ISO 14230 KWP2000(关键字通讯协定2000)
- 引脚7:K线
- 引脚15:L线(可选)
- 物理层与ISO 9141-2相同
- 数据速率1.2至10.4 kBaud
- 数据包在数据字段中最多可以包含255个字节
- ISO 15765 CAN(250 kbit / s或500 kbit / s)。CAN协议由博世开发,用于汽车和工业控制。与其他OBD协议不同,变体在汽车行业之外被广泛使用。尽管在2003年之前它不满足美国车辆的OBD-II要求,但截至2008年,在美国销售的所有车辆都必须实施CAN作为其信号协议之一。
- 引脚6:CAN高
- 引脚14:CAN低
所有OBD-II引脚排列都使用相同的连接器,但使用不同的引脚,引脚4(电池接地)和引脚16(电池正极)除外。
3.诊断问题代码
OBD-II诊断故障代码(DTC)包含1个字母和4个数字,并分为以下类别:
- B-车身代码(包括空调和安全气囊)(1164代码)
- C-底盘代码(包括ABS)(486个代码)
- P-动力总成代码(发动机和变速箱)(1688代码)
- U-网络代码(接线总线)(299个代码)
4. K线通讯特点
早期,在CAN未加入之前,车辆主要使用K线。L线来对车辆进行诊断。通过K 线对某个控制单元进行查询,通过K 线、测试仪和控制单元可进行数据交换。换句话说,即通过K 线数据被双向传送(从测试仪到控制单元以及从控制单元到测试仪) 。早期生产的车上都装有K 线。而L 线则是用来对控制单元进行查询的导线,此线在目前生产的车辆中已经不存在。由于串口的普及,所以K线实现起来更容易。而逻辑电平的改变,只是需要转换电路。因此本系统采用K 线的通讯方式。由于K 线只是一根线,而PC 机与控制单元都要向对方发出信息,所以可以判定此线是半双工串行通讯。
K 线通讯主要有以下特点:
(1) 双方采用半双工异步串行通讯。
(2) 工作电压范围为8~18V。
(3) 使用环境温度为- 40°C~125°C。
(4) 最大速度是50kbps。
(5) 支持大电流。
(6) 与单片机CMOS 电平无缝连接。
(7) 具有对地线保护作用。
(8) 串行通讯码的每个单元包括10 位二进制数据,分别为起始位、8 位数据、停止位,每个单元发送完毕后设有空闲等待。
(9) 双方的通讯以“行”为单位轮流发送,即PC 机发送一行消息后,ECU 再发送一行消息,反之亦然。
(10) 一信息行由下列数据组成:第一位数据表示本行还要发送多少数据;第二个数据用来表示关键码,表示此次用来完成什么样的操作,如开始参数、写数据到EEPROM 中等;第三个数据表示要发送的数据。
(11) 在一信息行中,还包括用于校验的反码,一方每发出一个数据后,对方必须对回应此数据的反码进行校验;由于K 线是单线通讯,所以只有在正确处理回应数据的反码进行校验时,才能保证通讯的顺利进行。
4.1 K线网络结构
4.2 K线通讯定义
在车辆网络中,为准确、可靠地通讯,必须确定一个固定的通讯波特率。假设诊断设备及其连接导线的电容为
C
T
E
C_{TE}
CTE,K 线对地电容为
C
O
B
W
C_{OBW}
COBW ,车辆ECU 的电容为
C
E
C
U
C_{ECU}
CECU :
C
E
C
U
=
∑
i
=
1
n
C
E
C
U
i
C_{ECU}=\sum_{i=1}^nC_{ECU_i}
CECU=i=1∑nCECUi
设计时以上各电容必须满足一下关系:
12V电源供电: C E C U C_{ECU} CECU+ C B O W C_{BOW} CBOW ≤ 7.2nF; C T E C_{TE} CTE ≤ 2nF
24V电源供电: C E C U C_{ECU} CECU+ C B O W C_{BOW} CBOW ≤ 5nF; C T E C_{TE} CTE ≤ 2nF
假定K 线通讯波特率最大为10.4kbps, 若通讯波特率高于最大波特率,则必须减小允许电容;反之,必须增加允许电容。同时,在车辆诊断网络设计时,必须保证任何ECU 信息不能引起其它ECU 进行数据通讯,在诊断仪初始化时,只能有一个ECU 响应,或若干个ECU 按一定顺序响应。
4.3 K线电平
K 线通讯本质上为半双工串口通讯。为保证准确、可靠的数据通讯, ECU 和K 线都必须有正确的电平。在K 线系统中,发送时若电压低于工作电压的20%, 则认为逻辑“ 0” ,高于工作电压的80%,则定义为逻辑“ 1” ;接收时低于工作电压的30%为逻辑“ 0” ,高于工作电压的70%为逻辑“ 1” ,电压在工作电压的30%~70%之间状态不确定。由以上分析可知,其电平与常用的串口电平不一致,因此必须设计专门的K 线接口电路,以满足车辆K 线诊断要求。
4.4 K线通讯协议
K 线协议采用消息结构进行信息传递,可分为请求消息、指示消息和响应消息,其中,响应消息可分为正响应和负响应,所有这些消息都具有相同的结构。
- 由格式字节决定的可选字节
- 维修标识(ID),是数据字节的一部分
Fmt: 格式字节,包含6位长度信息和2位地址模式信息。通过关键字通知诊断仪是否使用头部信息。
A1,A0=01(CARB)是一种例外模式。CARB使用格式字节$68(0110 1000)和$48(0100 1000).有关详细信息参见ISO 9142-2和 SAE J1979
L5~L0: 定义从数据区开始(包括维修标识字节)到检验和字节(不包括)的信息长度。信息长度可以是1~63字节。如果L0到L5=0,那么包含附加长度字节。在一般通信中使用格式字节为81即使用物理地址,如果是C1则表示使用功能地址
Tgt: 目标地址字节,这是信息的目标地址,并且总是和源地址字节一同使用。发送给ECU的请求信息中的目标地址可以是物理或功能地址。发送给诊断仪的响应信息中的目标地址应该是诊断仪的物理地址。物理地址可以是5波特地址字节或根据SAEJ2178-1发送地址。目标地址可选,只有在多模式总线拓扑结构中必需。对于点对点连接可以省略。对于CARB信息,这个字节在ISO9141-2或ISO14230-4中定义。
Src: 源地址字节,这是发送设备的地址。它应该是物理地址,与物理目标地址有可能相同。诊断仪的地址在SAEJ2178-1中有所说明。这个地址可选(总是和目标地址字节一同使用),只有在多模式总线拓扑结构中必需。对于点对点连接可以省略。
Len: 长度字节,如果头部字节中的长度(L0到L5)设置为0,则提供这个字节,见下表。它允许用户传递数据域长度超过63个字节的信息。对于更短的信息,可以将其省略。这个字节定义从数据区开始(包括维修标识字节)到校验和字节(不包括)的信息长度。数据长度可以是1到255个字节。最长信息可以是260字节。对于数据域长度小于64字节的信息有两种可能:长度可能包含在格式字节中或附加字节中。不要求ECU支持所有两种可能,通过关键字将ECU的工作能力通知给诊断仪。
DATA: 数据字节,根据使用的长度信息,数据区可以包含多达63或255个信息字节。数据区的第一个字节是维修标识(ID)字节,具体值可以参考应用层的ID标号定义,有的报文不需要带参数,有的需要带参数,这些参数在应用层有定义或者由厂家给出定义。其后可以跟随取决于所选维修的参数和数据。
CS: 校验和字节,插在信息块末尾,定义为除校验和之外的信息中所有字节的8位简单求和。