劉榮 周杰 杜景林
摘要:設計了一種基于無線傳感器網絡的農田監測系統的網關,通過在以PXA270為內核的嵌入式硬件平臺上采用Linux操作系統作為應用程序的運行環境,實現了農田信息的采集、傳輸和處理功能。并且通過在嵌入式網關之間搭建Ad Hoc網絡,實現了農田監測信息在網關之間的多跳傳輸功能,從而為農田的遠程監控提供了一種可靠的解決方案。
關鍵詞:網關;無線傳感網;嵌入式;監測
中圖分類號:TP393;S126 文獻標識碼:B 文章編號:0439-8114(2013)07-1672-04
無線傳感器網絡是繼計算機和互聯網之后世界信息產業的第三次浪潮,已成為新一輪全球經濟和科技發展的戰略焦點。隨著研究的不斷深入,無線傳感器網絡會逐漸融入人們的日常生活和社會生活活動的各個領域。所以把無線傳感器網絡技術應用到農田監測方面對農業事業的現代化發展具有重大的推進作用。
而對嵌入式網關的開發是構建整個農田監測系統至關重要的一步,直接影響了監測系統的性能。網關類似于一種轉換器,具有效率高、響應實時、可靠性高、功耗低、抗干擾能力強等特點, 同時具有很好的通用性。對于農田監測系統來講, 它是連接無線傳感器網絡與互聯網的橋梁。而目前的IP網關協議雖然具有壽命長、穩定性好、可擴展性強等優點, 但已經不能滿足集成電路芯片小型化、低功耗、低速率、高帶寬利用率的傳輸要求。因此,盡快開發一種低功耗、能夠滿足探測系統要求、適合農田監測的網關是目前亟待解決的問題[1,2]。
1 農田監測系統結構
基于無線傳感器網絡的農田監測系統主要由無線傳感器網絡、網關和信息展示平臺組成。無線傳感器網絡是由各種能夠采集農田監測要素的傳感器節點通過網絡協議(例如Zigbee和Tinyos)而形成的一個或者多個無線網絡。信息展示平臺是一種可以向用戶直接提供監測區域數據的應用系統。而網關在信息展示平臺和無線傳感器網絡之間則扮演著橋梁的角色,使多種異構的無線傳感器網絡能夠直接與信息展示平臺進行交互。各個監測區域都會擁有一個與外部設備通信的匯聚節點,無論無線傳感器網絡采用星型的或者網狀的拓撲結構,匯聚節點都會匯聚整個監測區域的數據,通過串口傳遞給相應的網關,并且各個網關通過Ad Hoc網絡互相連接。網關通過3G網絡與農田觀測中心的信息展示平臺直接通信,在網絡基礎設施條件允許的情況下,也可以通過以太網或者WIFI連接觀測中心。觀測中心得到相應的農田監測數據后以Web的方式展示,這樣用戶就可以順利地通過PC、手機或者其他手持移動設備瀏覽監測區域的信息。圖1為農田監測系統的總體結構圖[3-5]。
2 網關的硬件設計
網關系統的硬件模塊如圖2。主要由處理器、存儲器、無線射頻收發模塊、無線網卡模塊、電源模塊、JTAG模塊、串口模塊、USB模塊、以太網接口模塊組成。
ARM處理器采用PXA270 CPU,該CPU是Intel開發的高度集成的片上系統微處理器,結合了Intel XScale技術,具有動態電壓調整、動態頻率調整以及成熟的電源管理特點。具體型號采用FW(NH)PXA270C5C520, 主頻為520 MHz。
存儲器模塊主要由FLASH存儲器和內存模塊組成。FLASH采用三星公司的K9F1208UDM NAND FASH,內存SDRAM部分采用Hynix Semiconductor公司的HY57V561620芯片。
以太網接口模塊采用SMSC公司的10 M/100 M的以太網芯片LAN91C111/LAN91C113,主要負責目標機從宿主機下載應用程序。串口模塊用于連接射頻收發模塊。JTAG模塊主要用于用戶進行JTAG 調試。USB模塊用來連接USB設備以及下載Linux內核等功能。
無線網關模塊采用的是型號為gspi8686的WIFI無線網卡,主要負責在網關板之間建立Ad Hoc網絡,使傳感器采集的數據能夠通過多跳的方式傳遞給遠距離的服務器。
射頻無線模塊采用了TI公司的CC2430核心板,該核心板主要由一片集成了8051單片機和射頻模塊的CC2430芯片和天線組成。CC2430內含的8051單片機具有高性能、低功耗的特性,同時具有128 kB可編程Flash和8 kB的RAM, 并集成了符合IEEE802.15.4標準的2.4 GHz RF無線電收發機,具有優良的無線接收靈敏度和強大的抗干擾能力。
3 網關的操作系統平臺設計
Linux操作系統開放源代碼,可以剪裁內核,并且已經在Motorola、NEC、ARM等多種硬件平臺上穩定、高效運行,具有強大的網絡和卓越的文件系統支持功能等優點。所以系統選擇Linux操作系統,并根據具體應用進行裁剪和交叉編譯,然后形成ARM可執行文件,借助串口和網絡口下載到FLASH之中。構建適合網關的Linux操作系統必須進行Bootloader的移植、內核裁剪以及文件系統的制作。只有在操作系統平臺建立之后,應用程序才能在此操作平臺上運行來實現整個網關的主要工作。應用程序是在安裝Linux操作系統發行版的虛擬機上進行開發的,通過交叉編譯器對應用程序的編譯生成適合在目標機上運行的程序。最終通過NFS服務進行應用程序的下載。
Bootloader是系統啟動過程中執行的第一個軟件,它與網關板有著高度的依存關系。Bootloader在完成底層硬件初始化工作后會直接跳到與硬件架構無關的start_kernel()函數執行,此函數會初始化高層內核功能、安裝根文件系統,以及啟動init進程。
內核是操作系統的中心組件。使用內核的目的是希望以一致的方式管理硬件,以及為用戶軟件提供高層抽象層。正如其他的類Unix內核那樣,Linux會驅動設備、管理I/O的存取、調度進程、共享存儲空間、管理信號的配送以及處理其他的管理工作。
文件系統是指在物理設備上的任何文件組織和目錄,它構成了Linux系統上所有數據的基礎。該網關選用JFFS2作為文件系統。
在Linux中設備驅動程序的設計和使用一般有兩種方式可供選擇。一種是把設備驅動程序在編譯內核時直接編譯進去,另一種是以模塊的方式動態地插進內核。設計選用的是第二種方式。
4 數據的傳輸設計與實現
網關針對具體的應用場合和用戶,所以采用了C/S結構來對應用程序進行設計和開發。當服務器與客戶端建立好通信之后,首先由服務器向客戶端發送服務請求,客戶端接到請求命令立即向服務器返回請求響應包,一旦服務器接收到響應包并解析出正確的內容就會向客戶端發送數據查詢的命令,客戶端接收到數據查詢命令之后對命令包進行解析,根據數據包的解析內容分析是實時數據查詢還是歷史數據查詢。如果是歷史數據查詢,那么客戶端會直接提取數據庫中的采集信息并發送給服務器,如果是實時數據查詢,那么客戶端就會實時地接收無線傳感網中協調器的數據并把接收到的數據發送給服務器。整個工作流程如圖3。
4.1 數據接收程序的設計
數據庫采用了程序方式直接驅動的SQLite數據庫。SQLite是一款輕型數據庫,設計目標主要針對嵌入式系統。其占用資源少,一般只需要幾百kB內存。它能夠很好地支持Linux操作系統。SQLite雖然很小巧,但是支持的SQL語句不會遜色于其他開源數據庫。SQLite不但支持命令方式操作數據庫,而且為實現對數據庫的管理提供了豐富的API接口函數,包括創建數據庫、刪除數據庫、創建表、刪除表、插入數據、刪除數據、查找數據等。
在網關中數據接收程序主要任務是把協調器上傳的數據存儲到數據庫。數據接收程序的流程如圖4所示。主要包括串口參數的配置、串口接收線程的建立、串口發送線程的建立。串口參數的配置主要包括波特率設置、奇偶校驗位和停止位的設置。串口接收數據線程負責把協調器上傳的數據存入到串口緩沖區,串口主線程負責把緩沖區的數據解析后存儲到數據庫。
4.2 網關與服務器之間的網絡程序設計
網關采用了可靠的、面向連接的TCP協議的網絡程序設計。程序的工作流程如圖5所示。Socket()函數用于創建Socket;Bind()函數用于將Socket尋址結構綁定到其所建立的Socket, 這樣當有數據包到達時,Linux內核會將這個數據包讓給其綁定的Socket來處理;Listen()函數用來監聽、等待客戶端的連接請求;Connect()函數是客戶端使用的函數,當客戶端建立好Socket后會調用這個函數向服務器請求連接;Read()和write()函數是用來進行數據的讀寫,在本網關中客戶端的read()函數一方面接收串口的數據輸入用來提供服務器的實時數據查詢功能,另一方面接收數據庫信息的輸入用來完成歷史數據的查詢功能。
4.3 Ad Hoc網絡的搭建
Ad Hoc網絡是一種新穎的計算機網絡,其自身的獨特性賦予其巨大的發展前景。這種無線移動網絡不依賴固定的網絡設施,在有限的無線通信帶寬和主機能源的情況下,通過系統主機自由地組網,建立動態變化的網絡結構。網關系統中通過在嵌入式網關之間搭建Ad Hoc網絡來傳遞數據到遠距離的服務器。目前所提出的Ad Hoc網絡的多路徑路由協議基本上都是在DSR協議或AODV協議的基礎上改進而來的。本網關采用了AODV的路由協議進行Ad Hoc網絡的搭建。搭建步驟為:第一步移植AODV路由協議,本網絡選擇了aodv-uu-0.9.5作為路由協議,主要是通過交叉編譯器編譯出aodv-arm.ko和aodv-arm;第二步通過ifconfig eth1 up,iwconfig eth1 mode Ad-Hoc,iwconfig eth1 essid 服務區別號這幾條命令來配置無線網卡工作模式為Ad Hoc模式;第三步把aodv-arm.ko模塊動態地插進網關的內核;第四步執行aodv-arm路由協議。這幾個關鍵步驟完成之后整個的Ad Hoc網絡就搭建好了。
5 小結
所設計的基于無線傳感器網絡的農田監測系統的網關完成了多種異構的無線傳感器網絡的無縫隙連接工作,屏蔽了底層無線傳感器網絡的具體網絡結構,實現了多個無線傳感器網絡和處于外網的信息展示平臺的實時通信功能。并且根據具體的嵌入式平臺對aodv路由協議進行了移植探索,最終也成功地在中間件的各個子系統之間搭建了一種無中心的自主的Ad Hoc網絡,為農田監測數據的遠距離傳輸提供了一種可靠的解決方案。
參考文獻:
[1] 羅錫文,臧 英,周志艷.精細農業中農情信息采集技術的研究進展[J].農業工程學報,2006,22(1):167-173.
[2] 石復習,鄒志勇. 農業環境參數檢測WSN網關設計[J].安徽農業科學,2010,38(23):12923-12924.
[3] 宋先居,張宗灝,趙體召. 地面氣象觀測數據實時傳輸及質量控制程序實現[J].氣象科技,2011,39(3):344-347.
[4] 唐慧強, 莊安榮.一種氣象數據采集傳輸系統的設計[J].電子技術應用,2011,37(3):82-85.
[5] 崔炳儉,董衛紅,黃躍青,等.無線傳感器網絡在氣象領域的應用與研究[J].環境科學與技術,2010,33(6E):55-57.