车载数据无线传输及其平视显示设计
2019-07-25
(1.西北工业大学 软件与微电子学院,西安 710129;2.西北工业大学 计算机学院,西安 710129)
0 引言
随着社会经济的不断发展,汽车已经成为人们日常生产、生活中不可或缺的交通工具[1],但高发的交通事故给人们的生命安全和财产安全也带来了严重的危害。世界卫生组织提供的资料显示,全球每年因道路交通事故死亡人数约有125万,相当于全球每天有3500人因交通事故死亡,数据显示,每年还有几千万人因此受伤或致残,其中,交通事故是15~29岁年轻人死亡的首要原因[2]。因此,获取汽车的详细行驶状况,对数目庞大的汽车实现高效地管理,提高汽车行驶的安全性,降低交通事故的发生率已成为未来汽车发展研究的一个主要研究方向。
据资料显示,驾驶员将视线从前方转移到仪表盘查看相关信息需要3到5秒,在汽车行驶过程中,这段时间属于驾驶盲区,尤其是车辆在高速行驶时,3到5秒的盲区时间是非常危险的。车载数据无线传输及其平视显示系统的应用可以很好地解决这一问题,它不仅可以将车载数据无线传输至客户端,而且还可以将驾驶过程中的车载数据(如汽车行驶速度、发动机转速等信息)投射在前风窗玻璃上,使驾驶员不必低头就可获取到其所需的相关车载信息,从而避免了驾驶员注意力的分散行为,大大缩短了驾驶员的视野盲区时间,极大地提高了驾驶的舒适性和道路交通的安全性[3-4]。
近几年来,车联网技术迅速发展,在实现车与人之间的数据通信与交互方面,车载数据无线传输及其平视显示系统的开发与研究成为了各大汽车厂商关注的热点。但是目前,国内市场上的车载数据无线传输及其平视显示系统的显示内容、图标样式及布局、显示方法等大不相同,在数据传输效率、用户体验感与交互性等方面也有所欠缺[5-6]。因此,本文结合目前国内外车载数据无线传输及其平视显示系统的研究现状,设计并实现了一套结构简单,成本低廉,传输高效稳定的车载数据无线传输及其平视显示系统。
1 车载平视显示器的设计
1.1 设计原则
汽车人机工程学,是从汽车设计角度出发,研究人(驾驶员、乘客等)在汽车使用过程中的生理、心理的变化,以及在人-车-环境中各种因素的相互作用,指导汽车及其部件设计(包括布置和设备等),目的在于设计出尽可能满足人的需求,具有良好的舒适性、安全性的汽车产品[4-7]。本文利用汽车人机工程学的相关研究成果,结合目前国内外车载平视显示器(head up display,HUD)的研究现状及发展水平,提出了一套符合人机交互设计方法的车载HUD设计原则,具体体现在以下三个方面:
1)界面简洁清晰。
据相关资料显示,驾驶员在驾驶汽车时依靠视觉获取的信息占其所需总信息量的比例高达90%,因此在对车载HUD进行界面设计时,应做好充分的用户需求调研工作,根据用户的需求对显示在HUD上的车载信息数目进行控制,设计出一个简洁清晰的HUD界面,从而降低驾驶员的认知负荷,提高道路交通的安全性。
2)实时性强。
在驾驶汽车的过程中,若驾驶员能够通过车载HUD实时获取到其所需要的准确的车载数据信息,则其会对当前的汽车运行状况有一个较为清晰明确的判断,从而使驾驶员能够及时调整对汽车的一系列操作和控制行为,提高驾驶的安全性。所以对于车载HUD而言,数据传输显示应具有很强的实时性。
3)注重用户体验感与交互性。
随着科学技术的不断发展,人们对汽车各方面的要求也越来越高,汽车厂商在设计车载HUD时,应充分利用汽车人机工程学的相关研究成果,注重驾驶员驾驶汽车时生理和心理的需求变化,设计出扁平、理性化的视觉交互界面,最大程度地减少驾驶员的视觉疲劳,使其获得更好的视觉体验,从而实现人机交互的友好性。
1.2 界面原型
通过汽车的OBDII接口可获取到CAN总线上的实时汽车工况数据, 在进行了充分的用户调研与车载数据信息重要程度的分析之后,决定将汽车运行速度、发动机转速、瞬时油耗、平均油耗、剩余油量、冷却液温度、单次行驶里程以及总行驶里程等8个汽车实时运行数据显示在车载HUD界面(即USART HMI串口屏界面)上。
本文使用USART HMI串口屏设计软件进行界面的设计与开发,结合在1.1小节中提出的车载HUD的设计原则,考虑到汽车运行速度和发动机转速是驾驶员最为关心的车载数据,所以在界面布局上采用了较大的空间,力求做到清晰可辨,而其他六个驾驶员关心但较为次要的车载数据占用了较小的空间进行集中显示,同时,考虑到车载HUD的投射显示原理,本文还设计了一个与之对应的镜像界面原型,如图1所示。
图1 车载HUD界面(镜像界面)原型
2 系统总体架构与程序设计
2.1 系统总体架构
本文设计实现的车载数据无线传输及其平视显示系统总体架构如图2所示,具体地,该系统分为车载数据采集、车载数据处理、车载数据显示与车载数据无线传输四个模块。其中,车载数据采集模块利用OBD-II接口实时采集汽车CAN总线数据,并对其进行解析与转换;车载数据处理模块利用Arduino Mega2560 R3开发板对串口传输过来的车载数据进行分割提取与处理;车载数据显示模块利用USART HMI串口屏显示通过硬件串口传输的Arduino Mega2560 R3开发板处理好的车载数据;车载数据无线传输模块利用ESP8266-01模块所创建的wifi热点,将车载数据实时上传到客户端(如手机端,PC端等),实现车载数据的无线传输通信。
注:Arduino Mega2560 R3开发板的串口1接OBD-II接口,读取其采集的数据;串口2接USART HMI串口屏,显示车载数据;串口3接ESP8266-01模块,传输车载数据。
图2 系统总体架构
2.2 车载数据采集模块
在车载数据采集模块中,利用OBD-II接口实时采集汽车CAN总线数据。OBD-II有九种不同的工作模式,本文主要采用第一种工作模式来采集汽车运行的动态数据,这些来自汽车动力系统的汽车运行数据是由ISO标准规定的参数标识符(Parameter Identifiers, PID)来定义的,其中每一个PID代表一个变量参数,在汽车CAN总线上是用一个8位的数据来代表该参数,例如PID 0x05代表了发动机冷却液的温度。
在ISO标准中定义了大量的PID参数,但却并不要求汽车厂商实现所有的PID参数,通过PID 0x00、0x20、0x40、0x60、0x80、0xA0等就可以查询到某一个汽车厂商的ECU具体支持的PID参数情况,如表1所示。待获取到汽车厂商具体支持的PID参数后,向汽车的ECU发送这些PID参数,通过ECU回复的响应就可以读取相关PID参数的具体数值,进而解析出相应的汽车运行时的动态数据[8]。
表1 查询支持的PID参数
2.3 车载数据处理模块
在车载数据处理模块中,利用硬件串口将OBD-II接口采集到的车载数据传输至Arduino Mega2560 R3开发板,并对其进行进一步地分割提取与处理,从而实现李扬在[9]中提到的判断急加速(急减速)等相关操作,其具体流程如图3所示。
图3 急加速(急减速)判断流程图
2.4 车载数据显示模块
在车载数据显示模块中,Arduino Mega2560 R3开发板将串口1缓存区的车载数据处理后输出至串口2,从而将车载数据显示在USART HMI串口屏上,具体流程如图4所示。
图4 车载数据显示流程图
2.5 车载数据无线传输模块
在车载数据无线传输模块中,利用AT指令将ESP8266-01模块的工作模式设置为AP模式,即ESP8266-01模块作为服务器,客户端连接其所创建的wifi热点,根据串口3缓存区的响应数据判断客户端是否连接成功,然后将由串口1获取的车载数据输出至串口3,将车载数据实时传输至客户端(如手机端,PC端等),从而实现车载数据的无线传输通信,具体流程如图5所示。
3 实验与验证
3.1 OBDII模拟器仿真测试
3.1.1 实验准备
1)软件准备。
车载数据无线传输及其平视显示系统仿真实验平台所需的软件包括:OBDII模拟器调试工具、Arduino IDE、USART HMI串口屏设计软件、串口调试助手、网络调试助手等。
2)硬件准备。
车载数据无线传输及其平视显示系统仿真实验平台所需的硬件包括:OBDII模拟器、OBDII串口模块、Arduino Mega2560 R3开发板、USART HMI串口屏、ESP8266-01模块、面包板以及杜邦线若干。
首先将OBDII串口模块与OBDII模拟器的CAN物理接口相连,然后通过串口将OBDII串口模块、USART HMI串口屏、ESP8266-01模块与Arduino Mega2560 R3开发板相连,搭建好的仿真试验平台如图6所示。该仿真测试平台利用OBDII模拟器模拟汽车OBD-II接口的各种参数状态信息,进行系统软件和硬件的整体调试,使开发者不需要在开发的过程中为了测试功能模块就到实车上进行实验,从而提高了测试的效率[10]。
图6 OBDII模拟器仿真试验平台
3.1.2 实验过程与结果
通过USB转TTL接口将USART HMI串口屏与电脑相连,将由USART HMI串口屏设计软件设计好的界面原型程序下载至串口屏上,待程序下载完成后串口屏上即可正确显示设计好的界面原型。
通过12 V电源适配器接口给OBDII模拟器上电,可以看到模拟器上的屏幕、协议指示灯、点火指示灯点亮,代表该设备正常工作,与其CAN物理接口相连的OBDII串口模块的绿灯点亮代表该模块上电工作。使用USB转串口线给Arduino Mega2560 R3开发板上电,可以看到连接的ESP8266-01模块上电后蓝灯微弱闪烁后熄灭,红灯常亮。
其仿真测试结果如图7所示。将Arduino IDE串口监视器获取到的车载数据与USART HMI串口屏、模拟客户端(即PC端的网络调试助手)接收到的数据进行对比分析,结果表明,OBDII模拟器模拟的、OBDII串口模块解析的汽车工况数据由Arduino Mega2560 R3开发板分析与处理后,可以准确地判断汽车急加速(急减速)次数,并将重要的车载数据实时显示在USART HMI串口屏上,同时可以由ESP8266-01模块所创建的wifi热点实时传输至模拟的客户端上,从而验证了本系统在功能上的正确性。
图7 OBDII模拟器仿真测试结果
3.2 实车测试
3.2.1 实验准备
在3.1节的仿真试验平台测试无误后,对本系统进行实车测试,本次实车测试选用的车型为别克,所需的软件为Arduino IDE,USART HMI串口屏设计软件等;硬件包括:OBDII串口模块、Arduino Mega2560 R3开发板、USART HMI串口屏、ESP8266-01模块、面包板以及杜邦线若干。
首先将OBDII串口模块与汽车上的OBD接口相连,然后通过串口将OBDII串口模块、USART HMI串口屏、ESP8266-01模块与Arduino Mega2560 R3开发板相连,搭建好的实车测试平台如图8所示。
图8 实车测试平台
3.2.2 实验过程与结果
实车测试的过程记录如图9所示,将Arduino IDE串口监视器获取到的车载数据与USART HMI串口屏、客户端(在本次实车测试中即为Android手机端)接收到的数据进行对比分析,结果表明,本文设计的车载数据无线传输及其平视显示系统能够准确判断汽车的急加速(急减速)次数,并将驾驶员所需的车载数据实时准确地显示在车载HUD(即USART HMI串口屏)上,同时也可以通过ESP8266-01模块所创建的wifi热点实时传输至客户端,从而验证了本系统在性能上的可靠性和实用性。
图9 实车测试过程
4 总结与展望
4.1 总结
本文结合目前国内外车载数据无线传输及其平视显示技术的研究现状,提出了一套符合人机交互设计方法的车载平视显示器的设计原则并设计出了界面原型,实现了一套车载数据无线传输及其平视显示系统,该系统利用Arduino Mega2560 R3开发板处理汽车OBD-II接口上获取到的来自CAN总线的汽车工况数据,从而实现对三急操作(即急加速、急减速和急转弯)中的急加速、急减速的准确判断,并将驾驶员所需要的车载数据实时准确地显示在车载HUD上,同时可通过ESP8266-01模块所创建的wifi热点将车载数据实时传输至客户端(如手机端,PC端等),从而实现了车载数据的无线传输通信与平视显示。最后,对本系统进行了OBDII模拟器仿真测试与实车测试,验证了本系统在功能上的正确性以及在性能上的可靠性和实用性。
4.2 展望
虽然本文实现了车载数据无线传输及其平视显示系统的基本功能,但由于时间及本人能力有限,该系统还存在着一些不足,未来需要进一步研究与改善的内容有:
1)由于ESP8266-01模块的硬件性能有限,加之道路环境存在信号干扰等因素的影响,在实车测试时偶尔会出现车载数据传输的延时或丢包现象,后期可考虑使用传输性能更加稳定的wifi模块实现车载数据的无线传输通信。
2)可通过在Arduino Mega2560 R3开发板上添加额外的传感器获取汽车OBDII接口无法采集到的车载数据信息,例如,后期可考虑添加加速度传感器来判断三急操作中的急转弯,从而实现对三急操作的完整判断。