曾輝 奚國權(quán) 梁巍

【摘要】 某型外場測試設(shè)備基于PC104硬件系統(tǒng)平臺(tái),以QNX為操作系統(tǒng),用于實(shí)現(xiàn)某型發(fā)射裝置電氣系統(tǒng)的功能測試。QNX系統(tǒng)是一種微內(nèi)核、實(shí)時(shí)性好的操作系統(tǒng)。用QNX自帶的應(yīng)用軟件開發(fā)平臺(tái)進(jìn)行測試軟件開發(fā),既能滿足設(shè)備實(shí)時(shí)性要求又能滿足良好人機(jī)交互界面的需求。
【關(guān)鍵詞】 外場測試設(shè)備 PC/104系統(tǒng) QNX操作系統(tǒng)
引言
QNX實(shí)時(shí)操作系統(tǒng)是加拿大QNX公司開發(fā)的實(shí)時(shí)多任務(wù)操作系統(tǒng)軟件,是一個(gè)分布、嵌入式、可規(guī)模擴(kuò)展的微內(nèi)核實(shí)時(shí)操作系統(tǒng)。QNX 6.x有一個(gè)非常小的微內(nèi)核[1](約為12K),微內(nèi)核只提供最基本的服務(wù),包括線程調(diào)度、進(jìn)程間通信以及同步、中斷處理,并通過消息傳輸機(jī)制與OS各模塊進(jìn)行通信。這一機(jī)制使得QNX能夠勝任實(shí)時(shí)性和開發(fā)靈活性要求很高的應(yīng)用領(lǐng)域,如過程控制、測試設(shè)備、數(shù)據(jù)通信等。而外場測試設(shè)備要求人機(jī)界面友好、操作簡便快捷,測試數(shù)據(jù)實(shí)時(shí)顯示,而且有較多的時(shí)間參數(shù),因此對(duì)系統(tǒng)的實(shí)時(shí)性要求較高。此外還要求體積小攜帶方便、外場環(huán)境適應(yīng)能力強(qiáng)、功耗小。為滿足上述需求,該測試設(shè)備選擇PC104嵌入式系統(tǒng)作為設(shè)備硬件平臺(tái),選擇QNX系統(tǒng)為設(shè)備的操作系統(tǒng)。
一、選用QNX的優(yōu)勢
以QNX為操作系統(tǒng)和PC104嵌入式系統(tǒng)為平臺(tái)[2]的測試設(shè)備具有其他基于Windows操作系統(tǒng)或基于DSP微處理器的外場測試設(shè)備不可比擬的優(yōu)勢,主要體現(xiàn)在下述幾個(gè)方面:首先,QNX系統(tǒng)平臺(tái)改變了外場測試設(shè)備的人機(jī)界面模式,傳統(tǒng)以單片機(jī)或F240等嵌入式系統(tǒng)為核心,配以外圍接口電路和液晶屏等組成的測試設(shè)備,其人機(jī)界面簡陋),信息量非常有限,而本系統(tǒng)平臺(tái)用QNX操作系統(tǒng)自帶的軟件開發(fā)工具能進(jìn)行圖形界面開發(fā),能開發(fā)與在Windows系統(tǒng)下VC++等面向?qū)ο箝_發(fā)工具一樣美觀、友好的人機(jī)界面,顯示更多的測試信息。其次,QNX系統(tǒng)內(nèi)核小,對(duì)CPU板卡要求低,能滿足設(shè)備功耗低,解決設(shè)備散熱難的問題,在過去的測試設(shè)備中嘗試過采用PC104嵌入式平臺(tái),配以Windows操作系統(tǒng)研制外場測試設(shè)備,卻因?yàn)閃indows系統(tǒng)大而復(fù)雜,負(fù)擔(dān)重,對(duì)CPU資源要求高,造成設(shè)備功耗過大,產(chǎn)生熱量多,又因?yàn)槠渫鈭鰫毫拥沫h(huán)境因素,導(dǎo)致系統(tǒng)溫度高而在外場應(yīng)用時(shí)經(jīng)常死機(jī),甚至系統(tǒng)崩潰。選用QNX操作系統(tǒng),CPU可以選擇300~500MHz頻率,系統(tǒng)運(yùn)行速度快,功耗低,產(chǎn)生熱量較少,不會(huì)出現(xiàn)系統(tǒng)死機(jī)、崩潰等現(xiàn)象。最后,QNX遵循POSIX實(shí)時(shí)標(biāo)準(zhǔn)。這不僅意味著代碼可移植性,還意味著任何程序員如果具有UNIX、Linux或其它POSIX經(jīng)驗(yàn),即使不了解嵌入式實(shí)時(shí)操作系統(tǒng),容易上手,也可以輕松地在QNX的環(huán)境下進(jìn)行研發(fā)。
二、測試設(shè)備需求分析
外場測試設(shè)備的功能是通過模擬導(dǎo)彈有關(guān)信號(hào)和邏輯時(shí)序?qū)Πl(fā)射裝置和飛機(jī)有關(guān)線路和發(fā)控時(shí)序進(jìn)行檢查,另外還能在飛機(jī)沒有懸掛發(fā)射裝置之前對(duì)飛機(jī)相關(guān)接口的供電信號(hào)、模擬通道、數(shù)字通道和控制時(shí)序進(jìn)行檢查。
掛上發(fā)射裝置后發(fā)射裝置接口檢測,通過模擬導(dǎo)彈的各種工作狀態(tài),檢查發(fā)射裝置電氣接口和功能的正確性,本狀態(tài)測試信息類型有:1553B總線信息,429總線信息,供電信息,串口信息、I/O采集信號(hào)及I/O輸出信號(hào)。
三、測試設(shè)備的硬件構(gòu)型
根據(jù)上述功能需求,測試設(shè)備構(gòu)建了一種基于PC/104結(jié)構(gòu)嵌入式計(jì)算機(jī)系統(tǒng)的外場設(shè)備平臺(tái),如圖1所示。
四、測試設(shè)備軟件設(shè)計(jì)
在啟動(dòng)電源開關(guān)后,應(yīng)用軟件自動(dòng)加載并根據(jù)不同接口進(jìn)入相應(yīng)的測試主界面。因?yàn)镼NX系統(tǒng)支持多線程,所以測試軟件采用多線程機(jī)制完成功能測試[3]。
本軟件線程分為三類:主測試線程、界面顯示線程、中斷處理線程。進(jìn)入測試界面后啟動(dòng)主測試線程,主線程將各個(gè)功能模塊貫穿起來作后臺(tái)測試,界面顯示線程響應(yīng)主測試中測試消息信息,中斷處理線程完成設(shè)備驅(qū)動(dòng)程序數(shù)據(jù)傳遞,其線程間消息傳遞如圖2所示。
中斷線程主要是各個(gè)板卡驅(qū)動(dòng)程序中處理數(shù)據(jù)線程,將處理結(jié)果傳遞給主測試線程,提供主線程測試需要的數(shù)據(jù)(如429總線數(shù)據(jù)、I/O口位采集數(shù)據(jù)、串口接受數(shù)據(jù)等數(shù)據(jù)信息)。中斷處理線程在板卡驅(qū)動(dòng)程序編寫中有介紹,這里不再重復(fù)介紹。整個(gè)測試基本是用這三類線程完成,后臺(tái)測試,前臺(tái)顯示,底層板卡驅(qū)動(dòng)提供數(shù)據(jù),脈絡(luò)清晰,易讀易改。不掛架狀態(tài)測試程序框架結(jié)構(gòu)與之一樣,這里不再描述。
五、結(jié)束語
本測試設(shè)備以QNX為操作系統(tǒng)匹配PC104嵌入式系統(tǒng),并且自行研制測試應(yīng)用軟件,目前已交付外場使用。設(shè)備以其友好、美觀的人機(jī)界面和良好的功能、性能測試效果能滿足某型發(fā)射裝置外場測試要求。
而且,隨著技術(shù)的發(fā)展和越來越高的部隊(duì)作戰(zhàn)需求,武器裝備正朝著系列化、模塊化、組合化和通用化的方向發(fā)展,而基于PC/104嵌入式硬件平臺(tái)同時(shí)采取微內(nèi)核QNX為操作系統(tǒng)的應(yīng)用解決了用Windows系統(tǒng)導(dǎo)致設(shè)備功耗大,散熱難問題。這種模塊化、通用化的設(shè)計(jì)思路不論在功能上還是在技術(shù)上都有很大的優(yōu)勢。而本系統(tǒng)設(shè)計(jì)對(duì)于不同型號(hào)發(fā)射裝置的外場測試設(shè)備,只需進(jìn)行很少的基于個(gè)例的接口適配模塊設(shè)計(jì)和開發(fā)設(shè)備驅(qū)動(dòng)與應(yīng)用層軟件即可,從而可以大大縮短開發(fā)周期,減少維護(hù)費(fèi)用,因此具有很好的應(yīng)用前景。
參 考 文 獻(xiàn)
[1] QNX.Getting Started with QNX Neutrino:A Guidide for Realtime Programmers[EB/OL][2013-01].http://www.qnx.com.
[2] 姜廣山,祖家奎.基于QNX的PC104總線設(shè)備驅(qū)動(dòng)模塊的開發(fā).工業(yè)控制計(jì)算機(jī),2010,23(12):1-4頁
[3] QNX Neutrino RTOS Multicore Processing Users Guide[OL]. [EB/OL][2013-01].http://www.qnx.com.
[4] 王斑,苗克堅(jiān).QNX驅(qū)動(dòng)程序的編寫.微型電腦應(yīng)用,2006,22(3):60-62頁