段曙凱, 魏士皓, 范 玲
上海飛機(jī)制造有限公司,上海 201324)
在民機(jī)航電系統(tǒng)中,不同測(cè)試設(shè)備會(huì)采用不同的總線通信協(xié)議,例如起落架控制單元激勵(lì)設(shè)備采用了ARINC429總線,航電總線分析儀采用了AFDX總線,大氣數(shù)據(jù)儀采用了RS232串行總線,飛控角度測(cè)量模塊采用以太網(wǎng)通信等。這給民機(jī)集成測(cè)試帶來(lái)了很大困難,而接口控制文檔(Interface Control Document,ICD)能很好地將不同總線協(xié)議信息進(jìn)行解析和傳輸[1-2]。這樣可通過(guò)軟件來(lái)解析總線信號(hào),實(shí)現(xiàn)總線信號(hào)的柔性化定義[1-5],同時(shí)也減輕了硬件的工作強(qiáng)度。因此,設(shè)計(jì)一款通用ICD能實(shí)現(xiàn)對(duì)不同總線協(xié)議測(cè)試設(shè)備進(jìn)行集中管控,提高航空總線測(cè)試效率,提升測(cè)試可靠性,促進(jìn)民機(jī)集成測(cè)試技術(shù)的發(fā)展。
為實(shí)現(xiàn)不同總線協(xié)議測(cè)試設(shè)備與管控平臺(tái)之間的實(shí)現(xiàn)通信,通用ICD主要包括以下3個(gè)層級(jí):工程層級(jí)、設(shè)備層級(jí)、消息層級(jí)。工程層級(jí)是對(duì)飛機(jī)測(cè)試過(guò)程中的工程變量和所用到的測(cè)試設(shè)備信息以及通信活動(dòng)進(jìn)行定義。工程變量包括空速、高度、空地狀態(tài)等參數(shù),其為實(shí)現(xiàn)測(cè)試執(zhí)行的基礎(chǔ);測(cè)試設(shè)備信息包括設(shè)備名稱(chēng)和通信地址;通信活動(dòng)是指在給某個(gè)工程變量賦值或取值時(shí)所需要的工作過(guò)程,該工作過(guò)程會(huì)將工程變量的值通過(guò)函數(shù)關(guān)系轉(zhuǎn)化成設(shè)備所能利用的值,并按設(shè)備層級(jí)定義的通信過(guò)程發(fā)送給測(cè)試設(shè)備。設(shè)備層級(jí)主要是對(duì)設(shè)備內(nèi)部各類(lèi)通信過(guò)程進(jìn)行定義。通信過(guò)程是管控平臺(tái)與設(shè)備通信并實(shí)現(xiàn)特定功能的工作過(guò)程,例如設(shè)備初始化、指令執(zhí)行和數(shù)據(jù)監(jiān)測(cè)等。通信過(guò)程的輸入和輸出與工程層級(jí)中的工程變量相關(guān);通信過(guò)程的工作模式包括觸發(fā)模式和循環(huán)模式;通信過(guò)程最終會(huì)產(chǎn)生與設(shè)備通信的消息,該消息采用幀和碼段的方式組織,由消息層級(jí)描述。消息層級(jí)描述了具體幀的類(lèi)型、總長(zhǎng)等信息,幀內(nèi)各碼段的類(lèi)型、長(zhǎng)度、編碼方式和默認(rèn)值等信息。由于可擴(kuò)展標(biāo)記語(yǔ)言(Extensible Markup Language,XML)是用于傳輸和存儲(chǔ)數(shù)據(jù)的、可以自定義標(biāo)簽并具備很好的結(jié)構(gòu)特性的語(yǔ)言,所以它能很好地實(shí)現(xiàn)通用ICD文件的編寫(xiě)工作[6-7]。因此,本文采用XML語(yǔ)言進(jìn)行ICD設(shè)計(jì)。通用ICD整體設(shè)計(jì)框圖如圖1所示。
圖1 通用ICD整體設(shè)計(jì)框圖
工程變量是指在測(cè)試工程中與進(jìn)行設(shè)置或檢驗(yàn)的物理量對(duì)應(yīng)的參數(shù)(如飛機(jī)測(cè)試過(guò)程中的空速、高度、空地狀態(tài)等)以及測(cè)試結(jié)果中需要檢驗(yàn)飛機(jī)各活動(dòng)面的運(yùn)動(dòng)角度、發(fā)動(dòng)機(jī)顯示和機(jī)組警告系統(tǒng)(Engine Indication and Crew Alerting System,EICAS)某個(gè)報(bào)警、主飛行顯示器(Primary Flight Display,PFD)某項(xiàng)的顯示狀態(tài)。
工程層級(jí)是對(duì)測(cè)試設(shè)備、被測(cè)對(duì)象的工程變量和端到端的通信過(guò)程中產(chǎn)生的中間參數(shù)進(jìn)行定義,方便數(shù)據(jù)的后續(xù)傳輸工作。工程層級(jí)分為頂級(jí)節(jié)點(diǎn)、二級(jí)節(jié)點(diǎn)和三級(jí)節(jié)點(diǎn),而每個(gè)節(jié)點(diǎn)又包含不同的屬性定義。其中頂級(jí)節(jié)點(diǎn)即工程節(jié)點(diǎn),其目的是對(duì)整個(gè)測(cè)試設(shè)備進(jìn)行工程定義,以便于識(shí)別;二級(jí)節(jié)點(diǎn)包括參與測(cè)試的設(shè)備節(jié)點(diǎn)、各類(lèi)工程變量節(jié)點(diǎn)和通信活動(dòng)節(jié)點(diǎn)。此外,只有通信活動(dòng)節(jié)點(diǎn)具有三級(jí)節(jié)點(diǎn),分別是從端節(jié)點(diǎn)、到端節(jié)點(diǎn)和轉(zhuǎn)化節(jié)點(diǎn)。具體的工程層級(jí)結(jié)構(gòu)圖如圖2所示。
圖2 具體工程層級(jí)結(jié)構(gòu)圖
從圖2可以看出,在頂級(jí)節(jié)點(diǎn)工程節(jié)點(diǎn)中設(shè)置了標(biāo)識(shí)屬性,其目的是方便與測(cè)試腳本關(guān)聯(lián);參試設(shè)備節(jié)點(diǎn)具有設(shè)備通信方式、地址和初始化值3個(gè)屬性,其目的是方便與設(shè)備層級(jí)進(jìn)行關(guān)聯(lián),從而有效地與設(shè)備層級(jí)通信;工程變量的章節(jié)號(hào)屬性是為了描述被測(cè)對(duì)象參數(shù)屬于飛機(jī)哪個(gè)系統(tǒng);通信活動(dòng)節(jié)點(diǎn)中從端節(jié)點(diǎn)有兩個(gè)屬性,分別是輸入屬性和工程變量屬性。輸入屬性是對(duì)設(shè)備層級(jí)進(jìn)行識(shí)別;工程變量屬性是非必要屬性,可直接從工程變量節(jié)點(diǎn)中進(jìn)行取值。到端節(jié)點(diǎn)有輸出和工程變量?jī)蓚€(gè)屬性,用于描述和傳輸參數(shù)數(shù)據(jù)至設(shè)備層級(jí)。轉(zhuǎn)化節(jié)點(diǎn)具有一個(gè)屬性,即轉(zhuǎn)化函數(shù)。轉(zhuǎn)化節(jié)點(diǎn)是描述通過(guò)什么函數(shù)如何將傳遞過(guò)來(lái)的工程變量值轉(zhuǎn)化成對(duì)設(shè)備有意義的值。采用頂層節(jié)點(diǎn)、二級(jí)節(jié)點(diǎn)和三級(jí)節(jié)點(diǎn)的屬性進(jìn)行設(shè)置,完成了通用ICD工程層級(jí)的XML模板片段,如圖3所示。圖3中各節(jié)點(diǎn)與圖2所示的工程層級(jí)結(jié)構(gòu)圖中節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系為:節(jié)點(diǎn)“project”對(duì)應(yīng)“工程”節(jié)點(diǎn);節(jié)點(diǎn)“device”對(duì)應(yīng)“參試設(shè)備”節(jié)點(diǎn);節(jié)點(diǎn)“vary”對(duì)應(yīng)“工程變量”節(jié)點(diǎn);節(jié)點(diǎn)“communication”對(duì)應(yīng)“通信活動(dòng)”節(jié)點(diǎn);節(jié)點(diǎn)“from”對(duì)應(yīng)“從端”節(jié)點(diǎn);節(jié)點(diǎn)“to”對(duì)應(yīng)“到端”節(jié)點(diǎn);節(jié)點(diǎn)“translation”對(duì)應(yīng)“轉(zhuǎn)化”節(jié)點(diǎn);節(jié)點(diǎn)“parameter”對(duì)應(yīng)“參數(shù)”節(jié)點(diǎn);節(jié)點(diǎn)“result”對(duì)應(yīng)“結(jié)果”節(jié)點(diǎn)。
圖3 通用ICD工程層級(jí)的XML模板片段
測(cè)試設(shè)備與管控平臺(tái)建立通信的過(guò)程主要包括建立連接、初始化、運(yùn)行和斷開(kāi)連接。此外,由于運(yùn)行機(jī)制原因,在運(yùn)行階段存在受外界觸發(fā)運(yùn)行的觸發(fā)模式和每隔一定時(shí)間進(jìn)行循環(huán)的循環(huán)模式。觸發(fā)模式一般用于單次數(shù)據(jù)收發(fā),循環(huán)模式一般用于設(shè)備狀態(tài)監(jiān)控、數(shù)據(jù)采集、通信狀態(tài)測(cè)試等場(chǎng)合。具體通信流程圖如圖4所示。
圖4 具體通信流程圖
設(shè)備層級(jí)主要是描述這些測(cè)試設(shè)備的通信過(guò)程,其包括3層節(jié)點(diǎn),分別是設(shè)備通信的頂層節(jié)點(diǎn);初始化、監(jiān)控和觸發(fā)的二級(jí)節(jié)點(diǎn),這3種二級(jí)節(jié)點(diǎn)統(tǒng)稱(chēng)為通信活動(dòng);提示、指令和響應(yīng)的三級(jí)節(jié)點(diǎn)。具體設(shè)備層級(jí)結(jié)構(gòu)圖如圖5所示。
圖5 具體設(shè)備層級(jí)結(jié)構(gòu)圖
從圖5的結(jié)構(gòu)圖中可以看出,為了區(qū)分不同的設(shè)備的通信方式,設(shè)備通信節(jié)點(diǎn)設(shè)置了標(biāo)識(shí)和基礎(chǔ)協(xié)議兩個(gè)屬性。其中,基礎(chǔ)協(xié)議屬性用于描述不同測(cè)試設(shè)備的通信協(xié)議,例如TCP/IP、RS232、CAN總線協(xié)議等,該協(xié)議一般與設(shè)備具體硬件有關(guān)。初始化節(jié)點(diǎn)有2個(gè)非必要屬性,即標(biāo)識(shí)和頻率;此外,初始化節(jié)點(diǎn)還有3個(gè)三級(jí)節(jié)點(diǎn),分別是提示節(jié)點(diǎn)、指令節(jié)點(diǎn)和響應(yīng)節(jié)點(diǎn)。其中,提示節(jié)點(diǎn)的內(nèi)容屬性具有信息提示的功能。輸出屬性是生成用于存儲(chǔ)操作員設(shè)置參數(shù)的鍵值,方便數(shù)據(jù)對(duì)應(yīng)和傳輸。指令節(jié)點(diǎn)和響應(yīng)節(jié)點(diǎn)是在設(shè)備通信過(guò)程中進(jìn)行設(shè)置的,它們都具有兩個(gè)屬性,即幀和標(biāo)識(shí)。其中,幀屬性是為了描述在通信過(guò)程中用到的幀格式,該幀格式是為了與消息層級(jí)的幀相對(duì)應(yīng);標(biāo)識(shí)屬性是一個(gè)非必要屬性,是為了進(jìn)行節(jié)點(diǎn)識(shí)別而設(shè)計(jì)的。監(jiān)控節(jié)點(diǎn)用于描述設(shè)備通信運(yùn)行中的監(jiān)控活動(dòng),它有兩個(gè)屬性,即頻率和標(biāo)識(shí)。其中,頻率屬性是描述設(shè)備監(jiān)控的頻率;標(biāo)識(shí)屬性是為了區(qū)分不同的監(jiān)控節(jié)點(diǎn)。觸發(fā)節(jié)點(diǎn)用于描述設(shè)備通信運(yùn)行中的觸發(fā)活動(dòng)。監(jiān)控節(jié)點(diǎn)和觸發(fā)節(jié)點(diǎn)都具有三級(jí)節(jié)點(diǎn),即指令節(jié)點(diǎn)和響應(yīng)節(jié)點(diǎn),是為了對(duì)數(shù)據(jù)進(jìn)行傳輸和響應(yīng)。通過(guò)節(jié)點(diǎn)和屬性設(shè)置編寫(xiě)的通用ICD設(shè)備層級(jí)的XML模板片段如圖6所示。圖6中各節(jié)點(diǎn)與圖5所示的設(shè)備層級(jí)結(jié)構(gòu)圖中節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系為:節(jié)點(diǎn)“driver”對(duì)應(yīng)“設(shè)備通信”節(jié)點(diǎn);節(jié)點(diǎn)“init”對(duì)應(yīng)“初始化”節(jié)點(diǎn);節(jié)點(diǎn)“monite”對(duì)應(yīng)“監(jiān)控”節(jié)點(diǎn);節(jié)點(diǎn)“trigger”對(duì)應(yīng)“觸發(fā)”節(jié)點(diǎn);節(jié)點(diǎn)“command”對(duì)應(yīng)“指令”節(jié)點(diǎn);節(jié)點(diǎn)“response”對(duì)應(yīng)“響應(yīng)”節(jié)點(diǎn)。
圖6 通用ICD設(shè)備層級(jí)的XML模板片段
不同總線協(xié)議測(cè)試設(shè)備的數(shù)據(jù)格式一般均采用幀的方式進(jìn)行傳輸,幀由不同作用的碼段組成,通信幀格式和具體含義如表1所示[8-11]。
表1 通信幀格式和具體含義表
消息層級(jí)通過(guò)描述幀內(nèi)碼段的類(lèi)型、長(zhǎng)度、數(shù)據(jù)類(lèi)型等信息,將工程變量轉(zhuǎn)化成能被測(cè)試設(shè)備識(shí)別的二進(jìn)制格式的機(jī)器語(yǔ)言。消息層級(jí)分為幀節(jié)點(diǎn)的頂級(jí)節(jié)點(diǎn)和字段節(jié)點(diǎn)的二級(jí)節(jié)點(diǎn)。具體消息層級(jí)結(jié)構(gòu)圖如圖7所示。
圖7 具體消息層級(jí)結(jié)構(gòu)圖
幀節(jié)點(diǎn)具有標(biāo)識(shí)、收發(fā)方向、數(shù)據(jù)類(lèi)型和長(zhǎng)度共4個(gè)屬性。其中,標(biāo)識(shí)屬性是為了識(shí)別不同幀節(jié)點(diǎn);收發(fā)方向?qū)傩砸?guī)定了數(shù)據(jù)傳輸方式;長(zhǎng)度屬性可定義幀長(zhǎng)度;數(shù)據(jù)類(lèi)型屬性定義了傳輸數(shù)據(jù)格式。二級(jí)節(jié)點(diǎn)的碼段節(jié)點(diǎn)具有類(lèi)別、數(shù)據(jù)類(lèi)型、循環(huán)和標(biāo)識(shí)共4個(gè)屬性。其中,類(lèi)別屬性規(guī)定了幀頭碼、功能碼、填充碼等;數(shù)據(jù)類(lèi)型規(guī)定了碼段的數(shù)據(jù)類(lèi)型;循環(huán)標(biāo)識(shí)用于對(duì)連續(xù)多個(gè)相同類(lèi)型的碼段進(jìn)行設(shè)置;標(biāo)識(shí)屬性是為了區(qū)分不同字段節(jié)點(diǎn)。采用幀節(jié)點(diǎn)、字段節(jié)點(diǎn)及其屬性方式編寫(xiě)的通用ICD消息層級(jí)XML模板片段如圖8所示。
圖8 通用ICD消息層級(jí)的XML模板片段
圖8中各節(jié)點(diǎn)與圖7所示的消息層級(jí)結(jié)構(gòu)圖中節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系為:節(jié)點(diǎn)“frame”對(duì)應(yīng)“幀”節(jié)點(diǎn);節(jié)點(diǎn)“segment”對(duì)應(yīng)“碼段”節(jié)點(diǎn)。
為驗(yàn)證針對(duì)不同總線協(xié)議測(cè)試設(shè)備通信的通用ICD的通用性和可行性,分別采用角度模塊設(shè)備、拍照測(cè)量設(shè)備、輪載切換設(shè)備、慣導(dǎo)轉(zhuǎn)臺(tái)設(shè)備和大氣數(shù)據(jù)激勵(lì)設(shè)備進(jìn)行了測(cè)試。通過(guò)對(duì)以上設(shè)備的被測(cè)量進(jìn)行設(shè)計(jì),例如分別將角度模塊設(shè)備的偏角、輪載切換設(shè)備的切換位置和大氣數(shù)據(jù)儀的動(dòng)靜壓等信息封裝成工程層級(jí)的工程變量,方便管控平臺(tái)對(duì)測(cè)試設(shè)備進(jìn)行識(shí)別;然后將每個(gè)設(shè)備與管控平臺(tái)的通信方式封裝成設(shè)備層級(jí)的設(shè)備通信,完成管控平臺(tái)與不同測(cè)試設(shè)備之間的數(shù)據(jù)通信;最后將測(cè)試設(shè)備的原始測(cè)量數(shù)據(jù)轉(zhuǎn)換成消息層級(jí)的幀格式,達(dá)到數(shù)據(jù)格式統(tǒng)一的目的,實(shí)現(xiàn)平臺(tái)對(duì)不同數(shù)據(jù)類(lèi)型的解析和顯示?,F(xiàn)場(chǎng)測(cè)試驗(yàn)證框圖如圖9所示。傳統(tǒng)測(cè)試方法與通用ICD測(cè)試方法效果對(duì)比如表2所示。
圖9 現(xiàn)場(chǎng)測(cè)試驗(yàn)證框圖
表2 傳統(tǒng)測(cè)試方法與通用ICD測(cè)試方法效果對(duì)比表
測(cè)試驗(yàn)證表明,該ICD設(shè)計(jì)思路正確,能很好地完成對(duì)不同測(cè)試設(shè)備的工程變量,例如角度模塊設(shè)備的偏航角、輪載切換設(shè)備的切換位置和大氣數(shù)據(jù)儀的動(dòng)靜壓等解析和傳輸,幫助管控平臺(tái)完成對(duì)測(cè)試設(shè)備的集中管理和測(cè)試數(shù)據(jù)的全程監(jiān)控。因此,本文所提出的ICD設(shè)計(jì)方法能很好地滿足不同總線協(xié)議測(cè)試設(shè)備集中管控的需求,并且易于擴(kuò)展,可助力民機(jī)集成測(cè)試技術(shù)的發(fā)展。
本文通過(guò)對(duì)不同測(cè)試設(shè)備總線協(xié)議和通用ICD設(shè)計(jì)方法的研究,將ICD設(shè)計(jì)分成工程層級(jí)、設(shè)備層級(jí)和消息層級(jí),分別對(duì)通信的數(shù)據(jù)結(jié)構(gòu)、通信過(guò)程的控制和測(cè)試工程中的元素進(jìn)行描述。通過(guò)ICD方式實(shí)現(xiàn)了5套不同協(xié)議的測(cè)試設(shè)備與測(cè)試管控平臺(tái)的通信,為民機(jī)總裝集成測(cè)試不同總線的設(shè)備控制提供了一種解決方法,以促進(jìn)民機(jī)總裝集成測(cè)試技術(shù)的發(fā)展。