OBD-II PID

OBD-II PID是车上诊断系统（OBD）参数ID的简称，是在诊断工具上向车辆请求资料用的编码。
国际汽车工程师学会（SAE）标准 J1979（电子诊断测试模式）中定义了许多OBD-II PID。所有北美的道路车辆及卡车都要支援一部份的OBD-II PID，主要是在有强制的州。制造商也定义针对个别车辆的PID。目前没有强制摩托车要支援OBD-II PID，不过也有许多的摩托车支援。
在1996年时，轻型商用车（重量小于）首先强制要支援OBD-II PID，之后是中型商用车（重量在之间）在2005年强制支援。轻型商用车及中型商用车都要可以透过由SAE J1962定义的标准进行存取。
依加州空气资源局（CARB）的加州法规（CCR） sections 1971.1 title 13，美国2010年之后生产的重型商用车（重量大于）可以透过（圆型的诊断用连接头）支援OBD-II的诊断机能。有些北美的重型卡车使用SAE J1962 OBD-II诊断连接器，这也是一般轿车常用的连接器，知名的有麦克货车及富豪卡车，不过CAN识别符是29位元，不是一般轿车的11位元。
模式.
在最新的OBD-II标准SAE J1979中，有列出十种诊断服务。2002年以前的J1979，将这些服务称为模式（modes）。其说明如下：
汽车制造商不一定要实现所有的服务，制造商可以在#9以上增加制造商定义的服务（例如服务22是由Ford/GM的SAE J2190所定义，而服务21是因Toyota而定义) ，这些服务可以提供其他的资料，例如混合动力电动汽车（HEV）中牵引电池的电压。
非OBD的统一诊断服务从0x10开始，避免和ID范围重叠。
标准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是最低位元。
服务.
服务的PID和服务相同，意义也相同，不过资讯是在产生冻结页框时的资料。
需要在讯息的资料区中传送页框号码。
位元编码PID.
上表中有部份的PID无法用简单的公式来说明。以下是这些PID的细部说明。
服务01 PID.
这个PID的请求会回传4位元组的资料（Big-endian。每一个位元的排序顺序是由MSB到LSB。表示接下来的32个PID，并且说明支援哪些PID。
例如，若汽车的回复是，可以解码如下
因此，支援的PID有：、、、、、、、、、、、、、、、及
服务01 PID.
这个PID的请求会回传4位元组的资料，分别标示A B C、D。
第一个位元组（A）包括二部份的资讯。位元（位元组A的MSB）表示MIL（检查发动机警示灯）是否点亮。位元到表示发动机控制器显示的诊断故障码。
第二至第四位元组（B, C和D）表示特定在线测试的可进行程度（availability）及完整性（completeness）。可用程度会用设定位元来表示，而完整性会用清除位元来表示。
以下是常见的B位元组定义，是以测试为基础的内容。
第三位元组及第四位元组的定义会依发动机是火星塞点火（奥托发动机或汪克尔发动机）或柴油发动机而不同。第二位元组的bit 3会说明如何定义位元组C和D，表示是火星塞点火（奥托发动机或汪克尔发动机），表示是压缩点火（柴油发动机）
火星塞点火监控时的位元组C和D （奥托发动机或汪克尔发动机）：
柴油发动机监控时的位元组C和D：
服务01 PID.
这个PID的请求会回传4位元组的资料。 
第一个位元组会是0，第二个到第四个位元组会提供特定在线测试（on-board test）可进行程度（availability）及完整性（completeness）。和PID 01相同，第三和第四个位元组的定义会依发动机类型（B3）而不同，B3为表示是火星塞，为表示是压缩点火。可进行程度（availability）是用位元表示，而完整性（completeness）是用位元表示。
以下是共用的位元组B的定义，以测试为基础。
针对火星塞点火监控的位元组C和D（奥托发动机或汪克尔发动机）：
柴油发动机监控时的位元组C和D：
服务01 PID 78.
这个PID的请求会回传9位元组的资料。 
第一个位元组是位元编码，表示支援的尾气温度感测器：
第一个位元组的位元编码如下：
剩下的位元组是16位元的整数，表示摄氏下的温度，范围从-40到6513.5（比例0.1），其转换公式为formula_1（高位元组为A，低位元组是B）。只有有支援的感测器对应的值是有意义的。
PID 的结构相同，但是是针对bank 2的感测器。
服务03（不需PID）.
此服务的请求会回传一串已设定的DTC。会用ISO 15765-2的协定进行封装。
若DTC不超过二个（4位元组），会用ISO-TP单一页框格式（SF）回复。若三个或三个以上的DTC，会分为多个页框传送，实际的页框数会依通讯格式以及定址方式而定。
每个诊断错误码为二个位元组。诊断错误码的文字叙述如下。诊断错误码的第一个字会由第一个位元组的前二个位元决定：
DTC码的第二个字会由第一个位元组的下二个位元决定：
DTC码的第三个字是一个数字，定义如下：
DTC码的第四个字及第五个字定义方式类似，不过是用-和-位元。所产生的五个字元需类似之类的字元，而且可以在OBD-II DTC表上找到。最后三个字允许使用十六进制的数字（0-9, A-F），不过常见的还是使用十进制的数字（0-9）。
服务09 PID 08.
会提供有关催化剂bank、氧气侦测器bank、蒸发泄漏侦测系统、排气再循环及第二侧空气系统的使用追踪资讯。
每一个元件或是系统的分子针对侦测特定误动作的监控，追踪该监控所有条件成立的次数
每一个元件或是系统的分母针对该特定条件，车辆运作的次数
资料的个数需在讯息的一开始就说明（第一个位元组）
所有使用中性能追踪的资料会包括二个位元组，依次数送出（每个讯息有二个资料，因此长度为4）
服务09 PID 0B.
此服务提供有关NMHC 催化剂监控、NOx 催化剂监控、NOx吸收器监控、PM过滤器监控、排气感测器监控、GR（排气再循环）及／或VVT（可变气门正时）监控, 提升压力监控及燃料系统监控的使用性能资讯。
所有的资料都有2个位元，以以下的顺序排列（每一个讯息有二个资料，因为是4个位元）：
枚举PID.
有些PID的解读方式比较特殊，是有枚举的型式，这类PID没有位元定义，也没有单位。
服务01 PID.
这种PID的请求会回复二个位元组的资料。
第一个位元组表示燃料系统#1。
其他的值无效。
第二个位元组表示燃料系统#1，定义完全相同。
服务01 PID.
这种PID的请求会回复一个位元组的资料，表示第二侧空气状态。
其他的值无效。
服务01 PID.
此种PID请求会回复一个位元组的资料，说明电子控制器使用的OBD标准。以下是数值以及其对应的标准。
燃料码.
服务01 PID 会回传数值，对应车辆的燃料型态。燃料型态一个位元组，数值和燃料对应如下：
其他的值保留供ISO/SAE使用，目前没有针对的定义。
非标准的PID.
大部份的在使用的OBD-II PID都是非标准的，针对大部份现今的车辆，OBD-II界面中支持的非标准PID功能比标准PID功能还多，各家的非标准PID只有少部份的重叠。
在公众领域中非标准PID的资讯相当有限。有一个以美国为主的（ETI）有维护一些厂商的非标准PID，只提供给其会员。ETI的年费和公司在北美车辆工具及设备的营业额有关：
就算是ETI，也没有所有非标准PID的文件。ETI表示
有些车厂拒绝用ETI来提供资讯给相关工具厂商。他们比较想和每一家工具厂商个别作生意。这些公司会要求你和他们签合约。其费用是变动的，以下是2015年4月13日的年费：
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个位元。
各位元组的定义为：