ZigBee协议栈结构介绍 ZigBee协议栈是基于标准的开放系统互连模型的七层结构,但是它只定义了其中的四层。IEEE802.15.4-2003标准定义了PHY层和MAC层。ZigBee联盟在此基础上定义了网络层(NWK Layer)和应用层(Application Layer-APL),如图3-1。应用层包括应用支持层(application support sub-layer-APS),ZigBee设备对象(ZigBee deviceob-jects,ZDO)和厂商定义的应用对象(manufacturer-de¯ned application objects,MDAO)。 在ZigBee技术中,其体系结构通常由层来量化它的各个简化标准。每一层负责完成所规定的任务,并且向上层提供服务。各层之间的接口通过所定义的逻辑链路来提供服务。
图3-1 ZigBee协议栈结构 1.PHY层 PHY层的主要作用是激活和关闭射频收发器;对信道的能量进行检测;对收到的数据包有链路质量指示;空闲信道评估;载波侦听多路访问/冲突避免(CSMA/CA)协议;信道频率选择;数据的发送和接收。 2.MAC层 协调器产生网络信标;同步网络信标;支持PAN的关联和取消关联;支持设备加密;使用载波侦听多路访问/冲突避免(CSMA/CA)信道访问机制;确保服务的同步时隙(Guaranteed Time Slot,GTS);为两个对等MAC实体提供可靠的连接。 3.NWK层 NWK层的主要作用是为一个节点加入、离开一个网络时为它寻找路由;发现和维持设备间的路由关系;发现邻居,存储其相关的信息;协调器的网络层还要发起一个网络,并为新加入的设备分配地址。 4.APL层APL包含三个子层,他们是APS、ZDO和AF APS负责维持绑定路由表和转发两个绑定设备间的信息;组定义以及增加或移除组信息;IEEE地址与短地址的地址映射;传输数据的分割与重组。APS子层提供了网络层与应用层(APL)的接口,它来连接ZDO和厂商定义的应用对象。服务由两个实体提供:APS数据实体(APSDE)和APS管理实体(APSME)。APSDE为同一个网络中的节点提供数据传输服务,它会拆分和重组大于最大荷载量的数据包。APSME提供安全服务,节点绑定,建立和移除组地址,负责64位IEEE地址与16位网络地址的地址变换(映射)。 ZDO定义了网络中的每个设备,比如定义哪个作为协调器,哪个是终端设备,并发起和回应绑定要求,在设备之间建立可靠的联系。ZDO还要负责发现网络中的设备并确定提供哪些应用服务。 AF层是空中传播的数据与APS层的接口。它负责发送和接收数据,并为接收到的数据寻找端点(endpoint)。 3.2 ZigBee通信网络的组建 ZigBee无线传感器通信网络的组建是由网络中的协调器发起和完成的,其具体的过程参见图3-2。
图3-2新建网络过程 ZigBee通信网络的组建是依靠原语来实现的。ZigBee协调器应用层向其本身的网络层发送NIME-NETWORK-FORMATION.request原语来启动一个新的网络,并通过返NIME-NETWORK-FORMATION.confirm原语来指示网络组建完毕。在启动一个新的网络后,主要完成以下三方面内容的工作: 首先,对物理层所默认的有效信道进行能量检测。其具体的过程是网络层通过发送扫描类型参数设置为能量检测扫描的MLME-SCAN.request原语到MAC层进行信道能量的检测扫描,并通过MLME-SCAN.confirm原语返回扫描结果。 其次,信道扫描选择合适的信道、PAN标识符以及网络地址。通过发送的MLME-SCAN.request原语进行信道扫描,并将扫描的结果返回给网络层。如果网络层管理实体找到了合适的信道则将为新网络选择一个PAN标识符,并将这个值通过MLME-SET.request原语设置MAC层的相关属性,选择网络地址。 最后,通过向MAC层发出MLME-START.request原语开始运行新的网络,如果MLME-START.confirm返回的状态信息为SUCCESS,则表明网络组建成功。 网络组建成功后,下面就要考虑如何将设备加入网络。当ZigBee协调器或者路由器上希望其他设备加入该组建成功的网络时,其实现方式将需要借助原语NLME-PERMIT-JOINING.request和NLME-PERMIT-JOINING.confirm。一个设备加入网络有以下三种方式: (1) 联合方式加入网络 这种联合方式加入网络主要分为两步实现,即子设备加入网络以及父设备(协调器或者路由器)加入网络。设备必须具有必要的物理容量和可获得的网络地址才可以接收一个来自新设备的加入请求,因此只能是协调器或者路由器才具有接收一个加入请求的能力,而终端设备不具备这种能力。 (2) 直接方式加入网络 所谓直接方式加入网络,就是子设备通过一个先前指定或者是预先分配的父设备(协调器或者路由器)直接同网络连接。通常情况下,父设备将为子设备预先分配一个64位的地址,父设备的网络层管理实体将搜索它的邻居表,以确定是否存在一个与其相匹配的64位扩展地址,即所指定的设备是否已经存在于网络中。如果存在相匹配的地址,网络层管理实体将向其上层报告该设备已经存在于网络设备列表中;如果不存在相匹配的地址,网络层管理实体将为新设备分配一个网络中唯一的16位的网络地址。 (3) 孤点加入或重新加入网络 在通信网络中,还存在这样一种情况,即一个已经直接连接网络的设备或者一个先前已经连接到网络中的设备,但目前设备与其父设备失去了联系,这种情况下,就要考虑通过孤点方式重新加入网络。设备的应用层决定是否发起建立与父设备关系的进程,如果需要发起,则将告知网络层开启电源。如果它的网络层管理实体重复的接收到来自MAC层通信失败的通知,则将开始执行孤点加入网络的进程。 3.3 通信节点软件设计 对节点软件的设计就是在zigbee协议的基础上添加自己的应用程序,用自己的程序调用协议里的子程序,完成特定的功能。 3.3.1 协调器节点软件设计 协调器节点,主要负责采样命令的发送、数据的接收、综合处理分析与处理并进一步通过串口传输到PC机。该节点软件设计流程图如图3-3所示。
图3-3 协调器节点流程图 3.3.2 路由器节点软件设计 路由器节点的软件主要负责接收各温度传感器采集的信号,并进一步进行信息融合,将综合后的数据发送给协调器,是ZigBee信号的中转。其工作流程图如图3-4所示。
图3-4 路由器节点流程图 3.3.3 温度终端节点软件设计 温度终端设备节点软件部分主要负责对各个环境温度的实时监测和ZigBee信号的发送等。其软件设计流程图如图3-5所示。 图3-5 终端节点流程图
总结 在做毕业设计的这几个月里学到了很多东西,从搜集资料到整个系统硬件的制作再到软件的调试每一步都受益匪浅,有经验有教训。通过搜集资料我知道了zigbee网络的发展前景,zigbee技术可以应用到现在最热门的物联网领域,通过无线把任何物体与互联网相连接,进行信息交换和通信,以实现对物体的智能化识别、定位、跟踪、监控和管理,zigbee技术的发展前景不可估量。 硬件制作在这次设计中占了很大大比重,从原理图设计到PCB板制作再到电路的焊接每一步都付出了艰辛,为了锻炼自己的动手能力PCB板选择了在学校实验室制作,有的部分选择了全手工焊接,在万能板上把线一根一根的焊上,虽然效果不是太好,但是整个电路调试下来没有问题,在学习实验室制作PCB板学到了很多的东西,了解了小型工业化单双面PCB板制作的流程,并在老师的指导下亲自动手做了板子,而且调试成功。 调试软件对我来说就难了一点,我比较偏重硬件制作,但是通过这次软硬结合我倒觉得我软件调试方面还是可以的,首先对模块进行了各个简单功能的调试然后调试了不带zigee协议的一对和一对多,最后调试了基于zigbee协议的开关量传输,通过调试我在C语言编程上进步很大,对51系列单片机的编程有个更大的信心。 |