ZigBee无线网络申节点多选用自组网的办法入网,这种办法简单引起网络中部分节点的过度耗费。针对此种状况提出可控组网办法,经过对节点入网父节点的挑选操控,能够有用的监控办理整个网络的拓扑结构和节点散布,并延伸节点和网络的寿数。经过在依据CC2530的开发体系申对可控组网办法编译和完结,验证了其可行性。
跟着社会的开展,无线网络在咱们的各项活动中扮演着越来越重要的人物。无线通信技能有许多,其间ZigBee技能以其低速率、短间隔、低功耗的特色,较好地适用于智能家庭、智能建筑、医疗使用和工业主动化等某些特定的需求。
文中主要是对ZigBee网络通讯组网办法的研讨。ZigBee2007/PRO中规则的ZigBee网络中节点采纳无线自组网的办法组成网络。自组网简单将多个子节点经同一父节点入网,导致部分路由节点负担过重耗电较快,从而引起过早逝世。本文主要是研讨经过一种可控的组网办法,使得用户能够经过上位机主动或手动的挑选父节点让节点入网,这样能够防止对单个要害节点的过量耗费,延伸网络寿数。
1无线自组网办法剖析
无线自组网(Ad Hoc)又称为多跳无线网,它是一种无中心节点、多跳的自安排技能。在ZigBee2007/PRO中倡议的组网办法中,一个新的节点在网络中能够随机放置,接通电源后先完结节点初始化,然后首要向和谐点发送指令,和谐点接纳到恳求分配等级指令后会记载节点信息并分配对应等级,并发送分配等级指令。节点在设定的时刻内假如收到了分配指令,就会和谐点发送包含白安排信息的数据包,承认自己在网络中的等级和父节点信息,接入网络。假如在设定的时刻内没有收到分配等级的指令,该节点就会从待机状况唤醒,再次发送分配等级恳求指令,循环履行,直到接入成功。当到达设置的上限次数但仍未取得指令信息时,则节点接入失利并陈述过错。节点自安排流程图1所示。
图1 节点自安排流程图
2改善的组网办法
文中要完结的组网办法,是要让子节点参加网络时完结有用的全程可控。当新节点放入网络后,会先播送发送信标帧,有用范围内的可用父节点收到信标后会回复承认音讯,其间包含父节点本身的信息,新节点收到反应的音讯后会收集父节点信息,收拾后把包含父节点信息和本身信息的音讯播送发送给和谐器。和谐器接纳到音讯后会经过串口发送到上位机操控器,经判别后主动或人为的挑选适宜接入的父节点并将此音讯发送给对应父节点,父节点接纳到此音讯后向新节点发送音讯树立衔接,节点入网完结。
一个新节点放入网络中,翻开电源后会首要使用层会向网络层发送一条发现网络恳求原语NLME-NETWORK-DISCOVERY.request对节点进行初始化。网络层收到网络发现恳求原语后会向MAC层发送节点扫描恳求原语MLME-SCAN.request,来指示MAC层进行网络的主动扫描。MAC层收到此条原语后就会指示物理层向网络中播送发送一条扫描父节点信标帧,然后进入待机形式等候反应。在可用的父节点接纳到信标帧后,会向子节点反应发送承认音讯,其承认音讯中将包含父节点本身的信息。节点的MAC层会接纳每条具有有用负载的反应信标,然后对收到的信息进行收拾,承认信标负载、信标的对应节点地址等信息,收拾后MAC层将会向NLME发送一条指示原语MLME-BEACON-NOTIFY.indication.NLME在收到原语后会对接纳到的数据中的地址字段进行符号,以承认是否与自己的近邻表中现有地址相同。假如比对成果显现二者相同,即重复节点,节点会把信标丢掉;假如二者不同,节点就保存信标信息,并把其间的地址信息添加到自己的近邻表中。MAC层在到达设定的计时周期后,就会向NLME发送扫描承认原语MLME-SCAN.confirm,以标志扫描进程完毕。然后网络层向使用层法发送一条发现承认原语NLME-NETWORK-DISCOVERY.confirm,将其扫描到的节点信息反应给使用层。使用层在接纳到网络层发送的发现承认原语后,会向NLME发送参加恳求原语NL ME-JOIN.request,发送的原语中对应的标识符参数与搜寻到的各节点的网络标识符共同。网络层在收到上层的参加恳求指令后,会收拾搜寻到的可用父节点信息,参加地址信息后发送参加恳求原语MLME-JOIN.request给MAC层。MAC层收到原语后会指示物理层向网络中播送发送一条参加恳求信标帧,然后节点会翻开定时器并进入低功耗待机状况,等候上级呼应。
子节点会在指定的时刻间隔周期的唤醒接纳上级的指令。和谐器完结父节点挑选后会给指定的父节点发送承认参加指令,父节点接纳到音讯后会给子节点发送一条参加恳求原语NLME-DIRECT-JOIN.request来完结初始化,原语中的参数DeviceAddress记载即将参加网络的节点地址信息,然后向子节点发送一条恳求参加的信标帧。子节点在收到父节点的信标帧后,MAC层会向网络层发送指示原语MLME-ASSO%&&&&&%ATE.in dication,将接纳到的父节点信息发送到上层。网络层收到原语后将记载父节点信息并比对与近邻表中记载的可用父节点信息是否共同,若共同,则向MAC层发送参加恳求原语MLME-JOIN.request;若不共同则发送过错陈述。MAC层在与父节点相关成功后会向网络层发送参加承认原语MLME-JOIN.confirm指示参加成功,网络层将向使用层发送参加承认原语NLME-JOIN.confirm,奉告节点入网成功。新节点参加网络中子节点的信息流程图如2所示。
图2 新节点参加网络中子节点的信息流程图
作为父节点的和谐点或路由节点收到子节点宣布的节点扫描信标帧后,NLME会先检查自己的近邻表中是否存在与之相匹配的地址信息,以对新节点是否参加过网络进行判别。假如发现有相匹配的地址信息,则路由节点NLME会记载此条地址信息,然后依照下文的网络原有节点重新参加网络进行操作;假如发现没有相匹配的地址信息,则路由节点NLME会向MAC层发送一条呼应原语MIME-ASSOCIATE.resPonse。MAC层收到呼应原语后会指示节点物理层向新节点发送一条状况信息,信息中记载路由节点的地址和标识符等信息。
等收到子节点发送来的收拾完结的信息帧时,路由节点的MAC层会读取信息帧中的头地址信息,然后向NLME发送数据发送恳求原语MLME-SEND.request,网络层收到恳求原语后判别发送地址是否正确并寻觅发送数据需求的途径。途径树立后网络层向MAC层发送发送承认原语MLME-SEND.response,指示节点发送数据。
当信息发送到和谐点并经上位机挑选后会生成一条指示入网指令帧,然后发送。网络会依据上位机挑选的父节点地址将指令帧转发给对应的节点。挑选的父节点收到指令帧后会读取指令信息,然后节点MAC层发送参加恳求原语MLME-JOIN.request给网络层,NLME收到原语后会给新节点分配网络地址。父节点接纳入网恳求成功,NLME会在节点近邻表中参加新节点的地址等信息,然后发送参加承认原语MLME-JOI N.confirm给MAC层以陈述相关成功。新节点参加网络中时路由节点的信息流程图如图3所示。
图3 新节点参加网络中路由节点的信息流程图
3组网进程的完结
在进行ZigBee无线网络的开发使用时,首要应选取适宜的硬件设备。TI公司的CC2530微操控器是新一代的片上体系解决方案。本文选取了成都无线龙公司出产的较为老练的依据ZigBee的无线网络开发体系C51RF-CC2530-PK.软件开发环境本文选取了IAR Embedded Workbench的C/C++穿插编译器和调试器。
需求入网的子节点在完结初始化后,就会发动入网进程。节点会向网络中播送信标帧,然后等候可用路由节点的反应。播送发送数据的函数如下所示:
当收到反应的可用父节点信息时,节点会将反应的信息收集收拾后发送出去,然后进入待机状况,等候入网反应。节点播送入网恳求信息函数段如下所示:
当上位机选取适宜的父节点后,父节点会与子节点发动经指定节点直接入网进程。此部分程序在ZigBee协议栈中有比如程序,在此不再胪陈。
在子节点有用间隔内的路由节点和和谐器会在于节点播送音讯时接纳到扫描帧,当路由节点收到子节点的扫描帧时会首要判别本身是否具有参加新节点的才能,包含是否有满足地址空间等。路由节点反应的函数段如下所示:
子节点收集收到信息后会给路由节点发送入网恳求,其入网恳求信息中包含可用父节点信息。向和谐器转发恳求入网信息的函数段如下所示:
父节点收到指令后会发动节点入网进程。
文顶用包含一个和谐器、两个路由节点和一个终端节点的网络进行试验验证。程序编写完结后将和谐器代码下载至节点1,并将此节点符号为和谐器;将父节点程序别离下载至节点2和节点3,并将这两个节点作为原网络的路由节点,也即子节点入网时的可用父节点;将入网节点程序下载至节点4.
下载完结后别离先翻开和谐器节点1和路由节点节点2节点3的电源,用USB线将和谐器与上位机衔接起来,等候路由节点主动参加网络,组成所需主干网。待组成完结后翻开节点4电源,并翻开串口调试帮手,此刻会看到节点4扫描可用父节点信息后发送的入网恳求信息,并在上微机软件窗口显现节点信息,此刻挑选节点3作为接入父节点,此刻可经过串口调试帮手看到承认接入指令。节点3接纳到指令后会发动接纳节点4为其子节点,节点4参加网络。参加网络成功后会在上位机软件显现网络拓扑结构。
4定论
经过对组成网络和网络节点入网进程的运转完结,验证了所做的可控组网改善办法到达了预期设定的意图,完结了上位机经过选取可用的父节点对入网进程的操控。这样的状况下当在一些特别状况下或许已知路由节点状况的状况下能够很好地避开功用较弱或许剩下电量较低的节点,可有用地进步要害节点的寿数,从而进步了网络的寿数。