999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于軟總線技術的艦船操控系統通用軟件架構研究

2022-10-19 10:43:20諶興良孫寒冰但楊文李海軍
艦船科學技術 2022年17期
關鍵詞:功能模塊模型系統

諶興良,孫寒冰,趙 光,但楊文,李海軍

(天津航海儀器研究所九江分部,江西 九江 332007)

0 引 言

艦船操縱控制系統是艦船上用于改變或保持航速、姿態、航向、深度的自動控制系統,是保障艦船生命力和遂行作戰使命的重要關鍵裝備。該裝備上運行的艦船操縱控制軟件系統是典型的分布式多任務異構嵌入式系統,功能涵蓋避碰決策、航路規劃、航跡控制、航向控制、舵角控制、姿態控制、推進控制以及水下載體特有的深度、潛浮、均衡、懸停控制等功能,如圖1 所示。作為嵌入式系統具有硬件依賴性,不同型號設備的硬件平臺差異較大,諸如總線形式、硬件驅動、操作系統、通信協議皆是形態各異,一般都是專為特定型號專門設計,無法實現軟件整體復用。為了屏蔽底層軟硬件平臺差異,實現功能模塊基于數據運行達到即插即用的目的,從而最終解決艦船操控系統軟件通用化的問題,必須站在頂層設計的高度,采用分層及構件化框架設計思路,開展艦船操控系統通用軟件架構的設計和實現。

圖1 艦船操控系統軟件功能組成Fig.1 Functional composition of ship maneuvering control system software

張智慧提出了基于分層技術的嵌入式系統架構設計思路,重點探討了架構分層原則、分層設計方法、分層技術應用,對嵌入式系統架構設計具有一定的理論指導價值和方法借鑒意義。曹敬瑜等提出一種適用于嵌入式分布計算環境下的高效軟件構件化框架。該軟件構架基于開放服務網關倡議(OSGi)標準,通過加入傳輸抽象層實現了在多通訊協議環境下的應用,具有通用性好、穩定性高、內存占用量少的特點。魏許等采用分層架構、抽象工廠的設計模式以及配置文件的方法,實現了多型號的自動化測試軟件的兼容,解決了軟件的通用性問題,對通用嵌入式軟件架構設計有重要參考價值。孫婧等提出了一種基于XML 文件的可配置、易更新的通用測控程序框架,使用XML 配置文件對測控軟件外部接口屬性進行描述,實現了軟件接口代碼的自動生成,提高了軟件的開發效率和可靠性。閆瑞東提出了基于軟總線的衛星姿控系統軟件體系結構,制定了基于軟總線的各模塊的通訊機制和數據結構,實現了可復用的軟件體系結構,增強了軟件的靜態和動態適應性,降低了軟件的開發和集成成本。

本文在研究總結艦船操縱控制系統的業務特點后,抽象出了生產者-消費者模式的業務邏輯模型,創新性地將該設計模式與軟總線思想相結合,提出適用于艦船操縱控制系統的通用軟件架構設計,實現了對艦船操控專業所有應用場景和需求的覆蓋,提高了軟件的整體復用性。本架構設計的優勢包括:

1)開放的體系結構

在CORBA 規范中,軟總線負責對各功能模塊進行調度和管理,并規定了各功能模塊必須滿足相關接口標準要求才能“連接”到總線上與其他模塊協同工作。本文的架構設計僅對軟總線接口設計執行了嚴格的標準要求,但對功能模塊沒有任何要求和限制,即功能模塊對于軟總線不可見,因此軟總線與功能模塊的耦合度較低,這就意味著功能模塊的開發和擴展更自由方便,同時軟總線也具有更廣泛的適用性。

2)易用的訪問接口

軟總線向功能模塊提供簡潔、規范、高效的數據訪問接口,功能模塊僅需憑借數據對象名稱即可獲得數據對象的訪問服務,實現對數據對象的屬性讀取、數值更新等操作。

3)可配置的數據對象

軟總線中的數據對象采用專用的信息描述模型,通過XML 文件實現描述對象的最小完備及可配置化定義,提高了軟總線的靈活性和適用性。

4)可容錯的并行結構

本架構摒棄了多功能模塊聯合組成系統的串行結構,采用容錯能力更強的并行結構,避免了某一功能模塊失效會造成系統癱瘓的缺陷,提高了系統的魯棒性和可靠性。

1 艦船操控軟件的通用架構總體設計

1.1 業務抽象模型

艦船操控軟件包含的每個單元功能模塊,都具備處理數據和產生數據的基本功能。如果將產生數據的模塊稱為生產者,處理數據的模塊稱為消費者,這便是面向過程的生產者-消費者設計模式。生產者的職責是負責制造、更新數據并放入緩沖區,消費者的職責是獲取、處理數據。生產者和消費者彼此之間不是直接通信,而是通過阻塞隊列來進行通信。

為了實現軟件設計“高內聚低耦合”的目標,本文將生產者-消費者模式引入嵌入式通用軟件架構設計中,把功能模塊的業務邏輯抽象成“數據生產者-數據消費者-數據倉庫”模型,如圖2 所示。

圖2 業務抽象模型Fig.2 Business abstract model

基于以上業務邏輯抽象模型,將功能模塊視為數據生產者和消費者的組合,各功能模塊將集合了眾多數據對象的數據倉庫作為唯一的對外通信對象,于是建立起以數據交換為核心的功能模塊交互模型,如圖3所示。

圖3 功能模塊交互模型Fig.3 Interaction model of functional modules

軟總線技術的概念最早由CORBA 規范提出,它屬于一種中間件技術,是虛擬的數據信息傳輸線。CORBA 規范定義了一組標準接口,遵循該規范所開發出的軟件模塊能夠相互通信,協作完成預期的任務,實現軟件模塊的“即插即用”。軟總線的技術優勢恰好與數據倉庫的需求相吻合,可以很好屏蔽底層硬件平臺、操作系統以及網絡傳輸協議的異構性,降低各模塊之間的耦合性,實現在不同數據標準或格式的異構系統之間進行高效便捷的數據交換。

本文將生產者-消費者設計模式與軟總線概念深度融合,搭建起艦船操縱控制軟件通用架構,如圖4所示。該架構提高了應用系統的互聯、互通、互操作能力,大大增強了代碼的靈活性、復用性。

圖4 艦船操控軟件通用架構示意Fig.4 General architecture hint of ship maneuvering control system software

1.2 面向數據交換的軟總線接口設計

本文所涉及的軟總線核心架構主要包括3 部分:軟總線接口、數據交換池、通信接口,如圖5 所示。

圖5 軟總線分層結構Fig.5 Hierarchical structure of software bus

1)軟總線接口,是軟總線架構設計的關鍵和靈魂。它是提供給上層應用功能模塊使用的標準接口類,擁有數據對象的數值、屬性讀取,數據更新通知事件的注冊、注銷等功能。軟總線接口的作用在于一方面解除了各功能模塊彼此之間的直接聯系,避免了相互調用接口導致的相互依賴;另一方面實現了數據的封裝,屏蔽了各種復雜的底層實現,為實現功能模塊即插即用的目標提供了條件。

2)數據交換池,是存儲數據對象數據信息的倉庫。數據交換池是在系統初始化時開辟的一段連續的內存區,存儲所有數據對象的實時數據。當數據發生更新時新數據將覆蓋舊數據。觸發數據更新的情況只有2 種:

①功能模塊完成數據處理后,將結果寫入數據交換池指定位置;

②通信接口接收到新數據后,將新數據覆蓋至數據幀對應的內存空間。

3)通信接口,搭建了網絡內節點設備互通的橋梁,實現了節點之間信息交互和共享。通信接口對上層應用而言屏蔽了底層硬件、通信協議以及操作系統的差異,隔離了底層硬件和上層編程的關聯,使上層應用能兼容不同操作系統,從而具有良好的可移植性。

1.3 艦船操控軟件的通用架構設計

基于以上功能模塊抽象模型和軟總線設計,搭建應用于艦船操控領域的嵌入式軟件通用架構,如圖6所示。該設計采用分層架構,從底至頂一共分為5 層:物理鏈路層,通信接口層,數據分發層,數據交換層,業務應用層。

圖6 艦船操控軟件通用架構分層設計Fig.6 Hierarchy design details of ship maneuvering control system software′s general architecture

1)物理鏈路層

物理鏈路層是指為數據端設備提供傳送通路、傳輸數據的具有物理形態的傳輸介質和設備,主要表現為物理形態的總線或網絡,例如串口、以太網、CAN 總線、1553B 總線等。

2)通信接口層

通信接口層通過封裝一組具有統一格式的標準數據訪問接口,屏蔽了通信硬件及其驅動的差異性,實現了硬件驅動的無關性,解決了節點設備之間通信所用的總線類型、接口方式、通信協議形式復雜多樣、難以統一的痛點。通信接口層對上統一了數據傳輸接口,對下封裝了具體總線的通信功能,在整個框架中起著承上啟下的作用。框架使用XML 配置文件來描述具體系統的通信通道及配置信息。

3)數據分發層

數據分發層實現通信數據路由、轉發功能,將來自通信接口層的數據作分流處理,如向上傳遞存儲到數據交換池,或者向其他通信通道透明轉發或者重新組幀轉發數據,或者進行數據幀過濾、篩選處理等。框架使用XML 配置文件來描述具體系統的數據分發器及配置信息。

4)數據交換層

數據交換層包含數據交換池和軟總線對外接口。數據交換池是存儲數據對象的連續內存區。功能模塊通過軟總線接口讀取或改寫數據對象對應的數據交換池數據,通信接口層接收的通信數據也會更新到對應的數據交換池內存區中。

5)業務應用層

業務應用層是系統所有應用功能模塊的集合,涵蓋了執行系統任務的具體功能實現。因為采用了軟總線技術,上層各功能模塊通過軟總線接口進行信息交互,相互之間不可見,彼此基于數據而獨立運行。

2 艦船操控軟件的通用架構實現

2.1 系統架構分解

軟件架構分解作為識別架構元素的有效手段,是建立層次清晰的系統組織結構的前提和關鍵步驟。根據業務切分和功能分解,可以將艦船操控軟件系統劃分為如圖7 所示的層次結構,主要分為底層數據交換包(DataExchange)和應用任務執行包(TaskExecute)兩大部分。

圖7 軟件系統架構實現Fig.7 Architecture implementation of software system

2.1.1 底層數據交換包

底層數據交換包包含了軟總線的所有功能實現,負責讀取系統配置文件、加載子模塊、驅動通信硬件、監控設備狀態、接收數據、緩存數據及數據自動發送,為TaskExecute 應用層提供數據訪問接口。其作用在于為上層應用模塊屏蔽和隔離底層硬件的差異,解除了應用層和底層的耦合關系,使上層應用因為基于數據運行而可以專注于系統功能的實現,為TaskExecute 中各功能模塊的獨立和通用奠定了基礎。

底層數據交換包下的目錄包括驅動(Driver)、數據分發器(Distributor)、數據解碼器(Decoder)、數據編碼器(Encoder)、配置文件解析器(XmlParser)、幀協議解析器(ProtocolParser)共6 大類基本框架模塊,如圖8 所示,其目錄結構和具體描述見表1。

表1 底層數據交換包的目錄結構Tab.1 Directory structure of data exchange package

圖8 數據接收序列圖Fig.8 Sequence diagram of receiving data

2.1.2 應用任務執行包

應用任務執行包是所有上層應用功能模塊的集合,它的實現要點包括:

1)輸出接口描述需規范完備。本文采用XML 格式的配置文件來描述功能模塊的輸出數據對象的屬性;

2)通過軟總線接口與外界通信。功能模塊調用統一的軟總線接口來訪問本地或遠程的其他功能模塊的輸出數據;

3)相似功能模塊力求通用化。任務類型相似的功能模塊經過抽象、封裝可以達到復用,如通道表決模 塊、PID 控制模塊等都具有很好的復用性;

4)專用功能模塊允許定制化。功能模塊的功能與系統要求的具體任務需求密不可分,需要開發者編寫代碼實現擴展定制,但對功能模塊的形式未做強制約束,這提高了對具體功能需求復雜性的適應性。

2.2 系統配置信息描述模型

系統構建的可配置化可使系統架構擁有良好的擴展性和靈活性。實現系統可配置化的前提是必須抽象出被描述對象的屬性,建立對應的信息描述結構模型,并且要求該模型能最小完備的刻畫對象特征。

2.2.1 系統通信協議描述模型

在實際系統開發中面對的通信協議復雜多樣,對數據對象信息采用統一的形式進行描述是實現系統構建可配置化的關鍵。通過對數據對象的屬性進行抽象,建立了數據對象的信息描述結構。

2.2.2 通信接口配置描述模型

通信接口模塊與硬件平臺、操作系統、網絡協議等息息相關,以往的開發模式是針對具體應用專門開發,無法做到支持多種總線類型、協議格式及軟硬件平臺。為了實現對上述差異因素的兼容,采取固化封裝共用業務邏輯、提取配置差異化信息的策略,抽象出了通信接口配置描述模型,具有配置靈活和擴展便捷的優點。

2.2.3 數據分發器配置描述模型

數據分發器用于描述通信接收數據的分發和路由方式,如上傳給數據緩存池、轉發至其他通信通道或數據篩選過濾等。

2.3 軟總線功能模塊設計

2.3.1 數據接收

通信接口模塊采用了環形緩沖區的數據結構來緩存接收的數據幀,每個通信接口對應一個環形緩沖區,保證一個環形緩沖區僅有一個讀用戶和一個寫用戶,不需要額外添加互斥保護機制就可以確保數據的安全性和正確性。用于描述數據接收的過程如圖8所示,接收數據的處理流程說明如下:

1)通信接口(如CAN1)接收到數據,進入中斷處理程序;

2)將數據幀寫入環形緩存區,并向通信接口管理類發送異步消息;

3)通信接口管理類收到接收數據的通知后,從環形緩存區讀取數據;

4)通信接口管理類將新接收的數據傳遞給數據分發管理者;

5)數據分發管理者將數據分發給Distributors.xml中配置的所有分發器,如通用分發器和數據轉發器;

6)通用分發器負責將數據幀拷貝到數據交換池內指定的內存區域,完成數據更新;

7)數據轉發器負責將數據通過CAN2 接口發送出去,完成數據的轉發。

2.3.2 數據發送

存儲在數據交換池內的數據是經過編碼器編碼處理的,可以在需要的時候直接發送。如果在Devices.xml配置文件中指定了發送頻率,本框架支持數據幀的自動周期發送功能,用于描述數據發送的過程如圖9 所示。

圖9 數據自動發送序列圖Fig.9 Sequence diagram of sending data automatically

實現步驟說明如下:

1)系統初始化時,由數據幀管理者(CPDOManager)創建定時器;

2)應用層的功能模塊調用軟總線接口函數,獲取數據幀對象(CPDO)指針;

3)調用接口函數啟動數據幀對象的自動發送接口;

4)遍歷指定了自動發送功能的所有數據幀。每次定時器輪轉周期到時,計算當前時間與上次成功發送本幀數據的時間間隔;

5)當時間間隔超過Devices.xml 中配置的發送時間間隔時,則通過指定通信通道將本數據幀發送出去;否則本次不發送。

2.3.3 數據訪問

應用層的功能模塊通過調用軟總線接口可以非常方便的訪問數據對象,讀取實時數值或數據屬性。用于描述數據訪問的過程如圖10 所示,以訪問數據對象“航向”實時數值為例,說明具體調用過程。

圖10 數據訪問序列圖Fig.10 Sequence diagram of data access

1)在功能模塊里調用軟總線接口函數,獲取“航向”數據對象(CSignal)的指針;

2)獲得“航向”數據對象對應數據交換池中的內存空間的地址;

3)從數據交換池中讀取“航向”的原始數據;

4)調用“航向”數據對象的解碼器將數據交換池中的原始數據解碼;

5)返回“航向”數據對象的實時物理值。

2.4 軟總線跨平臺設計

本通用架構的應用環境是面向多操作系統平臺,要求具有兼容多平臺的能力,所以需要對操作系統的主要API 做統一封裝,使得用戶可以基于統一的接口來開發各種嵌入式應用程序,從而實現這些應用程序在不同平臺上的代碼復用。本框架主要對Windows,Linux,VxWorks 操作系統的API 做了統一封裝,形成統一的標準接口。

3 結 語

本文提出的基于生產者-消費者模式和軟總線技術的艦船操控系統通用軟件架構,已經成功應用到艦船操縱控制系統軟件的開發,反饋結果表明架構具有良好的靈活性、可靠性、跨平臺性以及較高的運行效率,能較好滿足多型號產品的適用性需求。下一步的工作重點是為了適應操作系統國產化的需要,將開展本框架向麒麟、道等國產操作系統移植的適應性工作。

猜你喜歡
功能模塊模型系統
一半模型
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
重要模型『一線三等角』
重尾非線性自回歸模型自加權M-估計的漸近分布
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
基于ASP.NET標準的采購管理系統研究
軟件導刊(2016年9期)2016-11-07 21:35:42
3D打印中的模型分割與打包
輸電線路附著物測算系統測算功能模塊的研究
主站蜘蛛池模板: 99在线免费播放| 在线观看国产精品第一区免费| 欧美日本激情| 国内精品久久人妻无码大片高| 欧美成人第一页| 狠狠操夜夜爽| 亚洲日韩精品欧美中文字幕| 亚洲高清国产拍精品26u| 国产精品视频系列专区| 亚洲一级毛片| 国产AV毛片| 日本a级免费| 凹凸国产熟女精品视频| 国产欧美日韩综合在线第一| 亚洲va精品中文字幕| AV天堂资源福利在线观看| 国产性精品| 国产麻豆精品久久一二三| 色噜噜狠狠狠综合曰曰曰| 国产一区二区三区日韩精品| 免费观看亚洲人成网站| 国产微拍一区二区三区四区| 国产91高跟丝袜| 亚洲成网站| 久久久久久久97| 三上悠亚一区二区| 色播五月婷婷| 国产激爽大片在线播放| 久草视频精品| 青青草国产精品久久久久| 99视频在线观看免费| 亚洲综合经典在线一区二区| 欧美在线网| 成人在线不卡| 国产精品无码AV片在线观看播放| 一级全黄毛片| 九色综合伊人久久富二代| 亚欧成人无码AV在线播放| 久久无码av三级| 精品国产成人av免费| 人妻一区二区三区无码精品一区| 99久久性生片| 又爽又大又光又色的午夜视频| 色综合激情网| 亚州AV秘 一区二区三区| 99ri国产在线| 看国产毛片| 亚洲国产精品日韩专区AV| 国产区人妖精品人妖精品视频| 亚洲欧美日韩久久精品| 成人亚洲国产| 永久免费av网站可以直接看的| 国产精品私拍在线爆乳| 久久不卡精品| 99久久精彩视频| 亚洲丝袜中文字幕| 亚洲无线国产观看| 国产激情无码一区二区三区免费| 久久精品午夜视频| 亚洲性影院| 九九九精品成人免费视频7| 91青青视频| 特级做a爰片毛片免费69| 久草网视频在线| 亚洲国产成人久久精品软件| 色视频国产| 欧美精品色视频| 精品91自产拍在线| 国产精品亚洲五月天高清| 午夜无码一区二区三区在线app| 成人福利在线观看| 亚洲中文字幕23页在线| 9啪在线视频| 国产日韩精品一区在线不卡| 国产精品成人一区二区不卡| 亚洲国产系列| 欧美激情首页| 欧美一级在线看| 国产一区二区影院| 欧美一级99在线观看国产| 中文字幕在线播放不卡| 在线精品亚洲一区二区古装|