何康力,陳儀香,王江濤
(1.華東師范大學(xué) 軟件學(xué)院 教育部軟硬件協(xié)同設(shè)計(jì)技術(shù)與應(yīng)用工程研究中心,上海200062;2.上海嵌入式系統(tǒng)研究所)
何康力(博士研究生),主要研究方向?yàn)槲锫?lián)網(wǎng)、量化驗(yàn)證、概率模型檢測(cè);陳儀香(博士生導(dǎo)師),主要研究方向?yàn)槲锫?lián)網(wǎng)、實(shí)時(shí)協(xié)同規(guī)范語(yǔ)言設(shè)計(jì)、程序語(yǔ)義模型、軟件可信度量與評(píng)估;王江濤(高級(jí)工程師),主要研究方向?yàn)榍度胧接?jì)算技術(shù)。
引 言
物聯(lián)網(wǎng)可以實(shí)現(xiàn)物物“溝通”、實(shí)時(shí)交互,對(duì)物聯(lián)網(wǎng)的研究和實(shí)現(xiàn)已經(jīng)成為當(dāng)今的熱點(diǎn)。傳統(tǒng)的互聯(lián)網(wǎng)在實(shí)時(shí)性、與環(huán)境交互性上已經(jīng)不能滿足生活和工業(yè)的需求,同時(shí)爆炸式的信息傳遞到后端服務(wù)器中處理已經(jīng)帶來(lái)了許多困擾。如何減少數(shù)據(jù)傳輸量、降低能量消耗、采用合理的數(shù)據(jù)融合算法是無(wú)線傳感器網(wǎng)絡(luò)(WSN)領(lǐng)域的重點(diǎn)研究?jī)?nèi)容。
以農(nóng)作物環(huán)境監(jiān)測(cè)作為案例背景,例如大棚作物養(yǎng)殖,需求主要分為兩個(gè)部分:①用戶可以在PC 端或者移動(dòng)端等不同網(wǎng)絡(luò)方式下得到傳感器傳來(lái)的實(shí)時(shí)數(shù)據(jù);②前端節(jié)點(diǎn)根據(jù)不同測(cè)量值的變化判斷農(nóng)作物是否處于正常環(huán)境,并通過(guò)控制制動(dòng)裝置調(diào)節(jié)環(huán)境或預(yù)警。由此分析可得,智能傳感器節(jié)點(diǎn)系統(tǒng)主要由兩部分組成:數(shù)據(jù)輸入端和具有計(jì)算功能的智能傳感器節(jié)點(diǎn)(簡(jiǎn)稱(chēng)“智能節(jié)點(diǎn)”)。
數(shù)據(jù)輸入端由WSN 中傳感器節(jié)點(diǎn)組成,智能節(jié)點(diǎn)通過(guò)接收來(lái)自ZigBee局域網(wǎng)的不同種傳感器數(shù)據(jù),對(duì)異構(gòu)數(shù)據(jù)進(jìn)行處理、就近計(jì)算,根據(jù)具體應(yīng)用需求得到結(jié)果,發(fā)送至監(jiān)控平臺(tái),并實(shí)現(xiàn)對(duì)外部裝置制動(dòng)控制的功能;通過(guò)將趙偉等[7]提出的Pipe協(xié)議移植到智能節(jié)點(diǎn)中,智能節(jié)點(diǎn)可通過(guò)Internet與監(jiān)控平臺(tái)建立安全、可靠、實(shí)時(shí)的點(diǎn)對(duì)點(diǎn)通信,并對(duì)外提供服務(wù),實(shí)現(xiàn)數(shù)據(jù)的跨平臺(tái)連接與共享。
智能傳感器節(jié)點(diǎn)系統(tǒng)主要分為感知模塊、WSN 協(xié)議模塊、控制計(jì)算模塊、WiFi模塊。其中感知模塊負(fù)責(zé)采集數(shù)據(jù);WSN協(xié)議模塊采用ZigBee協(xié)議進(jìn)行通信;控制計(jì)算模塊實(shí)現(xiàn)智能節(jié)點(diǎn)的就近計(jì)算、制動(dòng)控制及網(wǎng)絡(luò)通信;WiFi模塊實(shí)現(xiàn)接入互聯(lián)網(wǎng),傳輸并接收來(lái)自互聯(lián)網(wǎng)的數(shù)據(jù)。
圖1為智能節(jié)點(diǎn)系統(tǒng)的體系架構(gòu),其中虛線部分為智能節(jié)點(diǎn)系統(tǒng)與外界通信、交互。管道傳輸模塊為監(jiān)控平臺(tái)對(duì)外提供服務(wù)接口,將服務(wù)端(智能節(jié)點(diǎn))發(fā)送來(lái)的數(shù)據(jù)通過(guò)Pipe協(xié)議對(duì)外通信。制動(dòng)模塊由智能節(jié)點(diǎn)發(fā)出的控制信號(hào)驅(qū)動(dòng)。
1.3.1 用例圖
系統(tǒng)主要分為感知器子系統(tǒng)(包括變頻傳感器節(jié)點(diǎn))和智能節(jié)點(diǎn)子系統(tǒng)(包括智能節(jié)點(diǎn))。用例的參與者既包括系統(tǒng)的使用者——系統(tǒng)管理員,也包括相關(guān)的硬件設(shè)備——傳感器、ZigBee模塊、WiFi模塊、MCU、輸氧裝置等。每個(gè)子系統(tǒng)的用例即為各部分主要的功能。
1.3.2 活動(dòng)圖
由于活動(dòng)圖描述的是業(yè)務(wù)流程,其涉及到智能節(jié)點(diǎn)系統(tǒng)內(nèi)部以及對(duì)外的通信和交互,所以加入監(jiān)控平臺(tái)部分。參與活動(dòng)的類(lèi)包括:變頻傳感器節(jié)點(diǎn)、智能節(jié)點(diǎn)、監(jiān)控平臺(tái)。整個(gè)系統(tǒng)主要實(shí)現(xiàn)的業(yè)務(wù)流程有:智能節(jié)點(diǎn)系統(tǒng),監(jiān)控平臺(tái)接通電源,智能節(jié)點(diǎn)發(fā)送服務(wù)注冊(cè)請(qǐng)求,監(jiān)控平臺(tái)返回服務(wù)注冊(cè)響應(yīng),傳感器采集數(shù)據(jù),傳感器節(jié)點(diǎn)發(fā)送數(shù)據(jù),智能節(jié)點(diǎn)接收數(shù)據(jù),處理數(shù)據(jù),以及向監(jiān)控平臺(tái)發(fā)送發(fā)布數(shù)據(jù)。系統(tǒng)活動(dòng)圖略——編者注。
軟硬件劃分至今沒(méi)有一個(gè)明確的定義,加上其劃分算法的求解本身就是一個(gè)NP完全問(wèn)題[10],所以不存在一種最好的劃分方法,只有針對(duì)具體應(yīng)用系統(tǒng),采用一種相對(duì)最適合的方法。
本文中實(shí)現(xiàn)的系統(tǒng)結(jié)構(gòu)并不復(fù)雜,以功能為驅(qū)動(dòng),各個(gè)功能采用軟件還是硬件實(shí)現(xiàn)相對(duì)明確,所以采用按照功能模塊的方式對(duì)系統(tǒng)軟硬件進(jìn)行劃分,并滿足成本、性能的約束,分別得到系統(tǒng)不同功能中的軟件部分和硬件部分,如圖2所示。
采用陳儀香的發(fā)明專(zhuān)利[9],提取出“可改變采樣頻率傳感器”的控制算法,設(shè)計(jì)實(shí)現(xiàn)變頻傳感器節(jié)點(diǎn)。
變頻傳感器節(jié)點(diǎn)的硬件組成:傳感 器、MCU、開(kāi) 發(fā) 板、ZigBee 模塊、電源??紤]到軟硬件協(xié)同的性能約束條件,所以盡可能選擇低功耗、價(jià)格便宜、滿足功能需求的硬件設(shè)備,在硬件器材方面選擇8 位處理器、低功耗的開(kāi)發(fā)板。
硬件參數(shù)略——編者注。硬件部分的主要工作是傳感器采集數(shù)據(jù),通過(guò)STM8S-Discovery開(kāi)發(fā)板接收串口和信號(hào)轉(zhuǎn)換的外圍設(shè)備,采集數(shù)據(jù),然后處理器對(duì)數(shù)據(jù)進(jìn)行處理,由開(kāi)發(fā)板串口的外圍設(shè)備發(fā)送數(shù)據(jù),通過(guò)ZigBee模塊自動(dòng)生成ZigBee協(xié)議數(shù)據(jù)包發(fā)送到匯聚節(jié)點(diǎn)。硬件設(shè)備結(jié)構(gòu)圖見(jiàn)圖3。
圖2 軟硬件劃分圖
軟件開(kāi)發(fā)工具選用STVD(ST 官方集成開(kāi)發(fā)環(huán)境)、COSMIC(C語(yǔ)言編譯器)、ST-Link(仿真調(diào)試器)。
圖3 硬件設(shè)備結(jié)構(gòu)圖
變頻控制算法介紹如下:根據(jù)發(fā)明專(zhuān)利“一種可改變采樣頻率的傳感器設(shè)備及其控制方法”[9],得到變頻傳感器節(jié)點(diǎn)的控制算法。預(yù)先設(shè)定好監(jiān)測(cè)數(shù)據(jù)的標(biāo)準(zhǔn)值,通過(guò)將傳感器采集到的數(shù)據(jù)與標(biāo)準(zhǔn)值進(jìn)行求差比較計(jì)算誤差范圍,根據(jù)正常、警戒、報(bào)警等誤差級(jí)別調(diào)整采樣頻率。
以空氣溫度傳感器節(jié)點(diǎn)為例:一般大棚中對(duì)農(nóng)作物適宜的溫度為25 ℃左右,所以設(shè)定標(biāo)準(zhǔn)值為25(不同應(yīng)用,根據(jù)不同要求設(shè)定不同標(biāo)準(zhǔn)值)。通過(guò)與標(biāo)準(zhǔn)值的差(取絕對(duì)值),計(jì)算誤差范圍,正常范圍為[0,3];警戒范圍為(3,10];報(bào)警范圍為(10,∞);設(shè)定初始采樣頻率為1/15(次/秒)。每次采集數(shù)據(jù),如果誤差屬于正常范圍,則不改變采樣頻率;如果誤差屬于警戒范圍,則產(chǎn)生一次警戒記錄,并將采樣頻率調(diào)整為初始采樣頻率的3倍,即1/5;如果誤差屬于報(bào)警范圍,則產(chǎn)生一次報(bào)警記錄,并將采樣頻率調(diào)整為初始采樣頻率的5倍,當(dāng)連續(xù)非正常記錄超過(guò)5次(根據(jù)具體應(yīng)用可改),改變節(jié)點(diǎn)狀態(tài)(綠、黃、紅、分表表示正常狀態(tài)、警戒狀態(tài)、報(bào)警狀態(tài)),并將采樣頻率調(diào)整為初始采樣頻率的15倍。溫度-變頻算法控制流程圖見(jiàn)圖4。
圖4 溫度—變頻算法控制流程圖
其他類(lèi)型的傳感器節(jié)點(diǎn)控制算法流程圖與圖4相類(lèi)似,可以根據(jù)具體應(yīng)用需求設(shè)定相關(guān)參數(shù)。
采用軟硬件協(xié)同設(shè)計(jì)的思想,軟件依次實(shí)現(xiàn)系統(tǒng)硬件中的每個(gè)功能模塊,并保證前一個(gè)測(cè)試通過(guò),再進(jìn)行下一個(gè)功能的迭代開(kāi)發(fā)。
變頻傳感器節(jié)點(diǎn)實(shí)物圖略——編者注。
硬件參數(shù)略——編者注。
硬件部分的主要工作是:ZigBee模塊接收WSN 傳來(lái)的數(shù)據(jù),通過(guò)與其相連接的STM32L-Discovery開(kāi)發(fā)板接收串口的外圍設(shè)備,接收變頻傳感器節(jié)點(diǎn)采集到的數(shù)據(jù),處理器處理數(shù)據(jù)。一方面,通過(guò)開(kāi)發(fā)板通用輸出設(shè)備發(fā)送電壓高低指令控制外部設(shè)備,另一方面由開(kāi)發(fā)板發(fā)送串口的外圍設(shè)備發(fā)送數(shù)據(jù),通過(guò)WiFi模塊自動(dòng)生成TCP/IP協(xié)議數(shù)據(jù)包,經(jīng)由互聯(lián)網(wǎng)發(fā)送至監(jiān)控平臺(tái)Engine程序。同時(shí),打開(kāi)串口輸入中斷,監(jiān)聽(tīng)是否有數(shù)據(jù)輸入智能節(jié)點(diǎn),若有則將數(shù)據(jù)存入緩沖區(qū),接收完整數(shù)據(jù)包后交由處理器進(jìn)行處理數(shù)據(jù)。硬件設(shè)備結(jié)構(gòu)圖見(jiàn)圖5。
圖5 硬件設(shè)備結(jié)構(gòu)圖
軟件開(kāi)發(fā)工具選用ARM 公司的KeilμVsion4.70.0版本。開(kāi)發(fā)用到的函數(shù)庫(kù)為ST 公司提供的固件庫(kù)V1.0.0版本。智能節(jié)點(diǎn)的計(jì)算包括對(duì)數(shù)據(jù)進(jìn)行就近計(jì)算和嵌入Pipe協(xié)議并提供服務(wù)兩個(gè)部分。
4.2.1 就近計(jì)算部分
以綜合“診斷”為例,實(shí)現(xiàn)對(duì)異構(gòu)數(shù)據(jù)的計(jì)算處理。
應(yīng)用要求:大棚作物,滿足室內(nèi)溫度為15~25 ℃,光照強(qiáng)度為0.1~1.5萬(wàn)lx,土壤濕度為20%~35%,即為“正常狀態(tài)”,其他情況為“非正常狀態(tài)”。通過(guò)計(jì)算得出綜合“診斷”,并將“診斷”結(jié)果發(fā)送給監(jiān)控平臺(tái)。
代碼實(shí)現(xiàn):從SensorDatas[][]中取出最新室內(nèi)溫度值T、最新光照強(qiáng)度L、最新土壤濕度H,分別計(jì)算是否為T(mén)∈[15,25],L∈[0.1,1.5],H∈[20,35];定義變量result,如果以上公式都滿足,result為“正?!保绻幸粋€(gè)不滿足,result為“非正?!?,再通過(guò)硬件外設(shè)將result值發(fā)送給監(jiān)控平臺(tái)。綜合“診斷”邏輯圖見(jiàn)圖6。
4.2.2 Pipe協(xié)議嵌入部分
充分利用趙偉等[7]提出的Pipe協(xié)議安全、實(shí)時(shí)、跨平臺(tái)的優(yōu)勢(shì),建立智能節(jié)點(diǎn)與監(jiān)控平臺(tái)之間安全、實(shí)時(shí)的點(diǎn)對(duì)點(diǎn)通信。
將Pipe協(xié)議移植入智能節(jié)點(diǎn),智能節(jié)點(diǎn)通過(guò)WiFi模塊向監(jiān)控平臺(tái)Engine程序的“IP+端口號(hào)”發(fā)送服務(wù)注冊(cè)請(qǐng)求,接收Engine端返回的注冊(cè)請(qǐng)求相應(yīng),分析數(shù)據(jù)包,得到申請(qǐng)注冊(cè)結(jié)果。如果成功,開(kāi)始發(fā)送服務(wù)數(shù)據(jù);如果失敗或者接收超時(shí),則重新發(fā)送注冊(cè)請(qǐng)求。
智能節(jié)點(diǎn)實(shí)現(xiàn)Pipe協(xié)議的流程圖略——編者注。
圖6 綜合“診斷”邏輯圖
采用軟硬件協(xié)同設(shè)計(jì)的思想,軟件的實(shí)時(shí)實(shí)現(xiàn)根據(jù)硬件的能力和需求進(jìn)行調(diào)整。完成每個(gè)功能模塊時(shí),保證在已有硬件資源下軟件能協(xié)同硬件工作,再進(jìn)行下一個(gè)功能的迭代,以此達(dá)到低重返率的目的,減少系統(tǒng)開(kāi)發(fā)成本。至此,完成了智能節(jié)點(diǎn)的軟硬件協(xié)同設(shè)計(jì)。
系統(tǒng)集成就是將變頻傳感器節(jié)點(diǎn)、智能節(jié)點(diǎn)集成為智能節(jié)點(diǎn)系統(tǒng),實(shí)現(xiàn)內(nèi)部數(shù)據(jù)交互,同時(shí),智能節(jié)點(diǎn)系統(tǒng)與監(jiān)控平臺(tái)實(shí)現(xiàn)通信。系統(tǒng)集成關(guān)系圖略——編者注。
5.2.1 數(shù)據(jù)集成
3部分的數(shù)據(jù)要有一定的標(biāo)準(zhǔn)要求,才能互相識(shí)別和通信。智能節(jié)點(diǎn)與監(jiān)控平臺(tái)之間的通信數(shù)據(jù)由Pipe協(xié)議定義,主要采用xml格式,如:注冊(cè)相關(guān)數(shù)據(jù)以<GateProtocol>為外層標(biāo)簽,服務(wù)數(shù)據(jù)以<DataFrame>為外層標(biāo)簽等。
5.2.2 通信集成
內(nèi)網(wǎng)——ZigBee局域網(wǎng)介紹如下:變頻傳感器節(jié)點(diǎn)與智能節(jié)點(diǎn)之間,分別使用ZigBee模塊,自動(dòng)將數(shù)據(jù)打包成ZigBee協(xié)議數(shù)據(jù)包,建立ZigBee局域網(wǎng),實(shí)現(xiàn)相互通信。
外網(wǎng)——Internet分布介紹略——編者注。
結(jié) 語(yǔ)
本文設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng)不僅適用于對(duì)農(nóng)業(yè)、水體、大氣等自然環(huán)境的監(jiān)控,而且適用于對(duì)特定人群的特定屬性進(jìn)行監(jiān)控,如在某一區(qū)域內(nèi),老人身體健康指標(biāo)的監(jiān)測(cè)及預(yù)警等。
編者注:本文為期刊縮略版,全文見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。
[1]Heinzelman W R,Chandrakasan A,Balakrishnan H.Energy-efficient communication protocol for wireless microsensor networks[C]//Proceedings of the 33rd Annual Hawaii International Conference,Washington,2000:8020.
[2]孫凌逸,黃先祥,蔡偉,等.基于神經(jīng)網(wǎng)絡(luò)的無(wú)線傳感器網(wǎng)絡(luò)數(shù)據(jù)融合算法[J].傳感技術(shù)學(xué)報(bào),2011,24(1):122-127.
[3]張揚(yáng),楊松濤,張香芝.一種模擬退火遺傳算法的傳感器網(wǎng)絡(luò)數(shù)據(jù)融合技術(shù)研究[J].計(jì)算機(jī)應(yīng)用研究,2012,29(5):1860-1862.
[4]Petrovic D,Shah R C,Ramchandran K,et al.Data funneling:routing with aggregation and compression for wireless sensor networks[C]//Sensor Network Protocols and Applications,2003:156-162.
[5]Arici T,Gedik B,Altunbasak Y,et al.PINCO:apipelined in-network compression scheme for data collection in wireless sensor networks[C]//Computer Communications and Networks,2003:539-544.
[6]Wolf W H.Hardware-software co-design of embedded systems and prolog[J].Proceedings of the IEEE,1994,82(7):967-989.
[7]武建佳,趙偉.WInternet:從物網(wǎng)到物聯(lián)網(wǎng)[J].計(jì)算機(jī)研究與發(fā)展,2013,50(6):1127-1134.
[8]孫利民.無(wú)線傳感器網(wǎng)絡(luò)[M].北京:清華大學(xué)出版社,2005.
[9]陳儀香,王娜.一種可改變采樣頻率的傳感器設(shè)備及其控制方法[P].中國(guó),A,CN201110024869.6.2011-9-7.
[10]Dave B P,Jha N K.COHRA:hardware-software cosynthesis of hierarchical heterogeneous distributed embedded systems[J].Computer-Aided Design of Integrated Circuits and Systems,1998,17(10):900-919.
[11]Niemann R,Marwedel P.An algorithm for hardware/software partitioning using mixed integer linear programming[J].Design Automation for Embedded Systems,1997,2(2):165-193.
[12]熊志輝,李思昆,陳吉華.遺傳算法與螞蟻算法動(dòng)態(tài)融合的軟硬件劃分[J].軟件學(xué)報(bào),2005,16(4).
[13]羅莉,夏軍,何鴻君,等.一種有效的面向多目標(biāo)軟硬件劃分的遺傳算法[J].計(jì)算機(jī)科學(xué),2010,37(12):275-279.
[14]劉董倩.可改變采樣頻率傳感器的AADL 建模及其應(yīng)用[D].上海:華東師范大學(xué),2012.
[15]劉強(qiáng),崔莉,陳海明.物聯(lián)網(wǎng)關(guān)鍵技術(shù)與應(yīng)用[J].計(jì)算機(jī)科學(xué),2010,37(6):1-4.