亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        嵌入式系統(tǒng)軟件自動生成方法研究

        2018-01-09 13:06:12陳駿勰
        軟件導(dǎo)刊 2017年12期
        關(guān)鍵詞:嵌入式技術(shù)云技術(shù)物聯(lián)網(wǎng)

        陳駿勰

        摘要:相比于PC軟件系統(tǒng)的設(shè)計,嵌入式系統(tǒng)的設(shè)計具有更多難點。由于嵌入式系統(tǒng)的CPU性能較差,嵌入式系統(tǒng)軟件設(shè)計對于很多初學(xué)者而言較為困難。研究了嵌入式系統(tǒng)軟件自動生成的方法,它是一款具有云服務(wù)的嵌入式系統(tǒng)開發(fā)套件的一部分,可以根據(jù)開發(fā)者需求,智能生成嵌入式軟件,所生成的軟件代碼只需進(jìn)行少量改動,即能實現(xiàn)具有云服務(wù)功能的嵌入式終端設(shè)計。經(jīng)過測試,生成的程序運行穩(wěn)定、通信安全性高、操作方便,可以為嵌入式系統(tǒng)學(xué)習(xí)者和開發(fā)人員提供一條新的系統(tǒng)開發(fā)路徑。

        關(guān)鍵詞:云技術(shù);物聯(lián)網(wǎng);阿里云;嵌入式技術(shù);ESP8266

        DOIDOI:10.11907/rjdk.172612

        中圖分類號:TP301

        文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2017)012-0036-04

        Abstract:Compared to the design of PC software system, the design of embedded system is more difficult. The current common market development kit mainly reduce hardware development difficulty. Due to poor CPU performance of the embedded system, embedded system software design is still one of the hardest difficult for many beginners to get started.Thic topic research the method of embedded system software automatically generated. It is a part of a cloud service development kit. The intelligent generation code only needs a little change, and can be achieved with embedded terminal design of cloud services. After testing, the generated program runs stably, the communication security is high, and the operation is convenient. It can provide a new system development path for the embedded system learners and developers.

        Key Words:cloud technology; Internet of Things; Ali cloud; embedded; ESP8266

        0 引言

        嵌入式系統(tǒng)[1]應(yīng)用非常廣泛,它是一種專用的計算機(jī)系統(tǒng),相比于PC系統(tǒng),其是軟件和硬件的綜合體,除需要設(shè)計軟件代碼外,硬件的相關(guān)設(shè)計也是嵌入式系統(tǒng)設(shè)計的難點之一。傳統(tǒng)的嵌入式系統(tǒng)開發(fā)套件更多地考慮了硬件設(shè)計的便利性,而對于嵌入式系統(tǒng)軟件設(shè)計的智能化和自動化研究較少,從而影響了嵌入式系統(tǒng)的開發(fā)和普及。隨著嵌入式系統(tǒng)的一大分支——智能家居[2]的發(fā)展,嵌入式系統(tǒng)的問題逐漸凸顯出來,如各種智能家居系統(tǒng)普遍存在不同廠家間設(shè)備難以兼容、云服務(wù)器設(shè)計難度大、難以保證信息安全性等問題。因此,各類為智能家居系統(tǒng)提供服務(wù)的云平臺服務(wù)系統(tǒng)應(yīng)運而生。阿里云物聯(lián)網(wǎng)開發(fā)套件即是其中的產(chǎn)品之一,它是阿里云專門為物聯(lián)網(wǎng)領(lǐng)域開發(fā)人員推出的,其目的是幫助開發(fā)者搭建安全且性能強大的數(shù)據(jù)通道,方便終端(如傳感器、執(zhí)行器、嵌入式設(shè)備或智能家電等)和云端的雙向通信。在安全上,物聯(lián)網(wǎng)套件提供多重防護(hù),保障設(shè)備云端安全;在性能上,物聯(lián)網(wǎng)套件能夠支撐億級設(shè)備長連接,百萬消息并發(fā)。物聯(lián)網(wǎng)套件還提供了一站式托管服務(wù),從數(shù)據(jù)采集到計算,再到存儲,用戶無需購買服務(wù)器部署分布式架構(gòu),只需通過規(guī)則引擎在Web上配置規(guī)則,即可實現(xiàn)“采集+計算+存儲”等全棧服務(wù)。另一方面,隨著無線通信技術(shù)的進(jìn)步,國內(nèi)外出現(xiàn)了大量帶有無線近距離通信功能的MCU芯片,其中ESP8266即是一款性價比較高的低功耗WiFi芯片[3-4]。它可以作為WiFi終端,也可以作為路由器使用,其同時具有較多外設(shè),開發(fā)靈活,應(yīng)用前景廣闊。

        筆者結(jié)合ESP8266與阿里云物聯(lián)網(wǎng)套件,設(shè)計了一款具有云服務(wù)功能的開發(fā)套件,它與其它同類產(chǎn)品最大的區(qū)別在于具有智能化的嵌入式系統(tǒng)軟件自動生成功能。相比于人工編寫代碼的方式,自動生成的代碼具有通信安全性高、配置方便、穩(wěn)定性高、兼容性強等優(yōu)勢,從而降低了嵌入式系統(tǒng)開發(fā)難度,提高了開發(fā)者的開發(fā)效率。

        開發(fā)套件由一個云平臺、終端軟件生成工具和相關(guān)硬件平臺構(gòu)成,默認(rèn)硬件采用STM32F103C8T6(以下簡稱STM32)為核心,開發(fā)套件的開發(fā)流程如圖1所示。使用者完成項目設(shè)計后,通過IE瀏覽器訪問云平臺,對自己的項目進(jìn)行配置,再通過嵌入式軟件生成算法生成相應(yīng)工程代碼,適當(dāng)修改后,燒錄入硬件平臺中,即可完成一個具有云服務(wù)功能的嵌入式系統(tǒng)設(shè)計。本文在簡要介紹整個系統(tǒng)結(jié)構(gòu)的前提下,主要介紹開發(fā)套件的核心,即嵌入式系統(tǒng)軟件自動生成算法的原理與流程。

        1 開發(fā)套件整體結(jié)構(gòu)

        如圖2所示,開發(fā)套件由兩部分構(gòu)成,一部分依托于阿里云的主控服務(wù)器(以下簡稱云端),另一部分是STM32和ESP8266組成的嵌入式系統(tǒng)開發(fā)模塊(以下簡稱終端)。云端由數(shù)據(jù)服務(wù)器和授權(quán)服務(wù)器構(gòu)成。數(shù)據(jù)服務(wù)器是整個云端的核心,為終端提供了與云服務(wù)有關(guān)的支持,如數(shù)據(jù)交互;授權(quán)服務(wù)器主要實現(xiàn)兩方面功能:一是給予開發(fā)人員項目設(shè)置功能,如配置項目數(shù)據(jù)點,綁定對應(yīng)的手機(jī)APP;二是給予終端設(shè)備授權(quán)驗證功能,實現(xiàn)設(shè)備秘鑰的分發(fā),簡化設(shè)備初次上網(wǎng)難度。終端由ESP8266和STM32組成,ESP8266實現(xiàn)與云端通信,STM32是終端的核心,嵌入式系統(tǒng)軟件生成工具的主要目標(biāo)就是智能化地生成終端軟件代碼。

        云端布置在阿里云上,通過阿里云物聯(lián)網(wǎng)套件與終端通信,每個開發(fā)者在云端、網(wǎng)頁完成注冊后,可以建立屬于自己的項目。開發(fā)套件的項目結(jié)構(gòu)如圖3所示,一個開發(fā)者可以新建若干項目,每一個項目下可以有多個終端設(shè)備。開發(fā)者使用賬號密碼管理自己創(chuàng)建的項目,每個項目會分配一個項目ID和項目秘鑰,這兩個參數(shù)需要寫入該項目的終端設(shè)備中。云端通過終端設(shè)備上報的項目ID和項目秘鑰對應(yīng)相應(yīng)的項目,同時每個終端會包含終端獨有設(shè)備ID和設(shè)備秘鑰,阿里云物聯(lián)網(wǎng)套件會通過該ID和秘鑰驗證終端身份,并且區(qū)分每個設(shè)備,以保證通信的可靠性。

        2 云端與終端通信協(xié)議

        云端與終端的數(shù)據(jù)交互方式非常重要,它提供了兩者數(shù)據(jù)交互的信道,對其進(jìn)行合理設(shè)計具有諸多重要意義:一方面數(shù)據(jù)交互是兩者間通信的重點,合理的通信方式可以在減少自動生成方法設(shè)計難度的同時,提高整體的通信安全性;另一方面是在終端初次聯(lián)網(wǎng)時,能夠智能地配置終端相關(guān)參數(shù),使開發(fā)者在使用本系統(tǒng)學(xué)習(xí)與調(diào)試時不用頻繁配置云端,解決了終端批量化生產(chǎn)后的參數(shù)配置問題。

        2.1 云端與終端通信方式

        由于終端與云端的通信需要借助于阿里云物聯(lián)網(wǎng)套件,因此終端使用MQTT[6-7](Message Queuing Telemetry Transport,消息隊列遙測傳輸)協(xié)議與云端進(jìn)行通信。MQTT可以應(yīng)用在低帶寬、不可靠的通信信道中,同時阿里云開發(fā)套件在MQTT協(xié)議之上額外使用TSL加密技術(shù)[8],以保證通信的保密性。因此,本系統(tǒng)的終端使用該協(xié)議與云端進(jìn)行通信,終端將MQTT協(xié)議封裝于ESP8266中,不需要開發(fā)者關(guān)心使用細(xì)節(jié)。

        2.2 終端聯(lián)網(wǎng)參數(shù)配置方式

        終端設(shè)備連接云端時,云端需要驗證終端的設(shè)備ID和秘鑰,用于分辨終端設(shè)備。為方便學(xué)習(xí)者燒寫程序后能自動刷新設(shè)備,設(shè)備ID和秘鑰記錄在STM32中,可以選擇在燒寫程序時固化,也可以在初次聯(lián)網(wǎng)時動態(tài)獲取。

        當(dāng)終端需要智能獲取聯(lián)網(wǎng)參數(shù)時,它會與云端的授權(quán)服務(wù)器通信,以獲取必要的參數(shù)。其流程是終端使用包含項目ID的數(shù)據(jù)包,通過HTTP協(xié)議向授權(quán)服務(wù)器申請新的設(shè)備ID和秘鑰,并加上相應(yīng)的MD5簽名[9],該簽名與項目秘鑰及當(dāng)前時間有關(guān)。如果授權(quán)服務(wù)器驗證通過,則會通過加密方式發(fā)送新的設(shè)備ID和設(shè)備秘鑰。

        2.3 數(shù)據(jù)交互協(xié)議設(shè)計

        系統(tǒng)的云端與終端兩部分間需要進(jìn)行數(shù)據(jù)交互,為了簡化設(shè)計,所有數(shù)據(jù)均采用數(shù)據(jù)點的方式進(jìn)行通信,也即是將要通信的數(shù)據(jù)做成一個個節(jié)點,當(dāng)終端和云端通信時,協(xié)議實現(xiàn)了這些節(jié)點數(shù)據(jù)的同步。對于云端和終端中同步的變量,兩者均保存一個副本,如一個燈的開關(guān)狀態(tài),當(dāng)一方需要修改該參數(shù)時,則通知另一方同時進(jìn)行修改,或者對于某一方可執(zhí)行的額外解析程序,如終端的異常報警,云端接收后不需要保存即可直接對用戶進(jìn)行警告。

        數(shù)據(jù)點從10H開始編號,最大編號為FFFFH,當(dāng)云端和終端通信時,這些數(shù)據(jù)點只使用編號進(jìn)行標(biāo)識,以減少網(wǎng)絡(luò)帶寬的消耗。這些數(shù)據(jù)點可以是整型、布爾型、浮點型、信息型或復(fù)合類型中的某一種類型,數(shù)字類型均采用固定字節(jié)的整型傳輸方式。對于浮點型的傳輸,會先乘以預(yù)先設(shè)置好的放大系數(shù),取整后再通過整型進(jìn)行傳輸。信息類型可以用來傳輸包括字符串在內(nèi)的任何長度的任何數(shù)據(jù),用戶可以靈活地進(jìn)行擴(kuò)展。

        信息類型的協(xié)議如表1所示,其規(guī)則與MQTT編碼類似,先發(fā)送MsgLen,再發(fā)送MsgData,當(dāng)信息長度小于128字節(jié)時,MsgLen占用1個字節(jié),否則MsgLen占用2個字節(jié),為第一個字節(jié)信息長度除以128的余數(shù)部分加上80H。第二個字節(jié)為整數(shù)部分,當(dāng)接收方解析時,根據(jù)相同規(guī)則進(jìn)行解析。

        在本系統(tǒng)中,一幀數(shù)據(jù)包只能傳遞一個數(shù)據(jù)點。因此,如果項目需要一次性傳輸多個數(shù)據(jù)點,則必須使用復(fù)合類型,復(fù)合類型可以將多個數(shù)據(jù)點打包(包括另一個復(fù)合類型的數(shù)據(jù)點)。復(fù)合類型在申明時,可以申明所包含數(shù)據(jù)點的ID和對應(yīng)順序,發(fā)送時按照申明時的順序進(jìn)行發(fā)送。比如要發(fā)送包含2個數(shù)據(jù)的復(fù)合類型數(shù)據(jù)點,本身ID為15H,其中第一個數(shù)據(jù)的ID為10H,類型為整型,第二個數(shù)據(jù)的ID為22H,類型為布爾型,則發(fā)送的數(shù)據(jù)包(十六進(jìn)制表示)可能為15 00 78 56 34 12 01,這代表了整型數(shù)據(jù)為12345678H,布爾型數(shù)據(jù)為真。

        3 終端代碼生成與運行原理

        代碼生成工具生成的軟件代碼由固定部分與動態(tài)生成部分構(gòu)成,其中固定部分的代碼與項目無關(guān),也是生成項目的核心程序,動態(tài)生成的程序代碼與項目相關(guān),由必要的動作函數(shù)和描述項目的數(shù)組組成,其中固定部分是生成代碼的核心,動態(tài)部分作為固定部分的補充。

        3.1 智能終端程序結(jié)構(gòu)

        終端由ESP8266和STM32構(gòu)成,其中ESP8266的代碼考慮到燒寫問題,直接固化,不需要代碼生成工具生成,對于任何項目均不改變,主要完成與云端交互的功能。代碼生成工具主要生成STM32的運行代碼。STM32程序由內(nèi)核層、API層、驅(qū)動層和數(shù)據(jù)點層構(gòu)成。內(nèi)核層是自動化生成代碼的核心,與具體項目無關(guān);數(shù)據(jù)點層用于存儲每個數(shù)據(jù)點的情況,代碼的生成是代碼生產(chǎn)器的核心工作;API層作為與內(nèi)核其它部分的接口,在自動化生成工具生成的同時,需要開發(fā)者進(jìn)行定義;驅(qū)動層實現(xiàn)了硬件資源的封裝與調(diào)用,如調(diào)用串口與ESP8266通信,與具體硬件相關(guān),通常不需要用戶定義與修改。

        內(nèi)核層的核心流程由消息和任務(wù)隊列組成,內(nèi)核程序流程如圖4所示,任務(wù)隊列由消息驅(qū)動,程序的其它部分都可以往消息隊列里添加消息。終端通過內(nèi)核層的任務(wù)機(jī)制,實現(xiàn)了偽并行功能,提高了終端并發(fā)的穩(wěn)定性。

        數(shù)據(jù)點層和API層是具體項目的核心,其中數(shù)據(jù)點層用來保存數(shù)據(jù)點的整體情況,除固定的API函數(shù)外,需要由代碼生成工具生成一個與項目相關(guān)的結(jié)構(gòu)體數(shù)據(jù),用來保存每個數(shù)據(jù)點的情況;API層是一個C文件,里面保存了所有數(shù)據(jù)點對應(yīng)的讀寫函數(shù),開發(fā)者可能需要對這一部分進(jìn)行二次定義;驅(qū)動層實現(xiàn)了內(nèi)核與硬件的交互,提供了諸如獲取系統(tǒng)狀態(tài)、發(fā)送調(diào)試數(shù)據(jù)等常用功能,可方便開發(fā)者調(diào)用系統(tǒng)資源,這里不作贅述。

        3.2 智能終端數(shù)據(jù)收發(fā)流程

        云端和終端數(shù)據(jù)交互是每個項目的核心功能之一,它驅(qū)動了云端和終端的相關(guān)事務(wù)流程,是自動生成方法的核心之一,以下介紹數(shù)據(jù)的收發(fā)流程。

        當(dāng)終端接收到一幀完整的數(shù)據(jù)包時,會依托內(nèi)核層建立一個任務(wù)用以解析該幀數(shù)據(jù),任務(wù)的執(zhí)行流程如圖5所示,可以簡述為:①解析數(shù)據(jù)包,通過數(shù)據(jù)點層API獲得云端發(fā)送數(shù)據(jù)的數(shù)據(jù)類型;②判斷數(shù)據(jù)點類型是否為復(fù)合類型,是則進(jìn)入③,否則進(jìn)入④;③通過數(shù)據(jù)點層API獲取該數(shù)據(jù)點集合,對于集合當(dāng)中的每個數(shù)據(jù)點,執(zhí)行②;④根據(jù)數(shù)據(jù)類型的編碼規(guī)則分離出數(shù)據(jù),建立一個新任務(wù),在新任務(wù)中執(zhí)行對應(yīng)數(shù)據(jù)點的寫API,將數(shù)據(jù)接入對應(yīng)數(shù)據(jù)點。

        在此流程當(dāng)中,網(wǎng)絡(luò)數(shù)據(jù)的解析與響應(yīng)分為兩個任務(wù)執(zhí)行,可避免解析程序運行時間過長,以提升產(chǎn)品用戶體驗。

        當(dāng)需要將終端數(shù)據(jù)發(fā)送給云端時,其流程與接收類似,開發(fā)者使用公共的發(fā)送API進(jìn)行發(fā)送,其輸入?yún)?shù)為數(shù)據(jù)點ID與需要發(fā)送的數(shù)據(jù),它會根據(jù)數(shù)據(jù)點層將待發(fā)送的數(shù)據(jù)打包為數(shù)據(jù)幀,發(fā)送到云端。

        3.3 程序自動生成方法

        由于代碼生成工具生成的項目代碼中,大部分都與具體項目無關(guān),對于這些代碼直接復(fù)制即可,少部分需要動態(tài)生成的代碼具有較統(tǒng)一的格式。它們的生成方法很簡單,流程如圖6所示。首先生成工具會讀取具體項目的配置文件,獲得正常開發(fā)的項目參數(shù),之后根據(jù)預(yù)先設(shè)計好的模板寫入各個參數(shù),生成可編譯的代碼,寫入硬盤的相應(yīng)位置,供用戶繼續(xù)開發(fā)使用。

        4 結(jié)語

        綜上述,本文研究的嵌入式軟件智能生成方法具有以下優(yōu)點:①項目數(shù)據(jù)點設(shè)計靈活,項目設(shè)計靈活性高;②可擴(kuò)展性較強,如二次開發(fā)者可以將本系統(tǒng)僅作為數(shù)據(jù)收發(fā)使用;③自動化程度高,可以智能地生成大部分代碼,減輕開發(fā)者工作難度。經(jīng)過合作學(xué)校的試用,獲得了較好的反響,該開發(fā)套件將在學(xué)生學(xué)習(xí)以及開發(fā)具有云功能的產(chǎn)品中扮演重要角色。

        參考文獻(xiàn):

        [1] 湯琳.基于智能電網(wǎng)的物聯(lián)網(wǎng)技術(shù)及其應(yīng)用研究[J].綿陽師范學(xué)院學(xué)報,2016,35(5):79-83.

        [2] 童曉渝,房秉毅,張云勇,等.物聯(lián)網(wǎng)智能家居發(fā)展分析[J].移動通信,2010,34(9):16-20.

        [3] 范興隆.ESP8266在智能家居監(jiān)控系統(tǒng)中的應(yīng)用[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2016,16(9):52-56.

        [4] 曹振民,陳年生,馬強,等.基于ESP8266的無線控制電路設(shè)計[J].工業(yè)控制計算機(jī),2017,30(1):68-69.

        [5] 李寧,卞祥.基于機(jī)智云的智能宿舍系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2016(2):59-60,64.

        [6] 劉峰,陳樸,賈軍營,等.WebSocket與MQTT在Web即時通信系統(tǒng)中的應(yīng)用[J].計算機(jī)系統(tǒng)應(yīng)用,2016,25(5):28-33.

        [7] IBM,Eurotech . MQTT V3.1 Protocol Specification [EB/OL]. https://www.ibm.com/developerworks/library/ws-mqtt/.

        [8] 楊亞平,李偉琴.基于SSL的數(shù)據(jù)安全傳輸系統(tǒng)的設(shè)計與實現(xiàn)[J].北京航空航天大學(xué)學(xué)報,2001,27(4):469-473.

        [9] 張裔智,趙毅,湯小斌,等.MD5算法研究[J].計算機(jī)科學(xué),2008,35(7):295-297.

        (責(zé)任編輯:黃 ?。?

        猜你喜歡
        嵌入式技術(shù)云技術(shù)物聯(lián)網(wǎng)
        基于S3C2440處理器系統(tǒng)的數(shù)字圖像處理技術(shù)和嵌入式技術(shù)結(jié)合機(jī)制
        云技術(shù)在士官職業(yè)教育中的應(yīng)用研究與探索
        語文教學(xué)中運用云技術(shù)提高學(xué)生審美能力
        高校數(shù)字資源云服務(wù)平臺的建設(shè)研究
        基于物聯(lián)網(wǎng)的煤礦智能倉儲與物流運輸管理系統(tǒng)設(shè)計與應(yīng)用
        基于高職院校物聯(lián)網(wǎng)技術(shù)應(yīng)用人才培養(yǎng)的思考分析
        遠(yuǎn)程監(jiān)控工作中嵌入式技術(shù)應(yīng)用
        國際圖書出版市場現(xiàn)狀及趨勢分析
        今傳媒(2016年9期)2016-10-15 22:36:15
        中國或成“物聯(lián)網(wǎng)”領(lǐng)軍者
        基于視覺反饋的智能環(huán)境偵察車的研究
        av狠狠色丁香婷婷综合久久| 久久久精品亚洲懂色av| 韩国日本在线观看一区二区| 免费人成黄页网站在线一区二区 | 成人国产一区二区三区| 欧美成人看片一区二区三区尤物 | 欧美寡妇xxxx黑人猛交| 特级毛片a级毛片免费播放| 色婷婷精品综合久久狠狠| 热综合一本伊人久久精品| 蜜臀av一区二区三区久久| 国产精品久久久久9999无码| 真实单亲乱l仑对白视频 | 日本熟妇中文字幕三级| 在线观看一区二区三区视频| 男人天堂这里只有精品| 亚洲成在人线在线播放无码| 中文字幕+乱码+中文字幕无忧| 亚洲AV专区一专区二专区三| 中文字幕熟女激情50路| 在线观看av网站永久| av人摸人人人澡人人超碰妓女| 国产97色在线 | 免| 亚洲av免费高清不卡| 熟女人妻在线中文字幕| 国产精品无码一区二区三区电影 | 伦伦影院午夜理论片| 精品亚洲一区二区三区在线观看| 中文字幕Aⅴ人妻一区二区苍井空| 亚洲一区精品一区在线观看| 国产专区国产精品国产三级| 中国无码人妻丰满熟妇啪啪软件 | 亚洲精品乱码久久久久久蜜桃不卡 | 亚洲乱妇熟女爽到高潮视频高清| 精品国际久久久久999波多野| 久久九九久精品国产| 久久久久久岛国免费网站| 综合成人亚洲网友偷自拍| 国产人妻高清国产拍精品| 18分钟处破好疼哭视频在线观看 | 真人男女做爰无遮挡免费视频|