基于QNX系统的某型外场测试设备设计
2015-05-30曾辉奚国权梁巍
曾辉 奚国权 梁巍
【摘要】 某型外场测试设备基于PC104硬件系统平台,以QNX为操作系统,用于实现某型发射装置电气系统的功能测试。QNX系统是一种微内核、实时性好的操作系统。用QNX自带的应用软件开发平台进行测试软件开发,既能满足设备实时性要求又能满足良好人机交互界面的需求。
【关键词】 外场测试设备 PC/104系统 QNX操作系统
引言
QNX实时操作系统是加拿大QNX公司开发的实时多任务操作系统软件,是一个分布、嵌入式、可规模扩展的微内核实时操作系统。QNX 6.x有一个非常小的微内核[1](约为12K),微内核只提供最基本的服务,包括线程调度、进程间通信以及同步、中断处理,并通过消息传输机制与OS各模块进行通信。这一机制使得QNX能够胜任实时性和开发灵活性要求很高的应用领域,如过程控制、测试设备、数据通信等。而外场测试设备要求人机界面友好、操作简便快捷,测试数据实时显示,而且有较多的时间参数,因此对系统的实时性要求较高。此外还要求体积小携带方便、外场环境适应能力强、功耗小。为满足上述需求,该测试设备选择PC104嵌入式系统作为设备硬件平台,选择QNX系统为设备的操作系统。
一、选用QNX的优势
以QNX为操作系统和PC104嵌入式系统为平台[2]的测试设备具有其他基于Windows操作系统或基于DSP微处理器的外场测试设备不可比拟的优势,主要体现在下述几个方面:首先,QNX系统平台改变了外场测试设备的人机界面模式,传统以单片机或F240等嵌入式系统为核心,配以外围接口电路和液晶屏等组成的测试设备,其人机界面简陋),信息量非常有限,而本系统平台用QNX操作系统自带的软件开发工具能进行图形界面开发,能开发与在Windows系统下VC++等面向对象开发工具一样美观、友好的人机界面,显示更多的测试信息。其次,QNX系统内核小,对CPU板卡要求低,能满足设备功耗低,解決设备散热难的问题,在过去的测试设备中尝试过采用PC104嵌入式平台,配以Windows操作系统研制外场测试设备,却因为Windows系统大而复杂,负担重,对CPU资源要求高,造成设备功耗过大,产生热量多,又因为其外场恶劣的环境因素,导致系统温度高而在外场应用时经常死机,甚至系统崩溃。选用QNX操作系统,CPU可以选择300~500MHz频率,系统运行速度快,功耗低,产生热量较少,不会出现系统死机、崩溃等现象。最后,QNX遵循POSIX实时标准。这不仅意味着代码可移植性,还意味着任何程序员如果具有UNIX、Linux或其它POSIX经验,即使不了解嵌入式实时操作系统,容易上手,也可以轻松地在QNX的环境下进行研发。
二、测试设备需求分析
外场测试设备的功能是通过模拟导弹有关信号和逻辑时序对发射装置和飞机有关线路和发控时序进行检查,另外还能在飞机没有悬挂发射装置之前对飞机相关接口的供电信号、模拟通道、数字通道和控制时序进行检查。
挂上发射装置后发射装置接口检测,通过模拟导弹的各种工作状态,检查发射装置电气接口和功能的正确性,本状态测试信息类型有:1553B总线信息,429总线信息,供电信息,串口信息、I/O采集信号及I/O输出信号。
三、测试设备的硬件构型
根据上述功能需求,测试设备构建了一种基于PC/104结构嵌入式计算机系统的外场设备平台,如图1所示。
四、测试设备软件设计
在启动电源开关后,应用软件自动加载并根据不同接口进入相应的测试主界面。因为QNX系统支持多线程,所以测试软件采用多线程机制完成功能测试[3]。
本软件线程分为三类:主测试线程、界面显示线程、中断处理线程。进入测试界面后启动主测试线程,主线程将各个功能模块贯穿起来作后台测试,界面显示线程响应主测试中测试消息信息,中断处理线程完成设备驱动程序数据传递,其线程间消息传递如图2所示。
中断线程主要是各个板卡驱动程序中处理数据线程,将处理结果传递给主测试线程,提供主线程测试需要的数据(如429总线数据、I/O口位采集数据、串口接受数据等数据信息)。中断处理线程在板卡驱动程序编写中有介绍,这里不再重复介绍。整个测试基本是用这三类线程完成,后台测试,前台显示,底层板卡驱动提供数据,脉络清晰,易读易改。不挂架状态测试程序框架结构与之一样,这里不再描述。
五、结束语
本测试设备以QNX为操作系统匹配PC104嵌入式系统,并且自行研制测试应用软件,目前已交付外场使用。设备以其友好、美观的人机界面和良好的功能、性能测试效果能满足某型发射装置外场测试要求。
而且,随着技术的发展和越来越高的部队作战需求,武器装备正朝着系列化、模块化、组合化和通用化的方向发展,而基于PC/104嵌入式硬件平台同时采取微内核QNX为操作系统的应用解决了用Windows系统导致设备功耗大,散热难问题。这种模块化、通用化的设计思路不论在功能上还是在技术上都有很大的优势。而本系统设计对于不同型号发射装置的外场测试设备,只需进行很少的基于个例的接口适配模块设计和开发设备驱动与应用层软件即可,从而可以大大缩短开发周期,减少维护费用,因此具有很好的应用前景。
参 考 文 献
[1] QNX.Getting Started with QNX Neutrino:A Guidide for Realtime Programmers[EB/OL][2013-01].http://www.qnx.com.
[2] 姜广山,祖家奎.基于QNX的PC104总线设备驱动模块的开发.工业控制计算机,2010,23(12):1-4页
[3] QNX Neutrino RTOS Multicore Processing Users Guide[OL]. [EB/OL][2013-01].http://www.qnx.com.
[4] 王斑,苗克坚.QNX驱动程序的编写.微型电脑应用,2006,22(3):60-62页