文/秦正運(yùn) 徐振黔 張青峰
在現(xiàn)代航空電子系統(tǒng)中,座艙顯示系統(tǒng)(CDS: Cockpit Display System)作為人機(jī)信息交互的第一接口,為飛行員提供起飛、導(dǎo)航、空中任務(wù)、著陸等關(guān)鍵信息。近年來(lái),航空電子技術(shù)和現(xiàn)代傳感技術(shù)的迅速發(fā)展,以及對(duì)飛機(jī)任務(wù)、作戰(zhàn)等性能要求的提高,使得座艙顯示的內(nèi)容成爆炸性增長(zhǎng),顯示的復(fù)雜度不斷提高,造成開(kāi)發(fā)和維護(hù)的成本不斷提高。2001年,ARINC 661規(guī)范(座艙顯示到用戶系統(tǒng)的接口規(guī)范)在這種情況下應(yīng)運(yùn)而生,并廣受關(guān)注。但是在國(guó)內(nèi)直升機(jī)領(lǐng)域,此規(guī)范的研究工作相對(duì)較少,并且此標(biāo)準(zhǔn)主要應(yīng)用于民用航空領(lǐng)域,在軍用航空領(lǐng)域由于戰(zhàn)略性、保密性等考慮尚未應(yīng)用。為此,本文提出一種新的直升機(jī)座艙顯示系統(tǒng)開(kāi)發(fā)和通訊方法,能夠降低座艙顯示的開(kāi)發(fā)時(shí)間、降低后期維護(hù)成本。
座艙顯示系統(tǒng)是飛機(jī)航電系統(tǒng)的重要組成,主要承接了導(dǎo)航、通信、飛控等系統(tǒng)的數(shù)據(jù),加以處理和轉(zhuǎn)化,并通過(guò)顯示器顯示飛行信息和告警信息。一般直升機(jī)的座艙顯示系統(tǒng)主要是由綜合任務(wù)處理機(jī)、多功能顯示器(MFD)、多功能鍵盤(pán)(MFK)或其他輸入設(shè)備等構(gòu)成,如圖1所示。
本文討論的內(nèi)容有關(guān)的設(shè)備為綜合任務(wù)處理機(jī)和多功能顯示器,下面通過(guò)對(duì)這兩個(gè)設(shè)備的功能分析,將系統(tǒng)功能劃分為數(shù)據(jù)收發(fā)與處理單元、顯示數(shù)據(jù)處理單元、圖形顯示單元3個(gè)部分,如圖2所示。
數(shù)據(jù)采集與處理單元主要通過(guò)總線完成對(duì)導(dǎo)航、大氣、飛控等系統(tǒng)數(shù)據(jù)的采集,并將接收的總線數(shù)據(jù)進(jìn)行解包處理;或?qū)@示處理單元處理后的數(shù)據(jù)發(fā)送給其他航電子系統(tǒng)。
圖1:直升機(jī)座艙顯示系統(tǒng)構(gòu)成
圖2:座艙顯示系統(tǒng)內(nèi)部邏輯架構(gòu)
圖3:基于指令的座艙顯示
顯示數(shù)據(jù)處理單元是將處理后的總線數(shù)據(jù),根據(jù)多功能顯示器的畫(huà)面的顯示內(nèi)容所需要的數(shù)據(jù),發(fā)送到圖形顯示單元;并根據(jù)接收的多功能顯示器的交互數(shù)據(jù),進(jìn)行頁(yè)面切換、向數(shù)據(jù)采集和處理單元發(fā)送交互信息等操作。圖形顯示單元主要完成飛機(jī)姿態(tài)、航線、通訊、告警等信息的畫(huà)面繪制工作和按鍵等交互信息發(fā)送給顯示數(shù)據(jù)處理單元。
目前在我國(guó)直升機(jī)領(lǐng)域,座艙顯示方法主要采用的是數(shù)據(jù)方式。這種方式的原理是:多功能顯示器中的顯示內(nèi)容以畫(huà)面為單位,綜合任務(wù)處理機(jī)將整個(gè)畫(huà)面所需要的全部數(shù)據(jù)周期發(fā)送到多功能顯示器。例如在PFD畫(huà)面中,存在羅盤(pán)、地平儀、以及告警信息,多功能顯示器顯示軟件設(shè)計(jì)者需要先設(shè)計(jì)出整個(gè)頁(yè)面,并提供畫(huà)面數(shù)據(jù)接口;綜合任務(wù)處理機(jī)軟件設(shè)計(jì)者在設(shè)計(jì)軟件顯示處理單元部分時(shí),根據(jù)顯示軟件設(shè)計(jì)者提供的數(shù)據(jù)接口,將處理后的各個(gè)航電系統(tǒng)的數(shù)據(jù)發(fā)送到多功能顯示器,完成整個(gè)顯示過(guò)程。
從開(kāi)發(fā)過(guò)程上講,基于數(shù)據(jù)方式的設(shè)計(jì)方法,顯示設(shè)計(jì)者不僅要承擔(dān)圖形符號(hào)的設(shè)計(jì)工作,還要承擔(dān)畫(huà)面的布局工作,使得顯示設(shè)計(jì)者無(wú)法從繁重的圖形符號(hào)設(shè)計(jì)工作中解脫出來(lái),不但增加了顯示開(kāi)發(fā)成本,而且還加大了座艙顯示系統(tǒng)增加新的顯示功能的難度。從后期維護(hù)及改型上講,基于數(shù)據(jù)方式的設(shè)計(jì)方法是將整副畫(huà)面作為一個(gè)整體,一旦發(fā)生維護(hù)更改或者后期改型,就會(huì)更改整個(gè)畫(huà)面內(nèi)容及接口,進(jìn)而需要改動(dòng)顯示軟件和任務(wù)機(jī)的邏輯控制軟件這兩個(gè)軟件配置項(xiàng),大大增加了軟件的不可控性。
因此,本文提出一種基于指令的座艙顯示開(kāi)發(fā)方法,其思想是將常用的儀器儀表圖符、基本圖元、字符、屬性等分別作為一個(gè)獨(dú)立的顯示單元,使其和畫(huà)面分開(kāi),并將這些獨(dú)立的顯示單元進(jìn)行指令化關(guān)聯(lián)。這樣,CDS顯示軟件只需要識(shí)別指令,根據(jù)指令進(jìn)行不同的顯示單元繪制,而無(wú)需考慮畫(huà)面布局;而運(yùn)行在綜合任務(wù)處理機(jī)上的顯示控制軟件根據(jù)用戶交互,通過(guò)發(fā)送不同的指令即可以控制畫(huà)面的顯示,原理如圖3所示。
通過(guò)對(duì)顯示功能的分解,將顯示分為圖元、字符、屬性、圖符四類(lèi)。圖元是組成所有顯示內(nèi)容的基本單元,包含點(diǎn)、直線、弧形、圓形、方形、三角形、多邊形、填充圓形、填充方形、填充三角形、填充多邊形等;字符指的是符合GB2312的中英文字符;屬性是指與繪圖相關(guān)的屬性設(shè)置,如顏色、字體大小、線寬、線型等等;圖符是指復(fù)雜的儀器儀表圖形,如羅盤(pán)、地平儀、機(jī)電油量柱狀圖等等,這些圖形是需要專業(yè)人員設(shè)計(jì)符合標(biāo)準(zhǔn)及人機(jī)功效的圖形。
通過(guò)將顯示內(nèi)容的分類(lèi),可以看到圖元、字符、屬性都是無(wú)需設(shè)計(jì)的圖形,而圖符則是顯示工作的重點(diǎn),是座艙顯示標(biāo)準(zhǔn)化的基礎(chǔ)。我們將這4種圖形集對(duì)應(yīng)建立4種類(lèi)型的指令集,分別對(duì)應(yīng)為圖元指令集、字符指令集、圖符指令集、屬性指令集,并將所有圖形都分配一個(gè)唯一的指令,格式如下:
指令名:長(zhǎng)度為16bit的整形數(shù)字,為指令的唯一標(biāo)識(shí)符;
指令坐標(biāo):長(zhǎng)度為32bit,分別為16bit的x軸坐標(biāo)和16bit的y軸坐標(biāo);
指令長(zhǎng)度:長(zhǎng)度為16bit,規(guī)定了緊跟其后的數(shù)據(jù)的長(zhǎng)度(單位byte),最大長(zhǎng)度65535;
圖4:指令格式
圖5:通訊指令包格式
圖6:繪圖流程
指令數(shù)據(jù):長(zhǎng)度為每個(gè)指令的具體內(nèi)容,如圓形指令為半徑長(zhǎng)度,字符指令為字符 串?dāng)?shù)據(jù)等。
以上定義為通用的指令格式(圖4a),指令名和數(shù)據(jù)是必須的,而坐標(biāo)和長(zhǎng)度根據(jù)指令集的不同做相應(yīng)的刪減。圖元指令集和圖符指令(圖4b)集中圖形的指令的長(zhǎng)度基本上是固定的,因此可以刪減指令長(zhǎng)度這一條目;屬性指令集(圖4c)指示表征了當(dāng)前繪圖屬性的設(shè)置功能,因此無(wú)坐標(biāo)這一條目;字符指令集(圖4a)為變長(zhǎng)的,其格式為包含通用格式的所有條目。
串行化(Serialization)是計(jì)算機(jī)科學(xué)的一個(gè)概念,它是指將對(duì)象存儲(chǔ)在介質(zhì)中或以二進(jìn)制方式進(jìn)行傳輸,通過(guò)反串行化則可以重新構(gòu)建原始對(duì)象。
綜合任務(wù)處理機(jī)與顯示器之間的指令通訊為主從結(jié)構(gòu),綜合任務(wù)處理機(jī)將從各個(gè)航電系統(tǒng)接收到的數(shù)據(jù)進(jìn)行數(shù)據(jù)融合與處理,根據(jù)用戶的交互數(shù)據(jù)將所需要顯示的所有圖形全部轉(zhuǎn)換為指令,按照通訊協(xié)議進(jìn)行數(shù)據(jù)串行化,向顯示器發(fā)送顯示指令數(shù)據(jù)包;多功能顯示器接收到指令數(shù)據(jù)包后,按照通訊協(xié)議進(jìn)行反串行化,得到圖形的樹(shù)形結(jié)構(gòu),進(jìn)行圖形繪制。兩者之間采用周期通訊,多功能顯示器只有在收到指令數(shù)據(jù)包的情況下才可以進(jìn)行圖形顯示,否則認(rèn)為與綜合任務(wù)處理機(jī)的通訊中斷,進(jìn)而進(jìn)入應(yīng)急顯示。采用的通訊指令包按照?qǐng)D5格式。
數(shù)據(jù)包頭:指令數(shù)據(jù)包包頭識(shí)別碼,長(zhǎng)度16bit,用來(lái)判斷數(shù)據(jù)包的開(kāi)始位置。
包長(zhǎng)度:整個(gè)數(shù)據(jù)包的長(zhǎng)度,長(zhǎng)度為16bit,單位為Byte,包含包頭、長(zhǎng)度、指令、包尾、校驗(yàn)的總長(zhǎng)度。
指令:各個(gè)指令集中的指令,按照繪圖或環(huán)境設(shè)置的先后順序?qū)懭霐?shù)據(jù)包;繪圖時(shí)按照指令順序來(lái)繪制。
包尾:指令數(shù)據(jù)包包尾識(shí)別碼,長(zhǎng)度16bit,表征指令結(jié)束。
校驗(yàn):除本身外的其他數(shù)據(jù)的校驗(yàn),可以采用多種校驗(yàn)方式,長(zhǎng)度為16bit。
為了保證圖形顯示的可移植性,儀器儀表圖符要盡量形成標(biāo)準(zhǔn)的圖符庫(kù),并且本方法支持所有儀器儀表開(kāi)發(fā)工具,即可以將已開(kāi)發(fā)的圖符進(jìn)行指令化處理,與指令關(guān)聯(lián)即可;而比較簡(jiǎn)單的信息(例如告警信息、通知信息等),則可以直接使用圖元指令集、字符指令集、屬性指令集在綜合任務(wù)處理機(jī)端實(shí)現(xiàn)。
多功能顯示器工作時(shí),只需要將接收的指令數(shù)據(jù)包進(jìn)行反串行化操作,得到指令信息,獲取指令名,通過(guò)指令名索引到相應(yīng)的指令回調(diào)函數(shù),從而解析指令的具體內(nèi)容,然后根據(jù)圖形指令信息在圖形渲染庫(kù)中查找所需要的圖形或者設(shè)置相應(yīng)的環(huán)境屬性,進(jìn)行渲染繪制即可。具體流程如圖6。
基于指令的座艙顯示開(kāi)發(fā)與通訊方法是基于層次化、模塊化、低耦合的設(shè)計(jì)思想,最大的優(yōu)點(diǎn)是將CDS顯示與用戶的控制邏輯分開(kāi),并給出了顯示圖符的標(biāo)準(zhǔn)化接口,提高了顯示模塊的通用性,降低了顯示與控制的耦合性,并使得CDS顯示開(kāi)發(fā)者能夠?qū)W⒂趦x器儀表的圖符開(kāi)發(fā),并能夠?yàn)閷?lái)應(yīng)用新型號(hào)或增加新功能提供良好的擴(kuò)展基礎(chǔ)。本方法已在國(guó)產(chǎn)某型號(hào)直升機(jī)上成功應(yīng)用,結(jié)果表明,該方法大大減少了開(kāi)發(fā)難度以及后期的維護(hù)成本。