《電子技術(shù)應用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設計應用 > 基于北斗和ZigBee的農(nóng)田數(shù)據(jù)采集與傳輸
基于北斗和ZigBee的農(nóng)田數(shù)據(jù)采集與傳輸
2015年電子技術(shù)應用第6期
盧興森,陳蘇婷,施佳馳
南京信息工程大學 電子與信息工程學院,江蘇 南京210044
摘要: 以ZigBee無線網(wǎng)為采集子系統(tǒng),以北斗短報文通信為遠程數(shù)據(jù)傳輸子系統(tǒng)設計了一個基于ZigBee和北斗衛(wèi)星的實時農(nóng)田采集與傳輸系統(tǒng)。系統(tǒng)遠程傳輸數(shù)據(jù)時使用Burrows-Wheeler Transform(BWT)算法進行轉(zhuǎn)換,改進型Run-Length Encoding(RLE)算法和靜態(tài)huffman編碼進行數(shù)據(jù)壓縮,提高通信效率。系統(tǒng)上位機顯示采用嵌入式Linux界面,簡潔便攜。
中圖分類號: TN927
文獻標識碼: A
文章編號: 0258-7998(2015)06-0035-03
中文引用格式:盧興森,陳蘇婷,施佳馳.基于北斗和ZigBee的農(nóng)田數(shù)據(jù)采集與傳輸[J].電子技術(shù)應用,2015,41(06):35-37+41.
The data of farmland acquisition and transmission based on Beidou satellite and ZigBee wireless
Lu Xingsen,Chen Suting,Shi Jiachi
School of Electronic and Information Engineering,Nanjing University of Information Science and Technology,Nanjing 210044,China
Abstract: Taking ZigBee wireless network as acquisition subsystem and Beidou short message communication as remote data transmission subsystem,a real-time data acquisition and transmission system of farmland is designed based on ZigBee and Beidou satellite. The Burrows-Wheeler Transform(BWT) algorithm,improved compression data type Run-Length Encoding(RLE) algorithm and the static Huffman code are used to improve the efficiency of communication. The system adopts the embedded Linux host computer display interface,which is simple and portable.
Key words : ZigBee wireless network;Beidou satellite;data acquisition of farmland

   

0 引言

    2010年底,我國人均耕地面積已不足0.1公頃[1],農(nóng)田又由于各種原因不便于人員進行直接管理。而北斗和無線傳感網(wǎng)是轉(zhuǎn)變農(nóng)業(yè)生產(chǎn)方式的重要載體[2]。從2003年開始, 中國已經(jīng)開始研發(fā)基于北斗衛(wèi)星的綜合信息服務平臺[3],用現(xiàn)代化理念引領(lǐng)農(nóng)業(yè)系統(tǒng)[4]。目前北斗已具備定位、授時、報文等功能[5]。因此,在基于北斗導航系統(tǒng)短報文通信和ZigBee網(wǎng)絡的基礎上設計的北斗實時農(nóng)田采集與傳輸系統(tǒng)可以很好地解決以上問題,節(jié)約人力資源的同時,又提高了農(nóng)田生產(chǎn)效率。另外由于北斗單次通信量為78.5 B,本系統(tǒng)采用多種壓縮算法融合實現(xiàn)數(shù)據(jù)高效無損傳輸。

1 系統(tǒng)總體構(gòu)架設計

    基于北斗和ZigBee的農(nóng)田數(shù)據(jù)采集與傳輸系統(tǒng)由ZigBee傳感終端節(jié)點、ZigBee協(xié)調(diào)模塊、北斗模塊、嵌入式Linux顯示上位機四部分組成。ZigBee傳感終端節(jié)點采集來自傳感器的數(shù)據(jù),并將數(shù)據(jù)通過ZigBee星型網(wǎng)絡傳至ZigBee協(xié)調(diào)模塊,ZigBee協(xié)調(diào)模塊對數(shù)據(jù)進行壓縮打包添加北斗頭協(xié)議后通過北斗模塊將數(shù)據(jù)傳至上位機實時顯示。圖1是基于北斗和ZigBee的農(nóng)田數(shù)據(jù)采集與傳輸系統(tǒng)的總體架構(gòu)。

qrs7-t1.gif

    其中北斗模塊包含北斗指揮機和北斗用戶機,北斗指揮機與上位機相連,接收來自下屬用戶機傳來的數(shù)據(jù);用戶機與ZigBee協(xié)調(diào)模塊相連,接收來自ZigBee協(xié)調(diào)模塊傳來的數(shù)據(jù)。用戶機可有多個,分布在跨度較大的農(nóng)田區(qū)塊,方便實現(xiàn)一臺上位機實時采集顯示多塊農(nóng)田數(shù)據(jù),以追星者CDT-442型用戶機為例,一臺指揮機最多可控制下屬99臺用戶機。

2 系統(tǒng)硬件設計

2.1 ZigBee傳感終端節(jié)點的硬件設計

    ZigBee終端節(jié)點擔負著與傳感器設備連接、接收傳感器的模擬信號并把其轉(zhuǎn)換為數(shù)字信號和發(fā)射數(shù)據(jù)信號至ZigBee協(xié)調(diào)節(jié)點的任務。為了完成數(shù)模轉(zhuǎn)換的任務(部分傳感器輸出數(shù)字信號,可直接接入I/O口或UART口),使用了AD7810芯片,為該芯片接的電壓與CC2530同為3.3 V,VREF也接上3.3 V電壓,則其最大轉(zhuǎn)換電壓也為3.3 V,DOUT腳為完成模數(shù)轉(zhuǎn)換后的串行數(shù)據(jù)輸出口,SCLK腳為輸入時鐘腳,VIN+和VIN-為傳感器接線口,本系統(tǒng)所用傳感器輸出電流一般為4~25 mA,所以傳感器接入時需接上一個150 ?贅左右的電阻。由于一個節(jié)點需接多個傳感器(該節(jié)點只需3個),為了工程易于擴展,預留接口,所以使用了一個74LS151芯片來進行選擇性定時,每15 s輪轉(zhuǎn)選擇一個采集數(shù)據(jù)來源選通。由于本電路只需要3選1,所以接口C拉低,默認高4位輸入不接通,若工程有監(jiān)測種類擴展需要,可作適時更改。需要注意的是AD7810的腳CONVERT為轉(zhuǎn)換啟動輸入信號,配合74LS151的輪轉(zhuǎn)選通功能,可啟動自動低功耗模式開啟間斷休眠來實現(xiàn)節(jié)能。另外CC2530使用16 MHz和32 MHz晶振模式,其中16 MHz晶振除自身使用外還可供給AD7810輸入時鐘使用,32 MHz在自身向協(xié)調(diào)器發(fā)射RF信號時使用。圖2為ZigBee傳感終端節(jié)點的硬件設計圖。

qrs7-t2.gif

2.2 ZigBee協(xié)調(diào)模塊的硬件設計

    ZigBee協(xié)調(diào)模塊是ZigBee中的協(xié)調(diào)節(jié)點,除了擔負著組建網(wǎng)絡、允許其他節(jié)點加入與退出、分配ID等基本任務外,還要將接收到的數(shù)據(jù)進行預處理后打包壓縮,添加北斗頭協(xié)議后發(fā)送到北斗模塊。由于北斗通信的最小通信間隔為1 min,單次發(fā)送數(shù)據(jù)量相對也不大,所以CC2531芯片完全可以滿足要求,不必采用其他處理芯片。其硬件框圖如圖3所示。

qrs7-t3.gif

2.3 嵌入式Linux顯示上位機的硬件設計

    上位機由UART串口連接至北斗指揮機,上位機芯片采用三星公司的S3C2440,附帶7英寸觸摸屏。

3 系統(tǒng)軟件設計

    整個系統(tǒng)的軟件由ZigBee傳感終端節(jié)點的軟件、ZigBee協(xié)調(diào)模塊的軟件和嵌入式Linux顯示上位機的軟件三部分組成。ZigBee相關(guān)模塊需植入TI公司的Z-STACK協(xié)議,PHY層、MAC層、應用層等相關(guān)層程序需修改重寫,以實現(xiàn)硬件支持與功能實現(xiàn)。另外,由于北斗短報文通信的傳輸量有限,所以要在ZigBee協(xié)調(diào)模塊和嵌入式顯示上位機分別實現(xiàn)數(shù)據(jù)的壓縮與解壓??紤]到采集到的1幀數(shù)據(jù)的重復性較大,這里用到了BWT算法、改進型RLE算法和靜態(tài)Huffman算法相結(jié)合對數(shù)據(jù)進行壓縮。

3.1 相關(guān)壓縮算法

    傳輸數(shù)據(jù)的壓縮流程如圖4所示,具體流程為:

qrs7-t4.gif

    (1)將經(jīng)過數(shù)據(jù)預處理的一幀數(shù)據(jù)T在末端插入#,并進行每次移位1次的循環(huán)右移,得到一個矩陣T#,再按T#矩陣每行的首字母字典排序得到M矩陣。在這里可以定義M矩陣的第一列為F,最后一列為L。則L為經(jīng)過BWT變換的字符串。最后這里需要建立一個L-M Mapping(LF)的輔助公式如下:

    qrs7-gs1.gif

    這里D[L[i]]指的是D代表的字符出現(xiàn)在L列最后出現(xiàn)的位置i,Di指的是D代表的字符在L[1,i]中出現(xiàn)的次數(shù)。

    (2)上述的字符串經(jīng)過BWT變換后,重復數(shù)據(jù)會聚集再一起,將上述字符串再通過改進型RLE編碼壓縮,由于采集的一幀數(shù)據(jù)有限,字符重復個數(shù)不可能超過0xFF,所以單個重復數(shù)據(jù)編碼為2個字符,高字節(jié)不采用傳統(tǒng)的2個字符,而只采用1個字符,連續(xù)不重復字符共用一個高字節(jié)C1。

    (3)根據(jù)自設的靜態(tài)Huffman編碼對數(shù)據(jù)進行變長編碼。最后,整理數(shù)據(jù)并添加北斗協(xié)議,通過北斗用戶機短報文通信將數(shù)據(jù)發(fā)出去。傳輸數(shù)據(jù)的壓縮流程圖如圖4所示。

    傳輸數(shù)據(jù)的解壓過程為:

    (1)將接收數(shù)據(jù)去掉北斗頭協(xié)議后,根據(jù)對應的Huffman碼表通過Huffman解碼將數(shù)據(jù)解碼出來。

    (2)根據(jù)RLE編碼的原理,去掉數(shù)據(jù)中的高字節(jié)C1,根據(jù)C1數(shù)值的大小,逐個恢復出各個重復數(shù)據(jù),直至恢復出來原始數(shù)據(jù)串的長度,恢復出來的數(shù)據(jù)串即是上述壓縮流程中的L。

    (3)目標是通過BWT反變換恢復出原數(shù)據(jù)T,恢復T的算法為:

    qrs7-gs2-3.gif

其中s=u-1,…,1。這里u為T加#后的長度,T[s]為L[i](即L中的第i個字符)在T中的位置s,需恢復所有T[s],而T即為最終的原始數(shù)據(jù)串。

3.2 ZigBee傳感終端節(jié)點的軟件設計

    終端傳感節(jié)點的主要任務是數(shù)據(jù)采集、網(wǎng)絡連接等。傳感數(shù)據(jù)的發(fā)送采用周期性的數(shù)據(jù)發(fā)送,各節(jié)點采集周期都略小于1 min。并采用循環(huán)掃描的方式讀取每一個節(jié)點的每個傳感器信息。需要注意的是由于是周期性地采集數(shù)據(jù),軟件上可以實現(xiàn)間歇性使ZigBee傳感節(jié)點處于休眠狀態(tài),減小功耗。

3.3 ZigBee協(xié)調(diào)模塊的軟件設計

    ZigBee協(xié)調(diào)模塊是本系統(tǒng)的核心模塊,其作為整個星型組網(wǎng)的協(xié)調(diào)器,擔負著網(wǎng)絡建立與網(wǎng)絡管理以及數(shù)據(jù)處理的作用。首先進行系統(tǒng)初始化,包括對協(xié)議棧的物理層、MAC層和I/O端、串口等進行初始化,接著協(xié)調(diào)器建立網(wǎng)絡并等待節(jié)點加入。當收到節(jié)點加入請求后,對節(jié)點進行網(wǎng)絡登記。接著判斷是否收到數(shù)據(jù),收到數(shù)據(jù)后即可對數(shù)據(jù)進行壓縮、添加北斗通信協(xié)議處理,最后通過北斗用戶機發(fā)送出去。整個軟件的實現(xiàn)流程如圖5所示。

qrs7-t5.gif

3.4 嵌入式Linux顯示上位機的軟件設計

    嵌入式顯示上位機是本系統(tǒng)的終端數(shù)據(jù)顯示模塊,其功能主要是實現(xiàn)數(shù)據(jù)的解壓縮去頭協(xié)議后恢復數(shù)據(jù)并實時顯示與數(shù)據(jù)儲存和查詢。為了便于攜帶性和實現(xiàn)更好的人機交互,顯控終端使用ARM處理器,所用芯片型號為S3C2440,運行嵌入式Linux系統(tǒng),軟件界面采用QT4.85開發(fā)。為了方便歷史數(shù)據(jù)的查詢,應用程序使用mysql數(shù)據(jù)庫,數(shù)據(jù)庫與QWT相結(jié)合,支持對數(shù)據(jù)進行圖表查詢。上位機查詢界面如圖6所示。

qrs7-t6.gif

4 系統(tǒng)測試結(jié)果與分析

    為了驗證數(shù)據(jù)的傳輸性能,人為對傳感器進行了溫度、濕度、風力等參數(shù)進行了的變化,上位機在延時約1 min左右以后可以靈敏地反應出變化。

    另外,為了對本系統(tǒng)的北斗傳輸數(shù)據(jù)壓縮效率進行驗證,進行了多次驗證實驗,隨機挑選了幾組典型數(shù)據(jù)驗證實驗結(jié)果,如表1所示。從實驗結(jié)果上來看,算法實現(xiàn)了數(shù)據(jù)的高效無損壓縮,數(shù)據(jù)量都壓縮到了78.5 B以下,可以實現(xiàn)北斗模塊一次一幀發(fā)送,顯著提高發(fā)送效率。

qrs7-b1.gif

參考文獻

[1] 顏玉華.耕地紅線是我國糧食安全的生命線[J].調(diào)研世界,2011(4):29-33.

[2] 孫玉文.基于無線傳感器網(wǎng)絡的農(nóng)田環(huán)境監(jiān)測系統(tǒng)研究與實現(xiàn)[D].南京:南京農(nóng)業(yè)大學,2013.

[3] 王莉,王澤民.北斗系統(tǒng)在農(nóng)田墑情和珠峰登頂測量中的應用[J].衛(wèi)星與網(wǎng)絡,2006(3):54-57.

[4] 儲成祥,戴嘯濤,楊曉冬.我國農(nóng)業(yè)信息化中的物聯(lián)網(wǎng)技術(shù)應用需求評價與對策研究[J].南京郵電大學學報(社會科學版),2011,13(3):25-41.

[5] 鐘堅.中國5年內(nèi)建成本土GPS—北斗[J].鳳凰周刊,2010,354(5):50-51.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。