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