无线传感器网络实验平台的设计和实现

时间:2011-08-31

 

  无线传感器网络所具有的众多类型的传感器,可探测包括地震、电磁、温度、湿度、噪声、光强度、压力、土壤成分、移动物体的大小、速度和方向等周边环境中多种多样的现象。基于MEMS的微传感技术和无线联网技术为无线传感器网络赋予了广阔的应用前景。这些潜在的应用领域可以归纳为:军事、航空、反恐、防爆、救灾、环境、医疗、保健、家居、工业、商业等领域。

  无线传感器网络是一种全新的信息获取平台,能够实时监测和采集网络分布区域内的各种检测对象的信息,并将这些信息发送到网关节点,以实现复杂的指定范围内目标检测与跟踪,具有快速展开、抗毁性强等特点,有着广阔的应用前景。

  典型的无线传感器网络结构如图1所示。此网络由传感器节点、基站(Base Station)、Internet或通信卫星、任务管理节点(Task Manager Node)等部分构成。传感器节点通过飞行器撒播、人工埋置和火箭弹射等方式散布在指定的感知区域内,每个节点都可以收集数据,并通过"多跳"路由方式把数据传送到基站。基站也可用同样的方式将信息发送给各节点。基站直接与Internet或通信卫星相连,通过Internet或通信卫星实现任务管理节点(即观察者)与传感器之间的通信.

  无线传感器网络的广阔应用前景引起了学术界和工业界的高度重视。由于各方面条件的限制,目前针对无线传感器网络的研究大多基于模拟环境(如NS-2),然而在实际网络系统的研究中会遇到在模拟环境下无法预料的问题。因此,无线传感器网络实验平台的实现在整个传感器网络研究中占据非常重要的作用。为此本文主要介绍了如何搭建无线传感器网络实验平台,包括利用TinyOS在传感器硬件上进行测试,保证传感器节点间无线通信正常,这些都是实现传感器应用实例的前提工作。本文将重点介绍如何利用Crossbow公司的无线传感器产品来实现无线传感器网络实验平台和基于此实验平台的节点验证;Crossbow公司的5040系列硬件产品;TinyOS系统和传感器硬件验证;将来的研究方向。

  1  硬  件

  克尔斯博科技有限公司(Crossbow Technology, Inc)成立于1995年,是无线传感器网络和惯性传感器系统终端解决方案供应商。克尔斯博领导新一代的技术革命,通过无线传感器网络技术沟通了物理世界与数字世界,并将MEMS技术广泛应用在陆海空等领域。克尔斯博革命性的技术赋予了无线传感器网络超长的电池寿命、自组织自愈合和灵活的网络拓扑结构等强大功能。克尔斯博先进的技术平台具有的开放式系统结构,易于与IT系统相连并集成为面向终端的无线传感器网络系统。

  实验平台硬件采用的是MOTE-KIT 5040系列。它包括4个MICA2 Processor/Radio Boards、4个MICA2DOT Boards、3个MTS310 Sensor Boards、2个MDA500 MICA2DOT 原型和数据采集板以及1个MIB510编程接口板。

  MOTE-KIT5040系列的主要部件是MICA2.它是早期产品MICA的改进,采用的TinyOS操作系统是一个小型、开源、节能的软件操作系统,支持大规模、自配置的无线传感器网络,其源代码和软件开发工具可以在网上。MICA2采用的硬件平台为MPR400CB,MPR400CB采用了Atmel Atmega 128L微控制器,该控制器从其自带的ROM中运行TinyOS操作系统。可以利用编程接口板对其进行开发。MICA2具有许多优良的特性:

  ①是第三代小型智能无线传感器节点。

  ②内嵌TinyOS操作系统,提供了前所未有的通信和处理能力。

  ③在休眠模式,AA电池可以使用一年。

  ④无线通信功能强大,并且每个节点都具有路由器的功能。

  ⑤433MHz或868/916MHz的多信道收发天线

  ⑥光敏、温度、RH、气压、震动、声学、电磁以及诸多可选的传感器。

  ⑦支持无线的远程重编程。

  ⑧具有大量可用的传感器板和数据采集板。

  ⑨与下一代产品MICA2DOT完全兼容。

  MICA2DOT与MICA2相比的主要优点在于其体积约是MICA2的四分之一。其他功能与MICA2极其类似。

  MOTE-KIT5040还提供了3块传感器板,这些接口板可以通过一个51脚的接口连到MICA2上。任何一个MICA2节点都可以配置成基站来进行工作。基站可将从无线传感器网络取得的数据汇集到计算机上。

  2  基于TinyOS实验平台的实现

  TinyOS的构件包括网络协议、分布式服务器、传感器驱动及数据识别工具。其良好的电源管理源于事件驱动执行模型,该模型也允许时序安排具有灵活性。TinyOS已被应用于多个平台和感应板中。TinyOS操作系统、库和程序服务程序是用nesC写的,nesC是一种开发组件式结构程序的语言,nesC是一种C语法风格的语言,但是支持TinyOS的并发模型,以及组织、命名和连接组件成为健壮的嵌入式网络系统的机制。nesC应用程序是由有良好定义的双向接口的组件构建的,nesC定义了一个基于任务和硬件事件处理的并发模型,并能在编译时检测数据流组件。

  调试嵌入式系统应用程序的难点是:难以区分错误源在应用程序还是在嵌入式系统平台。但由于TinyOS安装包包括了2个用于对系统和传感器硬件进行验证的工具,因此可以利用这2个工具在调试应用程序前确认传感器节点本身是否有问题。

  首先,对传感器硬件验证前要先对安装的PC工具进行确认,包括 avr gcc compiler、perl、flex、cygwin(如果使用Windows操作系统)、JDK 1.4.x等。利用TinyOS自带的 toscheck工具可以检验PC工具是否安装完全,其操作步骤是:双击图标运行cygwin应用程序,进入/tools/scripts目录,键入toscheck.运行后,1行输出应为"toscheck completed  without error".若发现显示错误,则必须先解决该错误再继续下面的步骤。

  接下来可以使用下面2种方法[3]进行传感器节点的硬件验证:

  (1)TinyOS自带的MicaHWVerify程序。

  (2)Crossbow提供的图形用户界面程序Mote-Test.

  2.1 使用MicaHWVerify进行硬件验证

  MicaHWVerify程序专门用来验证MICA/MICA2/MICA2DOT节点硬件。若所使用的硬件平台不同则不适宜使用该程序。以下步骤都以验证MICA2节点为例(对MICA2-DOT节点只需修改相应参数即可)。对传感器节点硬件编程时须注意:若使用配套的电源给编程接口板供电,将传感器节点插到接口板前要保证节点上的电池已取出;若利用传感器节点上的电池给编程接口板供电,则不需再接电源但必须保证电池电量≥3.0V,且节点上开关状态为On.验证步骤如下。

  (1)运行cygwin后,进入/apps/MicaHWVerify目录。键入make mica2编译MicaHWVerify程序。若使用MICA2/MICA2DOT平台,完整的命令应该是PFLAGS=-DCC1K_MANUAL_FREQ= make .其中,可以根据需要在315MHz、433MHz和915MHz中任选1个,具体设置方式见参考文献[5].本文则选用915MHz的频率;若使用MICA平台,则键入make mica.

  (2)将MICA2节点插到编程接口板上(MIB510),用电池或电源供电(通电后编程接口板上的绿灯亮)。

  (3)将编程接口板通过串口连到计算机。如果使用编程接口板MIB500,则将编程接口板通过并口连到计算机(以下未特别声明的编程接口板都是指MIB510)。

  (4)将程序装载到MICA2节点上。键入MIB510=COM# make reinstall mica2.其中:COM#表示MIB510连接在计算机端口COM#上(#=1、2、3……本文取为COM1);rein-stall是直接将已编译过的程序装载到指定节点上而不再重新编译程序,因此速度较快;若使用命令install代替reinstall,则先对目标平台编译再将程序装载到节点。如果使用MIB500,则键入make reinstall mica2即可。回车后,MIB510编程接口板的典型输出如下:

  $ mib510 make reinstall mica2

  installing mica2 binary

  uisp -dprog=mib510 -dserial=COM1 -dpart=ATmega128 --wr_fuse_e=ff --erase --upload if=build/mica2/main.srec

  Firmware Version:2.1

  Atmel AVR ATmega128 is found.

  Uploading:flash

  Fuse Extended Byte set to 0xff

  这时可以知道编程接口板和计算机串口工作正常。接下来继续验证传感器节点硬件。

  (5)键入make -f jmakefile,再键入MOTECOM=serial@

  COM1:57 600 java hardware_check,计算机上的输出应该大致为:

  hardware_check started

  hardware verification successful

  Node Serial ID:1 60 48 fb 6 0 0 1d

  其中,Node Serial ID是MicaHWVerify程序分配给MICA2节点的序列号,该程序检查结点序列号、闪存连通性、UART功能和外部时钟。当这些状态都正常时,屏幕上就会打印出硬件检测成功的消息。由于MICA2DOT没有序列号,当编译MicaHWVerify时会提示警告信息"Serial ID not supported on mica2dot platform",终的运行结果serial ID输出全为0xFF.

  ,验证传感器节点间的无线通信。应注意通信时传感器节点间要使用统一的频率,即 PFLAGS=-DCC1K_MANUAL_FREQ=915 988 000.为操作方便,可以在apps/目录下建立一个Makelocal文件来设定参数默认值,其内容如下:

  PFLAGS=-DCC1K_DEFAULT_FREQ=CC1K_915_998_MHZ

  MIB510=COM1

  这样,以后就不必每次输入MIB510=……、PFLAGS=……等表设置参数了。

  通信实验需要2个传感器节点,因此先对另一个传感器节点进行硬件检测,再按下述步骤操作,使其充当个节点的无线网关程序。

  (6)进入/apps/TOSBase目录,键入make mica2编译TOSBase程序。

  (7)将TOSBase程序装载到插在MIB510编程接口板上的传感器节点,并将另一个传感器节点(注意:该节点装载的是MicaHWVerify程序)放在附近。

  (8)键入MOTECOM=serial@COM1:57600 java hardware_check来运行hardware_check java程序,输出结果应和前面类似:

  hardware_check started

  Hardware verification successful.

  Node Serial ID:1 60 48 fb 6 0 0 1e

  这里返回远端节点的序列号,表示传感器节点间无线通信验证成功。如果远端传感器节点关闭或工作不正常,将返回提示信息"Node transmission failure".

  2.2 使用Mote-Test进行硬件验证

  验证传感器硬件还有另外一种更快捷的方法,即使用Mote-Test程序。介绍如下。

  (1)从光盘运行/Crossbow Software/Mote-Test文件夹下的setup.exe安装Mote-Test.

  (2)从光盘/Crossbow Software/Mote Firmware目录下拷贝MICA2_TEST_315、MICA2_TEST_433、MICA2_TEST_916、MICA2DOT_TEST_315、MICA2DOT_TEST_433、MICA2DOT_TEST_916文件夹到/apps目录下。

  (3)用电源给MIB510编程接口板供电,并通过串口与计算机相连。首先,在MICA2上装载测试固件(Test Firm-ware)。

  (4)运行cygwin,进入MICA2_TEST_XXX目录(XXX是频率,本实验中使用的是MICA2_TEST_916)。

  (5)键入MIB510=COM1 make mica2 reinstall,在待测试的传感器节点上装载测试固件,如果装载成功,按下编程板上的RESET按钮后会看到LEDs闪烁,验证了编程接口板和计算机串口工作正常。

  (6)设置Mote-Test检测传感器节点。运行Mote-Test,在窗口中点击GONFIGURE 按钮,弹出一个配置对话框。在其中选择正确的端口号(这里是COM1)。MICA2固件配置的波特率是57 600,默认的包大小是36,UART CRC设置为不可用。一旦配置好,按下SET NOW 按钮,主屏幕就会弹出。

  (7)接下来验证传感器节点硬件工作是否正常。Mote-Test允许使用插在MIB500/MIB510上的一个MICA2或MICA2DOT节点来创建一个基站或PC的串行网关,用来测试和演示2个传感器节点间的双向无线通信,也可以验证传感器硬件和计算机串口是否工作正常。

  ①使用一个装载过MICA2_TEST_916固件、电池供电的传感器节点作为测试无线通信功能的远程节点。

  ②将一个装载过MICA2_TEST_916固件的传感器节点插到编程接口板上,称此节点为基站。基站的频率要和远程节点相同。

  ③将MIB510编程接口板通过串口连到计算机。

  ④按下SELF TEST按钮,选择好测试对象后,将远程节点放在距离基站大于0.6米的地方。

  ⑤运行MICA2硬件验证测试,按下START TEST按钮。

  检测后,输出结果如图2所示。

  从图中可以看出,若Memory检测成功,MEM OK绿灯亮;Battery检测电池电量大小;RSSI测试有2个值,可以显示远端节点与基站的连通性。若RSSI值小于-80.00将显示FAIL,但这并不意味着节点无线通信失败,可能因为MICA2节点距离基站太远,可以通过缩短MICA2节点与基站间距离来改善RSSI值。在本实验中,RSSI实际测得的数据分别为-64.50和-61.88,说明连通性较好。Serial ID NUMBER显示本地传感器节点的硬件序列号。当各项状态都正常时,上面的PASS绿灯亮。传感器硬件测试完成后,就可以根据需求自己编写程序,通过编程接口板加载到传感器上,实现无线传感器网络的各种功能。

  3  结论及下一步工作

  本文介绍了如何搭建无线传感器网络实验平台以及在此平台上的系统验证。内容涉及无线传感器网络的结构和发展前景、传感器节点的硬件测试、传感器节点间无线通信等。在此实验平台上,可以编写应用程序(Nesc和Java程序)完成传感器网络的各种功能。

  下一步的工作是在该实验平台上研究具体的无线传感器网络协议,需要解决如下问题:(1)无线传感器网络中的定位和同步问题。(2)研究网络层协议中的路由算法。(3)研究传感器网络的管理问题。

 


  

参考文献:

[1]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[2]. Memory datasheet https://www.dzsc.com/datasheet/Memory_1082507.html.


上一篇:解析工业网络的发展及其在运动控制中的应用
下一篇:解析XMPP协议分析与应用

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料