董 殷, 李開宇
(南京航空航天大學(xué)自動化學(xué)院,江蘇南京210016)
飛機顯示器在飛機這一特殊人機系統(tǒng)中占有重要地位,既是完成飛行任務(wù)的必要設(shè)備,也是保證飛行安全的關(guān)鍵設(shè)備[1]。隨著航空電子技術(shù)的發(fā)展,需要顯示的信息量不斷加大,因此對顯示器提出了更高的要求,使得飛機顯示系統(tǒng)從最初的飛機儀表發(fā)展到現(xiàn)在的電子顯示器,而電子顯示器又經(jīng)歷了陰極射線管(CRT)顯示器和平板顯示器兩個發(fā)展階段。飛機顯示器主要是把顯示系統(tǒng)所測試的參數(shù)顯示出來,尤其是在某些緊張的飛行狀態(tài)中,顯示器還必須保證飛行員在極短的時間內(nèi)準確地獲取所需要的信息,進行及時、安全的操作。因此顯示器的顯示信息必須具有準確、可靠、實時、清晰、形象、直觀和容易判讀等特點,符合人機工效學(xué)的要求[2]。
目前一般采用的測試方法是運用各種儀表以手動方式對各個參數(shù)進行測試,因此測試過程不連續(xù),故障通常難以發(fā)現(xiàn)和定位,測試讀數(shù)由人工判斷,大量數(shù)據(jù)難于準確記錄。為了解決上述問題,開發(fā)研制一套針對飛機顯示器的自動測試設(shè)備是很有必要的。本文即針對某型飛機上安裝的飛機下視顯示器開發(fā)一套地面測試設(shè)備,實現(xiàn)對顯示器的性能、功能檢測及故障的診斷隔離。
被測飛機顯示器系某型飛機下視液晶顯示器,其顯示內(nèi)容為主控計算機發(fā)出的符合STANAG3350B標準的PAL制式差分視頻信號,且同步信號在綠色通道。測試設(shè)備除了提供視頻信號外,還須與顯示器通過RS-485端口進行串行通信,接受顯示器輸出的工作狀態(tài)信息,然后依據(jù)工作狀態(tài)信息進行管理和測試,故障分析,并生成用戶要求的測試報告。
系統(tǒng)除功能上滿足測試要求外,還應(yīng)具有以下特性:①可測性、可維修性、可靠性,自檢測性和可計量性;②軟硬件結(jié)構(gòu)??旎哂泻軓姷耐ㄓ眯?;③具有良好的可擴展性;④檢測設(shè)備采用成熟元器件、技術(shù)和工藝,提高產(chǎn)品的結(jié)構(gòu)設(shè)計水平,滿足電磁兼容性要求。
根據(jù)以上要求,本測試系統(tǒng)在檢測臺的結(jié)構(gòu)上,采用以工控機為主體的“機柜式”形式。系統(tǒng)主要由適配器模塊、電源模塊、工業(yè)控制計算機、顯示器、鍵盤鼠標及測試電纜等硬件組成。其中工控機是系統(tǒng)的控制核心,主要完成功能為接受操作員的測控指令、執(zhí)行測試控制。適配器主要完成激勵信號的驅(qū)動、切換、隔離,和被測產(chǎn)品進行電氣連接,并提供被測產(chǎn)品所需的直流工作電源接口和接收被測產(chǎn)品輸出的狀態(tài)信號。電源模塊為工業(yè)級電源,給顯示器提供工作電源和照明電源[3]。
直流電源、視頻信號源、適配器等均采用模塊化結(jié)構(gòu),考慮到被測產(chǎn)品檢測需求,這種系統(tǒng)結(jié)構(gòu)布線合理,盡可能避免信號之間的耦合與干擾,具有靈活、抗干擾能力強、操作方便、通用性強、擴展容易、性價比高等優(yōu)點,非常適合于專用產(chǎn)品的檢測。同時考慮到該檢測系統(tǒng)的特殊性,即部分測試結(jié)果僅在顯示屏上顯示,需要人工比對進行判讀,另外需要給被測產(chǎn)品提供部分微弱電壓信號,為了保證測試的精度和判讀的方便,在測試設(shè)備的信號源機箱面板上,采用了高精度的電壓測試儀表,并為被測產(chǎn)品留有專門的檢測位置,以方便操作人員在實際工作中的操作[4]。系統(tǒng)組成原理框圖如圖1所示。
檢測設(shè)備的基本測試流程為:被測產(chǎn)品通過測試電纜同檢測設(shè)備的接口與信號轉(zhuǎn)換組件(適配器)相連;工控計算機控制其內(nèi)插的視頻轉(zhuǎn)換卡產(chǎn)生產(chǎn)品測試所需的視頻信號,在測試軟件的控制下,按照一定的通訊協(xié)議及相應(yīng)的測試標準,測試設(shè)備提供給測試產(chǎn)品相應(yīng)的測試信號和控制命令,產(chǎn)品則根據(jù)設(shè)備提供的信息和指令實現(xiàn)相應(yīng)的功能。檢測人員根據(jù)產(chǎn)品的狀態(tài)和顯示器顯示的相關(guān)數(shù)據(jù)判斷被測產(chǎn)品的功能和性能指標是否合格,并對故障進行定位。
對于顯示器要求的485通信,我們可以采用成熟的產(chǎn)品,在此我們選用ADDI公司的RS-485載板、子板及附件,它提供多路485通信接口,我們?nèi)芜x其中2路即可。除通信要求外,顯示器還需要輸入PAL制式的差分視頻信號,并且同步信號在綠色這一路,在此我們選擇雙頭顯卡加視頻轉(zhuǎn)換卡的設(shè)計方案。從顯卡輸出的信號有五路,分別為紅、綠、藍顏色信號,和2路同步信號,需要將這五路信號復(fù)合成要求的三路差分信號。我們可以購買視頻轉(zhuǎn)換卡將顯卡信號轉(zhuǎn)化為我們需要的視頻信號,但價格昂貴,在此我們選擇自己設(shè)計視頻轉(zhuǎn)換電路來滿足檢測要求,并做成PCI板卡形式,通過工控機主板供電。視頻轉(zhuǎn)換流程圖如圖2所示。
圖1 測試系統(tǒng)原理框架
圖2 視頻轉(zhuǎn)換流程
圖3 同步信號極性轉(zhuǎn)換電路
圖4 行場同步轉(zhuǎn)復(fù)合同步信號電路
在這里,因為要求的視頻信號要滿足PAL制式,所以首先要求我們用的VGA卡要能發(fā)送與PAL標準視頻時序兼容的RGB格式視頻信號。從顯卡出來的同步信號有2路,行同步和場同步。我們需要對這2路同步信號做以下處理:極性轉(zhuǎn)換、生成復(fù)合同步信號。
從顯卡出來的同步信號會存在不同的極性,我們需要將其轉(zhuǎn)化為單一的極性。極性轉(zhuǎn)換電路如圖3所示,圖中采用帶有4個2輸入異或門芯片74LS86。
同步信號轉(zhuǎn)換后變?yōu)榻y(tǒng)一極性,然后通過與非門芯片74HC00和NE555定時器對脈沖進行延拓,就可以復(fù)合成復(fù)合同步信號[5]。復(fù)合電路如圖4所示。
復(fù)合后的同步信號如圖5所示。
圖5 場同步和復(fù)合同步信號
復(fù)合同步信號產(chǎn)生以后,通過與視頻轉(zhuǎn)換芯片EL5373的INN2端相連,被加入到綠色顏色信號這一路。被疊加的綠色信號和其它兩路顏色信號一起經(jīng)過 EL5373芯片轉(zhuǎn)換后變?yōu)椴罘忠曨l信號[6]。轉(zhuǎn)換電路如圖6所示。
在確保檢測設(shè)備硬件設(shè)計正確、可靠的前提下,測試軟件是實現(xiàn)系統(tǒng)所有各項檢查功能的重要保證。
虛擬儀器主要有兩方面的意義:第一,在計算機上虛擬出具體存在的實際儀器,即虛擬面板。它可以在計算機上虛擬出和實際儀器無差別的操作面板,測試人員只需要在計算機上操作相關(guān)按鈕就可以完成對儀器的控制,和手工操作儀器沒有差別。第二,在計算機上虛擬出實際不存在的儀器,也就是測量功能的虛擬實現(xiàn)。在對數(shù)據(jù)進行處理的過程中,應(yīng)用不同的數(shù)據(jù)處理算法獲得不同的特征并將其以儀器的方式顯示出來,從而產(chǎn)生一種新的實際中不存在的儀器[7-8]。
VC++是一種功能強大的軟件開發(fā)平臺,Measurement studio是美國NI公司的虛擬儀器設(shè)計工具,VC++環(huán)境下向用戶提供一組Measurement Studio控件,采用VC++和Measurement Studio聯(lián)合編程可以充分利用兩者的優(yōu)勢[9]。
因此,在這里我們在WindowXp操作系統(tǒng)下,用戶界面采用C語言和VC6.0混合編寫,充分發(fā)揮了C語言面向底層硬件編程的優(yōu)勢,實現(xiàn)軟件設(shè)計要求。與此同時,基于虛擬儀器的特點,為了使檢測界面更加美觀、真實,我們在VC++的基礎(chǔ)上,利用NI公司的MEASUREMENTSTDIO中的按鈕控件,讓檢測界面更加接近真實的儀器界面。
飛機顯示器檢測設(shè)備所要達到的主要目標,是能夠?qū)崿F(xiàn)對被測設(shè)備的全部性能檢測和故障定位。
測試應(yīng)用軟件用于檢測被測產(chǎn)品各種顯示狀態(tài)及參數(shù),主要包括:顯示器按鍵檢測,顯示器通訊檢測,顯示器狀態(tài)檢測,視頻信號發(fā)生控制,測試結(jié)果分析等。軟件流程圖如圖7所示。
顯示器與主控計算機通信是通過兩路 RS-485串行接口通信方式實現(xiàn)的。在開始檢測之前,我們需要對用到的2路485端口進行檢測,確保端口可以進行正確的發(fā)送和接收操作。在Windows操作系統(tǒng)中,多線程是提高系統(tǒng)利用率,實現(xiàn)并行處理的重要手段。為此,我們利用Windows自帶的API函數(shù)和多線程技術(shù)來實現(xiàn)此功能。
設(shè)2路485端口分別為1、2。自檢時,將二者連接,進行如下操作:①異步方式打開串口句柄:CreateFile函數(shù);②建立串口通信事件:CreateEvent函數(shù);③初始化串口,設(shè)置串口參數(shù):SetCommState函數(shù);
圖6 差分信號轉(zhuǎn)換電路
圖7 軟件系統(tǒng)框架
串口初始化完成后,當對端口1的發(fā)送,端口2的接收進行檢測時,在主線程里,端口1利用定時器每隔50ms發(fā)送一次數(shù)據(jù),在副線程里,端口2在while循環(huán)里用Wait-CommEvent函數(shù)等待串口接收事件,當檢測到EV_RXCHA事件發(fā)生時,ReadFile函數(shù)讀取數(shù)據(jù),并發(fā)送消息到主線程與發(fā)送的數(shù)據(jù)進行比較,若發(fā)送和接收數(shù)據(jù)完全相同,則檢測成功,反之,失敗,查找失敗原因。當對端口2的發(fā)送,端口1的接收進行檢測時,只需將主從線程的發(fā)送和接收端口對換即可。檢測完畢后,關(guān)閉定時器,退出副線程,關(guān)閉串口[10]。
3.4.1 MSComm控件串行通信
雖然在Windows下Win32API提供了使用文件操作方式的函數(shù)進行串口操作的方法,但是在編程實現(xiàn)上還是比較復(fù)雜。針對本檢測設(shè)備的通訊特點,利用已有的AxtiveX控件,只需要編寫少量的代碼,就可以輕松高效地完成任務(wù)[11]。
3.4.2 串口事件處理
首先將2個端口各關(guān)聯(lián)一個控件,并設(shè)置相應(yīng)通信參數(shù),然后按照顯示器通信要求,主控計算機發(fā)送相應(yīng)測試數(shù)據(jù)。顯示器接受數(shù)據(jù)后會返回相應(yīng)的狀態(tài)信息,為了及時無誤的讀取顯示器狀態(tài)參數(shù),有2個屬性設(shè)置需要注意,一是SetRThreshold函數(shù)參數(shù)設(shè)為1,即接受緩沖區(qū)一有字符馬上觸發(fā)接受事件;另一個利用SetlnputLen函數(shù)將接收區(qū)數(shù)據(jù)長度設(shè)為0,即讀取緩沖區(qū)的全部數(shù)據(jù)[12]。除了屬性設(shè)置外,在OnComm對數(shù)據(jù)的接收時,我們也要在查詢事件觸發(fā)后,數(shù)據(jù)讀取之前加上Sleep函數(shù),讓CPU有個短暫的停頓,這樣才能保證正確無誤的讀取顯示器返回的數(shù)據(jù)。
由于顯示器返回狀態(tài)信息種類繁多,參數(shù)大小各不相同,因此,我們必須保證既要對數(shù)據(jù)進行及時接收,又要對接受數(shù)據(jù)進行正確處理。在此,我們利用Windows消息機制中的異步消息模式來進行數(shù)據(jù)處理,即在OnComm對接受事件進行響應(yīng)后,用Postmessage函數(shù)發(fā)送消息,然后在消息中進行數(shù)據(jù)處理[13]。
除了通過各種命令對顯示器的工作狀態(tài)進行檢測外,我們還須對顯示屏的顯示質(zhì)量進行測試,主要包括壞點、對比度、清晰度等。為此,我們需要為顯示器提供不同的測試畫面。
3.5.1 顯卡設(shè)置
在這里我們用的是單顯卡上驅(qū)動雙顯示器技術(shù),因此,在提供測試畫面以前,我們需要對顯卡進行相應(yīng)設(shè)置。
首先將主顯示器連接到第一個D-Sub接口上,再將被測顯示器經(jīng)過視頻轉(zhuǎn)換卡連接到第二個D-Sub接口上。連接好顯示器后開機,因為WinXP中雙屏顯示功能默認是關(guān)掉的,所以進入WinXP操作系統(tǒng)后,其中一個顯示器會自動關(guān)閉。其中保持開啟的顯示器是接在顯示器的主顯示接口上,關(guān)閉的顯示器是接在從顯示接口上。
此時需要安裝顯卡最新驅(qū)動才能設(shè)置雙顯示器輸出參數(shù),這里我們用的是nVIDIA顯卡,而nVIDIA顯卡利用Force-Ware驅(qū)動中的nView來實現(xiàn)雙顯示器功能。進入系統(tǒng)后,在顯示屬性設(shè)置里可以看到2臺顯示器,第一次使用時2臺顯示器是灰色,表示沒有啟用。雙擊選擇“是”之后,第二臺顯示器就會正確的顯示擴展的Windows桌面。進入顯示屬性驅(qū)動設(shè)置界面,點擊“高級_顯示”,進入顯示設(shè)備設(shè)置窗口,單擊擴展窗口中的“nView”,在“nView”模式下,選擇“水平跨越”?!八娇缭健笔侵竷膳_顯示器的顯示內(nèi)容是以水平方向連接在一起。至此,顯卡設(shè)置完成。
3.5.2 測試畫面產(chǎn)生
當被檢測顯示器與主測試屏連接到同一顯卡后,設(shè)置顯卡,然后通過軟件編程,我們可以在被檢測顯示屏上全屏顯示不同的測試畫面。具體做法如下:首先我們獲取被檢測顯示器的分辨率大小X*Y,然后將顯示測試畫面的對話框平移X,最后將要顯示的畫面在對話框上進行顯示,這樣就為顯示器提供了檢測畫面。并且,利用VC中的Onpaint函數(shù),可以不斷改變顯示器顯示的畫面。
對于顯示器的測試主要是兩個方面,顯示器功能測試和顯示質(zhì)量測試。對于顯示質(zhì)量的測試我們無法通過軟件編程自動進行,只能點擊測試畫后,通過肉眼和亮度計等工具來對被測顯示器進行測試。測試圖片如圖8右上角所示,總共12張。
對于顯示器功能的檢測,為了更加直觀,準確的達到測試目的,我們的測試界面仿照被測顯示器的面板來進行布局,并將測試結(jié)果直接顯示出來。顯示器的顯示功能和顯示參數(shù)是由顯示器上20個周邊按鍵選擇控制的,當被測顯示器有鍵按下時,若按鍵工作正常,則測試面板上對應(yīng)位置的按鈕變綠,如果工作不正常,則變紅。根據(jù)顯示器檢測項目要求,檢測臺還要模擬機載顯示控制平臺的功能,通過檢測界面中的“單字節(jié)發(fā)送命令”欄里的14個按鈕來實現(xiàn)。當模擬控制臺與顯示器成功通信時,相應(yīng)按鈕變綠,否則變紅。
測試面板除以上要求測試要求外,我們還增加了握手通信測試,奇偶錯測試等測試項目。通過與顯示器連接調(diào)試,測試設(shè)備完全滿足測試要求,達到測試目的。圖8為被測顯示器有鍵卡死時的得測試畫面,當有2個鍵同時卡死時,測試面板正確反應(yīng)出了健卡死的位置,并報告具體的故障,其它正常工作處通過綠色顯示。
圖8 系統(tǒng)測試面板
隨著電子設(shè)備的發(fā)展和科學(xué)技術(shù)的進步,檢測設(shè)備功能越來越強,結(jié)構(gòu)越來越復(fù)雜,傳統(tǒng)檢測設(shè)備難以滿足要求,為保證檢測設(shè)備的通用和統(tǒng)一,采用通用的自動測試設(shè)備已勢在必行。本文中,以工控機為主體,配合虛擬儀器技術(shù),運用軟件開發(fā)平臺 VC++實現(xiàn)對顯示器性能參數(shù)的自動測試。把測試信息顯示出來,使用戶可以直觀的觀察到測試的結(jié)果,充分利用了已有資源,達到了檢測目的[14]。不僅如此,利用工控機擴展性強,軟件可修改的特點,我們在此方案的基礎(chǔ)上,還成功實現(xiàn)了對多種不同飛機顯示器的檢測,做到了一機多用,大大節(jié)約了檢測成本,且取得了很好的效果。
[1]孫濱生.飛機顯示器的發(fā)展[J].兵器知識,2005,6(1):50-51.
[2]閆智武,李成貴.飛機座艙儀表顯示器的發(fā)展概況[J].現(xiàn)代顯示,2005,1(1):22-23.
[3]石鑫,吳曉男.基于虛擬儀器的自動測試系統(tǒng)設(shè)計[J].儀表技術(shù),2007,8(1):13-15.
[4]盧鈞.飛機視頻信號自動測試系統(tǒng)的研究與設(shè)計[J].計量與測試技術(shù),2005,32(11):8-9.
[5]周茜.VGR到RGB+復(fù)合同步信號變換器[J].電子制作,2004,11(2):7-8.
[6]EL5373 Data Sheet[Z].Intersil公司,2003:4-6.
[7]李明輝,劉連生.基于虛擬儀器的自動測試系統(tǒng)研究[J].電子測試,2008,3(3):37-40.
[8]薛文琪,翟正軍.基于虛擬儀器的電源測試系統(tǒng)設(shè)計與實現(xiàn)[J].計算機工程與設(shè)計,2010,31(6):1331-1332.
[9]劉海英,杜曉通.MeasurementStudioforVisualC++環(huán)境下小型工業(yè)監(jiān)控軟件的開發(fā)[J].工業(yè)控制計算機,2004,17(11):23-24.
[10]闞能琪.VC++串口通信中多線程技術(shù)的應(yīng)用研究[J].西化大學(xué)學(xué)報,2005,7(24):84-85.
[11]王中訓(xùn),徐超.基于VC++6.0的多串口通信方法[J].計算機應(yīng)用,2008,28(6):37-41.
[12]王華,岳麗全,岳志高.MSComm控件VC++6.0串口通信中的應(yīng)用[J].長春工程學(xué)院學(xué)報,2009,10(1):72-73.
[13]孫鑫,余安萍.VC++深入詳解[M].北京:電子工業(yè)出版社,2007.
[14]鄭挺,王勇.虛擬儀器技術(shù)在自動測試系統(tǒng)中的應(yīng)用[J].中國測試技術(shù),2006,32(1):42-43.