?

基于框架的開放式機載電子戰嵌入式軟件設計

2021-05-07 07:54洋,劉
計算機測量與控制 2021年4期
關鍵詞:嵌入式軟件電子戰構件

楊 洋,劉 堅

(中國電子科技集團公司 第二十九研究所,成都 610036)

0 引言

隨著時代的發展和技術的進步,機載電子戰嵌入式軟件呈現出下面幾個明顯的趨勢:

1)軟件規模越來越大:隨著電子戰系統告警、偵察、定位、干擾、對抗、協同等功能的不斷拓展,作為電子戰系統靈魂的嵌入式軟件的規模也從數千行擴展到數萬行。三代機電子戰系統軟件規模只有幾萬行,四代機電子戰系統軟件的規模已達到50萬行。

2)軟件復雜度越來越高:隨著電子戰業務需求的擴展和硬件功能的“軟件”化,機載嵌入式軟件往往需要由多個CSCI相互協作才能完成特定的功能,這些CSCI間的協作過程變得越來越復雜。

3)安全性要求越來越高:軟件失效可能引起的后果也越來越嚴重,輕者導致無法完成任務,重者導致設備損毀,甚至危及生命[1]。例如,2009年法航AF447航班由于測速儀結冰使得飛控軟件錯誤攀升,而軟件未設置高度上限,導致飛機墜毀[2]。

當前航空電子系統正向開放式、模塊化、綜合化的方向發展,需要在軟件架構上做出改進[3]。傳統的結構化的程序設計方法已不能適應當前機載嵌入式軟件研發的需要,基于軟件框架和構件的軟件設計方法將成為縮短軟件研發周期、提高軟件安全性、構建軟件產品平臺、實現軟件工業化[4]的必由之路。

本文重點闡述了一種基于軟件框架的機載電子戰嵌入式軟件設計方法。第1節介紹軟件框架和構件技術的定義,第2節介紹基于軟件框架和構件技術的機載電子戰軟件體系結構,第3節介紹電子戰軟件框架的設計準則,第4節介紹電子戰軟件構件的設計準則,第5節介紹基于軟件框架和構件的機載電子戰嵌入式軟件應用設計,最后一節是結論及評述。

1 軟件框架和構件技術

軟件框架(software framework)通常指的是為了實現某個業界標準或完成特定基本任務的軟件構件規范,也指為了實現某個軟件構件規范時,提供規范所要求之基礎功能的軟件產品[5]??蚣艿墓δ茴愃朴诨A設施,與具體的軟件應用無關,但定義并實現最為基礎的軟件架構和體系。

軟件構件(software component)是面向特定軟件體系架構的可復用軟件模塊,是指一個對象(接口規范、或者二進制代碼),它被用于復用,接口被明確定義[6]。構件是作為一個邏輯緊密的程序代碼包的形式出現的,必須遵循軟件框架的約束。構件必須具備的屬性有:1)有用性,構件必須提供有用的功能;2)可用性,構件必須易于理解;3)復用性,構件必須能被復用;4)適應性,構件應該易于通過參數化等方式在不同語境中進行重配置;5)可移植性,構件應能在不同的硬件運行平臺和軟件應用環境中工作。

2 機載電子戰嵌入式軟件體系結構

機載電子戰嵌入式軟件的業務模式主要包括數據處理、信號處理和管理控制功能。圖1給出了基于軟件框架的機載電子戰嵌入式軟件體系結構,包括軟件框架和軟件構件兩部分。軟件構件根據用途分為驅動層、業務支持層和業務邏輯層。

圖1 基于軟件框架的機載電子戰嵌入式軟件體系結構

1)機載電子戰嵌入式軟件框架:作為電子戰應用軟件的基礎設施,提供軟件構件定義與管理、消息通信、操作系統接口封裝、調試日志、看門狗管理等公共服務。

2)驅動層:完成電子戰軟件對外通信、數據采集和控制接口的抽象化封裝和適配。

3)業務支持層:承擔電子戰應用軟件的對外通信(傳輸層和鏈路層)數據接口功能,調用驅動層接口,完成電子戰業務的硬軟件設備訪問接口轉換??蛇M一步分為業務支持節點和協議組件兩種,實現點到點數據傳遞、數據組包解包、傳輸層流量控制、傳輸層差錯控制和字節順序等。

4)業務邏輯層:作為電子戰軟件應用層,基于業務功能和需求,實現可復用的電子戰軟件構件,分為功能節點和功能組件兩類,例如:XXX輻射源定位節點,XXX輻射源信號分選節點、XXX輻射源距離估計組件、XXX輻射源威脅等級評估組件等。

電子戰軟件構件間的通信數據按照傳輸路徑可劃分為碼元(比特、字節、雙字、四字節)、數據包、報文和消息四類,相應的通信協議也分為物理層、鏈路層、傳輸層和應用層四層。

1)碼元(比特、字節、雙字、四字節)是驅動層軟件構件與物理硬件間的數據交換接口,設計要點包括碼元的選擇、校驗、數據傳遞的方式(中斷、查詢)等。

2)數據包是業務支持層構件與驅動層構件的數據接口。設計要點包括:(1)數據包包頭包尾識別碼、長度、格式、路由、時間戳、包校驗;(2)數據包從碼元流的提取、流量控制;(3)載荷數據的加解密;(4)邏輯鏈路的建立和維持。

3)報文是業務支持層構件內部的數據,是業務消息在通信軟件構件間進行數據交換的映射。設計要點包括:(1)消息到報文編碼的映射;(2)消息的數據元素之間的位置關系;(3)消息的優先級;(4)消息的數據元素的高級數據類型到字節組合之間的變換;(5)業務支持層報文傳遞的方式(推、拉)。

4)消息是業務邏輯層中應用軟件構件間以及業務邏輯層應用軟件構件與業務支持層通信構件的交互數據,是帶有領域語義的數據結構與標識。

3 機載電子戰嵌入式軟件框架設計

機載電子戰嵌入式軟件框架的設計決策包括:

1)消息傳遞方式:軟件構件間的消息傳遞采用異步消息和同步調用兩種方法,適用于業務邏輯層內、業務邏輯層與業務支持層間軟件構件進行消息傳遞。異步消息采用基于優先級的消息隊列方式實現, 解決構件間的耦合問題。同步調用采用函數調用方式,提升響應速度。

2)任務調度方法:任務調度采用round-robin (基于優先級的時間片輪轉)調度算法,由操作系統提供調度支持。

3)通信可靠性:通信可靠性包括不丟和無錯設計兩方面?!安粊G”的設計決策為:(1)在驅動層與業務支持層之間使用消息隊列緩沖報文來應對通信鏈路與處理速率的不匹配;(2)在業務支持層定義數據包中的包數目和包序號,檢測數據包丟失;(3)在業務支持層定義報文中的流水號,檢測報文丟失;(4)在業務邏輯層定義響應報文,確認消息的到達?!盁o錯”的設計決策為;(a)在業務支持層定義數據包中的包校驗碼,檢測出錯,(b)在業務邏輯層定義響應報文,確認消息的有效性。

4)數據可靠性:(1)每個構件在初始化時預分配內存資源,包括存儲空間、信號量、消息隊列、管道和任務等系統資源。其中數組、消息隊列等類型變量要求預先計算最大長度進行分配;(2)接口數據必須進行驗證后才可使用;(3)CSCI的每個任務必須估算其堆棧最大使用量,并按至少2倍配置其任務堆棧區;(4)使用看門狗機制周期檢查軟件的健康狀態;(5)使用日志記錄軟件運行過程;(6)使用心跳消息使上一級軟件可以感知本軟件的存活性和故障情況;(7)對共性數據等臨界資源進行訪問保護。

5)復用性:(1)軟件構件采用抽象基類設計;(2)記錄、消息總線等公共服務組件采用服務類設計;(3)采用可配置化設計,例如:針對調試信息打印、看門狗和日志等服務設置使能標記等。

6)易用性:通過定義公共組件類和公共節點類,對軟件構件進行統一命名。

基于以上設計決策的電子戰嵌入式軟件框架組成見圖2,主要由構件公共節點類和公共組件類、構件管理、消息總線、調試記錄、操作系統隔離、工具類和看門狗構件組成。通過可以適應文獻[7]所描述的ARINC653、ASSAC和GOA等多種機載軟件IMA體系架構。

圖2 機載電子戰嵌入式軟件框架結構

1)公共節點類:作為周期任務,是所有業務邏輯功能軟件構件和業務支持軟件構件的基類;公共節點類的通用接口見表1。節點通過加載不同的配置可實現軟件功能重組,例如干涉儀定位節點既可配置為采用4基線干涉儀數據,也可配置為采用5基線干涉儀數據。

表1 公共節點類公用接口

節點運行的流程見圖3,節點初始化完成后,通過消息處理來接收其他節點或者組件發送的消息,通過周期處理來進行狀態監控和數據刷新。

圖3 公共節點運行主流程

節點通過向電子戰嵌入式軟件框架注冊輸入和輸出消息來進行數據交換。通過消息注冊接口,可以為每個節點定義一系列的輸入輸出消息,見圖4。其中每個輸入消息需綁定一個處理函數。

圖4 消息注冊

2)公共組件類:作為函數調用使用,是所有功能組件、協議組件、驅動組件的基類。公共組件類的通用接口見表2。

表2 公共組件類公用接口

3)構件管理組件:管理電子戰嵌入式軟件框架上所有的節點和組件,完成構件初始化、構件消息注冊和消息路由映射。

表3 構件管理組件公用接口

圖5描述了消息路由映射的關系示意。通其中A_Node的輸出消息M_Out1連接到了C_Node的輸入消息M_In1;B_Node的輸出消息M_Out1連接到了A_Node的輸入消息M_In2;C_Node的輸出消息M_Out1連接到了B_Node的輸入消息M_In2。消息路由可以支持1對1,1對多,多對1等多種方式。

圖5 消息路由映射

4)消息總線組件:為節點間、組件間提供基于優先級的數據交換功能,分為異步消息和同步調用兩類??刹捎梦墨I[8]所描述的DDS軟總線來實現。

表4 消息總線線公用接口

5)調試記錄組件:為節點和組件提供調試分級打印顯示和記錄的功能。其中調試等級分為錯誤,警告,優先,普通4個等級,可通過定義不同等級的開關來選擇性的進行消息輸出。

表5 調試記錄組件接口

6)操作系統封裝類:提供操作系統相關操作的接口封裝,包括:內存分配服務、任務、消息隊列、信號量、時間服務和中斷服務[9]。通過操作系統封裝類,可以適配文獻[10]中的多種嵌入式操作系統,例如:VxWokrs5.5,天脈,VxWokrks6.8,Linux等,支持應用軟件跨平臺移植的目的。

7)工具類:為軟件框架和構件提供數據存儲、專用算法庫和專用數據等基礎功能。主要實現的構件包括:文件記錄、內部消息鏈表、消息組包緩存、快速排序插件等。

8)看門狗:為節點健康運行提供標準、統一的監控和復位方法。提供了基于多節點的心跳監測和基于節點任務狀態監測兩種異常診斷方法。

4 軟件構件設計

軟件構件的設計決策:

1)分層:根據構件的用途,將構件分為業務邏輯層、業務支持層和驅動層三層。

2)分類:根據構件的類型,將構件分為節點和組件兩類。節點是可以基于框架獨立運行的任務。組件是被其他組件或者節點調用來完成特定的功能函數集。

3)復用性:節點和組件均派生自框架中的公共構件類(公共節點類和公共組件類),采用統一的接口和封裝形式。節點可以實例化多個對象進行復用。組件都按照可重入的模式進行設計。

業務邏輯層構件的結構見圖6。業務邏輯層構件完成與應用需求和業務相關算法與邏輯處理,根據類型可以劃分為功能節點和功能組件兩種。功能節點獨立或者調用一個或者多個功能組件一起完成某項特定的業務功能。

圖6 業務邏輯層組件的結構

業務支持層構件的結構見圖7。業務支持層構件完成應用軟件對外的數據接口和硬件設備訪問接口轉換??蓜澐譃闃I務支持節點和協議組件兩種。業務支持節點獨立或者調用一個或者多個驅動組件一起完成某項特定功能的接口通訊功能,并調用協議組件進行接口數據解包和組包的工作。協議組件完成碼元數據及報文的轉換工作。業務支持節點可選擇不同的適配協議組件,具有高度靈活性。例如:A課題和B課題都使用了RS422通訊,但是A課題和B課題的通訊協議不一樣,通過新開發一個B課題的通訊協議就可以完成適配工作,而不用更改RS422通信節點。

圖7 業務支持層組件的結構

業務支持節點的專用接口見表6。通過協議綁定接口完成協議的綁定動作。通過物理消息接收,物理消息發送方法完成通訊接口消息的收發(通過調用驅動層的接口)。通過物理消息接收處理方法完成通訊消息的處理。

表6 業務支持節點專用接口

協議組件的專用接口見表7。通過節點綁定方法對業務支持節點進行綁定。通過TransOut2In ()方法進行驅動層的碼元到業務邏輯層消息的轉換。通過TransIn2Out()方法進行業務邏輯層消息到驅動層數據碼元的轉換。通過PeriodProcess()方法進行協議組件的周期狀態管理工作。

表7 協議組件專用接口

驅動層構件的結構見圖8,主要完成對外通信、數據采集和控制接口的軟件封裝和映射。根據硬件的類型和使用平臺,可以開發不同的驅動。

圖8 驅動層構件

5 應用舉例

圖9是使用框架進行構造某電子戰管理控制軟件的一個例子。圖示的管控軟件完成電子戰管理控制、自檢、校準、日志和數據融合等功能,對外接口采用RS422和1553B總線[11]進行通訊,可分解為3個層次以及對應軟件構件。如需要更換對外通訊接口或交互協議,只需修改或者替換相應的業務支持層節點和協議組件,不用改動業務邏輯;反之如需更改業務邏輯,只需增加或者更改對應的功能節點或者組件。

圖9 基于框架的電子戰管理控制軟件程序結構

圖10是使用框架進行構造某項目電子戰信號處理軟件的一個例子。該軟件需完成定位、測向、識別、威脅計算和告警等功能,對外接口采用1553B,數據采集使用電子戰專用的數據采集接口,可以分解為3個層次以及對應的軟件構件。

圖10 基于框架的電子戰信號處理軟件程序結構

在兩個軟件中,框架、驅動層中的1553B總線通信驅動、業務支持層中的1553B總線通信節點和1553B報文協議、業務邏輯層中的日志節點均是共用的。

6 結束語

本文通過引入基于框架的設計方法對機載電子戰嵌入式軟件進行設計,統一和規范了機載電子戰嵌入式應用軟件的體系結構,使得電子戰系統軟件架構具備開放式軟件架構特征;通過軟件框架、業務邏輯層、業務支持層和驅動層軟件構件的開放式設計與復用,在提升軟件質量的同時使得軟件開發人員聚焦應用開發,有效提升了機載電子戰嵌入式軟件研發效率;通過軟件框架的隔離效應可支持應用軟件在不同操作系統間的快速部署,使得電子戰系統具備快速迭代升級能力。

猜你喜歡
嵌入式軟件電子戰構件
從近幾次局部沖突看俄軍電子戰能力的發展
電子戰領域的爭鋒
鋼筋混凝土構件裂縫控制
“電子戰大拿”殲-16D
淺析嵌入式軟件技術的現狀與發展動向
俄軍電子戰能力讓西方震驚
基于模型檢查的嵌入式軟件構件化分析與驗證
基于構件的軟件工程技術與理論方法探討
嵌入式軟件在計算機軟件開發過程中的運用
基于構件的軟件開發實踐
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合