1 中车工业研究院(青岛)有限公司 山东 青岛 266000
摘要:针对列车HMI设备的功能测试需求,设计了一款涵盖HMI系统各功能模块的测试平台,主要介绍了ARM+Linux下QT开发环境的搭建,以及测试平台软件的设计。
关键词:HMI;Linux;QT;测试平台
引言
列控显示屏(又称人机接口,Human Machine Interface,简称HMI)作为列车控制网络系统的重要组成部分,为列车维护人员和司乘人员提供列车的实时状态信息,保障列车安全可靠的运行。本文介绍了一种基于Linux系统采用Qt开发的HMI系统功能测试平台的设计。
QT交叉编译环境搭建
交叉编译环境搭建
本设计的主要开发任务是在x86 PC机上完成的,而HMI设备仅是目标测试平台。PC主机上的开发环境主要包括交叉编译工具和Qt开发环境。为了在PC机上开发出IMX8M mini平台中可执行的应用程序,在PC机上安装VMware和Linux操作系统,主要的搭建工作都在Linux中完成。
HMI设备的CPU选用IMX8M mini芯片,本文采用官方提供的交叉编译工具链aarch64-poky-linux-gcc,在Linux中安装,安装步骤如下:
将交叉编译工具拷贝到Linux系统的/opt/imx8mm/toolchains/中并执行安装;
环境变量中设置交叉编译工具路径。执行vi ~/.bashrc,在文件最后追加语句“export PATH=$PATH:/opt/imx8mm/toolchains/sysroots/aarch64-poky-linux/usr/bin”;
执行命令source ~/.bashrc,使环境变量立即生效。
Qt环境搭建
Qt源码移植
本文选用5.9.5版本的qt源码进行交叉编译,在源码目录mkspecs/linux-aarch64-gnu-g++中修改编译器为aarch64-poky-linux-,配置编译参数./configure -release -extprefix /home/ubuntu/linux-imx-qt -xplatform linux-aarch64-gnu-g++ -nomake tests -no-compile-examples -nomake examples后分别执行make和make install命令,完成源码的移植。
本文选用Qt Creator 4.3.1进行HMI测试平台的软件开发,Linux系统中安装Qt-Creator后需对编译器和Qmake进行配置,步骤如下:
新建GCC编译器NXPGCC,并配置成aarch64-poky-linux-gcc;
新建G++编译器NXPG++,并配置成aarch64-poky-linux-g++;
将Qt Versions手动设置成交叉编译工具链目录下的qmake;
新建构建套件IMX,GCC设置为NXPGCC,G++设置为NXPG++,完成Qt-Creator的配置。
测试平台软件设计与实现
HMI主要用于车载设备的通信和人机交互,功能测试点主要包括通信测试、操作测试、多媒体测试和系统状态测试,如下图:
图1 HMI系统测试平台功能测试点
通信测试
串口通信测试
HMI设备支持RS232、RS422、RS485三种串口通信,操作系统底层驱动配置完成后,上位机对于三种串口的读写无明显差别。由于HMI使用半双工的RS485/RS422芯片,在进行RS485/RS422发送操作时,需将芯片的DE脚使能,发送完毕后关掉使能,使芯片处于数据接收状态。使用Qt自带的QSerialPort类可以很方便的完成串口通信软件的开发,本设计在UI界面上可选择串口设备号(ttymxc0为RS232、ttymxc2为RS485、ttymxc3为RS422),并设置波特率,以点击按键的形式实现打开串口和发送数据操作,使用readSignal读信号绑定槽函数实现串口数据的异步读取。
以太网通信测试
HMI使用以太网主要用于设备调试和文件传输,测试平台以网卡ping操作和FTP文件传输的方式测试以太网功能。
TRDP通信测试
TRDP通信测试模块主要用于测试TRDP网卡的通信功能。使用TCNOpen开源源码实现TRDP的发送端/接收端参数设置,包括ComID、发送/接收周期、发送/接收字节数、发送方式(单播/组播)、目标/源IP。TRDP过程数据通信主要流程如下:
图2 TRDP过程数据通信流程
操作测试
触摸屏测试
触摸屏测试是为了测试屏幕各位置触点是否正常。在触摸屏测试界面上设置16*16共256个小按键,并依次进行排号。触摸任意按键后,在屏幕上显示出该按键的编号,以证明识别触点正确。
按键测试
HMI前面板上设有8个按键,依次印有1~8标识,测试平台软件切换到按键测试界面,按下任意按键后,在屏幕上显示出该按键的编号,以证明按键功能正常。
多媒体测试
LCD测试
LCD测试的目的是为了检测屏幕是否有坏点,开启测试后,分别全屏显示纯白色、纯黑色、红色、绿色和黄色的画面,通过点击屏幕进行颜色切换,检查在各种颜色背景下是否有异色点。
音视频测试
HMI设备有播放高清视频的需求,音频和视频可以通过播放有声视频的方式来测试。使用Qt自带的QMediaPlayer播放h264/h265等编码的高清视频时会有卡顿和丢帧的现象,因此本文选用Gstreamer框架实现高清视频的播放,具体步骤如下:
使用aarch64-poky-linux-编译器对gstreamer1.10、gst-plugins-base、gst-plugins-good源码进行交叉编译和安装;
Qt-Creator的pro文件中引用Gstreamer库文件;
Qt-Creator创建QWidget窗口,并设置播放、暂停、停止按键,通过与pipeline联动的方式实现视频的播放和控制。
蜂鸣器测试
蜂鸣器测试分为连续测试和单次测试两种。
连续测试。测试界面中设置蜂鸣时长和间歇时长后开启测试,蜂鸣器会发出间断蜂鸣声;
单次测试。测试界面中开启单次测试后,蜂鸣器会发出连续蜂鸣声,直至停止测试。
系统状态测试
看门狗测试
看门狗主要功能是在系统出现问题时自动复位。在测试界面上设置计时时长并开启看门狗后,系统开始倒计时,倒计时结束后系统会自动重启。倒计时期间点击喂狗按键后,重新进行倒计时。
指示灯测试
HMI设备共有5个指示灯,在操作系统中分别对应的文件名为mmc0、mmc1、mmc2、mmc3、mmc4,在测试平台界面中点击对应指示灯的亮/灭按键,向这些文件中写入“1”或者“0”可以控制对应指示灯的亮/灭。
结束语
本文设计的HMI系统功能测试软件平台集成了HMI外围通信接口、人机交互及系统状态功能,通过一套软件即可完成设备的测试。
参考文献