0 引言
干旱缺水歷來是制約我國農(nóng)業(yè)生產(chǎn)發(fā)展的主要因素,南方省份如廣東,盡管年降雨量充足,,但季節(jié)性缺水仍然嚴重,,粵北,、粵西地區(qū)尤為突出,。茶樹對土壤含水量的要求較高,,水分不足或過多均不利于茶樹生育,因而建立茶園旱情監(jiān)測系統(tǒng),,將為解決茶園合理灌溉的問題提供了科學依據(jù),。
近年來,無線傳感器網(wǎng)絡(WSN)技術迅速興起,,成為國內(nèi)外研究的熱點領域之一,。WSN中的網(wǎng)關負責接收來自節(jié)點發(fā)送的數(shù)據(jù),并將數(shù)據(jù)進行修正,、融合等處理,,然后通過以太網(wǎng)或GPRS等網(wǎng)絡基礎設施將數(shù)據(jù)接入Internet網(wǎng)絡,傳送至遠程終端,同時對遠程終端所發(fā)出的指令進行及時處理和反應,。目前,,國內(nèi)外對于信息遠距離傳輸?shù)腤SN網(wǎng)關技術已進行了初步的研究。美國的Crossbow公司曾推出具有以太網(wǎng)通信功能的匯聚節(jié)點產(chǎn)品并得到應用,。哈佛大學的科研人員曾經(jīng)在位于厄瓜多爾境內(nèi)的唐古拉瓦火山(volean thngnrahua)附近部署了小范圍的無線傳感器網(wǎng)絡,,采集次聲波信號并傳送至匯聚節(jié)點,通過接入無線Modem將數(shù)據(jù)轉(zhuǎn)發(fā)到9 km外火山監(jiān)測站的PC機上,。國內(nèi)一些大學和科研機構也提出了有關解決方案,,比較典型的是基于有線通信方式的以太網(wǎng)和無線通信方式的GPRS,,CDMA等WSN網(wǎng)關,,也有利用公共電話網(wǎng)(PSTN),采用撥號方式建立臨時連接方式實現(xiàn)遠程數(shù)據(jù)傳輸?shù)木W(wǎng)關,。
這里的目的是設計,、開發(fā)一種適合于山地茶園旱情的WSN網(wǎng)關。
1網(wǎng)關系統(tǒng)的硬件設計
系統(tǒng)的硬件組成框圖如圖1所示,。由CPU,、存儲模塊、本地連接模塊,、簇內(nèi)網(wǎng)絡連接模塊以及簇外網(wǎng)絡連接模塊組成,。
系統(tǒng)采用三星公司的S3C2410作為CPU。S3C2410是一款基于ARM920T內(nèi)核的16/32位RISC嵌入式處理器,,內(nèi)部有內(nèi)存管理單元(memory managerunit,,MMU),可以穩(wěn)定運行在266 MHz,。
存儲模塊由FLASH存儲器,、SDRAM以及SD卡組成。其中,,F(xiàn)LASH 7存儲器采用三星公司的K9F1208UDM NAND FLASH,;內(nèi)存SDRAM部分采用Hynix Semiconductor公司的HY57V561620芯片;S3C2410帶有SD卡接口,,系統(tǒng)擴展出SD卡插槽,,用SD卡擴展數(shù)據(jù)存儲空間。
本地連接模塊由串口電路,、USB接口電路以及JTAG接口電路3部分組成,。串口電路用于系統(tǒng)調(diào)試以及連接(自身)匯聚節(jié)點的DB51針擴展接口。USB接口用來連接USB設備,,以及實現(xiàn)與工作站連接,、下載Linux內(nèi)核等功能。該模塊還提供了JTAG接口,方便用戶進行JTAG調(diào)試,。
簇內(nèi)網(wǎng)絡連接模塊主要負責網(wǎng)關與匯聚節(jié)點的連接,,匯聚節(jié)點通過DB51針連接器與網(wǎng)關本地連接模塊中DB9串口連接,實現(xiàn)了網(wǎng)關與匯聚節(jié)點的連接功能,。
簇外網(wǎng)絡連接模塊的功能是實現(xiàn)網(wǎng)關系統(tǒng)利用以太網(wǎng)或GPRS網(wǎng)絡接入Internet進行數(shù)據(jù)傳輸,,供遠程終端進行數(shù)據(jù)查詢以及遠程監(jiān)控。簇外連接模塊由以太網(wǎng)接口電路以及GPRS接口電路組成,。
2 網(wǎng)關系統(tǒng)軟件平臺搭建
Linux是內(nèi)核可裁剪,、重新配置的操作系統(tǒng)。在ARM平臺上移植Linux嵌入式操作系統(tǒng)的工作分為建立交叉編譯環(huán)境,、Bootloader移植,、Linux內(nèi)核(kernel)移植、文件系統(tǒng)移植和系統(tǒng)驅(qū)動程序設計等,。Linux系統(tǒng)移植示意圖如圖2所示,。
交叉編譯環(huán)境是由編譯器、連接器和解釋器組成的綜合開發(fā)環(huán)境,,可以將應用程序轉(zhuǎn)換成能在目標機上運行的二進制代碼,。
Bootloader是嵌入式系統(tǒng)上電后執(zhí)行的第一個軟件代碼。它的主要運行任務就是將內(nèi)核映像從硬盤上讀到RAM中,,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,,即開始啟動操作系統(tǒng)。
文件系統(tǒng)是指在物理設備上的任何文件組織和目錄,,它構成了Linux系統(tǒng)上所有數(shù)據(jù)的基礎,。該系統(tǒng)選用JFFS2作為文件系統(tǒng)。
在Linux中,,設備驅(qū)動程序的設計和使用一般有兩種方式可供選擇,。第一種方式是將設備驅(qū)動程序作為可加載的模塊,動態(tài)地加載到內(nèi)核,,模塊是內(nèi)核的一部分,,但以獨立的個體形式存在;第二種方式是將設備驅(qū)動程序作為內(nèi)核代碼的一部分編譯到內(nèi)核中去,,是以內(nèi)核模式運行的,。本文選用了第二種方式。
3 遠程數(shù)據(jù)傳輸方式設計與實現(xiàn)
在無線傳感器網(wǎng)絡與外部網(wǎng)絡進行遠程數(shù)據(jù)傳輸?shù)倪^程中,,網(wǎng)關處于承上啟下的地位,,是數(shù)據(jù)傳輸?shù)闹袠泄?jié)點。本文的通信軟件包括網(wǎng)關與匯聚節(jié)點通信模塊和網(wǎng)關與遠程終端通信模塊,。
網(wǎng)關與匯聚節(jié)點之間的通信主要是指網(wǎng)關接收匯聚節(jié)點數(shù)據(jù)的過程,,一般采用串口通信方式,。由于Linux內(nèi)核中已嵌入了串口驅(qū)動程序,對串口的操作可通過設備文件來實現(xiàn),。
網(wǎng)關與遠程終端進行數(shù)據(jù)傳輸則分別通過開發(fā)以太網(wǎng)應用程序和利用PPP協(xié)議,,實現(xiàn)了以太網(wǎng)的有線通信和GPRS的無線通信。采用面向連接的客戶機/服務器模型,,其通信過程見圖3,。考慮到對數(shù)據(jù)傳輸?shù)目煽啃砸筝^高,,故采用基于TCP的流式套接字(socket)通信機制,。利用Sierra Wireless公司的Aircard750上網(wǎng)卡連接移動GPRS網(wǎng)絡接入Internet,從而實現(xiàn)網(wǎng)卡與遠程監(jiān)控中心的數(shù)據(jù)交換,。利用PPP協(xié)議棧把數(shù)據(jù)包封裝成IP包的格式,,發(fā)送給無線模塊。完成從撥號到最終邏輯通信鏈路的建立需要經(jīng)過:網(wǎng)關首先通過撥號呼叫ISP,,在得到ISP應答后,,建立起初始的物理連接,,此時可以檢測到載波信號,;然后終端與ISP之間開始傳送一系列經(jīng)過PPP封裝的LCP分組,用于協(xié)商選擇將要采用的PPP參數(shù),,參數(shù)協(xié)商完成后開始認證過程,;認證成功后,通信雙方開始交換一系列的NCP分組來配置網(wǎng)絡層,。對于上層使用IP協(xié)議的情況而言,,此過程是由IPCP完成的;當NCP配置完成后,,邏輯通信鏈路就建立好了,,雙方可以開始在此鏈路上交換上層數(shù)據(jù)。該過程中PPP狀態(tài)轉(zhuǎn)換如圖4所示,。
4 試驗分析
網(wǎng)關系統(tǒng)要完成的主要任務包括采集傳感器節(jié)點旱情監(jiān)測的相關數(shù)據(jù),,對數(shù)據(jù)進行處理和封裝后通過以太網(wǎng)或GPRS網(wǎng)絡發(fā)送到遠端具有固定公網(wǎng)IP的PC機。為了驗證該網(wǎng)關系統(tǒng)數(shù)據(jù)傳輸?shù)膶崟r性,、可靠性和適應性,,分別對以太網(wǎng)連接和GPRS遠程傳輸可靠性進行了測試試驗。
試驗條件:
(1)Ethernet Switch交換機1個,,EIA/TIA 568B標準網(wǎng)線(直連網(wǎng)線)2根,;
(2)網(wǎng)關系統(tǒng)1套,采用嵌入式Linux操作系統(tǒng),、以太網(wǎng)口驅(qū)動程序,、串口數(shù)據(jù)采集程序,、socket套接字聯(lián)接程序;
(3)利用10Base-T接至網(wǎng)絡的PC機1臺,,采用Windows XP操作系統(tǒng),;
(4)Crossbow公司MICAz節(jié)點和MTS310傳感器6套,采用Crossbow公司的Moteview監(jiān)控軟件,。
以太網(wǎng)的連接試驗主要是針對網(wǎng)關連接,、網(wǎng)關接收匯聚節(jié)點數(shù)據(jù)以及遠程數(shù)據(jù)傳輸進行測試。網(wǎng)關連接測試是驗證網(wǎng)關嵌入式Linux操作系統(tǒng),、CS8900網(wǎng)卡初始化和驅(qū)動程序的運行正常與否,,以及網(wǎng)關與監(jiān)測中心能否通過以太網(wǎng)進行正常的網(wǎng)絡連接。測試網(wǎng)關接收匯聚節(jié)點數(shù)據(jù)的目的主要是驗證SD卡的初始化,、驅(qū)動程序正常與否,,網(wǎng)關能否通過串口讀取匯聚節(jié)點所接收的WSN節(jié)點數(shù)據(jù)。試驗證明,,網(wǎng)關系統(tǒng)能夠?qū)崟r采集WSN節(jié)點數(shù)據(jù),,并通過以太網(wǎng)遠程傳輸?shù)奖O(jiān)控中心,系統(tǒng)運行穩(wěn)定可靠,。
GPRS數(shù)據(jù)傳輸可靠性可以由誤碼率和丟包率來衡量,。為了節(jié)省網(wǎng)絡帶寬,該實驗以丟包率作為分析的主要依據(jù),。由于GPRS傳輸延遲的不確定性,,數(shù)據(jù)傳輸?shù)目煽啃耘c數(shù)據(jù)包的發(fā)送時間間隔相關,間隔時間越大,,數(shù)據(jù)傳輸?shù)目煽啃跃蜁档?。分別對TCP/IP傳輸和UDP傳輸兩種通信方式進行了測試丟包率試驗,發(fā)送間隔時間為1~10 s,,每種間隔時間進行500次數(shù)據(jù)傳輸試驗,,計算的丟包率如圖5所示??梢钥闯?,在2種傳輸模式中,4~5 s是1個分界點,,自此以后丟包率基本趨于穩(wěn)定,,這時的丟包狀況來源于網(wǎng)絡的不可控因素。由于茶園旱情監(jiān)測對數(shù)據(jù)傳輸?shù)膶崟r性沒有過高的要求,,因此,,網(wǎng)關GPRS遠程傳輸采用TCP方式,間隔時間選為5 s,。
5 結(jié) 語
針對目前無線傳感器網(wǎng)絡的應用特點及發(fā)展趨勢,,結(jié)合現(xiàn)今網(wǎng)絡技術,、嵌入式系統(tǒng)技術的發(fā)展,設計采用嵌入式系統(tǒng)平臺實現(xiàn)多種遠程數(shù)據(jù)傳輸技術的WSN網(wǎng)關,,用于茶園旱情監(jiān)測系統(tǒng),。網(wǎng)關通過串行口與匯聚節(jié)點通信,可以通過以太網(wǎng)或GPRS兩種可選方式監(jiān)測數(shù)據(jù)發(fā)到遠程監(jiān)控中心,。開發(fā)了功能完善的WSN網(wǎng)關應用軟件,,在實際應用中取得了良好的效果。隨著3G時代的到來以及工業(yè)級3G通信模塊的推出,,如何利用網(wǎng)關系統(tǒng)實現(xiàn)WSN與3G的互聯(lián)是今后擬研究解決的問題,。