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

一種基于MCU的物聯網關容器化軟件設計方法

2020-11-11 07:36:54葉樂清鄭小芳
通信電源技術 2020年14期
關鍵詞:資源服務系統(tǒng)

高 政,葉樂清,鄭小芳,肖 柳

(1.杭州義益鈦迪信息技術有限公司,浙江 杭州 310019;2.杭州騰熠科技有限公司,浙江 杭州 310051;3.浙江大華技術股份有限公司,浙江 杭州 310051)

0 引 言

基于MCU的硬件終端成本低且功耗小,被廣泛應用于物聯網領域。在傳統(tǒng)應用場景中,MCU由于受到存儲、主頻以及外設等資源的限制,無法完成較復雜的操作和計算。傳統(tǒng)終端的系統(tǒng)服務和應用軟件集成在一套程序中,更新應用軟件時整套軟件都需修改,操作風險較高。隨著物聯網場景應用要求的不斷提高,客戶對MCU的軟件靈活性和開發(fā)效率提出了更高的要求。當大規(guī)模定制應用時,服務商無法高效滿足需求。另外,終端在實時性要求較高的場景中需承擔更多的邊緣計算任務。

IC行業(yè)快速發(fā)展,MCU性能不斷提高,提供服務的能力越來越強,需用新的思路來設計MCU軟件。文獻[1]設計和研究了嵌入式Linux系統(tǒng)的可重用組件,提出了一個基于XML的原型數據庫,減少了存儲所需的時間,提高了系統(tǒng)的整體效率。文獻[2]提出采用一種基于組件的輕量級方法來工程化嵌入式,以中間件方式實時控制軟件。文獻[3]提出了一種基于微控制器的軟件架構,主要應用于物聯網(IoT)捕獲數據卡。文獻[4]利用Docker容器化技術設計了在線實驗系統(tǒng),為用戶提供了良好的實驗靈活性。文獻[5]提出以軟件構件的形式封裝系統(tǒng)軟件,以標準的接口形式呈現給應用軟件,方便了系統(tǒng)的集成和維護。基于以上文獻基礎,提出了一種基于MCU的物聯網關容器化軟件設計方法。該方法中,MCU利用分散加載技術分離系統(tǒng)服務和應用軟件,以容器化方式將應用軟件劃分為多個應用模塊,且各模塊間可獨立開發(fā)和升級。由于系統(tǒng)服務和應用軟件的解耦,開發(fā)者可集中精力于各應用模塊的開發(fā)而無需關注系統(tǒng)支持,因此可縮短應用軟件開發(fā)周期,提高測試和部署效率。

1 設計原理介紹

基于MCU的物聯網終端系統(tǒng)包括硬件、硬件控制層、內核層以及應用層,具體結構如圖1所示[6]。其中,內核層和硬件控制層統(tǒng)稱系統(tǒng)服務,應用層統(tǒng)稱應用軟件。

如圖1所示,傳統(tǒng)模式中,系統(tǒng)服務和應用軟件共同組成了物聯網終端內部MCU的整套程序。當更新MCU應用軟件時,需在整套程序基礎上修改應用軟件,編譯鏈接生成可執(zhí)行代碼并下載到MCU中。

圖1 傳統(tǒng)物聯網終端軟件構成圖

利用所提方法分離系統(tǒng)服務和應用軟件,應用軟件以容器化方式劃分為多個模塊,且彼此之間可獨立開發(fā)和升級,具體如圖2所示。在系統(tǒng)服務基礎上搭建資源中臺,屏蔽硬件差異,為應用軟件提供資源。以容器化方式將應用軟件劃分為多個應用模塊,每個應用模塊可放在容器中獨立運行。每個應用模塊可從資源中臺獲取資源和數據,如讀操作、寫操作以及數據等[7]。MCU啟動后,以分散加載方式先啟動系統(tǒng)服務,逐步啟動容器中的應用模塊。應用軟件需更新時,只需在開發(fā)環(huán)境中修改應用模塊,借助編譯環(huán)境生成可執(zhí)行文件下載到原有容器即可。

圖2 系統(tǒng)服務和應用軟件分離

2 設計框架和定制方法

2.1 系統(tǒng)設計框架

MCU軟件的設計分離了系統(tǒng)服務和應用軟件。其中,系統(tǒng)服務負責系統(tǒng)框架、執(zhí)行邏輯以及資源控制,應用軟件在以容器化方式劃分為多個模塊,每個獨立開發(fā),負責邊緣計算服務。

在充分理解MCU運行機制的基礎上,搭建系統(tǒng)服務框架,定義資源中臺。系統(tǒng)服務包括程序存儲區(qū)域、資源中臺、外設驅動、運行庫、外設資源、啟動和加載配置描述等[8]。軟件設計框架和執(zhí)行流程如圖3所示。

圖3 軟件設計框架和執(zhí)行流程

程序存儲區(qū)為系統(tǒng)服務和各個應用模塊分配程序存儲區(qū)域,每個存儲區(qū)域有固定大小和起始地址,升級時可按存儲區(qū)域升級。資源中臺用于定義所有的函數地址、變量以及數據索引,便于使用系統(tǒng)服務和應用軟件。外設驅動可屏蔽硬件差異,操作MCU資源,包括IO和通信等。運行庫是MCU運行時所需的驅動庫、業(yè)務庫以及協議庫等。外設資源是MCU的固有資源,包括內存、存儲、中斷、定時、通信以及IO等[9]。啟動和加載配置描述應用程序存儲區(qū)、資源中臺配置以及系統(tǒng)分散加載項等相關參數,保證系統(tǒng)服務和應用軟件獨立開發(fā),統(tǒng)一運行。

系統(tǒng)服務包括輪詢應用和定時應用。輪詢應用在主循環(huán)中執(zhí)行,定時應用在中斷服務中執(zhí)行。開發(fā)系統(tǒng)服務時,需用加載配置項描述服務在應用程序存儲區(qū)的位置和資源中臺配置,保證系統(tǒng)服務可獨立更新,且可調用系統(tǒng)資源。應用軟件開發(fā)所用的資源中臺配置需與此配置相同。

以輪詢應用為例,介紹MCU軟件執(zhí)行流程。首先,在系統(tǒng)服務編譯時確定資源中臺在內存中的位置及各種資源在中臺中的位置,MCU根據加載項啟動,執(zhí)行初始化工作,包括定義各類應用程序存儲區(qū)等。其次,MCU根據資源中臺中定義的輪詢應用地址和定時應用地址,在主循環(huán)中以指針方式執(zhí)行多個輪詢應用,在中斷服務中以指針方式執(zhí)行定時應用。最后,執(zhí)行到某個應用模塊時,MCU運行指針從資源中臺跳轉到應用模塊存儲區(qū)執(zhí)行應用模塊函數體,完成應用軟件的業(yè)務功能[10]。

不同的應用軟件類型需要不同的開發(fā)模板。以輪詢應用為例,當某個應用模塊需更新時,使用具備與系統(tǒng)服務相同資源中臺配置的開發(fā)環(huán)境修改模塊代碼,編譯生成可執(zhí)行目標文件,并將其下載到指定程序存儲區(qū),MCU按已有機制執(zhí)行更新后的應用模塊。

3 實驗與實現

為驗證方法的可行性,設計了MCU作為STM32F207的最小系統(tǒng),啟動模式設置為BOOT0。在MCU中內置app_fuc1和app_fuc2兩個應用模塊,開發(fā)環(huán)境為keil,描述如何實現應用軟件app_fuc與系統(tǒng)服務的獨立開發(fā)和升級。

在MCU系統(tǒng)服務開發(fā)環(huán)境中,分散加載包括系統(tǒng)服務程序存儲地址描述和資源中臺配置描述,描述如下:

以上描述中,定義了系統(tǒng)服務在程序存儲區(qū)的存儲位置和運行時在內存中的位置,規(guī)定了資源中臺的起始地址和長度。

在啟動文件中描述資源中臺的內部定義,保證系統(tǒng)服務和應用程序的全局使用,描述如下:

app_fuc1_adr占用4個字節(jié),為app_fuc1函數的執(zhí)行地址,即app_fuc1應用模塊的存儲地址;app_fuc2_adr占用4個字節(jié),為app_fuc2函數的執(zhí)行地址,即app_fuc2應用模塊的存儲地址。系統(tǒng)服務初始化時,為app_fuc1和app_fuc2分配起始地址的描述如下:

app_fuc1_adr=fuc1應用程序存儲地址;

app_fuc2_adr=fuc2應用程序存儲地址;

在系統(tǒng)服務的循環(huán)執(zhí)行中,以函數指針方式執(zhí)行兩個應用,描述如下:

((void (*)())app_fuc1_adr)();/*執(zhí)行應用程序1*/

((void (*)())app_fuc2_adr)();/*執(zhí)行應用程序2*/

此處系統(tǒng)服務已完成對應用模塊app_fuc1和應用模塊app_fuc2的執(zhí)行。

在應用模塊開發(fā)環(huán)境中,分散加載包括應用模塊程序存儲地址描述和資源中臺配置描述。為保證資源中臺使用的標準性和統(tǒng)一性,其所使用資源中臺描述與系統(tǒng)服務中的保持一致,描述如下:

在啟動文件中對資源中臺的內部定義與系統(tǒng)服務中的保持一致,描述如下:

在應用模塊開發(fā)環(huán)境中,應用程序存儲地址和資源中臺內部定義等配置完畢后,只需開發(fā)服務應用函數app_fuc。main函數無實質性操作,開發(fā)主體描述如下:

按照上述實現方法,設計了基于MCU的物聯網關并應用在動力環(huán)境監(jiān)控場景中。該網關具備4個串口、8路數字量輸入接口、4路模擬量輸入接口以及1路網口。每個端口可升級配置為任意應用模塊,從而完成每個端口的功能。選取4個端口進行驗證,端口接入信息如表1所示。

表1 物聯網關端口接入設備列表

開關電源為標準電總協議,應用模塊為app_com1;智能電表為標準MODBUS協議,應用模塊為app_com2,煙霧傳感器為標準高低電平信號,應用模塊為app_DI1;溫度傳感器為標準0~5V電壓信號,應用模塊為app_AI1。各個應用模塊以輪詢方式實現對端口數據的采集和解析,并將其封裝為上行數據,產品應用場景如圖4所示。

4 結 論

文中基于MCU的物聯網關容器化軟件設計方法,利用分散加載技術,分離系統(tǒng)服務和應用軟件,將應用軟件以容器化方式劃分為多個應用模塊,且模塊間可獨立開發(fā)和升級,提高了應用程序定制化開發(fā)效率。該方法在運營商通信機房的動力環(huán)境監(jiān)控領域中廣泛使用,設備維護效率較高,且可在其他領域進行推廣應用。

圖4 物聯網關應用場景

猜你喜歡
資源服務系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
基礎教育資源展示
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
一樣的資源,不一樣的收獲
服務在身邊 健康每一天
服務在身邊 健康每一天
服務在身邊 健康每一天
資源回收
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 最新精品久久精品| 欧美日韩国产精品综合| 日韩久久精品无码aV| 欧美黄网站免费观看| 亚洲成人网在线播放| 国产96在线 | 欧美自拍另类欧美综合图区| 欧美中文字幕第一页线路一| 日本黄色不卡视频| 国产主播一区二区三区| 综1合AV在线播放| 一本无码在线观看| 国产麻豆va精品视频| 日本在线视频免费| 久久永久免费人妻精品| 日韩第九页| 欧美有码在线观看| 在线国产毛片| 亚洲成在人线av品善网好看| 好久久免费视频高清| 国产成人AV综合久久| 亚洲中文字幕无码爆乳| 欧美性色综合网| 国产白丝av| 国产内射一区亚洲| 国产精品欧美激情| 99久久精彩视频| 91精品专区国产盗摄| 制服丝袜亚洲| 国产裸舞福利在线视频合集| 久久黄色视频影| 国产无码高清视频不卡| 亚洲精品第一页不卡| 日日噜噜夜夜狠狠视频| 国产亚洲欧美另类一区二区| 一级黄色网站在线免费看| 亚洲精品高清视频| 中文字幕在线欧美| 人妻中文久热无码丝袜| a级毛片一区二区免费视频| 国产福利影院在线观看| 日本精品αv中文字幕| 乱人伦视频中文字幕在线| 国产精品人莉莉成在线播放| 青青草国产在线视频| 亚洲国产在一区二区三区| 天天视频在线91频| 国产亚洲精品精品精品| a级毛片网| 久久久久无码精品| 最新亚洲人成网站在线观看| 久久久久久久蜜桃| 成人福利视频网| 91蜜芽尤物福利在线观看| 丰满人妻久久中文字幕| 中文字幕 91| 欧美成人精品一区二区| 全部无卡免费的毛片在线看| 亚洲精品免费网站| 亚洲人成人无码www| 青草视频免费在线观看| 国产国模一区二区三区四区| 四虎影视国产精品| 亚洲无码熟妇人妻AV在线| 亚洲一区二区视频在线观看| 色综合天天操| 亚洲最大情网站在线观看 | 久久久久人妻一区精品色奶水| 亚洲精品亚洲人成在线| 国产欧美日韩va| 暴力调教一区二区三区| 亚洲愉拍一区二区精品| 色悠久久久| 亚洲成a人片77777在线播放| 国产精品播放| 久热这里只有精品6| 国产拍揄自揄精品视频网站| 国产又爽又黄无遮挡免费观看| 中文字幕永久在线看| 国产情侣一区| AV天堂资源福利在线观看| 日韩欧美国产三级|