新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > 基于SAEJ1939协议的CAN总线汽车仪表设计

基于SAEJ1939协议的CAN总线汽车仪表设计

作者:时间:2013-01-31来源:网络收藏


利用LCD显示时间、燃油消耗量以及产生故障时故障名称,处理器发送的信号先经74HC245功率放大后,然后送至液晶屏F2000LCD显示。LCD电路如图4所示。

LCD屏电路连接

2.3 系统软件

系统软件分为主程序、通信、数据采集处理和数据显示等4个模块。主程序模块通过调用各个子模块程序来处理数据处理:通信模块负责发送和接收数据;数据采集及处理模块完成对各种类型数据的采集以及计算;数据显示模块将车速、油压以及信号灯等信息显示在上。

主程序流程及CAN总线数据接收流程


图5为系统主程序流程,该系统主程序流程分为:

1)系统初始化。系统初始化主要包括初始化系统时钟、节点、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总线将整车构成一个网络系统,能够提升系统的灵活性,方便地增加设备,扩大了可开发的空间。


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭