• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      一種低耦合可移植的嵌入式主控軟件架構(gòu)設(shè)計

      2020-12-25 08:41:54趙興祥
      微處理機 2020年6期
      關(guān)鍵詞:中間件日志嵌入式

      趙興祥,趙 濤,唐 瑜,黃 華,彭 湖

      (重慶金美通信有限責任公司,重慶400030)

      1 引 言

      嵌入式系統(tǒng)因其的裁剪性強、可靠性高、實時性好、能耗低等特性,被廣泛應用在電子、通信、醫(yī)療等各行業(yè)中。隨著互聯(lián)網(wǎng)、5G、物聯(lián)網(wǎng)等技術(shù)的快速發(fā)展,嵌入式系統(tǒng)呈現(xiàn)出了系統(tǒng)化、生活化、網(wǎng)絡化、精簡化等發(fā)展趨勢[1]。在此背景下,穩(wěn)定、易擴展、兼容性好的嵌入式軟件架構(gòu)是高水準嵌入式軟件設(shè)計的可靠保障,也是嵌入式產(chǎn)品的性能及穩(wěn)定性的重要決定因素?,F(xiàn)有研究大多集中于此,但并不完善,例如:文獻[2]中提出的軟件架構(gòu),通過線程管理、備份硬件喚醒、通信協(xié)議設(shè)計等手段增強軟件的可靠性和穩(wěn)定性,但在移植性、擴展性方面的設(shè)計還不充分;文獻[3]中通過擴展Bios 設(shè)計提高嵌入式系統(tǒng)的可靠性,但沒有在擴展性、兼容性方向做出設(shè)計;文獻[4]設(shè)計并實現(xiàn)了基于通信中間件的綜合化信號與信息處理機軟件架構(gòu)RCSSystem,采用直接數(shù)據(jù)包通信方式取代了CORBA 中間件的遠程函數(shù)調(diào)用,通過總線互連,增強系統(tǒng)的穩(wěn)定性和可靠性,但架構(gòu)復雜,與硬件、驅(qū)動層耦合性大;文獻[5]中給出了基于多任務的實時處理架構(gòu)設(shè)計方法,但仍存在硬件耦合性大的問題。

      針對嵌入式系統(tǒng)耦合高、擴展性不足的現(xiàn)狀,在此設(shè)計一種低耦合、可移植、易擴展、支持熱插拔的嵌入式設(shè)備主控軟件架構(gòu)。

      2 軟件架構(gòu)設(shè)計

      2.1 總體架構(gòu)設(shè)計

      結(jié)合 SOA(Service Oriented Architecture)思想及分層思想,將軟件定義為服務,服務之間通過輕量化通信中間件進行整合[6],各服務以插件的方式獨立運行于系統(tǒng)中,可以根據(jù)需求動態(tài)加載或卸載各功能模塊,以滿足用戶業(yè)務、服務及性能的擴展性要求。軟件總體結(jié)構(gòu)如圖1。

      圖1 軟件總體架構(gòu)圖

      結(jié)合嵌入式系統(tǒng)平臺,核心管理服務、通信中間件及硬件抽象層構(gòu)成了服務的基礎(chǔ),形成物理層、MAC 層、網(wǎng)絡層以及安全等多種類的標準接口服務組件,其詳細架構(gòu)如圖2 所示。

      圖2 軟件架構(gòu)圖

      2.2 核心管理服務

      核心管理服務是整個架構(gòu)的基礎(chǔ)服務,作為獨立進程,主要用來實現(xiàn)整個軟件框架的模塊(組件)管理和消息(類似參數(shù))管理。

      2.2.1 模塊管理

      模塊管理負責對各服務模塊的加載/卸載過程及服務組件狀態(tài)等進行管理與監(jiān)控,對外提供模塊注冊注銷、模塊狀態(tài)查詢及狀態(tài)主動匯報等標準接口。模塊管理的運作機制如圖3 所示。

      圖3 模塊管理服務結(jié)構(gòu)圖

      當某個服務啟動時,先調(diào)用注冊接口向模塊管理注冊。模塊管理將該服務加入管理鏈表后,開始啟動監(jiān)控機制。監(jiān)控方式可以是由服務程序主動狀態(tài)匯報,也可以是模塊管理周期地查詢狀態(tài)。服務需要退出時,要先調(diào)用注銷接口脫離模塊管理。

      2.2.2 消息管理

      參數(shù)管理是參數(shù)(狀態(tài)及配置參數(shù))的集合,包含參數(shù)的定義與操作。消息管理對消息的訂閱、發(fā)布、可靠性保證等進行管控,與參數(shù)具體含義無關(guān)。參數(shù)管理配合消息管理,實現(xiàn)配置消息的檢查、存儲與初始化。

      服務完成注冊后,向消息管理模塊訂閱該服務啟動及運行過程中所需的全部參數(shù)。消息管理將該服務所訂閱的參數(shù)記錄到參數(shù)訂閱列表,并通過參數(shù)管理模塊獲取參數(shù)值后,發(fā)給消費者服務程序。如果某個參數(shù)值被修改,參數(shù)管理依據(jù)參數(shù)訂閱列表分發(fā)給各服務模塊。消息管理的體制如圖4。

      圖4 消息管理服務結(jié)構(gòu)圖

      路由拓撲、信道質(zhì)量等實時且不需要保存的信息,由提供者主動發(fā)布,消息管理按需分發(fā)給服務消費者。

      這一設(shè)計的思想是:參數(shù)管理只需關(guān)注初始化配置參數(shù),設(shè)備狀態(tài)信息無需初始化,由供方服務主動發(fā)布;設(shè)備新增的參數(shù),只需信息提供方、需求方自行訂閱分發(fā)即可,核心管理模塊無需做任何更改。

      2.3 通信中間件

      本架構(gòu)中,服務間通信均通過通信中間件來實現(xiàn)。借鑒SCA 思想,通信中間件類似CORBA(Common Object Request Broker Architecture)的對象請求代理ORB。中間件以庫文件的形式集成到服務軟件中,通過宏定義選擇編譯,可廣泛移植于不同操作系統(tǒng)平臺。一般情況下,作為獨立的線程運行在各個調(diào)用服務中,在沒有操作系統(tǒng)的CPU 上,中間件可以是一個接口封裝。

      通信中間件的功能包括:

      1)自動完成通信目標的查詢及信息可靠傳輸;

      2)為宿主程序提供同步、異步消息傳輸保障;

      3)記錄各個模塊的通訊地址而無需每次發(fā)送消息重復查詢服務。

      通信中間件的工作流程如圖5。

      圖5 通信中間件工作流程圖

      假設(shè)有服務A、B,在相互不知道對方是否存在的情況下,服務A 需要向服務B 發(fā)送業(yè)務時,服務A 向通信中間件發(fā)起試探,并從中間件獲得服務B的通信接口信息,隨后,即可向服務B 發(fā)起業(yè)務。通信的可靠性由通信中間件來保障。服務B 向服務A發(fā)起業(yè)務時,也是相同的操作。

      通信中間件對外提供的接口如圖6 所示。

      圖6 通信中間件結(jié)構(gòu)圖

      消息中間件的創(chuàng)建由服務調(diào)用發(fā)起,服務需為通信中間件提供接收消息的回調(diào)函數(shù)。消息中間件的同步發(fā)送接口會阻塞服務進程,異步發(fā)送接口要求服務提供回調(diào)函數(shù)。

      2.4 平臺基礎(chǔ)服務

      平臺基礎(chǔ)服務包括日志服務及調(diào)試打印服務兩個基本服務和系統(tǒng)資源抽象服務。

      (1) 日志服務

      日志記錄了包括各服務啟動、異常現(xiàn)場、系統(tǒng)資源使用情況等重要信息[7]。日志服務的數(shù)據(jù)在內(nèi)存中匯聚,周期性更新并保存到flash 上。

      日志服務對外提供日志輸入與日志顯示兩種標準接口。外部程序按照接口要求調(diào)用獲得日志服務。日志服務的構(gòu)建如圖7 所示。

      圖7 日志服務結(jié)構(gòu)圖

      (2) 網(wǎng)絡調(diào)試打印服務

      網(wǎng)絡調(diào)試服務提供基于優(yōu)先級的、支持本地/遠端信息輸出的服務[8],結(jié)構(gòu)如圖8 所示。

      圖8 網(wǎng)絡調(diào)試打印服務結(jié)構(gòu)圖

      調(diào)用print_config 標準接口啟動調(diào)試打印服務,并配置優(yōu)先級、輸出目標IP 等參數(shù)。通過xPrint 接口打印自定義的輸出格式數(shù)據(jù)。

      (3) 系統(tǒng)資源抽象服務

      服務對平臺IPC(Inter-Process Communication)、信號、串口等系統(tǒng)資源進行抽象化,將其封裝成標準的服務接口,無差別地為其他服務(包括通信中間件)提供支持。

      2.5 公共應用服務

      公共應用服務是指一般嵌入式通信設(shè)備均需要的一般服務,如人機交互服務、網(wǎng)絡管理服務、軟件維護服務、測試支撐服務等。

      架構(gòu)支持 LED 顯示屏、WEB、控制臺命令(Shell)等多手段的人機交互方式,形成標準的接口對外提供調(diào)用服務。類似于以操作為對象,對外提供不同的網(wǎng)絡管理服務接口,為上層應用或服務提供網(wǎng)絡管控手段。

      軟件維護服務主要是指軟件升級,涉及的場景共有三種,歸納于圖9 中。

      圖9 軟件維護的三個場景

      網(wǎng)絡中有服務器時,設(shè)備與服務器中的軟件進行版本檢測對比,不是最新版本則從服務器下載最新的軟件進行升級。沒有服務器時,設(shè)備之間自主進行軟件版本匹配,如果設(shè)備之間軟件版本不一致則從最新版本設(shè)備中下載新程序進行更新升級。

      架構(gòu)中的測試支撐服務是一個集中處理可測試性的接入窗口服務。設(shè)備軟硬件可測試性主要由具體的硬件、軟件模塊提供支撐。

      硬件可測試性支撐服務需要做到:提供各項硬件測試、檢測的執(zhí)行過程,并返回測試結(jié)果的自動測試功能;提供自動跳轉(zhuǎn)參數(shù)以滿足性能指標的自動校準功能。軟件可測試服務,指的是提供各項測試的測試用例、測試指令輸入口及執(zhí)行測試用例功能。

      測試支撐服務整體結(jié)構(gòu)如圖10 所示。其具備的功能包括:

      ①支持測試指令、校準指令輸入;

      ②支持調(diào)試指令輸入;

      ③具備測試、校準操作執(zhí)行過程集合。

      該服務對外提供輸入接口,可按照既定輸入規(guī)范,對軟硬件模塊進行狀態(tài)更改、控制及故障定位等進行測試與調(diào)試。

      圖10 測試支撐服務結(jié)構(gòu)圖

      3 平臺適應性分析

      本設(shè)計選用的軟件架構(gòu),適用于Linux 系統(tǒng)下ARM、PowerPC、X86 等平臺的嵌入式設(shè)備開發(fā)。核心管理服務在開發(fā)過程中,考慮程序移植性,支持多平臺的編碼設(shè)計,以宏定義的方式,針對不同的硬件平臺進行編譯選擇??紤]Linux 的內(nèi)核態(tài)和用戶態(tài)特性,在內(nèi)核態(tài)中,通過自定義標準函數(shù)指針的形式,對外提供注冊注銷以及數(shù)據(jù)發(fā)送接口,其他軟件模塊動態(tài)注冊時提供其數(shù)據(jù)接收接口;應用態(tài)模塊間通過套接字進行模塊間的數(shù)據(jù)傳輸。

      本架構(gòu)下的服務,應用態(tài)下以.so 文件存在,內(nèi)核態(tài)下以.ko 文件形式存在。核心管理程序根據(jù)用戶需求,動態(tài)調(diào)用、加載相應服務程序;用戶結(jié)束服務后,殺死或卸載對應的服務,減輕CPU 的負載壓力。依據(jù)Linux 系統(tǒng)可剪裁的特性,可根據(jù)嵌入式設(shè)備不同的應用需求,調(diào)整Linux 系統(tǒng)的實時性、搶占式參數(shù),對架構(gòu)中各模塊的優(yōu)先級進行設(shè)置,提高架構(gòu)在各平臺下不同應用場景的適配性。

      4 結(jié)束語

      結(jié)合嵌入式系統(tǒng)的應用背景,針對嵌入式設(shè)備可熱插拔、按需擴展、廣泛移植應用的需求,設(shè)計了可通用的主控軟件架構(gòu)。該軟件架構(gòu)基于SOA 思想進行設(shè)計,具有松耦合、易擴展、可移植、平臺無關(guān)等多個特點,已在多個項目和設(shè)備上實際應用,軟件的耦合性、擴展性、移植性均得到充分驗證,也可較好地適用于SCA、SDN 等技術(shù)的應用環(huán)境,具有良好的實用性和應用前景。

      猜你喜歡
      中間件日志嵌入式
      一名老黨員的工作日志
      華人時刊(2021年13期)2021-11-27 09:19:02
      扶貧日志
      心聲歌刊(2020年4期)2020-09-07 06:37:14
      RFID中間件技術(shù)及其應用研究
      電子制作(2018年14期)2018-08-21 01:38:10
      基于VanConnect中間件的設(shè)計與開發(fā)
      電子測試(2018年10期)2018-06-26 05:54:02
      搭建基于Qt的嵌入式開發(fā)平臺
      游學日志
      嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應用
      中間件在高速公路領(lǐng)域的應用
      Altera加入嵌入式視覺聯(lián)盟
      倍福 CX8091嵌入式控制器
      自動化博覽(2014年4期)2014-02-28 22:31:15
      湖北省| 灵台县| 新营市| 达州市| 依安县| 大新县| 稻城县| 锦州市| 凤冈县| 阿拉善左旗| 磐安县| 富顺县| 丰镇市| 汝南县| 南汇区| 岑溪市| 绥芬河市| 文昌市| 北流市| 安岳县| 吐鲁番市| 辽阳县| 铁力市| 广昌县| 卢氏县| 屏东市| 通江县| 孟津县| 汾西县| 上犹县| 安阳县| 永登县| 黄龙县| 西安市| 错那县| 梁河县| 邓州市| 梅州市| 思南县| 安化县| 麻栗坡县|