首页 » 技术文章 » 基于ZigBee的WSN路由研究与实验

基于ZigBee的WSN路由研究与实验

作者:  时间:2010-12-01 11:07  来源:EDN

  2.1 ZigBee 无线传感器节点硬件

  要创建WSN节点,本实验使用了以下的组件:一片带SPITM接口的PIC18F单片机;一个带有所需外部元件的RF收发器芯片CC2420; 一根天线,可以是PCB上的引线形成的天线或单极天线。

  如图1所示,控制器通过SPI总线与RF收发器芯片CC2420相连。控制器充当SPI主器件而CC2420充当从器件。控制器实现了IEEE 802.15.4 MAC 层和ZigBee协议层。它还包含了特定的应用逻辑,并使SPI总线与RF收发器交互。Microchip协议栈提供了完全集成的驱动程序,免除了主应用程序管理RF收发器功能的任务。如果需要,可以将某些非SPI控制信号重新分配到其他端口引脚以适合应用的硬件。在这种情况下,必须修改物理层接口定义,包括正确的引脚分配。

  2.2 设计步骤

  以微芯的ZigBee协议栈为例,为了设计ZigBee协议系统,应按以下步骤进行设计:(1)获得OUI;(2)根据数据传输率及市场的需要,确定无线通信的频带;(3)使用TSZ-008开发系统进行开发设计;(4)利用微芯协议栈提供的源文件扩展ZigBee协议应用;(5)进行RF规范论证;(6)进行ZigBee协议互操作规范论证。

  具体设计时应遵从以下步骤:

  (1)确定系统需要使用的配置文件;

  (2)确定每个设备具备的终端结构;

  (3)创建一个新的项目目录,将所有的具体应用源文件及项目文件置于该目录中;

  (4)使用ZENA软件产生基于设备类型、设备配置及终端结构的配置文件并编写相关源代码。

  2.3 虚拟路径建立过程

  相关源码如下:

  case NLME_START_ROUTER_confirm:

  if (!params.NLME_START_ROUTER_confirm.Status)

  {

  ConsolePutROMString( (ROM char *)"Router Started!

  Enabling joins...rn" );

  params.NLME_PERMIT_JOINING_request.PermitDura-

  TIon=0xFF;

  currentPrimitive=NLME_PERMIT_JOINING_request;

  }

  else

  {

  PrintChar( params.NLME_JOIN_confirm.Status );

  ConsolePutROMString( (ROM char *)" Router start

  unsuccessful. We cannot route frames.rn" );

  currentPrimitive = NO_PRIMITIVE;

  }

  break;

  2.4 确认路径过程

  相关源码如下:

  case NLME_PERMIT_JOINING_confirm:

  if (!params.NLME_PERMIT_JOINING_confirm.Status)

  {

  ConsolePutROMString( (ROM char *)"Joining permitted.rn" );

  currentPrimitive = NO_PRIMITIVE;

  }

  else

  {

  PrintChar( params.NLME_PERMIT_JOINING_confirm.Status );

   ConsolePutROMString( (ROM char *)" Join permission unsuccessful. We cannot allow joins.rn" );

  currentPrimiTIve = NO_PRIMITIVE;

  }

  break;

  2.5 实验结果

  笔者主要对树簇网进行了验证。实验中,路由器与终端设备组建了小型星形网络,这个星形网络是以路由器为中心,以终端设备为子节点的。与标准星形网络不同的是,在以路由器为中心的小型星形网络中,路由器不会向终端设备发出任何控制命令,它只起中继的作用,实际的控制命令是由协调器发出的。这样通过路由器的连接中继作用,协调器可以控制超出它的能量覆盖范围的终端设备。路由器没有组建树簇网络的功能,但它可以接收终端设备形成星形网络,也可以加入协调器参与到树簇网络中。

  可以使用开发板进行路由器的定位实现简单路由,也可以实现帧转发,但是路由表的建立维护功能不全。协调器和路由器不能自动地发起路由探询与路由修复,所以在应用层传输数据包之前,需要通过按下某一固定键盘的方式人工激发路由探询。在路由探询等待中,在接收缓存中只允许存放一个等待传送的数据包。

  未来对ZigBee无线传感器网络的路由研究需要做很多工作,包括数据包路由的安全性保障、更优越路由算法的研究以及如何在降低功耗的情况下使网络得到最大限度的扩展,且不影响路由的建立与自动修复等等。无庸置疑,基于ZigBee协议的无线传感器网络会将拥有更大的发展空间与前景。

相关推荐

ZigBee联盟即将推出新的LED照明控制开放标准

ZigBee  LED  2012-01-05

ARM及ZigBee技术实现智能家居控制器的设计

ZigBee  智能家居  2011-08-29

对ZigBee无线通信进行测试

ZigBee  测量  2011-07-29

基于ZigBee与CAN总线技术的井下无线通信系统设计

ZigBee  无线通信  2011-07-28

ZigBee:在物联网潮涌中焕发生机

ZigBee  蓝牙  2011-06-03

添加热监控电路降低数据中心的能耗

温度传感器  ZigBee  服务器  2011-05-04
在线研讨会
焦点