改善HMI(HumanMachineInterface)终端性能可降低车辆控制系统操作的复杂性,也可提高驾驶员对自己车辆的控制力。车载HMI通过单一结构中控台,可以减少零部件数量,提高性价比。传统机械式的控制终端正在逐步向直观、便捷的HMI终端发展。2009年6月29日,美国汽车多媒体与通信研究服务公司StrategyAnalytics发布最新研究报告,认为"车载人机界面市场领先者保持强势地位".报告预测,2015年,车载语音和触摸屏市场规模将达到29亿美元。目前,HMI设备,尤其是语音、触觉控制和触摸屏,在汽车市场上被大量应用。
本文报告了一种基于触摸控制与数字显示理念的车载HMI终端,通过在ARM上移植Qt/E接TFT-LCD触摸面板加以实现。
1系统结构介绍
基于ARM和Qt/E的车载HMI终端主要由两个模块组成,分别是ARM处理器与触摸显示屏组成的HMI触控平台和CAN/RS232协议转换器模块。该终端可接入车载CAN网络中实现车载设备的触摸控制与状态信息显示。其结构框图如图1所示。
图1车载HMI终端结构
HMI触控平台主要是将Qt/E交叉编译后移植到ARM平台,调用GUI在触摸面板显示。通过点击触控界面发送控制字,经CAN/RS232网关发送到CAN网络中对各设备进行控制,同时实时采集各设备运行状态参数并显示,便于驾驶员及时了解车辆运行状态。该平台还预留了UART和USB端口分别可外接GPS模块,无线上网卡或U盘设备,实现导航、无线上网和多媒体播放功能。
CAN/RS232协议转换模块主要由MCU、CAN接口与UART接口组成,其中CAN接口采用CAN控制器SJA1000和CAN收发器PCA82C250设计,RS232接口采用MAX232设计,以此实现两种不同总线协议数据帧的透明转换,是HMI终端与CAN网络中各设备交互的纽带。
车载CAN网络模块主要以Polo车CAN试验台为平台,试验台集成了车灯、电动车窗、雨刷和后视镜CAN节点模块。
2Qt/E在ARM上的移植
Qt/E是Trolltech公司专为嵌入式Linux系统开发的图像用户界面(GUI)工具包。提供了窗口操作系统、开发环境、工作辅助应用程序和个性选项等,是基于C++可跨平台的GUI应用程序框架;还提供给开发者建立艺术级GUI所需的功能,开发者可根据需求定制整个软件解决方案。目前,众多手机、PDA、机顶盒都采用Qt作为图形引擎。因此,选择了Qt/E作为HMI终端的开发工具。
2.1交叉编译环境的搭建
采用宿主机Fedora9.0作为开发平台,移植ARM版Qt/E4.7进行设计。因编译Linux内核和Qt/E都需要交叉编译工具链,交叉编译器版本过高过低都会与Qt/E4.7不兼容,最终导致安装失败,所以一定要根据Qt的版本来选择对应的编译器。本系统采用arm-linux-gcc-4.5.1.安装过程如下:
首先,解压arm-linux-gcc-4.5.1安装包,运行#tarxvzfarm-linux-gcc-4.5.1.tgz命令;然后将编译器所在路径加入系统环境变量,运行#gedit/root/.bashrc编辑该文件,修改最后一行为exportPATH=PATH:/usrt/local/arm/4.5.1/binPATH,此时交叉编译器已经安装好;最后执行#arm-linux-gcc-v显示编译器版本信息,验证是否安装成功。
2.2Qt/E4.7的编译与移植
减压ARM版Qt/E安装包到指定目录,然后进入该目录执行编译配置源码命令#echoyes|./configure-opensource-embeddedarm–xplatformqws/linux-arm-g++-no-webkit-qt-libtiff-qt-libmng-qt-mouse-tslib-qt-mouse-pc-no-mouse-linuxtp-no-neon.其中编译ARM平台的embedded版本配置参数为embeddedarm,使用arm-linux交叉编译器进行编译为xplatformqws/linuxarm-g++,qt-mouse-tslib是使用tslib来驱动触摸屏。然后执行make命令进行编译,当编译完成之后执行安装命令makeinstall.最后把安装文件打包#tarcvzfqt4.7.tgz,下载到ARM开发板,并解压到指定目录。至此Qt/E在ARM开发板上移植完成。
安装Linux环境下X86版QtSDK软件-QtCreator2.0进行Qt程序开发,设置为支持Qt4.7ARM的交叉编译。最后将设计好的程序通过编译,生产二进制文件下载到ARM开发板运行,以此实现HMI界面显示功能。
3车载HMI终端的硬件设计