鄔歡歡 張冰潔 勞東青 李明磊



摘要:介紹了一種用于農業智能控制的無線網關。該網關由ZigBee協調器和適配器組成,通過硬件地址和應用層端口的映射,使服務器與傳感器節點之間的通信對應起來。傳感器網絡中ZigBee節點的數據通過該無線網關的匯聚與轉換接入互聯網,與互聯網側的服務平臺達成有效連接,從而實現對農業現場的遠程監控。測試結果表明,所實現的無線網關誤碼率小,運行穩定可靠,可以滿足農業監測中對數據量要求不大的應用場景。
關鍵詞:ZigBee;農業智能;監控;網關
中圖分類號:S126;TP368.2 文獻標識碼:A 文章編號:0439-8114(2015)21-5405-03
DOI:10.14088/j.cnki.issn0439-8114.2015.21.052
Design on Wireless Gateway for Agriculture Intelligent Control
WU Huan-huan1,ZHANG Bing-jie2,LAO Dong-qing1,LI Ming-lei2
(1. College of Information Engineering, Tarim University, Alar 843300,Xinjiang, China;
2. Comba Telecom Technology Guangzhou LTD., Guangzhou 510663,China)
Abstract: In this paper a wireless gateway for intelligent agricultural control system was introduced. It is used to connect the sensor network and ethernet by mapping the MAC and port of the ZigBee sensor network. The data of ZigBee sensor node is intergrated and transferred to internet by this gateway. Through internet the server could get the data,and the server could get the data via internet. So it could monitor the agricultural field efficiently. The expermental results showed that this wireless gateway functioned well with low bit error rate, and can meet monitoring needs of agricultural environments with less demanding on the amount of data.
Key words: ZigBee; agriculture intelligent system; monitor; gateway
在物聯網、互聯網高速發展的時代,無人值守遠程智能化監控技術在農業上的應用也逐漸被提上日程,成為近年來的研究熱點。該技術通過布設在農田現場的傳感器,采集農作物的生長環境要素,然后將數據通過網絡發送到中央計算機上,再由計算機對數據進行進一步處理。已有的一些研究將ZigBee和GPRS技術相結合[1,2],組成無線監控網絡進行應用。這樣的組網方式實現簡單,但成本較高。本研究設計實現了一種無線網關。將無線技術與有線技術相結合,較好地發揮了兩者的優點。該網關包括硬件和軟件的設計,通過固化在芯片中的代碼完成了兩種不同協議的轉換,實現了ZigBee網絡和有線網絡之間的互聯。
1 系統概述
1.1 系統框架組成
無線網關位于ZigBee網絡和以太網之間,實現兩種不同協議的轉換[3]。根據接入網的類型可劃分為ZigBee網絡側和以太網網絡側,其組網框圖見圖1。
ZigBee網絡側的傳感器節點根據功能的不同分為兩種類型[4]:協調器和終端節點。這里協調器節點是惟一的[5],其他各個ZigBee傳感器節點關聯上協調器,由協調器統一管理。傳感器節點采集到數據后匯聚到協調器發送出去[6],協調器對傳感器數據報文重組后通過串行總線發到有線網絡側。有線網絡側的適配器接收到數據后,將數據報重新封裝為TCP報文,再發送到以太網網關。同樣,遠端服務器通過以太網將數據發送到適配器,適配器解包發送到協調器上,協調器再發送到對應節點。ZigBee協調器和適配器共同組成無線網關。
1.2 系統數據流分析
如前所述,農業監控現場的ZigBee節點和互聯網上的服務器,中間跨越了ZigBee網絡和以太網,節點采集的數據需要由網關協議轉換模塊進行封裝和解封裝的處理,如圖2所示。
1)節點到服務器的發送流程。從模型的左側開始,無線傳感器節點的數據從無線鏈路上傳到ZigBee協調器,這時的數據包含了完整的802.15.4的幀,即包含物理層包頭和物理層載荷(MAC層包頭和MAC層載荷)[7,8]。經過協調器上802.15.4協議棧處理,將各層報頭剝離,有效數據載荷上傳到應用層,應用層將數據源地址和載荷一起打包,再通過串行鏈路直接發送出去。串行鏈路發來的數據觸發適配器中斷,進入適配器接收服務程序。在接收服務程序里首先需要解決的是區分哪個節點來的數據,以及對數據幀進行劃分。
為了解決這一問題,在發送數據到串行鏈路前先對數據進行封裝:規定每個數據頭部以#SA開頭,以#ED結尾,在有效載荷之前加上節點的源地址。這里的源地址不是802.15.4協議規定的地址,而是在協調器上對節點進行重新編址,僅占一個字節。封裝后的數據格式如圖3所示。
在適配器接收服務程序將數據的源地址(即圖3的src)解出來,并映射到對應的TCP(socket)端口,同時被解包出來的數據作為TCP載荷發往網絡協議棧,在網絡協議棧中經過層層封包形成以太網數據包發送到服務器。
2)服務器到節點的數據傳輸過程。服務器為每個節點與適配器在應用層上建立套接字socket連接,服務器首先查找待發送的節點地址,映射到對應的TCP目的端口,找到相應的socket連接。將待發送數據打包到TCP數據包載荷,通過網絡協議棧封包后發送到以太網;適配器從socket連接收到數據后,解包得到數據,同時根據socket的端口得到節點地址,將節點地址和數據打包發送到串行鏈路上,協調器的串行鏈路收到數據,解出目的地址,再經過802.15.4協議棧發送到無線網絡側。
2 無線網關的設計
2.1 網關硬件設計
本文的協議轉換模塊包含兩個部分:ZigBee協調器和適配器。ZigBee無線協調器采用德州儀器(TI)公司生產的SOC射頻芯片CC2530F256,片上集成高性能低功耗8051內核、12bit ADC、2個USART等,支持ZigBee協議棧[9]。CC2530自帶了UART接口和21個GPIO。因此,可以通過UART或GPIO模擬SPI或I2C來接入串行鏈路。
適配器上需要運行網絡協議來處理網絡數據,用單片機來實現,技術上比較復雜,且運行效率低,而使用運行嵌入式Linux的SOC系統,則能夠良好地支持網絡協議[10]。在本設計中,選用了高性能的ARM9芯片S3C2440,它片上集成了3個UART端口、2個SPI接口、1個I2C接口等。本設計的硬件結構框圖見圖4。為了提高信號質量,在CC2530前端加入功率放大器PA。CC2530通過串口與S3C2440通信,S3C2440通過MII接口外擴DM9000 PHY芯片。
2.2 軟件設計
1)無線協調器CC2530上軟件的設計。對于ZigBee協議上的應用開發,TI提供的ZigBee協議棧軟件。它由硬件抽象層、通信底層、操作系統抽象層等構成,提供針對用戶開發的應用庫。用戶只需要在對應的層次上加入自己的代碼即可運行。在本研究設計中,在硬件抽象層加入串口收發驅動代碼,在系統主程序加入解包和打包函數。主要包括:①在協調器上將每個ZigBee節點抽象為一個zigbee_client對象,它包括的信息為節點的MAC地址,端口port,port是協調器上分配的,初始為0,buf保存有效載荷,connection_state是關聯狀態;②在send_pack_buf中將數據幀的數據依次發出;③在recv_pack_buf中,先解包,查看是否包含了開始和結束標志,沒有則表示幀錯誤,直接丟棄。如果幀正確,則接著查找是否存在對應的client,如果沒有則直接返回。存在對應的client,則將client的buf指向數據緩沖區。
2)適配器上軟件的設計。適配器上運行Linux操作系統,Linux操作系統是多任務多線程的操作系統。因此不同于單線程系統,這里可將各個功能放到子線程中實現。比如串口接收,在主線程中打開串口設備后單獨創建一個接收子線程,在子線程中通過select方法進行數據監聽,當有串口數據時到來時進行處理,如圖5所示。對于網絡通信,主線程中為在線節點創建與遠端服務器通信的socket連接,將這些socket連接掛接到全局鏈表上。建立監聽線程,當接收到數據時進行處理。因為存在多路同時訪問串口的情形,在處理串口訪問上,采用信號量來進行同步。
3 試驗分析
在空曠地對無線網關的實際性能進行測試,分別關聯上2、4、8、12個終端節點,波特率為115 200 bps, 包長為32 Byte,以不同的通信間隔和距離進行測試,結果如表1所示。由表1可見,關聯的節點數和通信距離是影響通信質量最重要的因素。關聯的節點越多,無線信道競爭和干擾越大;而距離越遠,由于信號衰減,造成信號質量下降。為了提高抗干擾性能,通過提高通信間隔,可以降低通信誤碼率。在農業現場,由于天氣變化的尺度往往在小時以上的數量級。因此,通過此方法來提高通信系統性能是可行的。在通信距離上,則需要進一步提高硬件質量,提高接收端放大器性能或適當提高發射端發射功率來改善。
4 小結
ZigBee無線網關解決了從近距離無線局域網向互聯網延伸的問題,為野外觀測現場和遠程服務器之間搭建了一條通道。該無線網關具有功耗少,成本低、簡單實用,適合用于農業監測中對數據量要求不大的場景。
參考文獻:
[1] 于寶堃,胡 瑜.GIS和ZigBee技術在農業溫室監測系統中的應用[J].湖北農業科學,2014,53(1):211-215.
[2] 姜立明,莊衛東.ZigBee/GPGS技術在精準農業中的應用研究[J].農機化研究,2014(4):179-182.
[3] 仲偉波,李忠梅,石 婕,等.一種用于設施農業的ZigBee-WIFI網關研制[J].計算機科學,2014,41(6A):484-486.
[4] 劉華駿,降愛蓮.基于WSNs的設施農業環境遠程監控系統設計[J].傳感器與微系統,2013,32(12):97-99.
[5] 孔曉紅,宋長源,王亞君.基于物聯網的農作物生長監控系統[J].湖北農業科學,2014,53(20):4983-4985.
[6] 陳克濤,張海輝,張永猛,等.基于CC2530的無線傳感器網絡網關節點的設計[J].西北農林科技大學學報(自然科學版),2014,42(5):183-188.
[7] 王建平,周辰飛,朱程輝,等.一種ZigBee-TCP/IP無縫網關模型[J].合肥工業大學學報(自然科學版),2013,36(9):1058-1062.
[8] 楊 松,胡國榮,徐沛成.基于CC2530的ZigBee協議MAC層設計與實現[J].計算機工程與設計,2013,34(11):3840-3844.
[9] 莊立運,魯 慶,王曉輝.基于CC2530的大棚溫濕度無線采集節點設計與實現[J].湖北農業科學,2014,53(3):582-585.
[10] 王麗芬,馬明濤.基于ARM的農業環境因子監測系統的設計的探析[J].中國農機化學報,2013,34(4):231-233.