基于SAE J1939协议的CAN总线汽车仪表设计
仪表采用VID6606驱动器驱动步进电机。每片VID6606可同时驱动4路步进电机。在其频率控制端输入脉冲序列F(SCX),即可控制输出端使步进电机的输出轴以微步转动,每个微步电机输出轴转动1/12(°),最大角速度可达600(°)/s。该电机驱动器具有以下特点:硬件微步驱动、简单易用,电机只需速度F(sex)和方向(CW/CCW)2个控制端、所有输入引脚都有干扰过滤器、宽工作电压、低电磁干扰辐射。仪表板指针采用VID-29电机驱动,电机内置减速比180/1的齿轮系,能够将数字信号直接准确地转为模拟的显示输出。该电机具有很高的显示精度,其步距角最小可达到1/2(°)。图3所示为VID6606驱动仪表电路。
该仪表利用LCD显示时间、燃油消耗量以及产生故障时故障名称,处理器发送的信号先经74HC245功率放大后,然后送至液晶屏F2000LCD显示。LCD电路如图4所示。
2.3 系统软件设计
系统软件设计分为主程序、CAN通信、数据采集处理和数据显示等4个模块。主程序模块通过调用各个子模块程序来处理数据处理:CAN通信模块负责发送和接收数据;数据采集及处理模块完成对各种类型数据的采集以及计算;数据显示模块将车速、油压以及信号灯等信息显示在仪表上。
图5为系统主程序流程,该系统主程序流程分为:
1)系统初始化。系统初始化主要包括初始化系统时钟、CAN节点、LCD液晶屏、步进电机等,并使能CAN中断,设置CAN屏蔽码和验收码。CAN节点初始化主要是初始化CAN控制器并中断CAN控制器:
2)读取传感器以及CAN总线数据,并驱动指针以及LCD等显示,同时等待CAN接收中断。
3)CAN接收中断产生,进入接收中断子程序读取数据。判断数据是否符合数据接收条件,如果符合,则接收数据。此过程逐位比较接收到的29位标识符与验收码、屏蔽码,只有标识符相应位与验收码相应位相同,系统才开始接收数据。
4)处理器将接收的报文进行解析,提取需要的数据并进行处理。处理器对传感器传来的数据和CAN总线读取的数据进行处理计算,得到相应的指针驱动参数,计算出指针转角,并根据初始化的步进电机的参数计算出指针转动速度。指针转动速度与相应的参数变化速度成正比。同时计算出车辆行驶里程并累加到总路程上。
5)处理器将包含车辆工况的一组脉冲序列发送至步进电机驱动器,驱动器驱动步进电机以微步方式转动,指示出相应的发动机转速、车速、水温以及油压等;处理器将包含车辆总路程等信息的数据发送至LCD控制器,控制器控制LCD显示相应的总路程等:处理器改变相应的I/O引脚状态直接点亮/关闭相应的指示灯。
2.4 故障显示
该仪表能够从CAN总线接收故障代码并对故障代码进行解析,与预先写入的故障码比对后找到对应的故障信息并显示在LCD屏幕上。每一类型的数据都有特定的数据帧ID,系统根据帧ID判断故障产生的位置。如果收到的是单帧故障,则系统来提取总字节数和总包数;如果收到的是多帧故障,系统则连续提取故障诊断报文至特定的字节,然后根据故障代码查找故障类型。
3 结束语
在研究CAN总线和SAE J1939协议的基础上,设计CAN总线汽车仪表。该设计充分利用LM3S2948以及VID6606的功能,较大程度上降低了系统外围电路的设计以及成本。多次实车试验结果表明,相对于常规仪表,该CAN总线仪表具有以下优点:抗干扰能力强,传输速率高,能够保证数据有效、快速、稳定地传输;减少车身布线,硬件方案软件化实现,简化了设计,降低了成本;及时、直观地查看车辆故障;CAN总线将整车构成一个网络系统,能够提升系统的灵活性,方便地增加设备,扩大了可开发的空间。
- 虚拟数字式汽车仪表信息系统的研究与开发(06-07)
- CAN总线汽车仪表研究(08-02)
- 瑞萨MCU在汽车仪表及CAN/LIN应用中的解决方案(01-20)
- 面向车载应用的高性能图形系统控制器(01-17)
- 汽车仪表步进电机控制算法的仿真(02-15)
- 基于LabVIEW的便携式汽车仪表检测仪的研制----目的与基本名词解释(01-14)