论文部分内容阅读
1、概述
汽车诊断(Vehicle Diagnosis)是指对汽车在不解体(或仅卸下个别零件)的条件下,确定汽车的技术状况,查明故障部位及原因的检查。随着现代电子技术、计算机和通信技术的发展,汽车诊断技术已经由早期依赖于有经验的维修人员的“望闻问切”,发展成为依靠各种先进的仪器设备,对汽车进行快速、安全、准确的不解体检测。
为了满足美国环保局(EPA)的排放标准,20世纪70年代和80年代初,汽车制造商开始采用 电子控制燃油输送和点火系统,并发现配备空燃比控制系统的车辆如果排放污染超过管制值时,其氧传感器通常也有异常,由此逐渐衍生出设计一套可监控各排放控制元件的系统,以在早期发现可能超出污染标准的问题车辆。这就是车载诊断系统(On-Board Diagnostics,缩写为OBD)。OBD系统随时监控发动机工况以及尾气排放情况,当尾气超标或发动机出现异常后,车内仪表盘上的故障灯(MIL)或检查发动机灯(Check Engine)亮,同时动力总成控制模块(PCM)将故障信息存入存储器,通过一定的程序可以将故障码从PCM中读出。根据故障码,维修人员能迅速准确地确定故障的性质和部位。OBD-II是20世纪90年代推出的新的ODB标准,几乎提供了完整的发动机控制,并监控底盘、车身和辅助设备,以及汽车的诊断控制网络。
2、汽车诊断接口
OBD - II的规范规定了标准的硬件接口-- 16针(2x8)的J1962插座。OBD - II接口必须在方向盘2英尺范围内,一般在方向盘下。
SAE的J1962定义了OBD-II接口的引脚分配如下:
3、与汽车诊断有关的主要通信协议
20世纪90年代中期,为了规范车载网络的研究设计与生产应用,美国汽车工程师协会(SAE)下属的汽车网络委员会按照数据传输速率划分把车载网络分为Class A、Class B、Class C三个级别。
目前OBD使用的通信协议主要有5种:ISO9141、KWP2000、SAEJ1850(PWM)、SAEJ1850(VPW)、CAN。大部分车辆只实现了某一种协议,我们可以根据J1962插座上有哪些引脚来推断所使用的协议。下面对KWP2000、SAEJ1850(PWM)、SAEJ1850(VPW)和CAN进行简单的介绍。
3.1 KWP2000
KWP2000(Keyword Protocol 2000)欧洲汽车领域广泛使用的一种车载诊断协议,该协议实现了一套完整的车载诊断服务,并且满足EOBD标准。
KWP2000最初是基于K线的诊断协议,由于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线无法满足日趋复杂的车载诊断网络的需求。而CAN网络(Controller Area Network)由于其非破坏性的网络仲裁机制、较高的通讯速率(可达1M bps)和灵活可靠的通讯方式,在车载网络领域广受青睐,越来越多的汽车制造商把CAN总线应用于汽车控制、诊断和通讯。近年来欧洲汽车领域广泛采用了基于CAN总线的KWP2000,即ISO 15765协议,而基于K线的KWP2000物理层和数据链路层协议将逐步被淘汰。
基于K线的KWP2000协议
基于K线的KWP2000协议波特率为10.4 kbps,用单线(K线)通信,也可用双线(K线和L线)通信,目前多用单线通信。K线本质上是一种半双工串行通信总线。
基于K线的KWP2000协议的报文包括报文头、数据域和校验和三部分,如表3所示。
表3中各参数含义如下:
报文头:Fmt-帧字节; Tgt*-目标地址; Src*-源地址; Len*-附加长度字节。
*可选字节,取决于格式字节Fmt的A1A0位
数据域:Sld-服务标识符,数据域的第一个字节; Data-数据字节;。
校验和:CS。
在开始诊断服务之前,诊断设备必须对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数等信息。ECU所支持的报文头和定时参数信息包含在ECU返回的“关键字(Key Word)”中(这也是协议命名的由来)。关键字由两个字节构成,关键字的低字节中各位的含义如表4所示。
诊断设备可以采用两种方式对ECU进行初始化——5Baud初始化和快速初始化,对于这两种初始化的时序在数据链路层协议中均有明确规定。
基于CAN总线的KWP2000协议[7]
基于CAN总线的KWP2000协议是把KWP2000应用层的诊断服务移植到CAN总线上。数据链路层采用了ISO 11898-1协议,该协议是对CAN2.0B协议的进一步标准化和规范化;应用层采用了ISO 15765-3协议,该协议完全兼容基于K线的应用层协议14230-3,并加入了CAN总线诊断功能组;网络层则采用ISO 15765-2协议,规定了网络层协议数据单元(N_PDU,如表5所示)与底层CAN数据帧、以及上层KWP2000服务之间的映射关系,并且为长报文的多包数据传输过程提供了同步控制、顺序控制、流控制和错误恢复功能。
1) 地址信息:包含源地址(SA)、目标地址(TA)、目标地址格式(TA_Type)和远程地址(RA)
2) 协议控制信息:有四种帧格式,即单帧(SF)、第一帧(FF)、连续帧(CF)和流控制帧(FC)
3) 数据域:KWP2000服务标识符(Service ID)+ 服务参数
应用层协议规定了四种服务数据结构,.Request、.Indication、.Response和.Confirm,分别用于诊断设备(Tester)的服务请求、ECU的服务指示、ECU的服务响应和Tester的服务确认。这些数据结构中包含了地址信息、服务请求ID和服务请求参数等内容。基于CAN总线的KWP2000诊断服务流程如图3所示。
从上面的服务流程可以看出,基于CAN总线的KWP2000协议支持多包数据传输,并且多包数据的管理和组织是在网络层完成的,应用层不必关心数据的打包和解包过程。
3.2 SAE J1850
SAE J1850 协议有两种,J1850(脉宽调制编码方式PWM - Pulse Width Modulation)和 J1850(可变脉宽调制编码方式VPM - Variable Pulse Width Modulation)。它们所采用的编码方式不同,因此有着不同的物理层,但应用层和数据链路层相同。
SAE J1850 PWM: 福特公司采用的标准,采用双线传输,通信速率为 41.6Kbps。[1]
pin 2: Bus+;pin 10: Bus–;高电压为+5V;报文长度限制为12个字节,包括CRC
采用非破坏性仲裁的载波侦听多路访问(CSMA/NDA)的多主仲裁机制
SAE J1850VPW:通用公司采用的标准,采用单线传输,通信速率为10.4Kbps。[1]
pin 2:Bus+;总线空闲状态为低电平;高电压为+7 V;决策点是+3.5V;报文长度限制为12个字节,包括CRC;采用非破坏性仲裁的载波侦听多路访问(CSMA/NDA)的多主仲裁机制
J1850协议规定网络的最大节点数为32个(包含车内 ECU 和车外诊断设备)。车内的最大网络长度为40米,车外最大网络长度为5米。车外诊断设备最小等效电阻为 10.6K 欧,最大等效电容为 500pF。
J1850数据传输网络中的数据通常是按照以下格式传输的,参见图4:
Idle, SOF, DATA_0, ..., DATA_N, CRC, EOD, NB, IFR_1, ..., IFR_N, EOF, IFS,Idle
其中各元素的定义如下
Idle:总线空闲,总线处于空闲状态时,任何节点都可以占用总线来发送数据。
SOF:帧起始标志。不计入 CRC 码。
DATA_N:报文数据。
EOD:数据结束标志。数据帧发送方用 EOD 表示数据发送结束。
NB:标准位。仅在 VPW 编码方式中有效。
EOF:帧结束标志。IFR:帧内快速应答。
IFS:帧内分割标志。
CRC:CRC 错误校验位。
3.3 CAN
CAN 总线是20世纪80年代才开始形成和发展的新一代总线技术。最初由BOSCH汽车公司提出。在20世纪90年代初,CAN总线被提交作为国际标准。
CAN总线协议是一种可以满足控制系统所需的中等通信速率的通信协议,尤其适用于车身功能和车辆舒适功能的管理,同样其较高的速率也可满足车辆内部系统功能管理的需求。
CAN是为连接各个复杂通信系统为目的研发的,各电控单元按照总线-树型拓扑结构相互连接。CAN 能够使用多种物理介质,例如双绞线、光纤等,最常用的是双绞线。CAN网络的传速速度最快可达 1Mbit/s。
CAN网络中有两种不同的帧格式,标准帧格式和扩展帧格式,不同之处为标准帧为11位标识符,而扩展帧有29位标识符。如图5和图6 所示。
在CAN网络中有四种不同类型的帧:数据帧、远程帧、错误帧和过载帧。其中数据帧和远程帧可以使用标准和扩展两种格式。
CAN协议具有以下特点[3]:
(1)多主:当总线空闲时,连接到总线上的各单元都可以开始发送消息。第一个开始发送消息的单元获得发送权。如果多个单元同时开始发送,具有最高优先级的单元获得发送权。
(2)报文传输:所有的渻都按预定的格式传输。
(3)系统的灵活性:连接到总线上的单元没有类似于地址的识别信息。因此,当一个单元添加到总线上或从总线上移走时,不需要改变任何其它设备的软件、硬件或应用层。
(4)通信速度:可以设定为任意的通信速度以可适合网络的大小。但在一个网络中,所有单元必须使用统一的通信速度。
(5)远程数据请求:可以向其它单元发送“远程帧”请求数据传输。
(6)具有错误检测、错误通知和错误恢复功能。
(7)错误隔离:CAN有区分暂时故障和持续故障的功能,这有助于降低易出故障的单元的优先级以防止阻碍正常单元的通信。
(8)连接:CAN总线允许同时连接多个单元。然而,实际可以连到总线的单元数受电力负荷和延迟时间的限制。
在汽车诊断网络中,J2480和ISO15765协议都是基于CAN的。包括KWP2000、SAE J1850等数据网络都逐渐被CAN网络所代替。
4、车载诊断系统在中国
2005年4月5日,国家环保总局发布批准《轻型汽车污染物排放限值及测量方法(中国III、IV阶段)》(GB18352.3-2005)等五项标准为国家污染物排放标准。OBD作为强制性要求首次出现在我国的法规标准中。
此项标准是通过修改采用欧盟(EU)对70/220/EEC指令进行修订的98/69/EC 指令以及随后截止至2003/76/EC的各项修订指令的有关技术内容产生的。主要的修改内容包括包含M1和M2类车型的分组、燃料的技术要求等5个方面,而OBD部分基本照搬了欧盟的标准(EOBD)。
5、汽车诊断技术发展趋势
5.1 发展中的OBD-III
OBD-II虽然可以诊断出排放相关故障,但是无法保证驾驶者接受MIL的警告并对车辆故障及时修复。这就是下一代OBD系统要重点解决的问题。OBD-III以无线传输故障信息为主要特征,能够利用小型车载无线收发系统,通过移动通信网络、卫星通信或者GPS系统将车辆的VIN、故障码及所在位置等信息自动上报管理平台。管理部门根据该车辆排放问题的等级对其发出指令,包括去何处维修的建议、解决排放问题的时限等。这些信息可用于根据相关法规对造成过多排放污染的车辆所有者进行惩罚。[9]
OBD-III不仅需要相关通讯技术、标准和法规的不断成熟,对OBD系统诊断功能本身的准确性和可靠性也是一个更高的要求。可以设想,随着OBD-III的成熟和应用,将带来汽车诊断服务模式的巨大变革。
5.2 对新的通信协议的支持
伴随着人们对汽车的安全、可靠和舒适性越来越高的要求,汽车总线技术也在迅速发展。新的更高通信速率、更可靠和更灵活的总线系统(如FlexRay、MOST)的出现,也必将推动汽车诊断技术的发展。 (作者单位:中国移动通信研究院)
汽车诊断(Vehicle Diagnosis)是指对汽车在不解体(或仅卸下个别零件)的条件下,确定汽车的技术状况,查明故障部位及原因的检查。随着现代电子技术、计算机和通信技术的发展,汽车诊断技术已经由早期依赖于有经验的维修人员的“望闻问切”,发展成为依靠各种先进的仪器设备,对汽车进行快速、安全、准确的不解体检测。
为了满足美国环保局(EPA)的排放标准,20世纪70年代和80年代初,汽车制造商开始采用 电子控制燃油输送和点火系统,并发现配备空燃比控制系统的车辆如果排放污染超过管制值时,其氧传感器通常也有异常,由此逐渐衍生出设计一套可监控各排放控制元件的系统,以在早期发现可能超出污染标准的问题车辆。这就是车载诊断系统(On-Board Diagnostics,缩写为OBD)。OBD系统随时监控发动机工况以及尾气排放情况,当尾气超标或发动机出现异常后,车内仪表盘上的故障灯(MIL)或检查发动机灯(Check Engine)亮,同时动力总成控制模块(PCM)将故障信息存入存储器,通过一定的程序可以将故障码从PCM中读出。根据故障码,维修人员能迅速准确地确定故障的性质和部位。OBD-II是20世纪90年代推出的新的ODB标准,几乎提供了完整的发动机控制,并监控底盘、车身和辅助设备,以及汽车的诊断控制网络。
2、汽车诊断接口
OBD - II的规范规定了标准的硬件接口-- 16针(2x8)的J1962插座。OBD - II接口必须在方向盘2英尺范围内,一般在方向盘下。
SAE的J1962定义了OBD-II接口的引脚分配如下:
3、与汽车诊断有关的主要通信协议
20世纪90年代中期,为了规范车载网络的研究设计与生产应用,美国汽车工程师协会(SAE)下属的汽车网络委员会按照数据传输速率划分把车载网络分为Class A、Class B、Class C三个级别。
目前OBD使用的通信协议主要有5种:ISO9141、KWP2000、SAEJ1850(PWM)、SAEJ1850(VPW)、CAN。大部分车辆只实现了某一种协议,我们可以根据J1962插座上有哪些引脚来推断所使用的协议。下面对KWP2000、SAEJ1850(PWM)、SAEJ1850(VPW)和CAN进行简单的介绍。
3.1 KWP2000
KWP2000(Keyword Protocol 2000)欧洲汽车领域广泛使用的一种车载诊断协议,该协议实现了一套完整的车载诊断服务,并且满足EOBD标准。
KWP2000最初是基于K线的诊断协议,由于K线物理层和数据链路层在网络管理和通讯速率上的局限性,使得K线无法满足日趋复杂的车载诊断网络的需求。而CAN网络(Controller Area Network)由于其非破坏性的网络仲裁机制、较高的通讯速率(可达1M bps)和灵活可靠的通讯方式,在车载网络领域广受青睐,越来越多的汽车制造商把CAN总线应用于汽车控制、诊断和通讯。近年来欧洲汽车领域广泛采用了基于CAN总线的KWP2000,即ISO 15765协议,而基于K线的KWP2000物理层和数据链路层协议将逐步被淘汰。
基于K线的KWP2000协议
基于K线的KWP2000协议波特率为10.4 kbps,用单线(K线)通信,也可用双线(K线和L线)通信,目前多用单线通信。K线本质上是一种半双工串行通信总线。
基于K线的KWP2000协议的报文包括报文头、数据域和校验和三部分,如表3所示。
表3中各参数含义如下:
报文头:Fmt-帧字节; Tgt*-目标地址; Src*-源地址; Len*-附加长度字节。
*可选字节,取决于格式字节Fmt的A1A0位
数据域:Sld-服务标识符,数据域的第一个字节; Data-数据字节;。
校验和:CS。
在开始诊断服务之前,诊断设备必须对ECU进行初始化,通过ECU的响应获取ECU的源地址、通讯波特率、支持的报文头格式、定时参数等信息。ECU所支持的报文头和定时参数信息包含在ECU返回的“关键字(Key Word)”中(这也是协议命名的由来)。关键字由两个字节构成,关键字的低字节中各位的含义如表4所示。
诊断设备可以采用两种方式对ECU进行初始化——5Baud初始化和快速初始化,对于这两种初始化的时序在数据链路层协议中均有明确规定。
基于CAN总线的KWP2000协议[7]
基于CAN总线的KWP2000协议是把KWP2000应用层的诊断服务移植到CAN总线上。数据链路层采用了ISO 11898-1协议,该协议是对CAN2.0B协议的进一步标准化和规范化;应用层采用了ISO 15765-3协议,该协议完全兼容基于K线的应用层协议14230-3,并加入了CAN总线诊断功能组;网络层则采用ISO 15765-2协议,规定了网络层协议数据单元(N_PDU,如表5所示)与底层CAN数据帧、以及上层KWP2000服务之间的映射关系,并且为长报文的多包数据传输过程提供了同步控制、顺序控制、流控制和错误恢复功能。
1) 地址信息:包含源地址(SA)、目标地址(TA)、目标地址格式(TA_Type)和远程地址(RA)
2) 协议控制信息:有四种帧格式,即单帧(SF)、第一帧(FF)、连续帧(CF)和流控制帧(FC)
3) 数据域:KWP2000服务标识符(Service ID)+ 服务参数
应用层协议规定了四种服务数据结构,
从上面的服务流程可以看出,基于CAN总线的KWP2000协议支持多包数据传输,并且多包数据的管理和组织是在网络层完成的,应用层不必关心数据的打包和解包过程。
3.2 SAE J1850
SAE J1850 协议有两种,J1850(脉宽调制编码方式PWM - Pulse Width Modulation)和 J1850(可变脉宽调制编码方式VPM - Variable Pulse Width Modulation)。它们所采用的编码方式不同,因此有着不同的物理层,但应用层和数据链路层相同。
SAE J1850 PWM: 福特公司采用的标准,采用双线传输,通信速率为 41.6Kbps。[1]
pin 2: Bus+;pin 10: Bus–;高电压为+5V;报文长度限制为12个字节,包括CRC
采用非破坏性仲裁的载波侦听多路访问(CSMA/NDA)的多主仲裁机制
SAE J1850VPW:通用公司采用的标准,采用单线传输,通信速率为10.4Kbps。[1]
pin 2:Bus+;总线空闲状态为低电平;高电压为+7 V;决策点是+3.5V;报文长度限制为12个字节,包括CRC;采用非破坏性仲裁的载波侦听多路访问(CSMA/NDA)的多主仲裁机制
J1850协议规定网络的最大节点数为32个(包含车内 ECU 和车外诊断设备)。车内的最大网络长度为40米,车外最大网络长度为5米。车外诊断设备最小等效电阻为 10.6K 欧,最大等效电容为 500pF。
J1850数据传输网络中的数据通常是按照以下格式传输的,参见图4:
Idle, SOF, DATA_0, ..., DATA_N, CRC, EOD, NB, IFR_1, ..., IFR_N, EOF, IFS,Idle
其中各元素的定义如下
Idle:总线空闲,总线处于空闲状态时,任何节点都可以占用总线来发送数据。
SOF:帧起始标志。不计入 CRC 码。
DATA_N:报文数据。
EOD:数据结束标志。数据帧发送方用 EOD 表示数据发送结束。
NB:标准位。仅在 VPW 编码方式中有效。
EOF:帧结束标志。IFR:帧内快速应答。
IFS:帧内分割标志。
CRC:CRC 错误校验位。
3.3 CAN
CAN 总线是20世纪80年代才开始形成和发展的新一代总线技术。最初由BOSCH汽车公司提出。在20世纪90年代初,CAN总线被提交作为国际标准。
CAN总线协议是一种可以满足控制系统所需的中等通信速率的通信协议,尤其适用于车身功能和车辆舒适功能的管理,同样其较高的速率也可满足车辆内部系统功能管理的需求。
CAN是为连接各个复杂通信系统为目的研发的,各电控单元按照总线-树型拓扑结构相互连接。CAN 能够使用多种物理介质,例如双绞线、光纤等,最常用的是双绞线。CAN网络的传速速度最快可达 1Mbit/s。
CAN网络中有两种不同的帧格式,标准帧格式和扩展帧格式,不同之处为标准帧为11位标识符,而扩展帧有29位标识符。如图5和图6 所示。
在CAN网络中有四种不同类型的帧:数据帧、远程帧、错误帧和过载帧。其中数据帧和远程帧可以使用标准和扩展两种格式。
CAN协议具有以下特点[3]:
(1)多主:当总线空闲时,连接到总线上的各单元都可以开始发送消息。第一个开始发送消息的单元获得发送权。如果多个单元同时开始发送,具有最高优先级的单元获得发送权。
(2)报文传输:所有的渻都按预定的格式传输。
(3)系统的灵活性:连接到总线上的单元没有类似于地址的识别信息。因此,当一个单元添加到总线上或从总线上移走时,不需要改变任何其它设备的软件、硬件或应用层。
(4)通信速度:可以设定为任意的通信速度以可适合网络的大小。但在一个网络中,所有单元必须使用统一的通信速度。
(5)远程数据请求:可以向其它单元发送“远程帧”请求数据传输。
(6)具有错误检测、错误通知和错误恢复功能。
(7)错误隔离:CAN有区分暂时故障和持续故障的功能,这有助于降低易出故障的单元的优先级以防止阻碍正常单元的通信。
(8)连接:CAN总线允许同时连接多个单元。然而,实际可以连到总线的单元数受电力负荷和延迟时间的限制。
在汽车诊断网络中,J2480和ISO15765协议都是基于CAN的。包括KWP2000、SAE J1850等数据网络都逐渐被CAN网络所代替。
4、车载诊断系统在中国
2005年4月5日,国家环保总局发布批准《轻型汽车污染物排放限值及测量方法(中国III、IV阶段)》(GB18352.3-2005)等五项标准为国家污染物排放标准。OBD作为强制性要求首次出现在我国的法规标准中。
此项标准是通过修改采用欧盟(EU)对70/220/EEC指令进行修订的98/69/EC 指令以及随后截止至2003/76/EC的各项修订指令的有关技术内容产生的。主要的修改内容包括包含M1和M2类车型的分组、燃料的技术要求等5个方面,而OBD部分基本照搬了欧盟的标准(EOBD)。
5、汽车诊断技术发展趋势
5.1 发展中的OBD-III
OBD-II虽然可以诊断出排放相关故障,但是无法保证驾驶者接受MIL的警告并对车辆故障及时修复。这就是下一代OBD系统要重点解决的问题。OBD-III以无线传输故障信息为主要特征,能够利用小型车载无线收发系统,通过移动通信网络、卫星通信或者GPS系统将车辆的VIN、故障码及所在位置等信息自动上报管理平台。管理部门根据该车辆排放问题的等级对其发出指令,包括去何处维修的建议、解决排放问题的时限等。这些信息可用于根据相关法规对造成过多排放污染的车辆所有者进行惩罚。[9]
OBD-III不仅需要相关通讯技术、标准和法规的不断成熟,对OBD系统诊断功能本身的准确性和可靠性也是一个更高的要求。可以设想,随着OBD-III的成熟和应用,将带来汽车诊断服务模式的巨大变革。
5.2 对新的通信协议的支持
伴随着人们对汽车的安全、可靠和舒适性越来越高的要求,汽车总线技术也在迅速发展。新的更高通信速率、更可靠和更灵活的总线系统(如FlexRay、MOST)的出现,也必将推动汽车诊断技术的发展。 (作者单位:中国移动通信研究院)