基于IMX8M mini的列控HMI系统功能测试软件平台的设计

(整期优先)网络出版时间:2022-04-06
/ 2

基于 IMX8M mini 的列控 HMI 系统功能测试软件平台的设计

1 杜延鹏,曹朝煜,栾赛,邱岳 2 王海涛

1 中车工业研究院(青岛)有限公司 山东 青岛 266000

2国家高速列车青岛技术创新中心 山东 青岛 266000

摘要:针对列车HMI设备的功能测试需求,设计了一款涵盖HMI系统各功能模块的测试平台,主要介绍了ARM+Linux下QT开发环境的搭建,以及测试平台软件的设计。

关键词:HMI;Linux;QT;测试平台

引言

列控显示屏(又称人机接口,Human Machine Interface,简称HMI)作为列车控制网络系统的重要组成部分,为列车维护人员和司乘人员提供列车的实时状态信息,保障列车安全可靠的运行。本文介绍了一种基于Linux系统采用Qt开发的HMI系统功能测试平台的设计。

  1. QT交叉编译环境搭建

    1. 交叉编译环境搭建

本设计的主要开发任务是在x86 PC机上完成的,而HMI设备仅是目标测试平台。PC主机上的开发环境主要包括交叉编译工具和Qt开发环境。为了在PC机上开发出IMX8M mini平台中可执行的应用程序,在PC机上安装VMware和Linux操作系统,主要的搭建工作都在Linux中完成。

HMI设备的CPU选用IMX8M mini芯片,本文采用官方提供的交叉编译工具链aarch64-poky-linux-gcc,在Linux中安装,安装步骤如下:

  1. 将交叉编译工具拷贝到Linux系统的/opt/imx8mm/toolchains/中并执行安装;

  2. 环境变量中设置交叉编译工具路径。执行vi ~/.bashrc,在文件最后追加语句“export PATH=$PATH:/opt/imx8mm/toolchains/sysroots/aarch64-poky-linux/usr/bin”;

  3. 执行命令source ~/.bashrc,使环境变量立即生效。

    1. Qt环境搭建

      1. 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命令,完成源码的移植。

      1. Qt-Creator安装配置

本文选用Qt Creator 4.3.1进行HMI测试平台的软件开发,Linux系统中安装Qt-Creator后需对编译器和Qmake进行配置,步骤如下:

  1. 新建GCC编译器NXPGCC,并配置成aarch64-poky-linux-gcc;

  2. 新建G++编译器NXPG++,并配置成aarch64-poky-linux-g++;

  3. 将Qt Versions手动设置成交叉编译工具链目录下的qmake;

  4. 新建构建套件IMX,GCC设置为NXPGCC,G++设置为NXPG++,完成Qt-Creator的配置。

  1. 测试平台软件设计与实现

HMI主要用于车载设备的通信和人机交互,功能测试点主要包括通信测试、操作测试、多媒体测试和系统状态测试,如下图:

624d5379aae38_html_2fd994da5fd85a59.gif

图1 HMI系统测试平台功能测试点

    1. 通信测试

      1. 串口通信测试

HMI设备支持RS232、RS422、RS485三种串口通信,操作系统底层驱动配置完成后,上位机对于三种串口的读写无明显差别。由于HMI使用半双工的RS485/RS422芯片,在进行RS485/RS422发送操作时,需将芯片的DE脚使能,发送完毕后关掉使能,使芯片处于数据接收状态。使用Qt自带的QSerialPort类可以很方便的完成串口通信软件的开发,本设计在UI界面上可选择串口设备号(ttymxc0为RS232、ttymxc2为RS485、ttymxc3为RS422),并设置波特率,以点击按键的形式实现打开串口和发送数据操作,使用readSignal读信号绑定槽函数实现串口数据的异步读取。

      1. 以太网通信测试

HMI使用以太网主要用于设备调试和文件传输,测试平台以网卡ping操作和FTP文件传输的方式测试以太网功能。

      1. TRDP通信测试

TRDP通信测试模块主要用于测试TRDP网卡的通信功能。使用TCNOpen开源源码实现TRDP的发送端/接收端参数设置,包括ComID、发送/接收周期、发送/接收字节数、发送方式(单播/组播)、目标/源IP。TRDP过程数据通信主要流程如下:

624d5379aae38_html_fddf800f744ffc09.gif

图2 TRDP过程数据通信流程

    1. 操作测试

      1. 触摸屏测试

触摸屏测试是为了测试屏幕各位置触点是否正常。在触摸屏测试界面上设置16*16共256个小按键,并依次进行排号。触摸任意按键后,在屏幕上显示出该按键的编号,以证明识别触点正确。

      1. 按键测试

HMI前面板上设有8个按键,依次印有1~8标识,测试平台软件切换到按键测试界面,按下任意按键后,在屏幕上显示出该按键的编号,以证明按键功能正常。

    1. 多媒体测试

      1. LCD测试

LCD测试的目的是为了检测屏幕是否有坏点,开启测试后,分别全屏显示纯白色、纯黑色、红色、绿色和黄色的画面,通过点击屏幕进行颜色切换,检查在各种颜色背景下是否有异色点。

      1. 音视频测试

HMI设备有播放高清视频的需求,音频和视频可以通过播放有声视频的方式来测试。使用Qt自带的QMediaPlayer播放h264/h265等编码的高清视频时会有卡顿和丢帧的现象,因此本文选用Gstreamer框架实现高清视频的播放,具体步骤如下:

  1. 使用aarch64-poky-linux-编译器对gstreamer1.10、gst-plugins-base、gst-plugins-good源码进行交叉编译和安装;

  2. Qt-Creator的pro文件中引用Gstreamer库文件;

  3. Qt-Creator创建QWidget窗口,并设置播放、暂停、停止按键,通过与pipeline联动的方式实现视频的播放和控制。

      1. 蜂鸣器测试

蜂鸣器测试分为连续测试和单次测试两种。

  1. 连续测试。测试界面中设置蜂鸣时长和间歇时长后开启测试,蜂鸣器会发出间断蜂鸣声;

  2. 单次测试。测试界面中开启单次测试后,蜂鸣器会发出连续蜂鸣声,直至停止测试。

    1. 系统状态测试

      1. 看门狗测试

看门狗主要功能是在系统出现问题时自动复位。在测试界面上设置计时时长并开启看门狗后,系统开始倒计时,倒计时结束后系统会自动重启。倒计时期间点击喂狗按键后,重新进行倒计时。

      1. 指示灯测试

HMI设备共有5个指示灯,在操作系统中分别对应的文件名为mmc0、mmc1、mmc2、mmc3、mmc4,在测试平台界面中点击对应指示灯的亮/灭按键,向这些文件中写入“1”或者“0”可以控制对应指示灯的亮/灭。

  1. 结束语

本文设计的HMI系统功能测试软件平台集成了HMI外围通信接口、人机交互及系统状态功能,通过一套软件即可完成设备的测试。

参考文献

[1] 基于Gstreamer的视频采集编码与传输系统的设计,张雷,崔雪峰. 电脑与信息技术. 2021,29(02).

[2] 基于ARM9平台上Qt/Embedded的移植与开发,吴燕燕,贺锋涛. 液晶与显示. 2013,28(02).