基于R8C的汽车OBD通用故障诊断仪设计
0 引 言
车载诊断系统(On-Board Diagnostics,OBD)具有识别可能存在故障的区域的功能,并以故障代码的方式将该信息储存在ECU(电子控制单元)的存储器内,通过OBD的故障诊断仪可以将存储于车内ECU的故障代码及相关信息读取出来,以方便车辆管理和维修使用。OBD系统最初是为了控制日益严重的汽车污染问题而提出的,起源于1982年CARB制定的排放法规,随后在1996年实施新的OBD Ⅱ要求。欧共体在2001年也要求欧洲各国汽车制造商生产的轿车都相应配置欧洲电控汽车微机故障诊断系统(European On-board Diagnosis System,EOBD)。在我国,2005年4月国家环境保护总局和国家质量监督检验检疫总局联合颁布了GB18352.3-2005((轻型车辆污染物排放限值及测量方法(中国Ⅲ、Ⅳ阶段)》,简称“国Ⅲ、Ⅳ”。根据国Ⅲ要求,2008年7月1日起第一类汽油车(座位总数不超过6座,且最大总质量不超过2 500 kg的M1类车辆)要求装有OBD系统,在用车符合性检查同步执行。
本文根据GB18352.3对OBD系统及故障诊断装置的要求,在充分研究ISO和SAE有关的OBD标准及通信协议的基础上,设计了一种基于瑞萨公司的R8C微控制器——R5F21237的汽车OBD通用故障诊断仪。该诊断仪可兼容所有GB18352.3规定的通信协议,可以诊断ISO 15031-5所规定的所有诊断服务,并具有成本低和携带方便的特点。
1 汽车OBD通用故障诊断仪的要求
根据GB18352.3的要求,与车辆OBD系统通信的外部诊断设备必须符合ISO 15031-4“道路车辆——车辆与排放相关的外部诊断设备之间的通信第3部分:外部故障诊断设备的要求”的有关要求。这些要求主要包括了统一诊断连接器,兼容的通信协议,标准的故障代码和诊断服务范围四个方面。
1.1 诊断连接器
OBD通用故障诊断仪与车辆之间的连接器使用统一的诊断连接器,其引脚配置定义如图1所示,其中没有定义的引脚可以保留给诊断仪以后扩展使用。
1.2 通信协议
OBD通用故障诊断仪与车辆之间的通信系统可以使用的通信协议有ISO 9141,SAE J1850 41,6 Kb/sPWM(脉宽调制),SAEJ1850 10,4 Kb/s VPW(可变脉宽),ISO 14230(KW 2000),ISO 15765-4(CAN),SAE J1939-73(CAN)。根据SAE J1978或ISO15031-5要求,任何车辆只允许使用一种通信协议,为了兼容各种车型的OBD系统,汽车通用故障诊断仪必须支持以上所有协议。
1.3 诊断服务范围
汽车通用故障诊断仪诊断内容包括九个服务模式,详细内容如下:
读取当前动力系统诊断数据 目的是获得排放相关的数据值,包括模拟输入、输出,数字输入、输出和系统状态信息。
读取系统冻结帧 目的是收集动力系统排放相关的冻结帧以及制造商的特殊需要的其他系统冻结帧。读取故障诊断代码 汽车通用故障诊断仪获得车辆各系统的常规故障诊断代码。
清除/重置排放相关的诊断信息 汽车通用故障诊断仪提供清除车辆各ECUs故障诊断信息的一种方法。这些故障诊断信息包括:诊断故障代码的数量、诊断故障代码、冻结帧数据的故障代码、冻结帧数据、系统监控测试的状态、车载监控测试结果、MIL激活时行驶的里程、DTC清除后预热的次数、DTC清除后的里程、MIL激活时发动机运转的时间、诊断故障代码清除后的时间以及其他制造商定义的其他记录信息。
读取氧传感器监控测试结果 汽车通用故障诊断仪获得车载氧传感器监控测试结果。
读取车载的特殊监控系统的监控测试结果 汽车通用故障诊断仪获得特殊部件/系统的非连续监控的车载诊断监控测试结果。例如催化器的监控和蒸发监控系统等。
读取在当前或最近的驾驶期间探测到的与排放相关的诊断故障代码 汽车通用故障诊断仪获得在当前或最近的驾驶期间探测到诊断故障代码。目的是帮助技术服务人员在车辆维修后,或清除诊断信息之后,通过单个驾驶周期获得测试维修的效果。
读取随车系统、测试或部件的控制 目的是允许汽车通用故障诊断仪能够控制随车系统、测试或部件的操作。
读取车辆信息 汽车通用故障诊断仪可以请求说明车辆的车辆信息,比如车辆身份识别码和校准ID等。
1.4 诊断故障代码(DTCs_Diagnostic Trouble Code)的显示
通用故障诊断仪读取的OBD诊断故障代码由两字节组成,在显示时要按照1个字母+1位十进制数字+3位十六进制数字的标准显示方式显示。读取的两字节数据到标准显示方式的转换关系如图2所示。DTCs按照开头的字母一共分为四类,其中B表示车身类DTCs,C表示底盘类DTCs,P表示动力类DTCs,U表示网络类DTCs。
2 汽车通用故障诊断仪的设计
2.1 系统的硬件设计
本设计的硬件部分主要分为四个模块,硬件结构图如图3所示。
单片机模块是整个硬件系统的核心部分,包括了一块瑞萨R8C系列的单片机R5F21237JPF和一些外围电路,承担着运算和处理信号的任务。这个模块与键盘模块、液晶显示模块以及通信模块分别连接,与这三个模块进行信息交互。
R5F21237JPF属于瑞萨公司的R8C/Tiny系列的微控制器,本设计使用了R5F21237JPF的2个8位多功能定时器进行系统的时序控制;使用2个串口驱动MC33390和ST-L9637,及使用其CAN控制器驱动TJA1050进行通信;使用了11个输入/输出端口连接键盘模块;2 KB RAM及64 KB的程序闪存编写嵌入式程序,使用并口2与LCD进行通信。
液晶显示屏采用了COMJ4×8C,这是一种128×64的图形点阵液晶屏,可显示8×4个(16×16点阵)汉字,也可完成图形、字符的显示;它内部有显示数据锁存器,还具有简单的操作指令。这个模块的主要功能是显示功能菜单、故障名称等内容。
键盘模块核心是3×8的小键盘阵列,3列与8行分别通过11个引脚与单片机连接,键盘按键包括10个数字键、换页键、换行键、确定和取消键等。通信模块是诊断仪与车辆ECU通信的接口,主要由ST-L9637,MC33390和TJA1050组成,其中ST-L9637实现ISO 9141,ISO 14230(KW 2000)协议;MC33390实现SAE J1850 41,6 Kb/s PWM,SAEJ1850 10,4 Kb/s VPW协议;TJA1050实现ISO 15765-4(CAN),SAE J1939-73(CAN)协议。车辆ECU就是通过这些芯片与单片机进行连接的,这部分电路略为复杂,作用也非常重要,是诊断仪能够满足ISO15031及SAEJ1978要求所有通信协议的关键。
2.2 软件设计
本设计的软件结构图如图4所示。
(1)启动诊断仪
当故障诊断接通车辆诊断接口后,将车辆点火钥匙置于ON位置,车辆对诊断仪进行供电。诊断仪上电后在R5F21237JPF控制下开始设置诊断仪的各项初始参数。
(2)确认诊断协议
故障诊断仪初始化结束后开始向车辆诊断接口发送协议确认数据。故障诊断仪向符合《SAE J1962车辆故障诊断接口》标准的连接器的各诊断协议(包括ISO9141,ISO 14230(KW 2000),SAE J1850 41,6 Kb/sPWM,SAE J1850 10,4 Kb/s VPW,ISO 157654,SAE J193973)的引脚逐次发送协议确认命令。如果在某确认中接收到正确的应答,则确认通信使用该协议;如果发送某种协议的确认命令没有应答或应答为无,则故障诊断仪发送下一个协议的确认命令;如果连续5次循环发送各协议的确认命令后依然没有得到正确应答,故障诊断仪发出错误警告。
(3)键盘扫描
本设计中键盘扫描采用的是定时扫描的方式,每50 ms扫描一次键盘,若检测到有键按下,则计算操作是显示操作还是选择诊断的服务类型的操作。
(4)诊断服务
如果通过键盘扫描程序确认故障诊断仪要求进行的服务模式,则发送该服务的请求并读取相应的响应信息。诊断服务在本设计中起着至关重要的作用,它实现了诊断仪和ECU之间的信息交互。
(5)显示内容
显示模块包含了所有跟液晶显示有关的子程序,显示菜单,显示故障内容以及显示警告信息等。通过按键操作,选择显示菜单是用于选中诊断仪的操作服务以及选中显示内容;显示故障内容时若超过一页,可以通过“上一页”、“下一页”键来翻页,按“取消”键则返回上一级目录;警告信息显示是在确认通信协议失败或进行诊断服务失败时显示相应的警告信息,警告信息在发生操作失败时自动显示。
3 结 语
本文按照GB18352.3-2005的要求阐述了汽车OBD通用故障诊断的基本要求,介绍了一种基于瑞萨R8C单片机的汽车通用故障诊断仪相关硬件和软件的设计方案。该方案的优势在于:可以兼容各种OBD的诊断通信协议,中文显示界面,成本低和操作携带方便的特点。经在哈飞赛豹V、比亚迪F6和雪佛兰科鲁兹等车型上测试证明:该诊断仪工作稳定,操作方便,抗干扰能力强。随着我国OBD的有关法规要求的逐步实施,该诊断仪软硬件设计会有广阔的应用前景。
更多有关OBD精彩内容请点击:http://www.elecfans.com/zhuanti/obd.html
评论
查看更多