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