陳恒如,趙寧社,陳天運
(西安文理學院 軟件學院 陜西 西安 710065)
目前在環保環境監測系統中,物聯網技術起著重要作用。物聯網通過標識、感知、傳送和信息處理四個關鍵環節,將環境中的觀察對象緊密地連接在一起,并依托軟件技術智能地感知、推理和分析。物聯網實現對數據進行管理和智能處理,主要包括數據的采集、存儲、查詢、融合與挖掘等,其數據面主要負責數據的分組和傳遞[1]。而環保物聯網的數據具有其自身的業務特殊性,其主要由污染源前端監控系統、傳輸網絡、監控中心組成。數據通過有線專網或無線的網絡傳輸方式將污染源在線監控數據傳回監控中心。其中數據采集設備包括數據采集終端以及其它需要的控制組件和輔助設備等。將數據采集終端與在線監測儀器連接,采集監測設備原始數據、完成數據的本地存儲、并通過傳輸網絡與監控中心上位機進行數據通訊傳輸,數據最終存儲在監控中心。來自采集終端的數據在整個環保物聯網的架構中具有重要地位,它是一切高端數據融合與業務應用的基礎。感知數據的管理與處理是實現以數據為中心的物聯網的核心,感知數據管理與處理技術包括感知網數據的存儲、查詢、分析、挖掘、理解以及基于感知數據決策和行為的理論和技術[2]。在嵌入式終端中的數據管理通常會考慮使用嵌入式數據庫,如SQLite等。但這種管理方式通常對嵌入式操作系統、內存及微處理器的支持均有較高的要求。而在低端的嵌入式系統中,常用的數據管理方法是對數據存儲空間按順序編號,數據存儲與刪除均根據編號順序操作。這種管理方法一方面增大了程序編制的難度,軟件響應時間長,另一方面可能造成存儲空間利用率不高[3]。環保物聯網的末梢節點通常都是一些資源比較有限的瘦節點,同時由于業務的不同,環保物聯網數據管理也有其自身一些具體特點,因而需要尋求一種適合環保物聯網匯聚節點實際使用的數據管理方法。
環保物聯網由于其業務的特殊性,因而數據采集技術也具有其特點,以下從數據采集架構和數據特點兩個方面來分析環保物聯網內在的數據采集需求。
在研究中,我們把環保物聯網的數據采集架構可以分為三層,即感知層、邏輯層與業務層,這種分層架構與我國環境保護行業標準HJ/T212-2005兼容[4]。感知層通過對其敏感數據的測量,完成原始數據的采集,并將邏輯層感興趣的數據通過匯聚節點傳輸給邏輯層,傳輸鏈路分為有線和無線方式,目前以無線方式居多;邏輯層收到感知匯報數據,通過各個邏輯模塊之間的橫向聯系,以數據融合手段形成業務層所需要的融合信息整體視圖,數據融合大部分是根據具體問題及其特定對象來建立自己的融合體系。
數據處理面臨的首要問題是數據量大,流程復雜。在環保物聯網中,感知層的匯聚節點所面臨處理的數據大致可以分為以下幾類:1)實時數據,即來自AD轉換設備的模擬量與來自于通訊的數字量;2)歷史數據,來自對實時數據的統計處理結果;3)報警數據,來自報警監測,挑報警的通道數據上報實時數據和報警類型標識;4)通信數據,按照通信協議的格式組合而成的字符流;5)消息數據,對不同隊列,消息格式也稍有不同,可攜帶數據。通常環保物聯網是24小時運行的,因而數據量比較大,數據交織比較明顯,這幾種數據在環保物聯網運作中呈現出復雜的數據流程。
其次是數據源的異構性。在環保監測中,感知層的各個感知節點被分布在地里環境上不同的位置,每個節點的工作環境各不相同,采集到的環境指標也有較大差別。匯聚節點面臨這些異構性質的數據時,對每種數據源都給定一種具體的處理是一種傳統的做法,但此種做法會導致兩種后果,其一是使得程序控制的復雜性增加,二是使感知層的可擴展性受到影響。
從以上分析可知,在環保物聯網實際運作中,數據量大且來源復雜,處理流程較為復雜。因而從整個數據采集架構來看,感知層匯聚節點在其中扮演著一個重要的角色,不僅要完成數據的接收,而且要針對邏輯層模塊需求對數據進行壓縮和梳理,一個科學有效的數據管理機制顯然是提高工作效率的關鍵。
針對以上分析,匯聚節點的數據管理涉及到數據的梳理、組織與存儲,研究中通過反復研究比較,我們為感知層數據采集提出 “數據匣子”的理念,即在匯聚節點上通過軟件手段加入一個便于管理及使用數據機制。
感知層的匯聚節點與感知節點通常是強或弱的耦合關系,依靠有線或無線方式的鏈接通路來聯系。設計中我們在匯聚節點的控制軟件中設置一個鏈路相關的數據管理機制,即在下位鏈路創建的時候,依據這個創建動作,觸發一個例程為每個上報節點動態分配一個自定義數據對象,如圖2所示。在技術上包括總體設計、數據結構及算法方面的論述。
此處的協議解決的問題是采集數據中匯聚節點與感知節點如何交互。設計到鏈路形式,交互方式,以及支撐所需的數據結構與交互流程。

圖1 環保物聯網數據采集架構Fig,1 Data collection framework of environmental IOT

圖2 匯聚節點數據采集機制Fig,2 Data collection mechanism of sink node
協議首先規定通信方式,要管理的數據對象依據其來源可以分為兩大類,即模擬量與數字量,因而通信鏈路形式依據數據源類型可分為兩類,即AD采集的硬連線和數字采集的各種現場總線。就其實現形式上,可以是有線或無線的鏈路,如圖2所示,感知節點與匯聚節點的之間,實線連接代表有線,虛線連接代表無線。就通信方式而言,其中AD采集為主動實時同步方式,數字采集則有被動間歇式和異步主動問答式。
一般下位感知節點數據采集有幾種形式:
1)全主動式,即無需上位干預,總是間隔單位時間就上傳其數據,這樣當鏈接建立之后,感知節點就以出場協議規定的數據幀格式自動輸出其感知到的數據;
2)異步問答式,若沒有上位詢問,則下位感知節點一直沉默,不反饋其測量結果。若收到上位詢問,則感知節點以協議格式輸出數據幀;
3)開關式,即連接建立后需要上位匯聚節點發送一個啟動命令,感知節點收到該命令后,即響應命令,以單位時間為間隔由鏈路輸出協議格式規定的數據幀。
其次在匯聚節點上為感知節點定義用以通信和存儲的數據包格式,應包含類型域,節點標識及數據。其中類型域反映數據源類型為模擬量或數字量,節點標識包含了能反映出感知節點身份的數據源唯一標識。
由于感知節點的數據通常受其廠商標準限定,其通信協議具有異構性,因而每個感知節點的通信特征不同,具體體現在其幀頭、幀尾,還有詢問命令字。
為了對采集的數據進行統一管理,每個感知節點的數據對象定義在匯聚節點上,這種做法的一個明顯的優勢是系統介入度較小,軟件設計除了對匯聚節點有要求外,不對感知節點造成任何影響,并且支持不同的下位通信協議。對感知節點特征對象定義,就其邏輯結構而言它是一個綜合結構體,數據以線性表形式組織。而位于匯聚節點的數據盒子,其邏輯形式為鏈表結構。
綜合以上分析,匯聚節點數據盒子的字段結構應包含以下信息,如圖3所示。

圖3 匯聚節點管理數據包格式Fig,3 Management package format of sink node
1)感知節點標識,它是為感知節點分配的一個編號,是每個感知節點的唯一標識;
2)感知節點數據類型,代表是模擬量還是數字量;
3)感知節點協議類型,取值代表全主動式、異步問答式及開關式;
4)感知節點數據特征字,即記錄起始標識位與結束標識位;
5)感知節點數據采集過程地址,存放指向針對該節點采集數據的解析函數的指針;
6)感知節點的數值,存放最新采集到的節點實時數據。
另外,匯聚節點上報數據應包含匯聚節點的標識和所有感知節點的數據。對邏輯層上位而言,可能還需要知道感知節點的邏輯意義,以便完成信息融合。基于這個考慮,上報的數據包除了包含匯聚節點標識信息,從數據盒子中抽取的實時數據外,還需要包含所有感知節點身份標識。若是數據融合放在感知層進行,則上報時只需上報融合后的結果,否則還需要所有感知節點的身份信息。
1)數據盒子生成
感知節點向匯聚節點傳輸采集到的原始數據時,先要檢測其耦合鏈路是否存在,若不存在,則創建鏈路,同時為該下位節點創建數據收納盒對象;若存在,則數據盒子也存在,則將執行數據采集過程。
2)感知節點編址與尋址
對于一個匯聚節點來說,為了便于管理其連接的感知節點,需要對節點進行編址。對感知的編址要保持與創建鏈路同步,只要匯聚節點為感知節點成功創建一個鏈路,即為其分配一個局部唯一的節點編號。需要考慮的是,匯聚節點的下位鏈路分為無線與有線兩種,無線鏈路建立時可以容易地觸發創建編址過程;而有線連接的感知節點通常各式各樣,接口、協議也不盡相同,因此這些感知節點的編址需要用起始幀作為啟動條件,因此可以由起始幀來觸發創建編址的過程。另一個需要考慮的問題是感知節點的擴展問題,當在感知層加入一個新的感知節點,匯聚節點應能識別并管理此節點,當該感知節點加入后,若未對其編址,則在其建立鏈路時,對其編址。
匯聚節點對于感知節點的尋址主要是根據一個節點的標識來確定其位置,尋址一般使用直接尋址,用于在接收到某個數據包時,在鏈表結構中查找對應的數據盒子。
3)匯聚節點數據上報
匯聚節點數據上報算法至少需要包含兩個操作:
感知數據提取,感知數據提取涉及到每個節點數據的解析,對于沒有首位標識的數據包,一般都是定長數據,依據其遵行的數據格式進行轉換得到結果,如符合IEEE754標準的浮點表示;而對有首尾標識的數據包,長度不定,其數據字段的長度也不定,因而應按照協議規范來分解字段,從而得到數據結果。將得到的數據填充到對應的數據盒子中,這個操作按照設定的間隔周期性執行,即實現匯聚節點周期性實時數據刷新。
匯聚數據包的組織,以線性鏈表遍歷的形式,依次抽取數據盒子的實時數據,感知標識,組裝成一個新的結構體鏈表。
環保物聯網也是一個數據敏感的應用領域,對數據進行科學的管理尤其關鍵。本文提出的感知層匯聚節點數據盒子的理念,適合于輕量級的數據管理,不需嵌入式操作系統支持,不需要動用嵌入式數據庫,并且軟件設計中可以容易地做到與數據庫兼容。同時該方法能夠滿足國標與現實應用的需求。
[1]耿盼盼.通用物聯網數據采集與分析平臺的研究與實現[D].青島:中國海洋大學,2013.
[2]李建中,李金寶,石勝飛.傳感器網絡及其數據管理的概念、問題與進展[J].軟件學報,2003(10):1717-1727.LI Jian-zhong,LI Jin-bao,SHI Sheng-fei.Concepts, issues and advance of sensor networks and data management of sensor networks[J].Journal of Software,2003,14(10):1717-1727.
[3]徐藝文,魏云龍.利用μC/OS任務調度算法實現嵌入式數據管理[J].單片機與嵌入式系統應用,2011(5):25-27+69.XU Yi-wen,WEI Yun-long.Embedded data management using C/OS task schedule algorithm[J].Microcontrollers&Embe dded Systems,2011(5):25-27+69.
[4]HJ/T212-2005,Data Transfer Standard for On-line Automatic Monitoring Pollution Sources and Control System[S].2005.
[5]吳建,裴峰,王琣楠,等.基于LabVIEW的多通道數據采集系統設計[J].電子測試,2013(Z1):52-54.WU Jian,PEI Feng,WANG Jun-nan,et al.Design of multichannel data acquisition system based on LabVIEW[J].Electronic Test,2013(Z1):52-54.
[6]任曉莉.基于物聯網與客流估計的智能公交調度設計[J].電子設計工程,2013(4):22-25.REN Xiao-li.Design of intelligent bus scheduling based on internet of things and passenger flowestimation[J].Electronic Design Engineering,2013(4):22-25.