2008年9月14日星期日

准备就绪代码 (Readiness code)

什么是准备就绪代码

准备就绪代码(Readiness Code)是一个字节(8位)的二进制数字,用来反映OBD系统的8种非连续诊断功能是否已经完成。这个字节从右到左的各位依次为第0位到第7位。各位分别表征的诊断功能如下:

Diagnosis functions 诊断功能 位(bit)
Catalyst monitoring 催化器监测 0
Heated catalyst monitoring 催化器加热监测 1
Evaporative system monitoring 蒸发系统监测 2
Secondary air system monitoring 二次空气系统监测 3
A/C system refrigerant monitoring 空调制冷系统监测 4
Oxygen sensor monitoring 氧传感器监测 5
Oxygen sensor heater monitoring 氧传感器加热监测 6
EGR system monitoring 废气再循环系统检测 7

其中对应各Bit的值的含义如下:

  • 0 = 测试完成,或者此功能不支持

  • 1 = 测试尚未完成

其更为详细的定义请参看SAE J1979或者ISO DIS 15031中对PID$01的相关内容。


准备就绪代码的意义

OBD系统不仅仅为车主和维修者提供了便捷的维修信息,还在技术上为在用车的监管提供了可能。通过制定一定的法规,监管部门可以对存在导致排放污染物超过标准的车辆采取惩罚性的措施。

为了避免用户通过一些手段删除故障码来掩盖故障、逃脱惩罚,OBD系统的设计在功能上会在进行故障删除操作的同时复位诊断就绪代码,即令激活的诊断功能显示为未完成诊断的状态。如果系统支持的某项诊断功能显示为没有完成,那么即使没有相应的故障码,也不能判断故障的确不存在。

这样在对车辆的排放控制系统的有效性进行评价的时候,首先读取准备就绪代码,如果全为0且OBD系统显示为无故障,那么表示车辆通过测试。如果准备就绪代码不为0,那么即使没有任何故障码通过扫描工具输出,也不能判断此车的排放控制系统工作正常。在这种情况下车辆检验机构一般会提出额为外的要求。美国的在用车检测制度要求车辆在一定时间内返回从新检测,而欧洲的做法是加测其它项目。


谁会关注准备就绪代码


  • OBD系统开发者

    • 他们必须保证相应的诊断功能不仅仅在型式认证中的I型试验中能够完成,还必须保证在通常的驾驶工况、驾驶习惯、道路情况和法规要求的海拔和温度等环境条件下也能够完成。

    • 由于诊断功能必须激活,他们还必须在考虑车辆和零部件的质量散差和老化的前提下保证诊断功能准确可靠,否则他们将要么承担误判故障为整车厂和零部件供应商带来的经济和声誉上的损失,要么承担在用车OBD检查时无法通过的法律风险。

  • 催化器和氧传感器等零部件供应商

    • 他们必须保证自己的产品在使用寿命中质量的一致性,否则自己的部件将会被OBD系统诊断出故障并及时报告给车主维修或更换。
  • 车辆检验部门
    • 尽管仍未出台,但是可以预见读取准备就绪代码和故障码将成为车辆年检的一项内容。

    • 车辆质量检验监督中心在进行在用车符合性检查的时候会抽查通过OBD认证并在市场上销售的车辆是否真的激活了诊断功能。
  • 个人车主和维修人员

如何获取准备就绪代码

根据EPA CFR §85.2222中的相关内容,获取诊断功能就绪状态的方法是根据SAE J1979定义的相关标准向OBD系统发送Mode $01, PID $01请求:

------------------------------------------------------------


The test system shall send a Mode $01, PID 01 request in accordance with SAE J1979 to determine the evaluation status of the vehicle’s on-board diagnostic system. The test system shall determine what monitors are supported by the on-board diagnostic system, and the readiness evaluation with SAE J1979.
— EPA 40 CFR §85.2222 (c)

-------------------------------------------------------------

SAE J1979等效于ISO DIS 15031–5,其定义的PID$01为自清除故障码之后的监测状态。PID$01由4个字节组成,分别用A、B、C、D四个字母表示。其中字节A反映了排放相关故障码的数目及MIL状态;字节B反映了所支持的连续测试功能以及它们自清除故障码之后的状态(完成过与否),这些连续测试功能包括失火监测、燃油系统监测和综合部件监测三种;字节C反映了各非连续监测功能是否被系统支持;字节D表征了各个非连续诊断功能自清除故障码之后的状态。
对于失火、燃油系统和综合部件监测功能,在SAE J1979和ISO DIS 5031–5中有以下明确要求:

-------------------------------------------------------------

  • Misfire monitoring shall always indicate complete for spark-ignition engines. Misfire monitoring shall indicate complete for compression-ignition engines after the misfire evaluation is complete.

  • Fuel system monitoring shall always indicate complete for both spark-ignition and compression-ignition engines.

  • Comprehensive component monitoring shall always indicate complete on both spark-ignition and compression-ignition engines.

-ISO DIS 15031–5 Annex B.3 and SAE J1979 Appendix B

--------------------------------------------------------------

根据以上的内容,对汽油机来说,事实上PID$01的字节B中表征的非连续检测的状态始终是已完成的;对柴油机来说,燃油系统和综合部件检测的始终是已完成的,只有失火诊断的状态有效。
通过诊断连接线把扫描工具或者安装了诊断软件的计算机与车身上的诊断数据接口相连读取模式1中的PID$01即可得到准备就绪代码。
如何生成准备就绪代码
根据法规的要求,所有的OBD诊断功能应该在通常的驾驶工况比如I型试验的运转工况内完成诊断。尽管法规允许厂家自行定义运转工况,但是事实上在OBD功能设计和型式认证中使用的都是I型试验定义的运转工况。它是由4个ECE(Part 1)加一个EUDC(Part 2)驾驶循环组成的(关于ECE和EUDC更详细的信息),如下图:


在故障维修之后,为了确认相关故障真的被修复并且维修过程没有导致新的故障,可以运转车辆使得所有的诊断功能都完成一遍,如果没有故障,那么诊断就绪代码会全部表示为完成(全为0)。不过在转毂上运转I型试验循环在维修行业来说往往并不现实,因此有的厂家会给出一个能保证所有诊断功能完成的驾驶指导供维修者参考。
即便如此,有些诊断功能的工作条件有时仍然是难以满足的。比如二次空气系统的工作和诊断只有在起动温度低于一定值时才会运行。为此,有的OBD系统具备强制激活诊断的功能。同样的,这也可以降低一些其它较高条件下才能激活的诊断功能,比如催化器和氧传感器诊断。值得注意的是,通过强制激活诊断条件的方式虽然在一定程度上可以发现故障,但其得到的诊断结果并不一定与诊断功能正常工作时所得到的结果等效。

没有评论: