摘要:首要介绍了以TI的无线传感器网络芯片CC2530为中心部件的节点硬件完结,接着介绍TinyOS操作体系的运转机制及其在CC2530渠道下的移植进程;并在此根底上以nesC言语完结了AODV路由协议,最终对体系进行组网测验,测验成果标明渠道各功用正常运转而且完结AODV协议的根本功用。
关键词:无线传感器网络;TinyOS;CC2530;AODV
0 导言
无线传感器网络(Wireless Sensor Network)是由具有感知、核算和通讯才能的很多微型传感器节点组成,被广泛地运用于国防军事、环境监测等范畴。加州大学Berkeley分校规划的依据事情驱动、组件模块化的无线传感器网络操作体系TinyOS具有中心程序小、对硬件要求低一级优势,但它不支撑功用强大的无线传感网络芯片CC2530,为此需求将TinyOS移植至CC2530渠道,以使其得到更好的运用。一起为了节约传输能量,需求选用相应的路由协议,以多跳中继的方法将数据经由多个节点组成的路由传回会聚节点或基站。
本文选用TI的CC2530作为传感器节点的中心部件,选用Tiny OS操作体系作为软件渠道,成功将Tiny OS移植至CC2530渠道,并增加了Tim er、UART、RF等组件;在移植的渠道上,以nesC言语完结了AODV路由协议,而且完结了传感器节点的组网,数据包的多跳转发;为TinyOS和AODV的研讨和运用奠定根底。
1 无线传感器网络体系结构
1.1 传感器节点硬件结构
传感器节点一般由供电单元、数据采集单元、数据处理单元(由微操控器和存储器组成)、无线通讯单元组成。其间,数据处理单元中的微操控器担任对其他三个单元的操控。
本文的体系选用无线传感器网络节点芯片CC2530作为微操控器。CC2530运用了增强型8051CPU,运转时钟频率为32 MHz,具有8 KB RAM;包含一个一般16位定时器和两个8位定时器,21个可编程程I/O引脚,两个支撑多种串行通讯协议的USART,一个契合IEEE 802.15.4规范的2.4 GHz无线收发器和MAC定时器。CC2530是用于IEEE.802.1 5.4,ZigBee和RF4CE运用的一个真实的片上体系(SoC)解决方案。本文节点中心部分的硬件规划如图1所示。
TinyOS选用依据事情驱动、两层调度的并发模型。内核支撑两种履行线程,即中止处理和使命,主控构件保护两个数据结构支撑内核的两层调度:中止向量表和使命行列。TinyOS体系选用组件化思维,其运用程序都是由若干个模块组件和装备组件构成的,其组件有四个彼此相关的部分:一组指令处理程序句柄,一组事情处理程序句柄,一个经过封装的私有数据帧,一组简略使命。每一个组件声明自己运用的接口及其需求用信号的告诉的事情。一个运用程序的组件结构图如图2所示,高层次的组件经过指令调用低层次组件,低层次组件发送信号事情给高层次组件,最低层次组件直接与硬件彼此作用。
1.3 TinyOS操作体系移植
1.3.1 修正编译东西链
TinyOS开发环境为Unix,若要为TinyOS开发运用程序,首要要运用nesC进行编程,发生以“.nc”为扩展名的源文件;然后再调用Unix的NCC(nesC Compiler)编译器将源文件编译成硬件能够履行的二进制/十六进制机器码,如图3(a)所示。
但nesC的编译器NCC调用的是Unix的GCC(GNU Compiler Collection)编译器,而GCC编译器并不支撑CC2530所运用的8051处理器。为此,需求在编译进程运用Perl言语,转化C言语编译器不能辨认的nesC关键字,将nesC言语编写的“.nc”文件编译为惯例的C言语源文件,然后绕过Unix的GCC编译器,改由支撑8051的Keil进行编译,其进程如图3(b)所示。详细的完结为编写脚本文件mangleAppC.pl,在编译规矩文“.rules”中增加该Perl脚本的引证,以生成中心文件App.preMangle.c,并经过树立批处理文件CC2530F256.bat,调用Keil程序编译生成方针文件App.hex。
1.3.2 TinyOS渠道树立
TinyOS运用程序的编译是以渠道为方针的,但TinyOS并不支撑CC2530渠道,因而必须先树立能被TinyOS供认的渠道。依据TinyOS最小渠道的界说,需求创立的目录及编写的文件为:
(1)/tos/platforms/cc2530目录,及其下的“.platform”文件、platform.h、PlatformC.nc和PlatformP.nc文件,这些文件包含渠道初始化的完结代码和渠道的环境变量;
(2)/tos/support/make下的CC2530em.target文件,包含移植代码的方针渠道的辨认信息;
(3)/tos/support/make/mcs51下的“.rules”文件,包含生成方针渠道二进制/十六进制可履行代码时的编译阐明;
(4)/tos/chips/mcs51下的hardware.h和McuSleepC.nc文件,包含渠道硬件体系必备的宏界说和低功耗机制完结代码。
1.3.3 依据CC2530的组件编写
TinyOS运用程序是由一系列组件链接而成,其间包含用于完结运用程序功用的组件、体系供给的用于完结常用功用的组件和针对不同芯片的硬件表达和笼统组件。因为TinyOS本身并不含有针对CC2530渠道的硬件表达和笼统组件,因而需求编写直接与硬件彼此作用的组件来完结移植。编写以下几个重要的组件:
(1)IO口组件,经过树立HplCC2530GeneralIOC组件来供给两类体系接口GeneralIO和Init。
(2)Timer组件,首要由TimerMilli组件、HilTimerMilliC装备组件、HplCC2530TimerlAlarmCounterP组件等组成,用于发生以毫秒为单位的计时器。
(3)Uart组件,由StdOut组件、PlatformSerialC装备组件、HalCC2530SimpleUartP组件等组成,用于完结串口收发功用。
(4)RF组件,首要由ActiveMessageC装备组件、CC2530ActiveMessageP模块组件、CC2530TransmitP模块组件、HalCC2530Radio模块组件和HplCC2530InterruptsC模块组件构成,用于完结根本无线数据传输功用。
2 TinyOS下的AODV路由完结
AODV是一种适用于无线传感器网络的按需路由协议,选用最短路由选路,重视网络吞吐量和网络服务质量,完结简略。本文以TinyOS作为体系的软件渠道,依据TinyOS操作体系的运用程序结构,以nesC言语完结了AODV路由协议。
2.1 AODV路由协议的根本思维
AODV(Ad hoc On-demand Distance Vector)借用了DSR中路由发现和路由保护的根底程序,以及DS-DV的逐跳(Hop-by-Hop)路由、次序编号和路由保护阶段的周期更新机制。
当源节点需求和意图节点通讯时,假如在路由表中现已存在了对应的路由时,AODV就不会进行任何操作,而是直接进行通讯。当原路由失效或许需求和新的意图节点通讯时,它就会建议路由发现进程,播送RREQ信息。当RREQ抵达意图节点本身,或许是一个具有“满足新”的到意图节点路由的中心节点时,意图节点或许中心节点经过RREQ的反向路径向源节点回来一个RREP音讯。所谓“满足新”便是经过意图序列号来判别的,每个节点进行节点序列号的办理,保护本身的序列号和保存意图节点序列号。AODV运用了分布式的、依据路由表的路由方法,树立路由表项今后,在路由中的每个节点都要履行路由保持、办理路由表的使命。节点会监督一个活动路由(Active Route)中下一跳节点的状况。当发现有链路断开的状况时,就向该路由的前驱节点宣布RERR音讯告诉。在RRER音讯中,指明晰因为链路断开而导致无法抵达的意图节点。每个节点都保留了一个“前驱列表”(Precursor List)来协助完结错误报告的功用。
2.2 AODV路由完结的软件结构
AODV路由协议的完结首要包含两个组件:MulitHopEngineM和MulihopAodv,如图4所示。其间MultiHopEngineM组件担任转发分组,Multi HopAodv是AODV路由功用的完结组件,经过装备组件MultiHopAodvRouter将两个组件写通(write)起来。
MultiHopAodv运用TimerMilliC供给的Timer接口作为路由协议所需的定时器,完结了AODV的路由发现、路由保护、Hello音讯等机制,为MulitHopEngineM供给路由的下一跳地址。MultiHopEngineM经过两个接口(RotlteControl,RolneSelect)和MultiHopAodv交互,它的完结独立于任何路由协议完结,这十分有利于依据TinyOS渠道的第三方路由协议的开发。AodvQueueTransmitP为MultiHopEngineM和MultiHopAodv供给了AMSend和Receive接口,一起供给了FIFO机制。
3 体系测验
选用6个节点进行组网测验,运用16位的短地址作为节点地址,如表1所示。体系测验时,PC端运用串口与节点衔接,然后经过串口查看节点的路由信息和数据的转发状况。
3.1 路由发现机制
源节点建议寻觅意图节点的路由发现进程,中心节点收到RREQ后,查看本身是否有抵达意图节点的有用路由,假如有,则回复RREP;假如没有,则持续播送RREQ,如图5所示。
如图6和图7所示,节点2在收到节点4发来的RREQ后,更新到源节点(节点4)的路由,一起在路由表查找到意图节点的有用路由,然后向节点4回复RREP。节点4收到节点2回来的RREP,增加相应路由,将节点2作为到意图节点(节点1)的下一跳节点。该测验标明本体系完结了AODV路由协议的RREQ转发机制和中心路由回复机制,节点4取得抵达意图节点的路由。
3.2 数据包的发送和转发
将6个节点离隔必定间隔安置,节点1作为sink节点,其他5个节点树立抵达节点1的路由,向sink节点发送数据,中心节点一起担任转发其他的节点的数据,图8是组网完结后的拓扑图。
源节点(节点3)建议查找意图节点(节点1)路由发现进程,在树立路由之后(3→4→2→1),向下一跳节点(节点4)发送数据包,如图9所示,中继节点(节点2,节点4)转发数据包如图10~图12所示。在图12中,意图节点收到节点2转发的来自节点3的数据。从该测验成果看出体系具有AODV协议的路由发现、路由表查找、数据包的转发等根本功用。
4 结语
本文介绍了无线传感器网络硬件节点和TinyOS操作体系的结构,依据体系所选用的硬件将TinyOS操作体系移植至8051渠道,一起增加体系所需的IO,Timer,UART,RF等组件。这些组件供给了AODV路由协议所需求的IO操控、定时器、射频收发等功用。经过测验AODV协议的路由发现和多跳转发等机制验证了所移植组件和路由协议完结的正确性。