基于R8C的汽车OBD通用故障诊断仪设计
时间:09-18
来源:作者:黄森仁 郑宏 龚进峰 戎辉
点击:
单片机模块是整个硬件系统的核心部分,包括了一块瑞萨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的有关法规要求的逐步实施,该诊断仪软硬件设计会有广阔的应用前景。
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的有关法规要求的逐步实施,该诊断仪软硬件设计会有广阔的应用前景。