何康力,陳儀香,王江濤
(1.華東師范大學 軟件學院 教育部軟硬件協同設計技術與應用工程研究中心,上海200062;2.上海嵌入式系統研究所)
何康力(博士研究生),主要研究方向為物聯網、量化驗證、概率模型檢測;陳儀香(博士生導師),主要研究方向為物聯網、實時協同規范語言設計、程序語義模型、軟件可信度量與評估;王江濤(高級工程師),主要研究方向為嵌入式計算技術。
引 言
物聯網可以實現物物“溝通”、實時交互,對物聯網的研究和實現已經成為當今的熱點。傳統的互聯網在實時性、與環境交互性上已經不能滿足生活和工業的需求,同時爆炸式的信息傳遞到后端服務器中處理已經帶來了許多困擾。如何減少數據傳輸量、降低能量消耗、采用合理的數據融合算法是無線傳感器網絡(WSN)領域的重點研究內容。
以農作物環境監測作為案例背景,例如大棚作物養殖,需求主要分為兩個部分:①用戶可以在PC 端或者移動端等不同網絡方式下得到傳感器傳來的實時數據;②前端節點根據不同測量值的變化判斷農作物是否處于正常環境,并通過控制制動裝置調節環境或預警。由此分析可得,智能傳感器節點系統主要由兩部分組成:數據輸入端和具有計算功能的智能傳感器節點(簡稱“智能節點”)。
數據輸入端由WSN 中傳感器節點組成,智能節點通過接收來自ZigBee局域網的不同種傳感器數據,對異構數據進行處理、就近計算,根據具體應用需求得到結果,發送至監控平臺,并實現對外部裝置制動控制的功能;通過將趙偉等[7]提出的Pipe協議移植到智能節點中,智能節點可通過Internet與監控平臺建立安全、可靠、實時的點對點通信,并對外提供服務,實現數據的跨平臺連接與共享。
智能傳感器節點系統主要分為感知模塊、WSN 協議模塊、控制計算模塊、WiFi模塊。其中感知模塊負責采集數據;WSN協議模塊采用ZigBee協議進行通信;控制計算模塊實現智能節點的就近計算、制動控制及網絡通信;WiFi模塊實現接入互聯網,傳輸并接收來自互聯網的數據。
圖1為智能節點系統的體系架構,其中虛線部分為智能節點系統與外界通信、交互。管道傳輸模塊為監控平臺對外提供服務接口,將服務端(智能節點)發送來的數據通過Pipe協議對外通信。制動模塊由智能節點發出的控制信號驅動。
1.3.1 用例圖
系統主要分為感知器子系統(包括變頻傳感器節點)和智能節點子系統(包括智能節點)。用例的參與者既包括系統的使用者——系統管理員,也包括相關的硬件設備——傳感器、ZigBee模塊、WiFi模塊、MCU、輸氧裝置等。每個子系統的用例即為各部分主要的功能。
1.3.2 活動圖
由于活動圖描述的是業務流程,其涉及到智能節點系統內部以及對外的通信和交互,所以加入監控平臺部分。參與活動的類包括:變頻傳感器節點、智能節點、監控平臺。整個系統主要實現的業務流程有:智能節點系統,監控平臺接通電源,智能節點發送服務注冊請求,監控平臺返回服務注冊響應,傳感器采集數據,傳感器節點發送數據,智能節點接收數據,處理數據,以及向監控平臺發送發布數據。系統活動圖略——編者注。
軟硬件劃分至今沒有一個明確的定義,加上其劃分算法的求解本身就是一個NP完全問題[10],所以不存在一種最好的劃分方法,只有針對具體應用系統,采用一種相對最適合的方法。
本文中實現的系統結構并不復雜,以功能為驅動,各個功能采用軟件還是硬件實現相對明確,所以采用按照功能模塊的方式對系統軟硬件進行劃分,并滿足成本、性能的約束,分別得到系統不同功能中的軟件部分和硬件部分,如圖2所示。
采用陳儀香的發明專利[9],提取出“可改變采樣頻率傳感器”的控制算法,設計實現變頻傳感器節點。
變頻傳感器節點的硬件組成:傳感 器、MCU、開 發 板、ZigBee 模塊、電源??紤]到軟硬件協同的性能約束條件,所以盡可能選擇低功耗、價格便宜、滿足功能需求的硬件設備,在硬件器材方面選擇8 位處理器、低功耗的開發板。
硬件參數略——編者注。硬件部分的主要工作是傳感器采集數據,通過STM8S-Discovery開發板接收串口和信號轉換的外圍設備,采集數據,然后處理器對數據進行處理,由開發板串口的外圍設備發送數據,通過ZigBee模塊自動生成ZigBee協議數據包發送到匯聚節點。硬件設備結構圖見圖3。

圖2 軟硬件劃分圖
軟件開發工具選用STVD(ST 官方集成開發環境)、COSMIC(C語言編譯器)、ST-Link(仿真調試器)。

圖3 硬件設備結構圖
變頻控制算法介紹如下:根據發明專利“一種可改變采樣頻率的傳感器設備及其控制方法”[9],得到變頻傳感器節點的控制算法。預先設定好監測數據的標準值,通過將傳感器采集到的數據與標準值進行求差比較計算誤差范圍,根據正常、警戒、報警等誤差級別調整采樣頻率。
以空氣溫度傳感器節點為例:一般大棚中對農作物適宜的溫度為25 ℃左右,所以設定標準值為25(不同應用,根據不同要求設定不同標準值)。通過與標準值的差(取絕對值),計算誤差范圍,正常范圍為[0,3];警戒范圍為(3,10];報警范圍為(10,∞);設定初始采樣頻率為1/15(次/秒)。每次采集數據,如果誤差屬于正常范圍,則不改變采樣頻率;如果誤差屬于警戒范圍,則產生一次警戒記錄,并將采樣頻率調整為初始采樣頻率的3倍,即1/5;如果誤差屬于報警范圍,則產生一次報警記錄,并將采樣頻率調整為初始采樣頻率的5倍,當連續非正常記錄超過5次(根據具體應用可改),改變節點狀態(綠、黃、紅、分表表示正常狀態、警戒狀態、報警狀態),并將采樣頻率調整為初始采樣頻率的15倍。溫度-變頻算法控制流程圖見圖4。

圖4 溫度—變頻算法控制流程圖
其他類型的傳感器節點控制算法流程圖與圖4相類似,可以根據具體應用需求設定相關參數。
采用軟硬件協同設計的思想,軟件依次實現系統硬件中的每個功能模塊,并保證前一個測試通過,再進行下一個功能的迭代開發。
變頻傳感器節點實物圖略——編者注。
硬件參數略——編者注。
硬件部分的主要工作是:ZigBee模塊接收WSN 傳來的數據,通過與其相連接的STM32L-Discovery開發板接收串口的外圍設備,接收變頻傳感器節點采集到的數據,處理器處理數據。一方面,通過開發板通用輸出設備發送電壓高低指令控制外部設備,另一方面由開發板發送串口的外圍設備發送數據,通過WiFi模塊自動生成TCP/IP協議數據包,經由互聯網發送至監控平臺Engine程序。同時,打開串口輸入中斷,監聽是否有數據輸入智能節點,若有則將數據存入緩沖區,接收完整數據包后交由處理器進行處理數據。硬件設備結構圖見圖5。

圖5 硬件設備結構圖
軟件開發工具選用ARM 公司的KeilμVsion4.70.0版本。開發用到的函數庫為ST 公司提供的固件庫V1.0.0版本。智能節點的計算包括對數據進行就近計算和嵌入Pipe協議并提供服務兩個部分。
4.2.1 就近計算部分
以綜合“診斷”為例,實現對異構數據的計算處理。
應用要求:大棚作物,滿足室內溫度為15~25 ℃,光照強度為0.1~1.5萬lx,土壤濕度為20%~35%,即為“正常狀態”,其他情況為“非正常狀態”。通過計算得出綜合“診斷”,并將“診斷”結果發送給監控平臺。
代碼實現:從SensorDatas[][]中取出最新室內溫度值T、最新光照強度L、最新土壤濕度H,分別計算是否為T∈[15,25],L∈[0.1,1.5],H∈[20,35];定義變量result,如果以上公式都滿足,result為“正常”,如果有一個不滿足,result為“非正?!?,再通過硬件外設將result值發送給監控平臺。綜合“診斷”邏輯圖見圖6。
4.2.2 Pipe協議嵌入部分
充分利用趙偉等[7]提出的Pipe協議安全、實時、跨平臺的優勢,建立智能節點與監控平臺之間安全、實時的點對點通信。
將Pipe協議移植入智能節點,智能節點通過WiFi模塊向監控平臺Engine程序的“IP+端口號”發送服務注冊請求,接收Engine端返回的注冊請求相應,分析數據包,得到申請注冊結果。如果成功,開始發送服務數據;如果失敗或者接收超時,則重新發送注冊請求。
智能節點實現Pipe協議的流程圖略——編者注。

圖6 綜合“診斷”邏輯圖
采用軟硬件協同設計的思想,軟件的實時實現根據硬件的能力和需求進行調整。完成每個功能模塊時,保證在已有硬件資源下軟件能協同硬件工作,再進行下一個功能的迭代,以此達到低重返率的目的,減少系統開發成本。至此,完成了智能節點的軟硬件協同設計。
系統集成就是將變頻傳感器節點、智能節點集成為智能節點系統,實現內部數據交互,同時,智能節點系統與監控平臺實現通信。系統集成關系圖略——編者注。
5.2.1 數據集成
3部分的數據要有一定的標準要求,才能互相識別和通信。智能節點與監控平臺之間的通信數據由Pipe協議定義,主要采用xml格式,如:注冊相關數據以<GateProtocol>為外層標簽,服務數據以<DataFrame>為外層標簽等。
5.2.2 通信集成
內網——ZigBee局域網介紹如下:變頻傳感器節點與智能節點之間,分別使用ZigBee模塊,自動將數據打包成ZigBee協議數據包,建立ZigBee局域網,實現相互通信。
外網——Internet分布介紹略——編者注。
結 語
本文設計實現的系統不僅適用于對農業、水體、大氣等自然環境的監控,而且適用于對特定人群的特定屬性進行監控,如在某一區域內,老人身體健康指標的監測及預警等。
編者注:本文為期刊縮略版,全文見本刊網站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].傳感技術學報,2011,24(1):122-127.
[3]張揚,楊松濤,張香芝.一種模擬退火遺傳算法的傳感器網絡數據融合技術研究[J].計算機應用研究,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:從物網到物聯網[J].計算機研究與發展,2013,50(6):1127-1134.
[8]孫利民.無線傳感器網絡[M].北京:清華大學出版社,2005.
[9]陳儀香,王娜.一種可改變采樣頻率的傳感器設備及其控制方法[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]熊志輝,李思昆,陳吉華.遺傳算法與螞蟻算法動態融合的軟硬件劃分[J].軟件學報,2005,16(4).
[13]羅莉,夏軍,何鴻君,等.一種有效的面向多目標軟硬件劃分的遺傳算法[J].計算機科學,2010,37(12):275-279.
[14]劉董倩.可改變采樣頻率傳感器的AADL 建模及其應用[D].上海:華東師范大學,2012.
[15]劉強,崔莉,陳海明.物聯網關鍵技術與應用[J].計算機科學,2010,37(6):1-4.