摘要:目前,OBD主要应用于汽车维修,使用一台仪器通过有线的方式对汽车进行检测,给汽车的维修提供了极大的方便,但是这种方法需要人主动去检测,往往都是汽车已经出现问题司机才去检测,这样对汽车安全造成了一定的隐患。文章介绍了一种智能检测系统,能够实时监控汽车的异常情况,可以根据需要把检测报告通过无线网络传输给车主。
关键词:GPRS;OBD;车载故障诊断系统;故障码;ECU;KWP2000;控制单元编码
中图分类号:U463 文献标识码:A文章编号:1009-2374(2012)06-0115-03
一、OBD-Ⅱ系统协议及接口简介
故障数据采集是通过OBD-Ⅱ接口,OBD-Ⅱ标准是在20世纪90年代中期产生,目前已经形成了一套标准规范。它能够提供一些对用户有用的数据,比如发动机控制系统、自动变速箱系统、防抱死制动系统、安全气囊系统、牵引力控制系统等数据。OBD-Ⅱ标准主要有以下标准接口:SAE J1850、ISO/9141-2(KWP2000)、CAN接口。下面针对这些协议作简单
介绍。
(一)SAE J1850
J1850属于B级(Class B)的总线,主要用途为车用信息中心、仪表显示、故障检测诊断等。J1850有不同的物理层,一种是以脉宽调变(PWM)方式传送,运用2条线路以差动方式进行传输,最高速率为41.6kbps;另一种是可变脉宽(VPW)方式,此方式仅使用1条线路就可传输,最高速率为10.4kbps。在通信协议上主要分三层(图1):应用层、数据链路层、物理层。
图1汽车总线网络层结构
1.应用层。应用层在不同的输入和输出设备之间建立连接,由于汽车各网络协议一般只定义OSI结构中的底层协议,这里对应用层不再介绍。
2.数据链路层。主要定义了寻址方式、信息帧的数据结构、编码规则、通信优先权、通信格式、通信要求、总线仲裁、错误检测及处理等。
3.物理层。定义了通信速率、同一网络连线上最大子系统数、最大传输线长度及总线的电气连接特性等。物理层有两个标准接口:脉冲宽度(VPW)信号和脉冲宽度调节(PWM)。
(二)ISO/9141-2
ISO/9141-2是大多数的欧系、日系车所遵循的标准。KWP2000是ISO/9141-2升级的一个协议,该协议实现了一套完整的车载诊断服务。是基于K线的诊断协议。数据链路层和SAE J1850一样,物理层采用K线或者L线进行通信的。
(三)CAN接口
CAN总线是一种串行数据通信协议,用于汽车内部测量与执行部件之间的数据通信。CAN是目前总线规范中唯一取得国际标准的,随着CAN网络技术被越来越多的厂家认可和掌握,这一技术在我国已被广泛推广和使用。
CAN遵循的是SAEJ1939标准,SAEJ1939网络遵循7层OSI网络结构(图2)。
图2OSI七层模型
CAN物理层要求:CAN一般采用双绞线,双绞线特性阻抗为120Ω,信号使用差分电压传送,CAN的物理层规定了逻辑状态、总线电气性能。
CAN总线除了能够采集故障诊断数据以外,还能够获取车身仪表数据、车身控制、汽车断油断电、中控开关锁等。CAN网络技术的实现,为车联网应用中汽车行使数据的采集提供了技术基础。
二、故障诊断接口设计
故障诊断接口包括SAEJ1850接口、ISO 9141 K线接口、CAN接口。通过图4可以明显地看出故障诊断模组在整个系统的位置。
(一)SAE J1850 接口电路
图3实现了实现SAE J1850 VPW协议电平和PWM协议电平的转换。
图3SAE J1850接口电路
(二)ISO 9141 K线接口电路
图4完成ISO 9141 K线信号电平到串行通信接口的转换。
图4ISO 9141 K线接口电路
(三)CAN 总线接口设计
图5实现了CAN总线接口设计,芯片U101是SPI接口的CAN控制器,U102是CAN接口的收发器。
图5CAN接口电路
三、诊断数据采集方案
智能检测系统包括诊断数据的采集、解码、处理、传输、报警、显示等过程。图6是整个的系统结构图,整个系统分成车载终端和监控中心两部分。
图6系统结构图
车载终端采用汽车电源供电,其中无线传输模块、CPU处理、数据采集、解码、显示都是集成在车载终端里。监控中心指车辆的管理中心。
1.数据采集模块:采集接口是OBD-Ⅱ的标准接口。电路上需要做PWM、VPW、K线、CAN等接口的转换。终端对故障诊断数据进行实时采集。
2.软件解码:数据采集下来以后,根据协议解出故障码。
3.无线发送:终端CPU对解析出的故障码进行以下处理:通过GPRS模块发送到监控中心,由监控中心处理。
4.显示屏:终端对故障码自行处理,发送到本机显示屏显示出故障码,车主可查看本车的诊断故障码。
5.参数设置:车载终端或监控中心均提供参数设置,可设置故障报警电话,当出现异常情况时自动把情况通过短信报告到车主手机上。
(一)故障数据采集及处理
故障数据通过OBD-Ⅱ接口进行采集后,需要提取故障码进行分析,故障码请求采用请求应答的方式,由终端发送故障请求,ECU进行相应的故障码应答。
SAE J2010规定了一个5位标准故障代码,第1位是字母,后面4位是数字。如“PO125”、“PO204”,分别代表有转速信号时发动机5min内没达到10℃和4号喷油嘴输出驱动器不正确地响应控制信号。
故障代码的首位字母表示设置故障码的系统。
P=Powertrain动力系统
B=Body车身
第2位字符是0,1:
0=Generic(通用故障码)
1=Enhanced(汽车厂家自定义的故障码)
第3位字符表示出故障的系统:
1=Emission Management(Fuel or Air——燃油或空气计量故障)
2=Injector Circuit(Fuel or Air——燃油或空气计量故障)
3=Ignition or Misfire——点火故障或发动机缺火
……
最后两位字符表示触发故障码的条件。详细的故障码这里就不在列出。
(二)故障数据传输
故障数据是采用GPRS无线通信网络或短信的方式传输,其中主要还是采用GPRS网络进行传输的,短信通道主要是作为数据传输的备份通道来用,当GPRS网络不同或者信号不好时,启动短信通道进行数据传输。
之所以采用GPRS作为主传输,短信作为辅助传输,是基于以下几点考虑:
1.GPRS是采用分组交换技术,传输效率高。
2.传输速度。GPRS支持中、高速率数据传输,可提供9.05~171.2kbit/s的数据传输速率(每用户)。
3.GPRS网络接入速度快,提供了与现有数据网、IP网的无缝连接。
4.资费问题。故障码的数据量不大,GPRS网络完成能够满足要求,而目前GPRS的资费相对于短信来说,低得多。
5.GPRS传输需要信号强度比较大,而短信则需要比较弱的信号强度,在某些信号强度不是很好的地方,无线数据只能采用短信进行传输。
综上所述几个特点,数据传输采用GPRS作为主传输,短信作为辅助传输。
(三)GPRS无线通信流程
GPRS模块对外提供了控制系统操作的AT指令集,通过接收来自UART的AT指令,执行相应操作,实现无线Modem的相应功能。GPRS是走TCP/IP协议的,而GPRS模块是内嵌TCP/IP协议栈的。
由于GPRS的AT指令集比较多,只列出进行TCP传输用到的主要AT指令:
AT+CGREG=1;//设置GPRS注册状态
AT+CGATT=l;//GPRS网络附着
AT#APNSERV=“CMNET”;//设置GPRS接入点
AT# ConnectionStart;//连接CPRS网登录Internet,成功返回动态分配的IP地址。
AT#TCPSERV=″202.112.135.203″://设置服务器IP地址,即监控中心的IP地址。
AT#TCPPORT=″6000″://设置服务器与客户端通信的Socket端口:
AT#otcp;//打开与远程服务器的TCP连接
TCP连接成功后,GPRS模块进入数据传送状态,这时就可向监控中心发送数据,监控中心也能向模块发送回应数据。图7是采集系统处理流程图:
图7采集系统处理流程图
目前无线3G网络也发展的比较成熟了,对于有大数据量的应用,则在设计中,可把GPRS模块换成3G
模块。
四、结语
目前,行车安全和防盗越来越得到车主的重视,本文采用一种智能的故障诊断技术,同时诊断信息能够智能地展现在车主的面前,为车主提供便捷服务。随着无线信息技术的发展,这种服务越来越受到车主的青睐,在未来必将普及开来。
参考文献
[1]信息技术软件工程术语(GB/T 11457-2006)[S].
[2]孙孺石.GSM数字移动通信工程[M].北京:人民邮电出版社,1996.
[3]栗大超.GPRS的通讯技术及其在测控系统中的应用[J].计算机自动测量与控制,2001,(2).
[4]刘威.无线网络技术[M].北京:电子工业出版社,2012.
[5]徐静.一种汽车网络系统车载终端的设计与实现[J].合肥学院学报(自然科学版),2008,(2).
[6]梁宏伟.发动机管理系统中OBD—Ⅱ技术研究[J].车用发动机,2002,(3).
作者简介:汤益明(1978-),男,福建厦门人,厦门雅迅网络股份有限公司研发部副经理,中级工程师。
(责任编辑:赵秀娟)