期刊VIP學(xué)術(shù)指導(dǎo) 符合學(xué)術(shù)規(guī)范和道德
保障品質(zhì) 保證專業(yè),沒(méi)有后顧之憂
來(lái)源:期刊VIP網(wǎng)所屬分類:軟件開(kāi)發(fā)時(shí)間:瀏覽:次
摘 要:在物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)中,其軟件系統(tǒng)的開(kāi)發(fā)往往受制于硬件節(jié)點(diǎn)的開(kāi)發(fā)進(jìn)度和完善程度,造成開(kāi)發(fā)進(jìn)度緩慢,需求不斷變更,軟件測(cè)試維護(hù)困難等問(wèn)題。如果能在開(kāi)發(fā)初期迅速搭建一個(gè)物聯(lián)網(wǎng)節(jié)點(diǎn)的模擬單元?jiǎng)t能夠極大促進(jìn)系統(tǒng)的開(kāi)發(fā)和完善。Arduino提供了一個(gè)開(kāi)源的、通用的、簡(jiǎn)單易用的硬件平臺(tái),非常適合模擬物聯(lián)網(wǎng)的硬件節(jié)點(diǎn)功能。本論文基于Arduino及其開(kāi)發(fā)框架,提出了一個(gè)通用的物聯(lián)網(wǎng)節(jié)點(diǎn)的模擬單元模型,基于該模型開(kāi)發(fā)了智能靶的虛擬節(jié)點(diǎn)用于智能靶網(wǎng)管控系統(tǒng)的開(kāi)發(fā),開(kāi)發(fā)實(shí)踐表明該模型和方法可以快速實(shí)現(xiàn)物聯(lián)網(wǎng)節(jié)點(diǎn)功能和數(shù)據(jù)的模擬,提高物聯(lián)網(wǎng)系統(tǒng)的開(kāi)發(fā)質(zhì)量。
關(guān)鍵詞:物聯(lián)網(wǎng);Arduino;軟件框架

1 引言(Introduction)
物聯(lián)網(wǎng)(IoT, Internet of Things)的繁榮帶動(dòng)了大量的物聯(lián)網(wǎng)應(yīng)用的開(kāi)發(fā)需求,一個(gè)完整的物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)包括基于智能硬件的節(jié)點(diǎn)開(kāi)發(fā),以及移動(dòng)端、PC端的網(wǎng)絡(luò)應(yīng)用開(kāi)發(fā),即使是一個(gè)小規(guī)模的物聯(lián)網(wǎng)應(yīng)用也是如此。由于硬件開(kāi)發(fā)的周期較長(zhǎng),網(wǎng)絡(luò)應(yīng)用軟件的開(kāi)發(fā)則相對(duì)較快,造成了軟件測(cè)試受制于硬件開(kāi)發(fā)進(jìn)度的矛盾,特別是對(duì)于那些依賴于快速迭代的軟件開(kāi)發(fā)技術(shù)的項(xiàng)目,會(huì)因此而受到很大的制約。此外,由于軟硬件開(kāi)發(fā)通常由不同的團(tuán)隊(duì)完成,測(cè)試帶來(lái)的人力和協(xié)調(diào)方面的成本也會(huì)很高[1]。
為了解決上述問(wèn)題,在軟件工程實(shí)踐中,通常是采用標(biāo)準(zhǔn)化的物聯(lián)網(wǎng)通訊協(xié)議或者數(shù)據(jù)封裝來(lái)解耦硬件和軟件系統(tǒng)之間的依賴。例如在物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)中廣泛使用的MQTT協(xié)議[2,3],以及基于TLV的數(shù)據(jù)封裝格式[4]等。但由于具體應(yīng)用千變?nèi)f化,物聯(lián)網(wǎng)絡(luò)結(jié)構(gòu)復(fù)雜,感知層網(wǎng)絡(luò)類型不統(tǒng)一等問(wèn)題的存在,這種方法并不能很好地解決開(kāi)發(fā)中的問(wèn)題。半物理仿真的概念是在仿真回路中引入部分實(shí)物,即硬件在環(huán)的方法,進(jìn)行控制系統(tǒng)的仿真[5],同樣,在軟件開(kāi)發(fā)和測(cè)試過(guò)程中,借鑒半物理仿真的思想,引入通用硬件技術(shù),對(duì)物聯(lián)網(wǎng)節(jié)點(diǎn)進(jìn)行模擬,可以很好地解決物聯(lián)網(wǎng)應(yīng)用開(kāi)發(fā)過(guò)程中的矛盾。
Arduino是一種開(kāi)源的通用硬件平臺(tái),具有開(kāi)發(fā)簡(jiǎn)單,接口豐富,成本低廉等優(yōu)點(diǎn),非常適合作為物聯(lián)網(wǎng)節(jié)點(diǎn)的模擬設(shè)備[6]。本論文將基于Arduino硬件平臺(tái),通過(guò)設(shè)計(jì)實(shí)現(xiàn)面向物聯(lián)網(wǎng)應(yīng)用的節(jié)點(diǎn)模擬軟件框架和模型,并以靶網(wǎng)管理系統(tǒng)軟件開(kāi)發(fā)為應(yīng)用背景,探討如何實(shí)現(xiàn)智能靶節(jié)點(diǎn)的模擬,以降低軟件開(kāi)發(fā)的周期和成本。
2 軟件系統(tǒng)建模(Software modeling)
2.1 框架設(shè)計(jì)
對(duì)于物聯(lián)網(wǎng)應(yīng)用來(lái)說(shuō),本質(zhì)上是物聯(lián)網(wǎng)智能節(jié)點(diǎn)與服務(wù)器之間的數(shù)據(jù)交換。由于物聯(lián)網(wǎng)底層和互聯(lián)網(wǎng)通常采用的協(xié)議不同,數(shù)據(jù)交換通常是基于一個(gè)物聯(lián)網(wǎng)關(guān)實(shí)現(xiàn)[2,7]。物聯(lián)網(wǎng)應(yīng)用系統(tǒng)的典型結(jié)構(gòu)模型如圖1所示。
物聯(lián)網(wǎng)傳輸協(xié)議有很多種,例如Zigbee、工業(yè)以太網(wǎng)、工業(yè)總線、NB-IoT等。對(duì)于Arduino而言,都有專門(mén)的模塊和轉(zhuǎn)接板對(duì)應(yīng)于這些網(wǎng)絡(luò)。通常Arduino與這些模塊之間是通過(guò)串口進(jìn)行通訊的,因此在設(shè)計(jì)基于Arduino的物聯(lián)網(wǎng)節(jié)點(diǎn)模擬軟件框架如圖2所示。
該軟件框架是從基于時(shí)間的嵌入式多任務(wù)框架[8]中擴(kuò)展而來(lái),其中方框表示軟件模塊/任務(wù),而箭頭表示調(diào)用關(guān)系。該框架包括以下內(nèi)容:
(1)“定時(shí)器”模塊提供了多任務(wù)的運(yùn)行時(shí)間片參考。該定時(shí)器使用了Arduino板上單片機(jī)的硬件定時(shí)器,并利用定時(shí)器的中斷服務(wù)來(lái)運(yùn)行任務(wù)調(diào)度模塊。
(2)“任務(wù)調(diào)度模塊”實(shí)現(xiàn)了對(duì)任務(wù)的管理和執(zhí)行。任務(wù)調(diào)度模塊會(huì)在定時(shí)器產(chǎn)生的時(shí)間間隔內(nèi)依次調(diào)用系統(tǒng)內(nèi)的任務(wù)模塊,這些任務(wù)模塊實(shí)現(xiàn)了對(duì)輸入的協(xié)議數(shù)據(jù)的解析,數(shù)據(jù)處理,模擬設(shè)備模型的執(zhí)行,以及生成返回給服務(wù)器的數(shù)據(jù)。這些任務(wù)模塊包括數(shù)據(jù)解析任務(wù)模塊、協(xié)議處理任務(wù)模塊、模擬設(shè)備任務(wù)模塊和數(shù)據(jù)發(fā)送任務(wù)模塊。其中模擬設(shè)備任務(wù)模塊是為了模擬節(jié)點(diǎn)的功能,例如和執(zhí)行控制、狀態(tài)更新等。
(3)“數(shù)據(jù)通訊模塊”實(shí)現(xiàn)了基于串口的與通訊設(shè)備的數(shù)據(jù)交換機(jī)制,針對(duì)不同的通訊設(shè)備,該模塊的實(shí)現(xiàn)不同,主要封裝了針對(duì)不同設(shè)備的通訊細(xì)節(jié);“設(shè)備實(shí)體/狀態(tài)模擬模塊”實(shí)現(xiàn)了節(jié)點(diǎn)功能和狀態(tài)的仿真,通常情況下是存儲(chǔ)與被模擬節(jié)點(diǎn)相關(guān)的數(shù)據(jù)。
5 結(jié)論(Conclusion)
本文提出了一種以Arduino作為硬件載體模擬物聯(lián)網(wǎng)系統(tǒng)的節(jié)點(diǎn)功能及其通訊的模型,用于物聯(lián)網(wǎng)應(yīng)用軟件的測(cè)試,采用半實(shí)物仿真的思想,讓軟件測(cè)試過(guò)程更接近真實(shí)場(chǎng)景,從而加速軟件開(kāi)發(fā)的進(jìn)程,提高物聯(lián)網(wǎng)應(yīng)用軟件系統(tǒng)的開(kāi)發(fā)效率,降低開(kāi)發(fā)成本。所開(kāi)發(fā)的模擬節(jié)點(diǎn)獲得的經(jīng)驗(yàn)更可以用于指導(dǎo)真實(shí)物聯(lián)網(wǎng)智能硬件節(jié)點(diǎn)的設(shè)計(jì)和開(kāi)發(fā)。本文提出了基于Arduino的物聯(lián)網(wǎng)節(jié)點(diǎn)的模擬軟件框架和實(shí)現(xiàn)方法,該軟件框架和實(shí)現(xiàn)在智能靶網(wǎng)控制軟件中進(jìn)行了應(yīng)用,所獲得的模擬靶機(jī)硬件能夠真實(shí)地模擬靶機(jī)的功能和交互,為靶網(wǎng)控制軟件的快速迭代發(fā)揮了重要作用。
目前該軟件框架以源碼的方式應(yīng)用在開(kāi)發(fā)中,在將來(lái)可以將其封裝成Arduino的庫(kù),以庫(kù)的形式集成在應(yīng)用中,這樣可以進(jìn)一步簡(jiǎn)化開(kāi)發(fā),實(shí)現(xiàn)代碼分離。
參考文獻(xiàn)(References)
[1] Antero Taivalsaari,Tommi Mikkonen.A Roadmap to the Programmable World:Software Challenges in IoT Era[J].IEEE Software,2017,34(1):72-80.
[2] 趙丹,諶建飛,鄧敏,等.基于MQTT的步進(jìn)電機(jī)遠(yuǎn)程控制方案實(shí)現(xiàn)[J].測(cè)控技術(shù),2018(6):126-129.
[3] 譚方勇,王昂,劉子寧.基于Zigbee與MQTT的物聯(lián)網(wǎng)網(wǎng)關(guān)通信框架的設(shè)計(jì)與實(shí)現(xiàn)[J].軟件工程,2017(4):43-45.
[4] 朱江彥,呂霖,向晉祥,等.基于BER-TLV報(bào)文格式的航標(biāo)與水位動(dòng)態(tài)數(shù)據(jù)交換技術(shù)[J].中國(guó)水運(yùn),2017(7):81-87.
[5] 蔡安江,蔣周月,郭師虹,等.半物理仿真技術(shù)工業(yè)應(yīng)用現(xiàn)狀及發(fā)展趨勢(shì)[J].航天控制,2018(6):52-56.