吳佳駒 閆建國(guó) 遆好建
摘 要: 1553B總線廣泛應(yīng)用于國(guó)內(nèi)外航空電子系統(tǒng)。在簡(jiǎn)要介紹1553B總線通信的基礎(chǔ)上,對(duì)1553B總線在飛控半物理仿真平臺(tái)中實(shí)現(xiàn)總線數(shù)據(jù)調(diào)度、監(jiān)視、存儲(chǔ)及終端模擬等功能進(jìn)行了詳細(xì)的說(shuō)明。目標(biāo)機(jī)采用VxWorks實(shí)時(shí)操作系統(tǒng),給出軟件典型模塊的設(shè)計(jì)方法,該設(shè)計(jì)方法提高了總線數(shù)據(jù)傳輸效率,顯著減小總線負(fù)載率。仿真結(jié)果顯示,1553B總線調(diào)度軟件在飛控半物理仿真平臺(tái)中有效實(shí)現(xiàn)預(yù)定功能,工作性能穩(wěn)定,為研究1553B總線在其他半物理仿真平臺(tái)中的應(yīng)用和移植提供參考。
關(guān)鍵詞: 1553B; 飛控半物理仿真平臺(tái); 軟件設(shè)計(jì)方法; 移植
中圖分類(lèi)號(hào): TN967?34 文獻(xiàn)標(biāo)識(shí)碼: A 文章編號(hào): 1004?373X(2015)11?0020?04
Method of 1553B bus scheduling based on flight control semi?physical simulation platform
WU Jia?ju, YAN Jian?guo, TI Hao?jian
(Automation College, Northwestern Polytechnical University, Xian 710129, China)
Abstract: 1553B bus is widely used in domestic and international avionics systems. On the basis of a brief introduction on 1553B bus communication, the implementation of bus data scheduling, monitoring, storage and terminal emulation functions are described detailed based on flight control semi?physical simulation platform with 1553B bus. VxWorks real?time operating system is adopted by target machine. The design method of software typical module is given, which improves the efficiency of bus data transmission and reduces the bus loading rate significantly. Simulation results show that the intended functions can be implemented in flight control semi?physical simulation platform with 1553B bus scheduling software effectively, and its working performance is stable. It provides a reference for studying of 1553B bus applications and transplanting in other semi?physical simulation platform.
Keywords: 1553B; flight control semi?physical simulation platform; software design method; transplanting
0 引 言
飛控半物理仿真平臺(tái)將真實(shí)飛機(jī)子系統(tǒng)的一部分以實(shí)物方式引入仿真回路,其余部分以數(shù)學(xué)模型描述,進(jìn)行實(shí)物和數(shù)字聯(lián)合仿真,為飛行控制與管理系統(tǒng)的設(shè)計(jì)提供了地面測(cè)試環(huán)境,縮短項(xiàng)目的研發(fā)周期,減少項(xiàng)目的研發(fā)經(jīng)費(fèi)。
在飛控半物理仿真平臺(tái)中,1553B作為一種串行數(shù)據(jù)總線標(biāo)準(zhǔn)負(fù)責(zé)飛控計(jì)算機(jī)與其余終端設(shè)備進(jìn)行數(shù)據(jù)通信。相比ARINC?429,ARINC?629,SCI,AFDX,HSDB等機(jī)載數(shù)據(jù)總線,1553B總線具有如下突出優(yōu)點(diǎn):線性局域網(wǎng)絡(luò)結(jié)構(gòu)、冗余容錯(cuò)能力、支持“啞”節(jié)點(diǎn)和“智能”節(jié)點(diǎn)、高水平的電器保障性能、良好的器件可用性、實(shí)時(shí)可確定性[1]。
1 1553B通信系統(tǒng)組成
從通信系統(tǒng)的角度,1553B總線可分為三種模式,通信系統(tǒng)組成如圖1所示。
BC:總線控制器(Bus Controller)。對(duì)總線進(jìn)行控制和管理,是所有消息的調(diào)用控制者,負(fù)責(zé)發(fā)送命令、參與數(shù)據(jù)的傳輸、接收狀態(tài)響應(yīng)和監(jiān)測(cè)總線系統(tǒng)。
BBC:備用總線控制器(Backup Bus Controller)。當(dāng)總線控制器故障時(shí),備用總線控制器開(kāi)始工作,與總線控制器實(shí)現(xiàn)的功能一樣。
RT:遠(yuǎn)程終端(Remote Terminal)??偩€上掛載的負(fù)載,通過(guò)總線進(jìn)行各個(gè)遠(yuǎn)程終端之間的信息交流,對(duì)從總線上控制接收到的有效命令做出響應(yīng),并在一定時(shí)間內(nèi)回送狀態(tài)字,完成相應(yīng)動(dòng)作。
BM:總線監(jiān)視器(Bus Monitor)。監(jiān)聽(tīng)和記錄總線上傳輸?shù)拿詈蛿?shù)據(jù)的終端,受BC控制,通過(guò)設(shè)定相應(yīng)參數(shù),可以記錄特定類(lèi)型的信息,不參與任何總線傳輸,只起到記錄總線數(shù)據(jù)的作用。
1553B信息流由一串1553B消息構(gòu)成,1553B規(guī)范中規(guī)定一個(gè)完整的消息包括命令字、數(shù)據(jù)字、狀態(tài)字三種類(lèi)型,所有1553B字都是20 b長(zhǎng),其中有效位為16位,每個(gè)字都為:
3位同步位+16位數(shù)據(jù)/命令/狀態(tài)位+1位奇偶校驗(yàn)
同步和奇偶校驗(yàn)位被1553B硬件用于確定信息格式和數(shù)據(jù)錯(cuò)誤。在同步位中(第1到第3位)1個(gè)半比特位為高電平,1個(gè)半比特位為低電平;命令字和狀態(tài)字的同步位相同,先高電平再低電平;而數(shù)據(jù)字則相反,先是低電平再高電平[2]。三種字結(jié)構(gòu)如圖2所示。
2 系統(tǒng)拓?fù)浣Y(jié)構(gòu)
1553B總線設(shè)計(jì)為多總線拓?fù)浣Y(jié)構(gòu),其硬件組成包括:總線耦合器、總線接線器、總線線纜和綜合設(shè)計(jì)在相應(yīng)設(shè)備中的接口板卡,兩條1553B總線電纜實(shí)現(xiàn)各終端設(shè)備A、B通道的物理連接,各終端均采用變壓器耦合方式掛接在1553B總線上[3]。
飛控半物理仿真平臺(tái)采用分布式仿真系統(tǒng)布局設(shè)計(jì),同時(shí)具備獨(dú)立仿真和聯(lián)合仿真的能力。各分布式仿真系統(tǒng)由綜合管理計(jì)算機(jī)、飛控計(jì)算機(jī)和其他終端設(shè)備組成,拓?fù)浣Y(jié)構(gòu)如圖3所示。
仿真環(huán)境下,綜合管理計(jì)算機(jī)作為BC,其他終端作為總線上的RT,BC通過(guò)總線調(diào)度程序?qū)Ω鹘K端進(jìn)行調(diào)度。飛參記錄器作為總線上的BM,負(fù)責(zé)監(jiān)控飛控半物理仿真平臺(tái)中1553B總線上的數(shù)據(jù)通信,并進(jìn)行通信數(shù)據(jù)存儲(chǔ),通過(guò)對(duì)存儲(chǔ)文件進(jìn)行解碼可以還原整個(gè)通信過(guò)程。
3 總線控制器軟件設(shè)計(jì)
鑒于飛控半物理仿真平臺(tái)對(duì)實(shí)時(shí)性和可靠性的嚴(yán)格要求,本飛控半物理仿真平臺(tái)的下位機(jī)使用VxWorks嵌入式實(shí)時(shí)操作系統(tǒng)[4]。
現(xiàn)今,國(guó)內(nèi)外有關(guān)1553B的文章僅僅介紹總線控制器和遠(yuǎn)程終端的單獨(dú)軟件流程,而半物理仿真試驗(yàn)的功能往往需要基于兩種單獨(dú)軟件流程拓深來(lái)實(shí)現(xiàn),本文給出半物理仿真試驗(yàn)中軟件典型模塊的設(shè)計(jì)流程。
實(shí)際半物理仿真試驗(yàn)既有周期性消息的同步通信要求,又有非周期性消息的異步通信要求,同步通信與異步通信的組合調(diào)度方法對(duì)1553B總線的性能、負(fù)載率、穩(wěn)定性產(chǎn)生重要影響,因此,合理的組合調(diào)度方法十分重要。
3.1 同步通信與異步通信的組合
在仿真過(guò)程中,異步通信是在有請(qǐng)求的時(shí)候插入到同步通信中,具有較高的實(shí)時(shí)性和重要性。因此,在周期性消息同步通信的同時(shí),完成非周期性消息的異步通信有實(shí)際意義。
由于非周期指令發(fā)送的時(shí)刻由終端決定,總線控制器給外設(shè)終端周期性發(fā)送方式代碼,相應(yīng)的外設(shè)終端接收方式代碼后,會(huì)返回一個(gè)矢量字。外設(shè)終端接收方式代碼時(shí)有三種不同的類(lèi)型:
(1) 外設(shè)提前將相應(yīng)的矢量字寫(xiě)入緩存區(qū)
如果外設(shè)終端提前將矢量字寫(xiě)入緩存區(qū),當(dāng)BC發(fā)送方式代碼到該終端時(shí),該終端將會(huì)返回相應(yīng)的矢量字,BC根據(jù)返回的矢量字執(zhí)行相應(yīng)的操作。
(2) 外設(shè)沒(méi)有將相應(yīng)的矢量字寫(xiě)入緩存區(qū)
如果外設(shè)終端沒(méi)有向緩存區(qū)寫(xiě)入矢量字,當(dāng)BC發(fā)送方式代碼到該終端時(shí),該終端將會(huì)返回一個(gè)默認(rèn)的矢量字,BC接收到默認(rèn)的矢量字將不做任何處理,轉(zhuǎn)向下一數(shù)據(jù)幀的幀頭。
(3) 外設(shè)向緩存區(qū)寫(xiě)入矢量字后未及時(shí)清除
如果外設(shè)向緩存區(qū)寫(xiě)入相應(yīng)的矢量字,則BC根據(jù)返回的矢量字執(zhí)行相應(yīng)的操作。如果下一數(shù)據(jù)幀外設(shè)沒(méi)有及時(shí)清除緩存區(qū)中的矢量字,則BC會(huì)繼續(xù)收到此矢量字,從而不斷執(zhí)行此非周期性命令。
綜合以上三種情況,如果要執(zhí)行同步、異步混合通信,外設(shè)應(yīng)提前將矢量字寫(xiě)入緩存區(qū),BC周期性地向外設(shè)發(fā)送方式代碼,對(duì)外設(shè)回送的矢量字進(jìn)行判斷,如果與預(yù)定的矢量字一致,則執(zhí)行一次非周期性指令,然后轉(zhuǎn)向下一幀調(diào)度數(shù)據(jù),否則直接轉(zhuǎn)向下一幀調(diào)度數(shù)據(jù)。此后外設(shè)將緩存區(qū)中的矢量字清除,下一數(shù)據(jù)幀BC接收不到相應(yīng)的矢量字,BC執(zhí)行一次非周期性調(diào)度指令。
周期、非周期組合調(diào)度程序流程如圖4所示。
3.2 多個(gè)非周期性指令的調(diào)度方法
當(dāng)同一個(gè)外設(shè)終端執(zhí)行多條非周期性命令時(shí),BC發(fā)送方式代碼到對(duì)應(yīng)的遠(yuǎn)程終端,遠(yuǎn)程終端回送不同的矢量字,BC根據(jù)矢量字執(zhí)行相應(yīng)的控制命令,可以采用以下兩種方法執(zhí)行多個(gè)非周期性指令的調(diào)度方法。
(1) 每一數(shù)據(jù)幀發(fā)送多個(gè)方式代碼
如果某遠(yuǎn)程終端對(duì)應(yīng)[n]條非周期性指令,每一數(shù)據(jù)幀BC發(fā)送[n]個(gè)方式代碼,遠(yuǎn)程終端將回送[n]個(gè)矢量字,將這[n]個(gè)矢量字分別與該遠(yuǎn)程預(yù)定的矢量字進(jìn)行對(duì)比。若與某個(gè)預(yù)定的矢量字相等時(shí),BC執(zhí)行相應(yīng)的控制指令。
(2) 每一數(shù)據(jù)幀發(fā)送一個(gè)方式代碼
每一個(gè)數(shù)據(jù)幀,BC向該遠(yuǎn)程終端發(fā)送一個(gè)方式代碼,將回送的矢量字分別與預(yù)定的[n]個(gè)矢量字比較,當(dāng)回送的矢量字與其中某一個(gè)矢量字相等時(shí),BC執(zhí)行相應(yīng)的控制指令。
實(shí)際編程時(shí),方法(2)總線負(fù)載率小、實(shí)時(shí)性高,調(diào)度子程序流程圖如圖5所示。
非周期調(diào)度時(shí),BC和各遠(yuǎn)程終端的時(shí)間必須同步,即兩邊基于VxWorks的時(shí)間片設(shè)置需要相同,才能保證數(shù)據(jù)通信的同步性,否則會(huì)產(chǎn)生丟包、數(shù)據(jù)通信延遲等現(xiàn)象。
3.3 副幀數(shù)據(jù)的實(shí)現(xiàn)
進(jìn)行飛控半物理仿真時(shí),同一個(gè)地址往往交替發(fā)送某幾類(lèi)數(shù)據(jù),即包含副幀數(shù)據(jù)。例如,綜合管理計(jì)算機(jī)向某一終端發(fā)送的數(shù)據(jù)副幀數(shù)為2,即綜合管理計(jì)算機(jī)將向該終端周期、循環(huán)地發(fā)送兩類(lèi)數(shù)據(jù)。
(1) BC發(fā)送副幀數(shù)據(jù)
BC向某一終端發(fā)送的數(shù)據(jù)在總線調(diào)度表中設(shè)置,人為改動(dòng)創(chuàng)建的總線調(diào)度表,如果有兩個(gè)副幀,BC交替執(zhí)行對(duì)應(yīng)的調(diào)度指令;如果有多個(gè)副幀,依次執(zhí)行每個(gè)調(diào)度指令。此種方法滿足飛控半物理仿真平臺(tái)的數(shù)據(jù)調(diào)度。其他仿真系統(tǒng)中,如果BC向某一終端發(fā)送的副幀數(shù)非常多,創(chuàng)建中斷子程序,BC每執(zhí)行一個(gè)數(shù)據(jù)幀便進(jìn)入中斷子程序,根據(jù)進(jìn)入中斷子程序的次數(shù)決定執(zhí)行對(duì)應(yīng)的副幀數(shù)據(jù)。
例如,BC向某一終端發(fā)送m幀數(shù)據(jù),中斷子程序執(zhí)行次數(shù)為n,n%m∈[0,m-1],共m種不同的余數(shù),因此該時(shí)刻BC應(yīng)該執(zhí)行((n%m)+1)條副幀數(shù)據(jù)。
半物理仿真環(huán)境下,BC發(fā)送副幀數(shù)據(jù)的難點(diǎn)在于BC更新副幀數(shù)據(jù)與BC調(diào)度兩個(gè)進(jìn)程相協(xié)調(diào),如果協(xié)調(diào)不好,會(huì)出現(xiàn)調(diào)度數(shù)據(jù)延遲現(xiàn)象,約40~160 ms,具體任務(wù)劃分可以參考H.Gomma總結(jié)的六條原則[5]。
(2) RT發(fā)送副幀數(shù)據(jù)
如果某遠(yuǎn)程終端向外發(fā)送的數(shù)據(jù)具有副幀,則該遠(yuǎn)程終端應(yīng)周期性地將副幀數(shù)據(jù)寫(xiě)入緩存區(qū)。此時(shí),BC周期性地調(diào)度該遠(yuǎn)程終端向其他外設(shè)發(fā)送不同的副幀數(shù)據(jù)。此處難點(diǎn)在于總線控制器調(diào)度時(shí)間與遠(yuǎn)程終端寫(xiě)入副幀時(shí)間的同步,否則會(huì)出現(xiàn)大量丟包和數(shù)據(jù)通信延遲現(xiàn)象。
3.4 BM模塊
飛行參數(shù)記錄儀作為BM監(jiān)控飛控半物理仿真平臺(tái)中1553B數(shù)據(jù)通信,監(jiān)視總線調(diào)度的正確性,并將監(jiān)視的通信數(shù)據(jù)存儲(chǔ)到建立的文件中,根據(jù)相應(yīng)的解碼原則可以還原整個(gè)1553B總線通信過(guò)程。
(1) 監(jiān)視模塊
在飛控半物理仿真平臺(tái)中,BC每一條調(diào)度指令執(zhí)行時(shí)間約1 ms,為了保障BM能監(jiān)視到1553B總線上每一條通信信息,設(shè)定BM運(yùn)行周期為1 ms。在VxWorks的主函數(shù)下開(kāi)啟一個(gè)監(jiān)視任務(wù),通過(guò)1553B總線的API(Application Programming Interface,應(yīng)用程序編程接口)函數(shù)BusTools_BM_ReadLastMessageBlock()周期性地監(jiān)視總線上是否有數(shù)據(jù)通信。
(2) 存儲(chǔ)模塊
在VxWorks操作系統(tǒng)下創(chuàng)建文件observe.txt用來(lái)存儲(chǔ)數(shù)據(jù)。當(dāng)1553B監(jiān)視到總線上有數(shù)據(jù)通信時(shí),將數(shù)據(jù)存儲(chǔ)到observe.txt文件中。存儲(chǔ)模塊用到的VxWorks I/O應(yīng)用接口函數(shù)為creat(),open(),write(),read()等,接口函數(shù)庫(kù)為ioLib。
4 總線負(fù)載率
查詢(xún)相關(guān)國(guó)軍標(biāo)資料[6],可知1553B各條指令每次執(zhí)行花費(fèi)的時(shí)間如表1所示。
1553B傳輸方式為半雙工,同一時(shí)刻總線上只能有一個(gè)方向的數(shù)據(jù)傳輸,可以通過(guò)時(shí)間來(lái)計(jì)算總線負(fù)載率。設(shè)置數(shù)據(jù)幀間隔為10 μs,通過(guò)計(jì)算,飛控半物理仿真平臺(tái)中1553B總線通信的負(fù)載率為49.8%,滿足技術(shù)要求指標(biāo)。
5 結(jié) 語(yǔ)
本文詳細(xì)介紹了基于飛控半物理仿真平臺(tái)中1553B總線調(diào)度軟件典型模塊的設(shè)計(jì)原則。經(jīng)過(guò)實(shí)際仿真試驗(yàn),該調(diào)度軟件實(shí)現(xiàn)了數(shù)據(jù)調(diào)度、軟件監(jiān)視、數(shù)據(jù)存儲(chǔ)、終端模擬等功能,工作性能穩(wěn)定,為研究1553B總線在其他半物理仿真平臺(tái)的應(yīng)用和移植提供依據(jù)。
參考文獻(xiàn)
[1] 廖文彬.MIL?STD?1553多功能總線測(cè)試卡的實(shí)現(xiàn)[D].成都:電子科技大學(xué),2009.
[2] 顏猛,蔣軒祥.1553總線BC/BBC配置下總線管理軟件的研究與實(shí)現(xiàn)[J].微電子學(xué)與計(jì)算機(jī),2003,20(1):20?22.
[3] 支超有.機(jī)載數(shù)據(jù)總線技術(shù)及其應(yīng)用[M].北京:國(guó)防工業(yè)出版社,2009.
[4] 周啟平,張揚(yáng),吳瓊,等.VxWorks開(kāi)發(fā)指南與Tornado實(shí)用手冊(cè)[M].北京:中國(guó)電力出版社,2004.
[5] 羅國(guó)慶.VxWorks與嵌入式軟件開(kāi)發(fā)[M].北京:機(jī)械工業(yè)出版社,2003.
[6] 國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì).5186.6?2005數(shù)字式時(shí)分制指令相應(yīng)型多路傳輸數(shù)據(jù)總線測(cè)試方法[EB/OL].北京:國(guó)防科學(xué)技術(shù)工業(yè)委員會(huì),2006.