新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > ZigBee技术的树簇网络监控系统设计

ZigBee技术的树簇网络监控系统设计

作者:时间:2009-07-08来源:网络收藏

2 节点硬件
由于节点的数量较大,为了方便生产,将FFD和RFD设备的主要区别放在软件方面;而硬件部分除了协调器具有UART接口外,其他都是相同的。总体分为核心单元CC2430、传感器模块以及电源管理模块3部分。硬件的总体框图如图2所示。

2.1 核心单元CC2430
CC2430是TI公司推出的支持协议的SoC解决方案,可用于各种无线节点,包括协调器、路由器和终端设备。它延用了 CC2420芯片的架构,在单个芯片上整合了射频(RF)前端、存储器和微控制器。CC2430F128内嵌增强型8051 MCU,8 KB RAM,128 KBFlash,包含8路ADC、3个定时器、AESl28加密电路,MAC协处理器、看门狗定时器,以及21个可编程I/O引脚,支持4种不同程度的休眠模式。
2.2 传感器模块
(1)温湿度传感器
采用瑞士Sensirion传感器公司推出的SHT1O温湿度一体传感器。该传感器芯片由温度和湿度探头、校准存储器、14位模数转换器、双向I/O两线串行输出接口组成。其工作电压为2.4~5.5 V,支持闲时自动低功耗。测湿精度为±4.5%RH,25℃时测温精度为±0.5℃。SHT10对温度或湿度的测量由串行输入的指令确定,测量值的输出可选择为8位、12位或14位。
(2)烟雾报警传感器和人体红外传感器考虑到监控人员对烟雾和闯入人员的信息需求只限为“有”或“没有”,因此两种传感器只需在事件发生时传递一个脉冲信号即可。此脉冲经过滤波限流后输入CC2430的I/O口,将相应的I/O口设置为上升沿中断检测模式即可检测信号。
烟雾报警传感器采用SH-533模块,搭载TP1.1气体传感器,附带蜂鸣器、LED报警指示;工作电压7~20 V,静态电流10 mA,检测面积为10 m2左右。烟雾触发输出为5 V高电平脉冲信号,由于CC2430工作电压为3.3 V,所以用电阻对其做了简单的分压。
人体红外传感器采用sH-912模块,搭载PIR热释电传感器并配合菲涅尔透镜使用;工作电压4.5~20 V,静态电流50 μA,感应角度110°,最大感应距离7 m。红外触发输出3.3 V脉冲信号。
2.3 电源管理模块
为保证传感器采集数据的及时传递,减小终端在竞争信道过程中产生的碰撞造成能量的损耗,本系统中FFD设备采用不间断供电(UPS)。即使在库房掉电的情况下,FFD设备也能靠充电电池维持工作。

3 软件
3.1 Z-Stack简介
Z-Stack是由TI公司推出的基于ZigBee标准的协议栈软件,可在www.focu.ti.com.cn免费下载。它包含了ZigBee标准描述的各层次的功能组件模块,向开发人员提供了一系列的API。通过调用这些API,可以实现ZigBee标准中各层次的相应功能。基于这些功能模块,可以更便捷地开发出各种基于ZigBee协议的应用产品。图3为Z-Stack结构。(注:Z-Stack协议栈核心的部分,包括安全模块、路由模块、Mesh 支持等,都只以库的方式提供。)

在终端设备嵌入式软件中,操作系统模块主要实现的是简单的任务轮询和工作调度的功能,同时还需实现节点硬件的初始化和功能配置。这个操作系统模块不是真正意义上的操作系统,而是一个具有操作系统任务调度功能的模块。该操作系统模块在Z-Stack中由OSAL组件构成。操作系统模块的任务调度具体方式是:首先,为需要实现的功能建立任务,且每一个任务有不同的事件。当操作系统运行时,会不间断地轮询所有任务的标志位。若标志位有效,则表明该任务有事件发生,调用任务事件处理函数,并在任务处理函数中,根据标志位,判断是什么事件发生。然后,系统做出对应的操作,最后将标志位清零。
3.2 树簇拓扑的形成及路径发现与维护
由于文章篇幅有限,不能依次介绍方案中比较关键的应用层、硬件描述层、NWK层以及OSAL,以下着重描述NWK层的树簇拓扑的形成以及路径的发现与维护。
Z-Stack总共默认65 000个设备入网。为保证中每个节点的地址是唯一的,使用了分布式寻址方案,由父节点分配子节点地址。此种算法保证了控制端的数据包能够精确地发送到指定设备,子节点也只能有一个父节点,有助于的可测量性。在网络初始化之前,有几个参数需要配置,分别是MAX_DEPTH、MAX_ROUTERS 和MAX_CHILDREN[6]。
MAX_DEPTH决定了网络的最大深度。协调器在最顶层,位于深度0;它的子节点位于深度1,依此类推。MAX_CHILDREN决定了一个路由器或者一个协调器可以处理的最大子节点个数。MAX_ROUTERS决定了一个路由器或者一个协调器可以连接的最大路由器的个数。这个参数是 MAX_CHILDREN的一个子集,终端设备使用(MAX_CHILDREN-MAX_ROUTERS)剩下的地址空间。图4为使用自定义栈配置后的网络拓扑和节点地址分配示意图。LAYER1最多20个节点,其中包含6个路由节点。

在网络初始化过程中,协调器先将自身设置为一个簇标识符为0的簇头,并向临近的设备以广播方式发送信标帧。接收到信标帧的设备(路由器或终端设备)向簇头请求加入网络,如果作为父节点的协调器允许该设备的加入,则将其作为子节点加入到它的邻居表中,同时,请求加入的设备将协调器作为父节点加入到邻居表中,成为从设备。已经加入网络的路由器也广播信标帧,以这种方式,直到所有设备都接入网络。在接入网络的同时,广播信标帧的父节点会向接人的子节点分配唯一的 16位网络短地址。图5是网络建立和节点入网流程。
终端设备没有路由功能。它需要将数据发送给它的父节点,父节点以它自己的名义执行路由。当路由器从应用层或子节点收到单点发送数据包时,NWK层会将其传递到下层。如果目标节点是相邻路由器中的一个,则数据包被直接发送;否则,路由器会检索它的路由表中与所要传送的数据包的目标地址相符合的记录。如果存在与目标地址相符合的路由记录,则数据包将被发往记录中的下一级地址;如果没有发现任何相关的路由记录,则路由器发起路径寻找,数据包存储在缓冲区中直到路径寻找结束。如果数据包沿着某条路由路径传送失败,这个路径就被认定是坏链,父节点将启动路径修复。节点发起重新发现直到下一次数据包到达该节点,标志路径修复完成。如果不能够启动发现或者由于某种原因失败了,节点则向数据包的源节点发送一个错误包(RERR),它将重新启动路径发现。



评论


相关推荐

技术专区

关闭