基于C8051F020单片机的汽车故障诊断仪的研究
扫描二维码
随时随地手机看文章
随着我国经济建设的不断发展,装有计算机控制系统的新型汽车已越来越多的应用于人们的日常生活中,这使得汽车的动力性,经济性,安全性,可靠性等有了极大的提高。但同时也使得汽车的结构复杂多了,也使一般汽车维修诊断与排除汽车故障困难多了,而利用汽车电脑存储的信息,诊断与排除汽车故障的方法也应运而生。仪器诊断是在经验的基础上发展起来的现代检验方法。它是与车载故障自诊断系统配套使用的,从本质上看,它相当于自诊断系统的终端设备,起到人机交互的作用。该方法可在汽车不解体的情况下,用仪器或设备测试汽车性能和故障参数,曲线或波形,甚至能自动分析和判断汽车的技术状况。随着电喷发动机汽车的普及,汽车故障诊断仪已作为一种必备的维修工具被大多数行业人士所接受。
本文设计的汽车故障诊断仪采用的是CYGNAL公司的低功耗单片机C8051F020作为核心,具有数据存储,通讯以及LCD显示等各种功能。该仪器具有低功耗,高精度,携带方便适用于多种场合等特点。
1、诊断仪原理与功能
1.1 硬件原理及作用
(1)诊断电子控制系统的传感器、执行器状态以及ECU的工作是否正常。通过判断ECU的输入、输出电压是否在规定的范围内变化时,可以判断电子控制系统工作是否正常。
(2) 当电子控制系统中的某一电路出现超出规定的信号时,该电路及相关的传感器反映的故障信息以故障代码的形式存储到ECU内部的存储器中,维修人员可利用该诊断仪来读取故障码,使其显示出来。
1.2 硬件支持的主要功能
(1) 通过CAN、LIN通信模块可以实现与车载内各电子控制装置ECU之间的对话,传送故障代码以及发动机的状态信息。
(2) 通过单片机的同步/异步收发器可以与PC机进行串行通信从而完成数据交换,下载程序,以及诊断仪升级等功能。
(3) 通过液晶显示器来显示汽车运行的状态数据及故障信息。
(4) 通过键盘电路来执行不同的诊断功能。
(5) 通过一种具有串行接口的大容量FLASH存储器来保存大量的故障代码及其测量数据。
2、硬件电路及接口电路的设计
2.1 硬件电路的总体框架
该诊断仪硬件系统主要包括以下模块:C8051F020处理器及其外围扩展电路模块,键盘、液晶显示模块,外扩存储器模块,CAN、LIN,通信模块;与PC机的串行通信模块;另外还有电源电路以及系统复位电路。总体框图如图1所示。
图1 系统电路图
2.2 C8051F020单片机电路
设计中CPU选择的是Cygnal公司的C8051F020单片机,它采用具有与MCS-51指令集完全兼容的Cygnal公司的专利CIP-51微处理器内核,峰值速度可达25MIPS。并且在一个芯片内集成了单片机数据采集或控制系统所需要的几乎所有模拟和数字外设及其他功能部件(包括PGA、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/I2C、UART、SPI、定时器、可编程计数器/定时器阵列、内部振荡器、看门狗定时器及电源监视器等)。CIP-51对指令运行实行流水作业,从而大大提高了指令运行速度。另外C8051F020单片机最独特的改进是引入了数字交叉开关。允许将内部数字系统资源映射到P0、P1、P2和P3的端口I/O引脚,同时C8051F020还在内部增加了复位源,从而大大提高了系统的可靠性,完全可以满足诊断仪的功能要求。
2.3 CAN、LIN总线接口电路的设计
2.3.1 CAN总线接口电路
CAN总线接口电路包括CAN 通信控制器与微处理器之间和CAN总线收发器与物理总线之间的接口电路的设计。C8051F020与CAN驱动芯片SJA1000T的接口电路如图(2)所示本设计选取PHILIPS公司的SJA1000 CAN控制器以及82C250总线收发器。SJA1000 在电路中是一个总线接口芯片,通过它实现ECU与微处理器之间的数据通信。该电路的主要功能是完成CAN总线与单片机之间的通信。PCA82C250为CAN控制器和物理总线之间的接口,它可以提供向总线的差动发送能力和CAN控制器的差动接收能力,TXD和RXD引脚分别发送经过驱动后的发送和接收信号。具体连接如图2所示。
图 2 CAN总线与单片机接口电路
2.3.2 LIN通信模块的设计
LIN总线收发器选用PHILIPS公司的TJA1020,它直接与单片机的串口相连,电路连接图如图3, TJA1020 收发器是一个物理媒体连接,适合用于最高 20kBaud的LIN 传输速率,它的引脚TXD和NSLP 减小了输入阀值, 输出引脚 RXD和TXD 为漏极开路. 因此它可以和使用3.3V 或5V 电源的微控制器兼容, 而且收发器本身不需要额外的VCC电源. 为使引脚RXD和TXD达到高电平,当微控制器的端口引脚没有集成上拉电阻时,要加外部上拉电阻. 微控制器由 TX0向 TJA1020 的 TXD 引脚发送数据,TJA1020的 RXD引脚向微控制器的 RX0 发送数据。LIN 收发器的睡眠控制输入NSLP 可以通过微控制器的端口引脚来控制。
2.4 串行总线接口电路的设计
RS232串行通讯采用全双工的模式,系统中配置一条数据发送线。在同一时刻系统既可以发送数据也可以接收数据。图(4)给出了串行通信电路连接图。通过交叉开关把C8051F020单片机的P0.0,P0.1设置为TX0,RX0.RS232逻辑电平对地是对称的,与TTL,CMOS逻辑电平完全不同。逻辑“1”电平为-5~-15,逻辑“0”电平为+5~+15之间,其与单片机的逻辑电平不一致,必须进行电平转换,图4采用SP3223转换器实现TTL电平与RS-232电平互相转换。
图 4 串行总线接口电路
2.5 键盘显示及存储器电路
本设计主键盘采用4X4键盘输入模块,其驱动模块采用的是SK5278,它是福州贝能科技有限公司推出的采用PIC内核的键盘控制器。该芯片采用4线串行接口,可与任何种类的单片机接口;它具有按键有效指示输出,可用中断方式管理键盘;其行线X0~X3与列线Y0~Y3可构成4×4键盘矩阵;SK5278的16键键盘控制器内含去抖动处理电路,因而可直接输出键值,并采用串行方式与单片机或微处理器进行接口。系统设计的功能键采用中段方式输入,整个工作流程通过不断的扫描按键的状态,判断是否有健按下,当有任意键按下时,即产生中段,CPU执行相应的中段子程序,若没有健按下时,继续扫描键盘的状态,直到有健按下,用键盘中断处理程序完成一切和用户之间的的信息交流。
显示电路选用的OCMJ5X10是160×80点阵的中文图文液晶图形显示器模块。该模块的内部由于含有国标一级简体字库,使得汉字的显示异常方便;同时,该模块与单片机的硬件接口除数据总线外,仅使用了REQ/BUSY两根握手信号线,简化了与单片机的硬件接口电路设计。上述特点对软件、硬件资源均十分紧张的单片机系统来说是十分重要的。
由于诊断系统中将涉及大量的故障代码,传感器信息,执行起信息等一些数据信息,需要较大的存储空间。因此,系统扩展了一片大容量的8Mbit的FLASH存储器AT45DB081 。
3、系统的软件设计
本系统的软件采用模块化的设计方法,整个程序包括主程序、初始化程序、定时器中断程序、诊断协议程序、串行通讯程序、键盘显示程序、存储器读写程序。所有的程序均采用C语言编写,可以很方便的调试和下载程序代码。限于篇幅,本文只给出主程序的流程图,如图5所示。系统的主程序主要完成C8051F020单片机系统的初始化、设置系统时钟和功能寄存器,调用键盘处理程序,完成不同的功能,如根据不同的按键转入相应的服务程序,完成不同的功能。
图5系统的软件设计流程图
3.1 硬件抗干扰设计
(1) 系统设计中对电源电路及IC器件周围配置适当的去耦电容滤波,系统中电源地线、MCU外围电路地线、信号地线采用单点接地的方法可靠接地,以减少不等位电势的干扰。
(2) 硬件滤波,此方法对串模干扰有很好的抑制作用,常用RC 低通滤波器接在一些低频信号输入电路中,可大大消弱高频干扰信号。
(3) 印刷电路板设计时,数字电路与模拟电路隔离,数字的和模拟的仅在一点相连,有效地防止了数字电路对模信号的影响。
(4) 为了防止电路模块间的相互干扰,在电路板的设计中采用金属机壳有效地屏蔽外界射频信号的干扰.
3.2 软件抗干扰设计
(1)数字滤波。在软件设计时,考虑了数字滤波程序的设计,有效地排除了随机干扰。
(2)设置冗余指令和软件陷井。通过应用软件陷阱法和数据冗余法有效的抑制了由于外部干扰、震动或瞬间故障引起的系统瘫痪和程序跑飞。
(3)软件看门狗。为防止程序运行进入死循环,而不能被软件陷井捕获到,在系统软件设计时,设计了“软件看门狗”程序,有效地防止了死循环造成的系统瘫痪。
4、结论
本文以C8051F020单片机为核心开发了ECU故障诊断仪,该诊断仪能够实现参数测量,在线故障诊断和执行器测试等功能,具有结构简单、成本低、体积小和性能可靠等优点,经实验证明:该诊断仪工作稳定,操作方便,抗干扰能力强。从而说明了该诊断仪软硬件设计比较合理,具有广阔的应用前景。是维修人员的地得力助手,完全具有生产应用的价值。