基于CAN总线和SAE J1939协议的汽车仪表设计
能够实时反映车辆信息,同时该处理器具有很大的可扩展空间,有利于后续开发。
FAN100由于LM3S2948内置CAN控制器模块,所以只需外接一个CAN收发器即可接收总线数据。该仪表选用CTM8251T作为CAN收发器。 CTM8251T是一款通用的带隔离的CAN收发器,该器件内部集成所有必需的CAN隔离及CAN收发器。该器件可连接任何一款CAN协议控制器,实现 CAN节点的收发与隔离功能。该器件设计体积小,集成度高,可取代传统的CAN收发器及其外围电路,降低了电路的复杂程度,减少了设计成本,如图2所示。
FAN100仪表采用VID6606驱动器驱动步进电机。每片VID6606可同时驱动4路步进电机。在其频率控制端输入脉冲序列F(SCX),即可控制输出端使步进电机的输出轴以微步转动,每个微步电机输出轴转动1/12(°),最大角速度可达600(°)/s。该电机驱动器具有以下特点:硬件微步驱动、简单易用,电机只需速度F(sex)和方向(CW/CCW)2个控制端、所有输入引脚都有干扰过滤器、宽工作电压、低电磁干扰辐射。仪表板指针采用VID-29电机驱动,电机内置减速比180/1的齿轮系,能够将数字信号直接准确地转为模拟的显示输出。该电机具有很高的显示精度,其步距角最小可达到1/2(°)。图 3所示为VID6606驱动仪表电路。
FAN100该仪表利用LCD显示时间、燃油消耗量以及产生故障时故障名称,处理器发送的信号先经74HC245功率放大后,然后送至液晶屏F2000LCD显示。 LCD电路如图4所示。
2.3 系统软件设计
FAN100系统软件设计分为主程序、CAN通信、数据采集处理和数据显示等4个模块。主程序模块通过调用各个子模块程序来处理数据处理:CAN通信模块负责发送和接收数据;数据采集及处理模块完成对各种类型数据的采集以及计算;数据显示模块将车速、油压以及信号灯等信息显示在仪表上。
FAN100图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 故障显示
FAN100该仪表能够从CAN总线接收故障代码并对故障代码进行解析,与预先写入的故障码比对后找到对应的故障信息并显示在LCD屏幕上。每一类型的数据都有特定的数据帧ID,系统根据帧ID判断故障产生的位置。如果收到的是单帧故障,则系统来提取总字节数和总包数;如果收到的是多帧故障,系统则连续提取故障诊断报文至特定的字节,然后根据故障代码查找故障类型。
3 结束语
在研究CAN总线和SAE J1939协议的基础上,设计CAN总线汽车仪表。该设计充分利用LM3S2948以及VID6606的功能,较大程度上降低了系统外围电路的设计以及成本。多次实车试验结果表明,相对于常规仪表,该CAN总线仪表具有以下优点:抗干扰能力强,传输速率高,能够保证数据有效、快速、稳定地传输;减少车身布线,硬件方案软件化实现,简化了设计,降低了成本;及时、直观地查看车辆故障;CAN总线将整车构成一个网络系统,能够提升系统的灵活性,方便地增加设备,扩大了可开发的空间。
CAN总线 SAEJ1939协议 汽车仪表 相关文章:
- 对TTCAN的分析(05-26)
- 嵌入式Win CE中CAN总线控制器的驱动设计与实现(05-01)
- μC/OS-II的多任务信息流与CAN总线驱动(07-11)
- 采用CAN总线实现DSP芯片程序的受控加载(11-08)
- 基于DSP的电动汽车CAN总线通讯技术设计(10-08)
- 基于DSP的CANopen通讯协议的实现(01-18)