1.引言
随着汽车行业的发展,TFT液晶汽车仪表盘应运而生,相较传统仪表,TFT液晶仪表可谓是有了长足的进步与发展,液晶仪表盘整合了车辆诸多功能和服务,按照驾驶者需求进行个性化设定、或根据环境重要性进行合理搭配并显示,是与驾驶者之间的人机交互系统。TFT液晶仪表盘用屏幕图像取代了指针、段码等显示信息,其优点是驾驶者可以根据需求选择信息,功能更加强大、灵活,更容易同网络、外设及其他应用相连接。
基于上述变化,单一微控制器难以完成电源管理,信号采集,CAN网络数据交互及图形图像显示,所以选取两个控制器来完成整体功能。主控系统完成模拟信号采集,时钟芯片驱动,蜂鸣器报警,LED指示,里程存储,CAN网络数据处理;ARM图像处理系统需根据交互的串口数据显示相关图像信息。
为了使得汽车仪表的显示信息可靠准确,软件开发前需要编制良好的双机通信协议。
2.双机串口通信协议
2.1标准串口通信参数
比特率:115200bps;起始位:1bit;数据位:8bit;停止位:1bit;效验位:无
2.2数据帧传输格式
以下用ARM表示ARM图像处理系统,MCU表示主控系统。数据帧格式定义为:2Byte帧头+2Byte帧长度+1Byte帧类型+帧数据+1Byte校验和。
①2Byte帧头:ARM→MCU 固定为:0xFF+0xAA;MCU→ARM 固定为:0xFF+0x55;
②2Byte帧长度:高8位+低8位,所有数据个数(包含数据长度帧);
③1Byte帧类型:表1为不同帧类型的定义列表。
表1 帧类型定义
④帧数据:帧数据格式为1Byte Opt Code +1Byte Fun Code +nByte Data
Opt Code表征操作对象大类;Fun Code表征具体功能小类;Data表征交互的有效数据。
⑤1Byte帧校验:校验和需满足公式1:
(2byte帧头+2byte帧长度+1byte帧类型+nByte数据+1byte 8位校验和)%256=0xFF (公式1)
数据帧示例如表2。
表2 数据帧示例
2.3 ARM与MCU之间数据传输顺序
当MCU采集相应信息,满足一定条件后,开启ARM系统供电。ARM系统启动后立即发送“连接请求”命令给MCU,通过这个握手请求建立起MCU和ARM之间的通信桥梁。发送端每发完一帧数据,则等待接收端的确认信息,然后再发送下一数据帧,若等待超时(超时时间500ms),则重发该帧,重复次数为5次,重复5次后仍然无法收到应答帧,则MCU立即对ARM采取复位操作,重新开始连接。如果接收到“失败重传”,则重新发送此数据帧。传输顺序参见图1。
图1 数据传输顺序图
3.软件实现
为保证可靠通信,如果ARM端处于“未连接状态”时间超时,则重新发送“连接请求”,防止MCU系统遗漏应答;如果收到数据帧总是校验不合格,则要重新发送“连接请求命令”,以通知MCU当前通信不可靠,需要重新建立连接。此时MCU也可以采取其它干预措施来保证串口通信的可靠进行。
软件中开辟一个最大帧长度二倍的缓存区,在接收中断函数中接收到的数据依次放入这个缓存区内,并记录“放入索引”值。主任务查询缓存区,根据“放入索引”和“读取索引”在另外一个区域顺序排列缓存区的数据。发现符合帧格式的数据,交给数据帧接收软件处理即可,同时还需修正“读取索引”值。此方法可以正常接收帧长度不同的数据帧。
下面是ARM端的串口通信软件流程图。串口通信建立连接流程图见图2,串口通信数据帧接收软件流程图见图3,串口通信发送数据帧软件流程图见图4。
图2 串口通信建立连接软件流程图
图3 串口通信数据帧接受软件流程图
图4 串口通信发送数据帧流程图
4.结论
为了完成各种条件下的测试,运用串口调试工具来模拟“校验和”错误,“数据长度”等不合格条件,软件均能达到预定效果。测试结果如表3所示,结果显示,本文编制的通信协议能充分保证液晶仪表在各种工况下可靠稳定地传输数据。此串口通信协议可以拓展到蓝牙通信等其它应用领域。
表3 测试结果
参考文献:
[1] 邢磊.基于CAN总线和ARM的全液晶汽车仪表系统设计[D].河南师范大学.2023.
[2] 李菲,王飞,等.低静态功耗TFT液晶汽车仪表的硬件系统设计[J].电脑知识与技术.2021,17 (06):229-230.
[3] 朱海艺.基于单片机技术与CAN总线结合的汽车仪表设计[J].信息与电脑(理论版).2020,32 (24):1-4.
[4] 谭丽蕊,董加付,等.低成本高可靠性的TFT液晶汽车仪表设计开发[J].电子器件.2019,42 (03):788-792.