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

一種基于MCU的物聯(lián)網(wǎng)關(guān)容器化軟件設(shè)計方法

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

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

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

0 引 言

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

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

1 設(shè)計原理介紹

基于MCU的物聯(lián)網(wǎng)終端系統(tǒng)包括硬件、硬件控制層、內(nèi)核層以及應(yīng)用層,具體結(jié)構(gòu)如圖1所示[6]。其中,內(nèi)核層和硬件控制層統(tǒng)稱系統(tǒng)服務(wù),應(yīng)用層統(tǒng)稱應(yīng)用軟件。

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

圖1 傳統(tǒng)物聯(lián)網(wǎng)終端軟件構(gòu)成圖

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

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

2 設(shè)計框架和定制方法

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

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

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

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

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

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

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

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

3 實驗與實現(xiàn)

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

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

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

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

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

app_fuc1_adr=fuc1應(yīng)用程序存儲地址;

app_fuc2_adr=fuc2應(yīng)用程序存儲地址;

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

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

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

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

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

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

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

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

表1 物聯(lián)網(wǎng)關(guān)端口接入設(shè)備列表

開關(guān)電源為標(biāo)準(zhǔn)電總協(xié)議,應(yīng)用模塊為app_com1;智能電表為標(biāo)準(zhǔn)MODBUS協(xié)議,應(yīng)用模塊為app_com2,煙霧傳感器為標(biāo)準(zhǔn)高低電平信號,應(yīng)用模塊為app_DI1;溫度傳感器為標(biāo)準(zhǔn)0~5V電壓信號,應(yīng)用模塊為app_AI1。各個應(yīng)用模塊以輪詢方式實現(xiàn)對端口數(shù)據(jù)的采集和解析,并將其封裝為上行數(shù)據(jù),產(chǎn)品應(yīng)用場景如圖4所示。

4 結(jié) 論

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

圖4 物聯(lián)網(wǎng)關(guān)應(yīng)用場景

猜你喜歡
資源服務(wù)系統(tǒng)
Smartflower POP 一體式光伏系統(tǒng)
基礎(chǔ)教育資源展示
WJ-700無人機系統(tǒng)
ZC系列無人機遙感系統(tǒng)
北京測繪(2020年12期)2020-12-29 01:33:58
一樣的資源,不一樣的收獲
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
服務(wù)在身邊 健康每一天
資源回收
連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 国产精品任我爽爆在线播放6080| 人妻丰满熟妇av五码区| 一级一级特黄女人精品毛片| 欧美一区中文字幕| 国产成人精品一区二区三在线观看| 国产一在线| 国产综合另类小说色区色噜噜| 国产高清精品在线91| 青青草原国产av福利网站| 视频国产精品丝袜第一页| 色综合天天视频在线观看| 波多野结衣无码中文字幕在线观看一区二区 | 国产一线在线| 18禁不卡免费网站| 国产成人亚洲精品蜜芽影院| 蜜桃视频一区| 久久国产香蕉| 国产色婷婷视频在线观看| 欧美人人干| 亚洲性视频网站| 成人在线第一页| 在线观看网站国产| 亚洲精品综合一二三区在线| 久996视频精品免费观看| 久久五月视频| 国内熟女少妇一线天| 国产女同自拍视频| 久久亚洲精少妇毛片午夜无码| 欧美啪啪精品| 欧美日本在线播放| 97在线免费视频| 国产激情国语对白普通话| 中文字幕乱码二三区免费| 国产情侣一区二区三区| 国模粉嫩小泬视频在线观看| 九九香蕉视频| 久久精品丝袜高跟鞋| 尤物精品视频一区二区三区| 欧美日韩国产在线人成app| 人妻精品久久无码区| 国产三级韩国三级理| 人妻无码一区二区视频| 在线视频一区二区三区不卡| 国产无吗一区二区三区在线欢| 国产美女久久久久不卡| а∨天堂一区中文字幕| 免费看美女毛片| 亚洲美女操| 成人福利免费在线观看| 人人艹人人爽| 五月激情综合网| 国产精品3p视频| 中文字幕首页系列人妻| 欧美一区二区丝袜高跟鞋| 亚洲人成网站18禁动漫无码| 四虎永久在线精品影院| 国产成人精品综合| 毛片网站免费在线观看| 亚洲精选高清无码| 免费无码又爽又黄又刺激网站| 中国一级毛片免费观看| 一级毛片免费观看久| 国产精品视频猛进猛出| 精品国产一二三区| 国产中文一区a级毛片视频| 久久天天躁狠狠躁夜夜2020一| 性69交片免费看| 国产香蕉国产精品偷在线观看 | 91久久国产综合精品女同我| 久久精品国产999大香线焦| 免费A级毛片无码免费视频| 五月天福利视频| P尤物久久99国产综合精品| 欧美成人手机在线视频| 国产乱肥老妇精品视频| 夜夜操狠狠操| 日韩毛片在线视频| 国产一级一级毛片永久| 高清欧美性猛交XXXX黑人猛交| 欧美黄色网站在线看| 色综合天天综合| 色欲不卡无码一区二区|