基于无线传感器网络的Socket通信研究*

2014-12-31 12:19王建玲王亚慧
传感器与微系统 2014年2期
关键词:服务端客户端基站

王建玲,王亚慧,田 乐

(北京建筑大学电气与信息工程学院,北京 100044)

0 引言

近几年,无线传感器网络(wireless sensor networks,WSNs)成为世界范围内各大公司和科研机构争相研究的前沿与热点方向,已经有为数不少的无线传感器网络开始投入商业使用。当前无线传感器网络的研究热点主要集中在网络体系架构、网络通信协议、网络安全管理等方面[1],针对传感信息可视化方面的研究相对较少,而且大部分建立在特定的应用环境基础上,其通用性、可移植性比较差,不能直接应用在其他平台上。

结合无线传感器网络当前的研究现状与课题需求,开发了一种基于Socket网络编程的无线传感器网络远程监控系统。系统采用无线传感器网络采集空调房间的空气品质参数[2],远程客户只需一台能够连上网的普通计算机,就能坐在办公室等室内环境里通过Internet实时、快捷地获得无线传感器网络采集来的数据,即实现无线传感器网络采集数据远程共享,这极大地方便了用户,拓宽了无线传感器网络的应用领域[3]。

1 基本理论与概念的提出

1.1 WinCE下的TCP/IP协议

TCP/IP协议是一组协议的总称,它是一个4层的网络体系结构,这4层分别是应用层、传输层、互联网络层、数据链路层。TCP/IP协议栈是WinCE网络协议栈的核心,嵌入式设备的网络通信都直接或间接地使用WinSock端口套接字访问TCP/IP协议网络堆栈。

1.2 Socket通信机制简介

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]。

2 系统设计架构

本系统架构设计[7]如下图1所示,其中无线传感网络采用Zig Bee无线通信技术,它依据IEEE 802.15.4标准,在数千个微小的传感器之间相互协调实现高效通信。系统基站采用以S3C2440处理器作为控制器的ARM9开发板,搭载WinCE 6.0实时操作系统,在系统中嵌入Microsoft SQL Server 2005 Mobile Edition数据库,实现对无线传感器网络采集数据的暂存。远程控制功能[8]则吸收以往的一些远程控制系统的优点,并结合该系统的现实功能需求采用基于Sockets通信技术的网络编程实现。

3 系统硬件设计简介

整个硬件系统配置了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数据线将信息传送至节点,一是传感器可以远离节点方面应用,二是节点可以更换不同的传感器满足不同应用需求。

4 系统软件设计

4.1 开发环境的搭建

在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数据库。

4.2 Sockets网络编程设计

本系统通信流程如图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

5 系统实现

实验系统采用课题组自行开发的一种无线传感器网络系统,该系统共有30个节点。图4只给出5个节点的示意图,其它节点硬件设计基本相同,不同功能主要是通过下载不同的程序实现。图中连接嵌入式基站的是协调器节点,其它是路由节点和底层节点。

图4 无线传感器网络系统示意图Fig 4 WSNs system diagram

5.1 温度、湿度数据传输功能实现

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所示。

5.2 在线管理功能的实现

客户端用户向服务端发送数据请求指令,服务端将接收到该指令,并根据请求指令将基站存储的有关数据发送给用户,实现在线数据管理,如图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

5.3 网络监控器的实现

网络监控器能够实时的监控客户端的网络流,分析各个数据包从而得到每个数据包的协议类型、源端口、目标地址、包长度等信息。

6 结束语

随着监测坏境的日益复杂,无线传感器网络所获取的温度、湿度等简单数据已不能满足人们对环境监测的全面要求,因此,无线多媒体传感器网络(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.

猜你喜欢
服务端客户端基站
如何看待传统媒体新闻客户端的“断舍离”?
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
基于移动通信基站建设自动化探讨
可恶的“伪基站”
基于GSM基站ID的高速公路路径识别系统
小基站助力“提速降费”