劉 瑜 王衛(wèi)玲 趙海冰
(1.海軍航空大學 煙臺 264001)(2.煙臺市地理信息中心 煙臺 264001)
為實現(xiàn)某型飛機測試系統(tǒng)各測試點位之間信息傳遞和信息交換,采用手持機(下稱PDA)作為飛機駕駛艙內(nèi)操作員的手持設(shè)備,實現(xiàn)飛機駕駛艙內(nèi)操作員與地面測試操作員之間的信息交互。PDA是非常適宜自動測試中使用的硬件設(shè)備,其耗電量少、體積小、方便攜帶等因素使其成為自動測試中常用的手持終端。在本例中,主要完成以接收串口通信數(shù)據(jù)為觸發(fā)機制的圖片顯示功能和以按鍵為觸發(fā)機制的圖片關(guān)閉功能,從而達到各測試點位之間指令的發(fā)送和接收。為保證數(shù)據(jù)和指令等信號傳遞的正確性,需要建立串口通信機制和信息校驗機制。
PDA終端應用環(huán)境復雜多變,需要對環(huán)境噪聲有出色的抑制能力,可以在更廣范圍內(nèi)傳送準確的語音和數(shù)據(jù),保證在非常嘈雜的環(huán)境下也能通信自如[1]。按照測試需求,PDA需要有圖片顯示功能和確認功能,因此,根據(jù)測試系統(tǒng)整體硬件平臺要求,以及PDA的功能需求,選用浪潮巧金剛1211型號手持計算機為PDA硬件平臺。PDA硬件配置如表1所示。
表1 PDA硬件配置
軟件平臺包括編譯環(huán)境和操作系統(tǒng)。目前,EVC4.0和VS.NET是兩種常用的基于Windows CE的PDA應用程序開發(fā)方式。本例中采用基于EVC4.0開發(fā)WinCE應用程序,編譯生成可執(zhí)行文件在PDA上運行。由于采用鐵電存儲器與FLASH并用的兩極架構(gòu)進行數(shù)據(jù)采集,因此wince嵌入式系統(tǒng)十分適合指令圖片的大容量存儲。Windows CE系統(tǒng)應用程序的開發(fā)工具可選擇Embedded Vi?sual C++ ,VS2005( Visual Studio 2005),VS2008等軟件[2]。WinCE不支持重疊I/O,I/O操作函數(shù)在I/O操作結(jié)束前不能返回,這將掛起調(diào)用線程,直到I/O操作結(jié)束[3]。浪潮巧金剛手持終端安裝的是wince5.0操作系統(tǒng);工控機上采用evc4.0編譯環(huán)境、利用C++語言編譯生成可執(zhí)行文件“comdisplay.exe”在PDA上運行。軟件平臺如表2所示。
表2 軟件平臺
根據(jù)項目需求,設(shè)計本例軟件架構(gòu)。本例中,首先由工控機發(fā)送代表指令的圖片編號給PDA,PDA顯示以該圖片編號命名的圖片,PDA操作員根據(jù)圖片上的指示完成其在機艙內(nèi)的相應操作并根據(jù)操作情況按下PDA上的按鍵,PDA判斷鍵值,鍵值代表操作結(jié)果,將操作結(jié)果通過串行數(shù)據(jù)總線返回給工控機。在發(fā)送和接收數(shù)據(jù)前清除串口緩沖區(qū)和錯誤,可以防止線程的阻塞[4]。在實現(xiàn)的過程中,對串口工控機根據(jù)返回的數(shù)據(jù)判斷機艙內(nèi)操作員的工作完成情況,再進行相應的測試動作。由于沒有硬件控制發(fā)送端和接收端的同步,因此,要保證數(shù)據(jù)的正確性通信參數(shù)必須一致[5]。
在數(shù)據(jù)通信中,CRC校驗是非常靈活常見的差錯校驗方法,尤其適用于信息字段和校驗字段的長度不確定的場合。采用CRC校驗可完成數(shù)據(jù)傳輸檢錯,通過CRC校驗算法進行計算,并將得到的校驗碼附在數(shù)據(jù)幀的末尾,當接收設(shè)備接收到數(shù)據(jù)幀后,執(zhí)行CRC校驗算法,來檢驗數(shù)據(jù)傳輸過程是否正確、完整。本例中采用CRC校驗方式保證通信數(shù)據(jù)正確。根據(jù)需求分析建立相應的功能模塊,包括串口通信功能模塊、圖片顯示功能模塊、按鍵響應功能模塊和圖片關(guān)閉功能模塊四大模塊。功能模塊與實現(xiàn)方法如表3。
表3 功能模塊與對應方法
通信系統(tǒng)設(shè)計流程圖和對應方法如圖1。
圖1 通信系統(tǒng)流程圖和對應方法
測試程序的開發(fā)可以采用面向信號語言或面向儀器語言。ATLAS是一種面向信號的高級語言,用于描述被測對象的測試需求[6]。采用GPTS3.0平臺開發(fā)基于ATLAS語言的測試程序,對信號和測試資源的描述不針對特定類型的儀器,可以方便地描述系統(tǒng)配置“適配器連線表”虛擬資源等,與硬件平臺無關(guān),因此在GPTS3.0上開發(fā)的測試程序具有良好的移植性,可以廣泛地應用于各種被測對象的功能測試[7]。
本例采用GPTS3.0作為開發(fā)平臺,利用ATLAS語言開發(fā)測試程序,利用VC++6.0開發(fā)非ATLAS模塊實現(xiàn)校驗功能。
在有線傳輸中,數(shù)據(jù)串口異步通信方式主要是能夠?qū)崿F(xiàn)計算機數(shù)據(jù)傳輸?shù)淖止?jié)符號獨立[8]。RS-232是標準化的采取單端通信方式進行傳輸?shù)拇薪涌冢?]。RS-232串口通信模塊是通信系統(tǒng)的核心,實現(xiàn)對串口數(shù)據(jù)的發(fā)送、讀取和校驗功能。
PDA和程控交換機之間的通信由RS232總線實現(xiàn)。程控交換機和PDA通信前,應先打開串口,設(shè)置通信參數(shù),包括緩存區(qū)長度和傳送數(shù)據(jù)頻率和時間間隔等,然后創(chuàng)建串口接收數(shù)據(jù)線程。PDA傳遞給程控交換機的串口數(shù)據(jù)傳送首先送入程控交換機緩存區(qū)。若緩存中有未取走的串口數(shù)據(jù),會造成干擾,因此在發(fā)送和接收串口信號前,應保證串口緩存為空。
PDA與程控交換機進行數(shù)據(jù)傳送,需事先制訂串口通信協(xié)議,主要涉及發(fā)送數(shù)據(jù)的格式,以便于發(fā)送和解析判斷,協(xié)議中規(guī)定,數(shù)據(jù)由5個字節(jié)組成,并明確每個字節(jié)的含義。PDA與工控機數(shù)據(jù)傳送通信協(xié)議如表4。
表4 PDA接收工控機數(shù)據(jù)的通信協(xié)議
PDA需要按鍵F1或F5按功能需求進行響應,PDA的按鍵響應分為三種模式,根據(jù)通信協(xié)議PDA接收來自工控機的5個字節(jié)的數(shù)據(jù)。模式的選擇由第4字節(jié)的數(shù)據(jù)內(nèi)容決定,第4字節(jié)數(shù)據(jù)為01H按模式1進行相應操作;數(shù)據(jù)為02H按模式2進行相應操作;數(shù)據(jù)為03H按模式3進行相應操作;這三種模式按鍵響應的前提是必須當前有圖片顯示中,防止按鍵誤操作影響工控機的判斷。PDA響應按鍵模式如表5。
表5 PDA響應按鍵模式表
工控機接收PDA傳來的確認消息,串口傳輸過程可能存在錯誤,因此工控機測試程序在收到指令時,需要根據(jù)通信協(xié)議進行數(shù)據(jù)校驗,本例中采用CRC校驗。
由于ATLAS是面向信號的自動測試語言,AT?LAS本身無法進行CRC校驗,因此,需要采用非ATLAS模塊來實現(xiàn)ATLAS不能實現(xiàn)的功能,本例利用GPTS3.0平臺提供的對非ATLAS模塊的擴展來實現(xiàn)。采用C++語言編寫動態(tài)鏈接庫文件實現(xiàn)非ATLAS模塊的CRC校驗,作為對ATLAS測試程序的補充。CRC校驗模塊以非ATLAS模塊的形式提供給ATLAS主程序,在主程序中的序言結(jié)構(gòu)中使用INCLUDE語句連接該模塊,在主程序結(jié)構(gòu)中使用PERFORM語句執(zhí)行該模塊。由于非ATLAS模塊需要在ATLAS程序中被調(diào)用,因此參數(shù)傳遞必須符合ATLAS標準。主程序中對非ATLAS模塊的定義要用到關(guān)鍵詞EXTERNAL。
定義實現(xiàn)CRC校驗的非ATLAS模塊'NOAT?LASMOD',其中定義了一個名為'CRC_TEST'的子程序,該子程序采用非ATLAS的方法實現(xiàn),本例采用C++語言實現(xiàn),主程序通過DLL文件鏈接到此模塊中。ATLAS測試程序中,調(diào)用CRC校驗模塊'CRC_TEST'代碼如下:
本實例中校驗方式選用CRC校驗方式,在設(shè)置通信協(xié)議中規(guī)定的參數(shù)時,PARITY-MODE應設(shè)置為無校驗方式。校驗參數(shù)設(shè)置ATLAS代碼如下。
測試系統(tǒng)的通信線路獨立于原測試系統(tǒng),使用PDA作為通信工具,硬件上易于擴展。但是,信息校驗模塊采用非ATLAS模塊實現(xiàn)CRC校驗,非AT?LAS模塊作為ATLAS測試程序的補充,擴展了AT?LAS測試程序的功能,但是由于非ATLAS模塊實現(xiàn)方法特殊,因此不一定是可移植的,所以一般只有在必要時才使用。
本例中,系統(tǒng)的信息校驗模塊可以保證信號傳送的正確性,對于校驗失敗的情況采取確認重傳的機制。在實際測試中,為提高測試效率,保證測試過程順利,要注意串口通信軟硬件配合問題,從而減少重傳的次數(shù)。測試中,通信鏈路通過閉合矩陣開關(guān)建立,在PDA與計算機RS-232串口傳遞信號前,應先閉合矩陣開關(guān)相應的行和列,建立PDA與工控機的通信通路,避免數(shù)據(jù)傳送丟失[10]。
飛機的測試工作多在外場進行,本測試系統(tǒng)通過圖片傳遞測試指令,清楚、準確,很好地解決了受風力噪聲、口音誤傳、飛機起落噪聲的干擾。整個測試過程中以及試用期間,未發(fā)生一起指令模糊或者錯誤的情況,信息校驗安全準確,CRC校驗完全滿足測試需求,本例為外場測試工作的信息傳遞和校驗提供了很好的思路。