热门问题
时间线
聊天
视角
OBD-II PID
来自维基百科,自由的百科全书
Remove ads
OBD-II PID是车上诊断系统(OBD)参数ID的简称,是在诊断工具上向车辆请求资料用的编码。
国际汽车工程师学会(SAE)标准 J1979(电子诊断测试模式)中定义了许多OBD-II PID。所有北美的道路车辆及卡车都要支援一部份的OBD-II PID,主要是在有强制排气检测的州。制造商也定义针对个别车辆的PID。目前没有强制摩托车要支援OBD-II PID,不过也有许多的摩托车支援。
在1996年时,轻型商用车(重量小于8,500磅 [3,900千克])首先强制要支援OBD-II PID,之后是中型商用车(重量在8,500—14,000磅 [3,900—6,400千克]之间)在2005年强制支援[1]。轻型商用车及中型商用车都要可以透过由SAE J1962定义的标准数据链路连接器进行存取。
依加州空气资源局(CARB)的加州法规(CCR) sections 1971.1 title 13,美国2010年之后生产的重型商用车(重量大于14,000磅 [6,400千克])可以透过SAE standard J1939-13(圆型的诊断用连接头)支援OBD-II的诊断机能。有些北美的重型卡车使用SAE J1962 OBD-II诊断连接器,这也是一般轿车常用的连接器,知名的有麦克货车及富豪卡车,不过CAN识别符是29位元,不是一般轿车的11位元。
Remove ads
模式
在最新的OBD-II标准SAE J1979中,有列出十种诊断服务。2002年以前的J1979,将这些服务称为模式(modes)。其说明如下:
汽车制造商不一定要实现所有的服务,制造商可以在#9以上增加制造商定义的服务(例如服务22是由Ford/GM的SAE J2190所定义,而服务21是因Toyota而定义) ,这些服务可以提供其他的资料,例如混合动力电动汽车(HEV)中牵引电池的电压[2]。
非OBD的统一诊断服务从0x10开始,避免和ID范围重叠。
Remove ads
标准PID
下表中所列的是依SAE J1979定义的标准OBD-II PID。也列出每个PID的预期回应,以及回应和实际物理量之间的关系。不是所有车辆都会支援每一个PID,也有一些PID是厂商定义的,不在OBD-II标准中。
服务01和02基本上是相同的,不过服务01会提供目前的资讯,而服务02会提供上一次出现诊断错误码时的资讯。但PID 01和PID 02是例外,PID 01只出现在服务01,而PID 02只出现在服务02,若服务02的PID 02为零,表示没有冻结的页框资料,其他服务02的资料都没有意义。
若用位元编码表示(Bit-Encoded-Notation)时,像C4表示是资料位元组C的第4位元。每一个位元都有0到7的编号,7是最高位元,而0是最低位元。
A | B | C | D | ||||||||||||||||||||||||||||
A7 | A6 | A5 | A4 | A3 | A2 | A1 | A0 | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | C7 | C6 | C5 | C4 | C3 | C2 | C1 | C0 | D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
Remove ads
Remove ads
服务02的PID和服务01相同,意义也相同[4],不过资讯是在产生冻结页框[5]时的资料。
需要在讯息的资料区中传送页框号码。
Remove ads
- 在公式栏中,字母A, B, C,.....表示资料位元组的第一位元组、第二位元组、第三位元组......的十进位。若有问号,表示有冲突或是不完整的资料
Remove ads
上表中有部份的PID无法用简单的公式来说明。以下是这些PID的细部说明。
这个PID的请求会回传4位元组的资料(Big-endian。每一个位元的排序顺序是由MSB到LSB。表示接下来的32个PID,并且说明支援哪些PID。
例如,若汽车的回复是BE1FA813,可以解码如下
因此,支援的PID有:01、03、04、05、06、07、0C、0D、0E、0F、10、11、13、15、1C、1F及20
Remove ads
这个PID的请求会回传4位元组的资料,分别标示A B C、D。
第一个位元组(A)包括二部份的资讯。位元A7(位元组A的MSB)表示MIL(检查发动机警示灯)是否点亮。位元A6到A0表示发动机控制器显示的诊断故障码。
第二至第四位元组(B, C和D)表示特定在线测试的可进行程度(availability)及完整性(completeness)。可用程度会用设定位元1来表示,而完整性会用清除位元0来表示。
以下是常见的B位元组定义,是以测试为基础的内容。
第三位元组及第四位元组的定义会依发动机是火星塞点火(奥托发动机或汪克尔发动机)或柴油发动机而不同。第二位元组的bit 3会说明如何定义位元组C和D,0表示是火星塞点火(奥托发动机或汪克尔发动机),1表示是压缩点火(柴油发动机)
火星塞点火监控时的位元组C和D (奥托发动机或汪克尔发动机):
柴油发动机监控时的位元组C和D:
- NMHC可以表示甲烷之外的碳氢化合物(Non-Methane HydroCarbons),不过J1979没有明确说明。
Remove ads
这个PID的请求会回传4位元组的资料。 第一个位元组会是0,第二个到第四个位元组会提供特定在线测试(on-board test)可进行程度(availability)及完整性(completeness)。和PID 01相同,第三和第四个位元组的定义会依发动机类型(B3)而不同,B3为0表示是火星塞,为1表示是压缩点火。可进行程度(availability)是用位元1表示,而完整性(completeness)是用位元0表示。
以下是共用的位元组B的定义,以测试为基础。
针对火星塞点火监控的位元组C和D(奥托发动机或汪克尔发动机):
柴油发动机监控时的位元组C和D:
- NMHC可以表示甲烷之外的碳氢化合物(Non-Methane HydroCarbons),不过J1979没有明确说明。
这个PID的请求会回传9位元组的资料。 第一个位元组是位元编码,表示支援的尾气温度感测器:
第一个位元组的位元编码如下:
剩下的位元组是16位元的整数,表示摄氏下的温度,范围从-40到6513.5(比例0.1),其转换公式为(高位元组为A,低位元组是B)。只有有支援的感测器对应的值是有意义的。
PID 79的结构相同,但是是针对bank 2的感测器。
此服务的请求会回传一串已设定的DTC。会用ISO 15765-2的协定进行封装。
若DTC不超过二个(4位元组),会用ISO-TP单一页框格式(SF)回复。若三个或三个以上的DTC,会分为多个页框传送,实际的页框数会依通讯格式以及定址方式而定。
每个诊断错误码为二个位元组。诊断错误码的文字叙述如下。诊断错误码的第一个字会由第一个位元组的前二个位元决定:
DTC码的第二个字会由第一个位元组的下二个位元决定:
DTC码的第三个字是一个数字,定义如下:
DTC码的第四个字及第五个字定义方式类似,不过是用B7-B4和B3-B0位元。所产生的五个字元需类似U0158之类的字元,而且可以在OBD-II DTC表上找到。最后三个字允许使用十六进制的数字(0-9, A-F),不过常见的还是使用十进制的数字(0-9)。
会提供有关催化剂bank、氧气侦测器bank、蒸发泄漏侦测系统、排气再循环及第二侧空气系统的使用追踪资讯。
每一个元件或是系统的分子针对侦测特定误动作的监控,追踪该监控所有条件成立的次数 每一个元件或是系统的分母针对该特定条件,车辆运作的次数
资料的个数需在讯息的一开始就说明(第一个位元组)
所有使用中性能追踪的资料会包括二个位元组,依次数送出(每个讯息有二个资料,因此长度为4)
此服务提供有关NMHC 催化剂监控、NOx 催化剂监控、NOx吸收器监控、PM过滤器监控、排气感测器监控、GR(排气再循环)及/或VVT(可变气门正时)监控, 提升压力监控及燃料系统监控的使用性能资讯。
所有的资料都有2个位元,以以下的顺序排列(每一个讯息有二个资料,因为是4个位元):
有些PID的解读方式比较特殊,是有枚举的型式,这类PID没有位元定义,也没有单位。
这种PID的请求会回复二个位元组的资料。 第一个位元组表示燃料系统#1。
其他的值无效。
第二个位元组表示燃料系统#1,定义完全相同。
这种PID的请求会回复一个位元组的资料,表示第二侧空气状态。
其他的值无效。
此种PID请求会回复一个位元组的资料,说明电子控制器使用的OBD标准。以下是数值以及其对应的标准。
服务01 PID 51会回传数值,对应车辆的燃料型态。燃料型态一个位元组,数值和燃料对应如下:
其他的值保留供ISO/SAE使用,目前没有针对弹性燃料车的定义。
非标准的PID
大部份的在使用的OBD-II PID都是非标准的,针对大部份现今的车辆,OBD-II界面中支持的非标准PID功能比标准PID功能还多,各家的非标准PID只有少部份的重叠。
在公众领域中非标准PID的资讯相当有限。有一个以美国为主的设备工具研究所(ETI)有维护一些厂商的非标准PID,只提供给其会员。ETI的年费和公司在北美车辆工具及设备的营业额有关:
就算是ETI,也没有所有非标准PID的文件。ETI表示[6][7]
有些车厂拒绝用ETI来提供资讯给相关工具厂商。他们比较想和每一家工具厂商个别作生意。这些公司会要求你和他们签合约。其费用是变动的,以下是2015年4月13日的年费:
通用汽车 $50,000 丰田 $5,000 铃木 $1,000 BMW $25,500,每次更新要加$2,000,每年更新一次
CAN(11位元)通讯格式
在车内的CAN网路中会有查询PID以及PID回复的讯息。标准OBD查询以及回复会用机能式的地址。诊断读取器会用CAN ID 7DFh送出查询讯息,此位址是广播位置,并且会接受从7E8h到7EFh的回复。回复OBD查询的电子控制器也会接收7DFh广播位置的讯息,并且接收7E0h到7E7h范围内指定ID的讯息。其回应的ID是指定ID值加8,范围从7E8h到7EFh。
此作法可以允许最多8个电子控制器,每一个都可以回复OBD的查询。诊断读取器可以用ECU回复的ID继续和特定的电子控制器通讯。特别是多页框的通讯需要特定ID电子控制器的回复。
CAN也可以传送标准OBD讯息以外的资讯,实体位址会用这些特殊模组的CAN讯息(例如720h是福特汽车的组合仪表),也会有专属的页框以及传送资料。
机能性的PID查询会用ID 7DFh的CAN讯息送出,其资料为:
车辆会用讯息ID来回应PID查询,其ID编辑和回应的模组有关。一般而言发动机及主发动机控制器会用ID 7E8h回应,其他设备,像是混合控制器或是Prius里的电池控制器,会用07E9h、07EAh、07EBh等ID回应。设备回应的讯息ID会比其设备接收的讯息ID多8。回应值的长度会变动,但回应讯息固定都是8个位元。 各位元组的定义为:
相关条目
- 发动机控制器
- ELM327:OBD-II介面上常见的微控制器
参考资料
延伸阅读
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads