硕十学位论文第二章Zigbee组网方案的设计OperatingSystem)控制的,BOS是一个无优先级的简单任务调度器,控制着Zigbee协议栈以及用户任务的执行,网络的初始化就是在BOS的控制下进行的。Zigbee网络的初始化是有序的,每一个节点都有唯一的MAC地址,这是通过预编程设定的【451。其网络初始化过程如图2.4。图2-4网络初始化流程网络初始化的流程如下:1.确定网络协调器。首先判断节点是否是FFD节点,接着判断此FFD节点是否在其它网络里或者网络里是否已经存在协调器。通过主动扫描,发送一个信标请求命令(Beaconrequestcommand),然后设置一个扫描期限12硕十学位论文第二章Zigbee组网方案的设计(Tscan—duration),如果在扫描期限内都没有检测到信标,那么就认为此FFD在其POS内没有协调器,那么此时就可以建立自己的Zigbee网络,并且作为这个网络的协调器不断地产生信标并广播出去。2.进行信道扫描过程。包括能量扫描和主动扫描两个过程:首先对指定的信道或者默认的信道进行能量检测,以避免可能的干扰。以递增的方式对所测量的能量值进行信道排序,抛弃那些能量值超出了可允许能量水平的信道,选择可允许能量水平的信道并标注这些信道是可用信道。接着进行主动扫描,搜索节点通信半径内的网络信息。这些信息以信标帧的形式在网络中广播,节点通过主动信道扫描方式获得这些信标帧,然后根据这些信息,找到一个最好的、相对安静的信道,通过记录的结果,选择一个信道,该信道应存在最少的ZigBee网络,最好是没有ZigBee设备。在主动扫描期问,MAC层将丢弃PHY层数据服务接收到的除信标以外的所有帧。3.设置网络ID。找到合适的信道后,协调器将为网络选定一个网络标识符(PANID,取值_<0x3FFF),这个ID在所使用的信道中必须唯一,也不能和其它Zigbee网络冲突,而且不能为广播地址0xFFFF(此地址为保留的地址,不能使用)。PANID可以通过侦听其它网络的ID然后选择一个不会冲突的ID的方式来获取,也可以人为的指定扫描的信道后来确定不和其它网络冲突的PANID。在Zigbee网络中有两种地址模式:扩展地址(64位)和短地址(16位),其中扩展地址由IEEE组织分配,用于唯一的设备标识;短地址用于本地网络中的设备标识,在一个网络中,每个设备的短地址必须唯一,当节点加入网络时由其父节点分配并通过使用短地址进行通信。对于协调器节点来说,短地址通常设定为0x0000;上面步骤完成后,就成功初始化了Zigbee网状网络,之后就等待其它节点的加入。节点入网时将选择范围内信号最强的父节点(包括协调器)加入网络,成功后将得到一个网络短地址并通过这个地址进行数据的发送和接收,网络拓扑关系和地址就会保存在各自的Flash中。网络初始化包括两方面的内容:确定初始化参数和将选定的参数配置到节点中。节点需要初始化的参数如下:操作信道LogicChannel、PANID、节点自身短地址macShortAddress、信标周期BeaconOrder、超帧激活周期Superfi'ameOrder等。在确定网络的初始化参数之后,将通过调用MAC层的MLNE.SAP接口的设置原语(MLME.SET)和开始原语(MLME.START)将选定的参数配置到节点的MAC中M。2.3.2节点通过协调器加入网络当Zigbee协调器确定之后,节点首先需要和协调器建立连接加入网络。考硕十学位论文第二章Zigbee组网方案的设计虑到网络的容量和FFD/RFD的特点,本文只讨论FFD节点情况,FFD节点与协调器连接加入网络的流程图如图2.5。图2-5FFD节点与协调器连接加入网络沅程图为了建立连接,FFD节点需要向协调器提出连接请求,协调器接收到节点的连接请求后根据情况决定是否允许其连接,然后对请求连接的节点做出响应,节点与协调器建立连接后,才能实现数据的收发。具体的流程可以分为以下几个步犁42l【48】【49】【50l:1.查找网络协调器。首先会主动扫描查找周围网络的协调器,如果在扫描期限内检测到信标,那么将获得了协调器的有关信息,这时就向协调器发出连接请求。在选择合适的网络后,上层将请求MAC层对物理层和MAC层的phyCurrentChaanel、macPANID等PIB属性进行相应的设置。如果没有检测到,间隔一段时间后,节点重新发起扫描。14硕十学位论文第二章Zigbee组网方案的设计2.发送关联请求命令(Associaterequestcommand)。节点将关联请求命令发给协调器,协调器收到后立即回复一个确认帧(ACK),同时向它的上层发送连接指示原语,表示已经收到节点的连接请求。但这并不意味着已经建立连接,只表示协调器已经收到节点的连接请求。当协调器的MAC层的上层接收到连接指示原语后,将根据自己的资源情况(存储空间和能量)决定是否同意此节点的加入请求,然后给节点的MAC层发送响应。3.等待协调器处理。当节点收到协调器加入请求命令的ACK后,节点的MAC将等待一段时间,接收协调器的连接响应。在预定的时间内,如果接收到连接响应,它将这个响应向它的上层通告。而协调器给节点的MAC层发送响应时会设置一个等待响应时间(ZResponseWa#Time)来等待协调器对其加入请求命令的处理,若协调器的资源足够,协调器会给节点分配一个16位的短地址,并产生包含新地址和连接成功状态的连接响应命令,则此节点将成功的和协调器建立连接并可以开始通信。若协调器资源不够,待加入的节点将重新发送请求信息,直到入网成功。4.发送数据请求命令。如果协调器在响应时间内同意节点加入,那么将产生关联响应命令(Associateresponsecommand)并先存储这个命令。当响应时间过后,节点发送数据请求命令(Datarequestcommand)给协调器,协调器收到后立即回复ACK,然后将存储的关联响应命令发给节点。如果在响应时间到后,协调器还没有决定是否同意节点加入,那么节点将试图从协调器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。5.回复。节点收到关联响应命令后,立即向协调器回复一个确认帧(ACK),以确认接收到连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联加入成功的信息。上述步骤完成之后,待加入网络的节点应该已经收到协调器的加入请求回复。如果该请求通过,该节点将成功和协调器建立连接并获得网络地址和其他节点进行通信。在上述连接的过程中,请求建立连接的节点的上层生成连接请求原语发送给节点的MAC层。MAC层的MLME接收到这个原语后,先向物理层发送和原语更新phyCurrentchannel和maePANID的值,然后生成一个含有建立连接请求的命令帧发送给指定的协调器。节点在发送命令帧时使用CSMA.CA算法,首先MLME向物理层发送状态为TXON的收发电路状态转换原语,激活发射电路,使其工作在发射状态。收到确认原语后再向物理层发送数据请求原语来生成命令帧,等待接收的协调器发送的确认帧。如果没有收到,那么将重新发送连接请求命令。如果重新发送aMaxFrameRetries次后仍然没有接收到确认帧,则节点的物理层向上层发送状态为NOACK的连接请求确认原语表示连接请求15硕十学位论文第二章Zigbee组网方案的设计命令发送失败。连接过程原语图时序图如图2-6[511152l。图2.6原组网方案的节点与协调器的连接原语时序图2.3.3节点通过已有节点加入网络当靠近协调器的FFD节点和协调器关联成功后,处于这个网络范围内的其它节点就以这些FFD节点作为父节点加入网络了,具体加入网络有两种方式【4纠,一种是通过关联(association)方式,就是待加入的节点发起加入网络;另一种是直接(direct)方式,就是待加入的节点具体加入到那个节点下,作为该节点的子节点。其中关联方式是Zigbee网络中新节点加入网络的主要途径,其流程图如图2.7。对于一个节点来说只有没有加入过网络的才能进行加入网络。在这些节点中,有些是曾经加入过网络,但是却与它的父节点失去联系(这样的被称为孤儿节点.),而有些则是新节点。当是孤儿节点时,在它的相邻表中存有原父节点的信息,于是它可以直接给原父节点发送加入网络的请求信息。如果父节点有能力同意它加入,于是直接告知它的以前被分配的网络地址,它便入网成功;如果此16
好文档 - 专业文书写作范文服务资料分享网站