一、系统概述
针对汽车电控单元(ECU)故障诊断需求,本文以C8051F020单片机为核心设计故障诊断仪,实现参数测量、在线故障诊断与执行器测试等功能,具有结构简单、成本低、体积小、可靠性高的特点。
二、硬件设计
硬件系统包括:C8051F020处理器及其外围扩展电路,键盘与液晶显示模块,外扩存储器模块,CAN、LIN通信模块,与PC机的串行通信模块,以及电源与复位电路。
C8051F020采用与MCS-51指令集完全兼容的CIP-51内核,峰值速度可达25MIPS,片内集成PGA、ADC、DAC、电压比较器、电压基准、温度传感器、SMBus/I2C、UART、SPI、定时器、PCA、内部振荡器、看门狗与电源监视器等。其数字交叉开关允许将内部数字资源映射至P0~P3端口引脚,并内置多个复位源,可靠性高。
CAN接口选用SJA1000控制器与PCA82C250收发器,实现ECU与微处理器间通信;LIN总线采用TJA1020收发器,直接与单片机串口相连,支持最高20kBaud速率,RXD/TXD为漏极开路,可兼容3.3V/5V微控制器,睡眠控制输入NSLP由端口引脚控制。RS-232串行通信采用SP3223完成TTL与RS-232电平转换。
键盘采用4×4矩阵经SK5278键盘控制器(PIC内核、4线串行接口、内含去抖动)接入,以中断方式管理;显示选用OCMJ5X10 160×80点阵中文液晶模块,内置国标一级简体字库,接口除数据总线外仅需REQ/BUSY两根握手线;外扩8Mbit Flash存储器AT45DB081存放故障代码与传感器数据。
三、软件设计
软件采用模块化设计,包括主程序、初始化、定时器中断、诊断协议、串行通信、键盘显示与存储器读写程序,均用C语言编写。主程序完成系统初始化、时钟与功能寄存器设置后循环扫描键盘,按按键转入相应服务程序。
四、抗干扰设计
硬件方面:电源与IC周围配置去耦电容,电源地、MCU外围地与信号地单点接地;低频信号输入采用RC低通滤波抑制串模干扰;PCB上数字与模拟电路隔离、仅一点相连;金属机壳屏蔽射频干扰。软件方面:数字滤波排除随机干扰;设置冗余指令与软件陷阱防程序跑飞;设计软件看门狗防死循环。经实验验证,诊断仪工作稳定、操作方便、抗干扰能力强。