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


《微型机与应用》2005 年第 9 期 无线传感器网络实验平台的实现 李婧 赵保华 张英堂 中国科学技术大学计算机科学技术系(安徽合肥 邮编:230027) 摘要:集成了传感器、微机电系统和网络三大技术而形成的无线传感器网络是一种全新的信息获取和处理 技术,具有十分广阔的应用前景。本文基于无线传感器硬件,详细阐述如何搭建无线传感器网络实验平台 并利用 TinyOS 进行传感器硬件通讯验证。在此基础上,我们就可以在实际传感器网络中实现具体应用。 关键字:无线传感器网络,实验平台,传感器节点 Realization of Wireless Sensor Network Test-bed Jing Li Baohua Zhao Yingtang Zhang (Department of Computer Science in the University of Science and Technology of China) Abstract: Based on the wireless sensor hardware, this paper presents how to construct wireless sensor network test-bed and verify sensor hardware by means of TinyOS. Then, we can implement practical applications on the wireless sensor network test-bed. Key words: Wireless sensor network, test-bed, sensor node 1 引言 无线传感器网络是一种特殊的无线自组网,它由成千上万甚至数以百计的“沙粒” (motes)构成。“沙粒”即无线传感器网络节点,大小相当于给它提供能量的两节AA电池, 它还包含一个微型处理器,很少的内存,用于感应光、温度、压力、热量等的传感器和一个 微型无线电收发机,用来接收和发送无线电信号。无线传感器网络被部署在应用现场后能够 实时感知和采集各种监测对象的信息,并对其进行处理,最后传送到用户。它在国防军事、 反恐抗灾、环境监测、交通管理、工程安全、医疗卫生等领域都将得到广泛的应用,这将引 发信息感知和采集的革命[1]。 图 1 给出了一个典型的无线传感器网络结构。此网络由传感器节点、基站(Base Station)、 Internet 或通信卫星、任务管理节点等各部分构成。传感器节点通过飞行器撒播、人工埋置 和火箭弹射等方式散布在指定的感知区域内,每个节点都可以收集数据,并通过“多跳”路 由方式把数据传送到基站。基站也可用同样的方式将信息发送给各节点。基站直接与 Internet 或通信卫星相连,通过 Internet 或通信卫星实现任务管理节点(即观察者)与传感器之间的 通信[2]。 无线传感器网络的广阔应用前景引起了学术界和工业界的高度重视。由于各方面条件的 限制,目前针对无线传感器网络的研究大多基于模拟环境(如 NS-2),然而在实际网络系统 的研究中会遇到在模拟环境下无法预料的问题。因此,无线传感器网络实验平台的实现在整 个传感器网络研究中占据非常重要的作用。本文中,我们主要研究了如何搭建无线传感器网 络实验平台,包括利用 TinyOS 在传感器硬件上进行测试,保证传感器节点间无线通讯正常, 这是实现传感器应用实例的前提工作。 《微型机与应用》2005 年第 9 期 图 1 典型的无线传感器网络结构 本文将着重介绍如何利用Crossbow公司的无线传感器产品来实现无线传感器网络实验 平台和基于此实验平台节点验证。第二节将详细介绍Crossbow公司的5040系列硬件产品;第 三节介绍TinyOS系统、传感器硬件验证;第四节总结全文并提出将来研究方向。 2 硬件介绍 Crossbow 公司是全球第一家提供 Smart Dust 无线传感器的公司。此公司提供了一系列 传感器和相关硬件,其中的大部分产品是即插即用的。硬件产品上的所有部件支持 TinyOS 操作系统,此系统是加州大学伯克利分校专为嵌入式系统开发的微型操作系统。 我们采用的实验平台硬件是 MOTE-KIT 5040 系列。它包括 4 个 MICA2 Processor/Radio Boards, 4 个 MICA2DOT boards, 3 个 MTS310 sensor boards, 2 个 MDA500 MICA2DOT 原型 和数据采集板,1 个 MIB510 编程接口板。 下面介绍一下 5040 系列的主要部件。 MICA2 是早期产品 MICA 的改进,具有许多优良 的特性: 1) 是第三代小型智能无线传感器节点; 2) 内嵌 TinyOS 操作系统,提供了前所未有的通讯和处理能力; 3) 在休眠模式,AA 电池可以使用一年之久; 4) 无线通讯功能强大,并且每个节点都具有路由器的功能; 5) 433MHz 或 868/916MHz 的多信道收发天线; 6) 光敏、温度、RH、气压、震动、声学、电磁以及诸多可选的传感器; 7) 支持无线的远程重编程; 8) 具有大量可用的传感器板和数据采集板; 9) 与下一代产品 MICA2DOT 完全兼容。 MICA2DOT 与 MICA2 的主要区别就是其体积是 MICA2 的约四分之一大。其他功能与 MICA2 极其类似。 MICA2 采用的 TinyOS 操作系统是一个小型的、开源的、节能的软件操作系统,它支持 大规模、自配置的无线传感器网络,其源代码和软件开发工具可以在网上下载。MICA2 采用 的硬件平台为 MPR400CB,MPR400CB 采用了 Atmel Atmega 128L 这一款微控制器,该控制器 从其自带的 ROM 中运行 TinyOS 操作系统。可以利用编程接口板来对其进行开发。 MOTE-KIT5040 提供了三块传感器板,这些接口板可以通过一个 51-脚的接口连到 MICA2 上。任何一个MICA2 节点都可以配置成基站来进行工作。基站可将从无线传感器网络取得的 数据汇集到计算机上。 3 基于 TinyOS 的实验平台实现 TinyOS 操作系统是一个小型的、开源的、节能的软件操作系统,他支持大规模,自配置 的无线传感器网络。TinyOS 的安装比较简单,与普通应用软件安装过程类似。完整的安装 《微型机与应用》2005 年第 9 期 包包括如下软件(一般选择完全安装): TinyOS, TinyOS Tools, NesC, Cygwin, Support Tools, Java 1.4 JDK & Java COMM 2.0, Graphviz, AVR Tools(avr-binutils, avr-libc, avr-gcc, avarice, avr-insight)。 调试嵌入式系统应用程序的一个难点是难以区分错误是应用程序错误或者嵌入式系统 平台错误。幸运的是,TinyOS 安装包包括了两个用来对系统和传感器硬件进行验证的工具。 我们利用这两个工具可以在调试应用程序前确认传感器节点本身是否有问题。 首先,对传感器硬件验证前要先对安装上的PC工具进行确认,包括 avr gcc compiler, perl, flex, cygwin(如果使用windows操作系统),JDK 1.4.x等。利用 TinyOS 自带的 toscheck工具可以检验PC工具是否安装完全,操作步骤是:双击图标运行cygwin应用程序, 进入/tools/scripts目录,键入toscheck 。运行后,最后一行输出应当为“toscheck completed without error”。若显示发现错误,必须先解决该错误再继续下面的步 骤。 接下来开始传感器节点的硬件验证,可以使用两种方法[4]: 1、TinyOS 自带的 MicaHWVerify 程序 2、Crossbow 提供的图形用户界面程序 Mote-Test 3.1 使用MicaHWVerify进行硬件验证 MicaHWVerify程序仅专门用来验证MICA/MICA2/MICA2DOT节点硬件。若使用不同 的硬件平台则不适宜使用该程序。以下步骤都以MICA2节点为例,对MICA2DOT节点只需修 改相应参数即可。对传感器节点硬件编程时须注意:若使用配套的电源给编程接口板供电, 将传感器节点插到接口板前要保证节点上的电池已取出;若利用传感器节点上的电池给编程 接口板供电,不需再接电源并保证电池电量大于等于3.0V且节点上开关状态为On。 1、运行cygwin后,进入/apps/MicaHWVerify目录。键入 make mica2 编译 MicaHWVerify程序。在使用MICA2/MICA2DOT平台时,完整的命令应该是 PFLAGS=-DCC1K_MANUAL_FREQ= make 其中,可以根据需要 在315MHz,433MHz和915MHz中选择一个,具体设置方式见文档[5]中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;这里 reinstall 是直接将已编译过的程序装载到指定节点上而不再重新编译程序,因此速度较 快;若使用命令install代替reinstall,则先对目标平台编译再将程序装载到节点。如 果使用MIB500,则键入make reinstall mica2 即可。有关tinyos的最新版本和代码 可以参考[3]。回车后,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 《微型机与应用》2005 年第 9 期 这时可以知道编程接口板和计算机串口工作正常。接下来继续验证传感器节点硬件: 5、键入make –f jmakefile ,再键入MOTECOM=serial@COM1:57600 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=915988000。为操作方便,我们可以在apps/目录下建立一 个Makelocal文件来设定参数默认值,内容为: CFLAGS=-DCC1K_DEFAULT_FREQ=CC1K_915_998_MHZ MIB510=COM1 这样,以后就不必每次输入MIB510=...PFLAGS=... 之类的参数了。通信实验需要两个传感 器节点,因此先对另一个传感器节点进行硬件检测,再按下述步骤操作,使其充当第一个节 点的无线网关: 6、 进入/apps/TOSBase目录,键入 make mica2 编译 TOSBase 程序。 7、 将TOSBase程序装载到插在MIB510编程接口板上的传感器节点,并将另一个传感器 节点(注意:该节点装载的是MicaHWVerify程序)放在附近。 8、 HT键入MOTECOM=serial@COM1:57600TH 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”。 3.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 Firmware): 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固件配置的 《微型机与应用》2005 年第 9 期 波特率是57600,默认的包大小是36,UART CRC设置为不可用。一旦配置好,按下SET NOW 按钮,主屏幕就会弹出。 接下来验证传感器节点硬件工作是否正常。Mote-Test使我们可以使用插在MIB500/ MIB510上的一个MICA2或MICA2DOT节点来创建一个基站或PC的串行网关,用来测试和演 示两个传感器节点间的双向无线通信,也可以验证传感器硬件和计算机串口是否工作正常。 7、使用一个装载过MICA2_TEST_916 固件、电池供电的传感器节点作为测试无线通 信功能的远程节点。 8、将一个装载过MICA2_TEST_916 固件的传感器节点插到编程接口板上,称此节点 为基站。基站的频率要和远程节点相同。 9、将MIB510编程接口板通过串口连到计算机。 10、按下SELF TEST按钮,选择好测试对象后,将远程节点放在距离基站大于0.6米 的地方。 11、运行MICA2硬件验证测试,按下START TEST按钮。输出结果如图2所示: 图 2 MICA2的Mote-Test硬件验证窗口 从上图可以看出,若Memory检测成功,MEM OK绿灯亮;Battery检测电池电量大小;RSSI 测试有两个值,显示远端节点与基站的连通性。若RSSI值小于-80.00将显示FAIL,但这并不 意味着节点无线通信失败,可能因为MICA2节点距离基站太远,可以通过缩短MICA2节点与基 站间距离来改善RSSI值。我们实验中实际测得的数据分别为-64.50,-61.88 说明连通性较 好。Serial ID NUMBER显示本地传感器节点的硬件序列号。当各项状态都正常时,最上面的 PASS绿灯亮。传感器硬件测试完成后,我们将能根据需求自己编写程序,通过编程接口板加 载到传感器上,实现无线传感器网络的各种功能。 4 结论和将来工作 由于基于实际传感器网络的研究相对于网络模拟环境更具说服力,本文介绍了如何搭建 无线传感器网络实验平台以及在此平台上的系统验证。内容涉及了无线传感器网络的结构和 发展前景,传感器节点的硬件测试,传感器节点间无线通信等。在此实验平台上,我们可以 编写应用程序(Nesc 和 Java 程序)完成传感器网络的各种功能。 下一步的工作是在该实验平台上研究具体的无线传感器网络协议,我们将按照以下步骤 《微型机与应用》2005 年第 9 期 开展工作: 1) 解决无线传感器网络中定位和同步问题; 2) 研究网络层协议中的路由算法; 3) 研究传感器网络的管理问题。 参考文献 [1]李建中,李金宝,石胜飞.传感器网络及其数据管理的概念、问题与进展. 软件学报 2003,14(10):1717-1727. [2]任丰原,黄海宁,林闯. 无线传感器网络[J]. 软件学报 July 2003,14(7):1282-1291. [3]HThttp://sourceforge.net/projects/tinyosTH. [4]http://www.xbow.com/Support/Support_pdf_files/UISPHELP.pdf,UISP,MoteProg- ramming,and Mote Fuse Help Guide version 20030315,2003 Crossbow Technology, Inc. [5]http://www.xbow.com/Support/Support_pdf_files/TinyOS_Getting_Started_Guide_7 430-0022-03_A.pdf.
还剩5页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 3 金币 [ 分享pdf获得金币 ] 1 人已下载

下载pdf