王建玲,王亞慧,田 樂
(北京建筑大學電氣與信息工程學院,北京 100044)
近幾年,無線傳感器網絡(wireless sensor networks,WSNs)成為世界范圍內各大公司和科研機構爭相研究的前沿與熱點方向,已經有為數不少的無線傳感器網絡開始投入商業使用。當前無線傳感器網絡的研究熱點主要集中在網絡體系架構、網絡通信協議、網絡安全管理等方面[1],針對傳感信息可視化方面的研究相對較少,而且大部分建立在特定的應用環境基礎上,其通用性、可移植性比較差,不能直接應用在其他平臺上。
結合無線傳感器網絡當前的研究現狀與課題需求,開發了一種基于Socket網絡編程的無線傳感器網絡遠程監控系統。系統采用無線傳感器網絡采集空調房間的空氣品質參數[2],遠程客戶只需一臺能夠連上網的普通計算機,就能坐在辦公室等室內環境里通過Internet實時、快捷地獲得無線傳感器網絡采集來的數據,即實現無線傳感器網絡采集數據遠程共享,這極大地方便了用戶,拓寬了無線傳感器網絡的應用領域[3]。
TCP/IP協議是一組協議的總稱,它是一個4層的網絡體系結構,這4層分別是應用層、傳輸層、互聯網絡層、數據鏈路層。TCP/IP協議棧是WinCE網絡協議棧的核心,嵌入式設備的網絡通信都直接或間接地使用WinSock端口套接字訪問TCP/IP協議網絡堆棧。
20世紀90年代初,微軟和第三方廠商共同制定了一套標準,即 Windows Sockets規范,簡稱 Winsock[4]。Windows Sockets規范是一套開放的、支持多協議的Windows下的網絡編程接口,它規范了Internet協議族(IPS,一般為TCP/IP)的API使用,實現了對網絡細節的屏蔽。在Winsock中,一個套接字對象就是一個通信的端點,通過套接字可以在網絡上發送或接收數據包。在TCP/IP下,套接字由IP地址和端口號[5]定義。IP地址包括4B,用于確定Internet上的服務器。端口號確定特定的服務或服務器提供的服務,與一個應用程序相關聯。應用程序可以在1024~65535之間選擇自己的端口號。
Sockets編程的設計思路為:
1)找到對方IP地址;
2)確定端口;
3)定義通信規則(傳輸協議)。
常用到Sockets編程有2種:流式套接字TCP(SOCK_STREAM)和數據報套接字UDP(SOCK_DGRAM),分別基于傳輸控制協議(transmission control protocol,TCP)和用戶數據報協議(user datagram protocol,UDP)。
UDP多用于聊天、視頻會議、桌面共享等場合,要求有高的數據傳輸速率,用戶可以不在線。其特點為:
1)將數據及源和目的封裝在數據包中,不需要建立連接;
2)每個數據報的大小限制在64 k內;
3)因無連接,是不可靠協議;
4)不需要建立連接,速度快。
TCP通常用于可靠性要求較高的場合,其特點為:
1)建立連接,形成傳輸數據的通道;
2)在連接中進行大數據量傳輸;
3)通過3次握手完成連接,是可靠協議;
4)必須建立連接,效率會稍低,建立連接之后才發數據[6]。
本系統架構設計[7]如下圖1所示,其中無線傳感網絡采用Zig Bee無線通信技術,它依據IEEE 802.15.4標準,在數千個微小的傳感器之間相互協調實現高效通信。系統基站采用以S3C2440處理器作為控制器的ARM9開發板,搭載WinCE 6.0實時操作系統,在系統中嵌入Microsoft SQL Server 2005 Mobile Edition數據庫,實現對無線傳感器網絡采集數據的暫存。遠程控制功能[8]則吸收以往的一些遠程控制系統的優點,并結合該系統的現實功能需求采用基于Sockets通信技術的網絡編程實現。
整個硬件系統配置了JN5148和PIC16f723兩個控制器,其中JN5148用于實現基于Zig Bee協議的無線收發,是通信實現的硬件基礎,PIC16f723用于實現硬件的電源管理。整個硬件設計的優點有以下幾點:
1)選用JENNIC公司開發的第三代Zig Bee芯片,它具有低功耗、強處理能力的特點。

圖1 Zig Bee網絡的系統架構Fig 1 System architecture of Zig Bee network
2)電源管理電路可以根據節點的工作需要設定節點的工作周期,通過單片機編程定時控制負載開關實現節點的硬件“休眠”,達到節能的效果[9]。
3)將JN5148中UART0轉換成USB的T型口實現節點與基站的通信,提高節點的通用性。
4)傳感器電路通過模擬的USB數據線將信息傳送至節點,一是傳感器可以遠離節點方面應用,二是節點可以更換不同的傳感器滿足不同應用需求。
在PC上安裝下列軟件:
1)Microsoft Visual Studio 2005[10];
2)Microsoft SQL Server 2005;
3)Microsoft ActiveSync;
4)基于Windows CE的SDK或設備在嵌入式設備上安裝:Microsoft SQL Server 2005 Mobile Edition數據庫。
本系統通信流程如圖2所示。

圖2 系統通信流程Fig 2 System communication process
實現ARM基站與遠程客戶端的Sockets通信,需要分別對ARM基站服務端和遠程PC客戶端進行設計[11,12]。
4.2.1 服務端設計
服務端界面共分成運行管理、在線管理、數據傳輸、數據監控4個模塊,運行管理模塊提供服務端信息,實時監控端口等待與遠程PC建立連接;在線管理模塊實現服務端與客戶端之間在線聊天,相互發送信息;數據傳輸模塊是將嵌入式數據庫SQLCE中存儲的溫度、濕度數據發送給已建立連接的用戶;數據監控模塊實現嵌入式開發板實時監控無線傳感網絡的運行狀態。服務器主界面功能如下:
1)運行管理:包括顯示服務端信息、服務端日志、登錄的方式;
2)在線管理:包括在線發送信息、在線接收信息、發送文件;
3)數據傳輸:包括SQLCE數據庫數據提取、溫濕度數據的發送;
4)數據監控:包括節點開關、數據顯示、數據插入、數據查詢。
4.2.2 客戶端設計
客戶端主要實現功能有3個方面:
1)根據服務端的IP發送連接請求,與服務端建立連接;
2)在線向服務端發送信息,并實時接收服務端發來的信息;
3)監控本機的所有網絡數據流,分析其源地址和大小、生成日志。
4.2.3 系統Socket通信原理
結合系統實際應用背景和TCP與UDP各自的特點,本系統采用TCP編程。Socket通信原理主要體現在服務端與客戶端建立連接并相互發送和接收數據的過程中。具體的程序流程如圖3所示。

圖3 TCP服務端/客戶端編程流程Fig 3 TCP server/client programming process
實驗系統采用課題組自行開發的一種無線傳感器網絡系統,該系統共有30個節點。圖4只給出5個節點的示意圖,其它節點硬件設計基本相同,不同功能主要是通過下載不同的程序實現。圖中連接嵌入式基站的是協調器節點,其它是路由節點和底層節點。

圖4 無線傳感器網絡系統示意圖Fig 4 WSNs system diagram
5.1.1 服務端功能實現
WinCE基站服務端主界面,運行管理模塊實時監控端口6001(在1024~65535允許范圍內自定義),等待與遠程客戶端建立連接,如圖5所示。

圖5 監控端口,等待建立連接Fig 5 Monitor port,waiting for connection
運行服務端數據傳輸模塊,提取嵌入式數據庫中采集到的數據,并將數據發送給遠程客戶端。圖6界面顯示提取的基站SQLCE中的數據,點擊“發送數據庫數據”按鈕,COM端口控制臺監聽這些提取到的數據并將此數據發送給遠程用戶。定義數據傳輸時數據包格式為
@序號|時間|節點|溫度|濕度|.
例如:發送SQLCE中第426條記錄時數據包為
@426|2006-01-01 01:29:13|node=10|temp=28|humid=51|.
其中,@標識一條記錄,|標識一條記錄中的一列。客戶端接收到數據包時會根據數據包定義的格式進行解包,從而提取有效數據。
5.1.2 系統客戶端功能實現
遠程客戶順利與服務端建立連接,并將基站發送來的數據存入SQL數據庫中。客戶端界面通過訪問本地SQL數據庫也可以查詢基站服務端發送來的數據,如圖7所示。
客戶端用戶向服務端發送數據請求指令,服務端將接收到該指令,并根據請求指令將基站存儲的有關數據發送給用戶,實現在線數據管理,如圖8所示。

圖6 提取基站嵌入式數據庫SQLCE中的數據Fig 6 Extract data in embedded database SQLCE of base station(BS)

圖7 客戶端界面查詢服務端發送的數據Fig 7 Client interface query datas sent by the Server

圖8 在線管理Fig 8 Online management
網絡監控器能夠實時的監控客戶端的網絡流,分析各個數據包從而得到每個數據包的協議類型、源端口、目標地址、包長度等信息。
隨著監測壞境的日益復雜,無線傳感器網絡所獲取的溫度、濕度等簡單數據已不能滿足人們對環境監測的全面要求,因此,無線多媒體傳感器網絡(wireless multimedia sensor networks,WMSNs)應運而生,成為當今的研究熱點,被廣泛應用于圖像注冊、分布式視頻監控、環境監控以及目標跟蹤等項目中[13]。下一步本系統將引入低功耗視頻傳感器,采集信息豐富的圖像、視頻等多媒體信息,實現信息精準、全面有效的環境監測[14]。以上研究為后續的開發奠定了基礎。
[1]夏志峰.基于無線傳感技術的室內空氣品質系統辨識[D].北京:中國林業大學,2012.
[2]Canha R M F,ALH de Cresce El Debs,M K El Debs M F.Canha,et al.Design model for socket base connections adjusted from experimental results[J].Structural Concrete,2007,8(1):3-10.
[3]Hong Yaoming,Lin Hsueh-Chun,Kan Yao-Chiang.Using wireless sensor network on real-time remote monitoring of the load cell for landslide[J].Sensor Letters,2011,9(5):1911-1915.
[4]時文武,楊 軍.無線傳感器網絡在溫室環境監測中的應用研究[J].計算機與現代化,2012(3):125-127.
[5]高 磊,王洪濱,張 歡.Windows CE系統開發高級編程與典型實例[M].北京:中國電力出版社,2011:259-273.
[6]Farhad Abarghoui.Port numbers and sockets for TCPIP[J].UNIX Review,1992,10(2):44-48.
[7]Lee Sung Hyuck,Seok Seung-Joon,Gu-Kang Chung,et al.The two markers system for TCP and UDP flows in a differentiated services network[J].Computer Communications,2003,26(4):338-350.
[8]Safar Maytham,Al-Hamadi Hasan,Ebrahimi Dariush.PECA:Power efficient clustering algorithm for wireless sensor networks[J].International Journal of Information Technology and Web Engineering,2011,6(1):49-58.
[9]內格爾.C#高級編程[M].李 銘,譯.6版.北京:清華大學出版社,2008:360-396.
[10]劉興淮,朱 健,徐燕梅,等.基于 Socket的醫療費用銀行結算平臺的設計[J].信息與電子工程,2012,10(6):788-791.
[11]胡秉誼,白 凈,葉大田.遠程醫療系統的客戶服務器結構模型[J].清華大學學報:自然科學版,1999,39(1):19-21.
[12]Chia W C,Chew L W,Ang L M,et al.Low memory image stitching and compression for WMSN using strip-based processing[J].International Journal of Sensor Networks,2012,11(1):22-32.
[13]張開風.基于Zig Bee的無線傳感器網絡圖像采集系統的設計[D].合肥:安徽大學,2011.