基于ZigBee无线网络的可控组网方法研究(1)


ZigBee无线网络申节点多采用自组网的方式入网,这种方式容易引起网络中部分节点的过度消耗。针对此种情况提出可控组网方式,通过对节点入网父节点的选择控制,可以有效的监控管理整个网络的拓扑结构和节点分布,并延长节点和网络的寿命。通过在基于CC2530的开发系统申对可控组网方式编译和实现,验证了其可行性。

随着社会的发展,无线网络在我们的各项活动中扮演着越来越重要的角色。无线通信技术有很多,其中ZigBee技术以其低速率、短距离、低功耗的特点,较好地适用于智能家庭、智能建筑、医疗应用和工业自动化等某些特定的需求。

文中主要是对ZigBee网络通讯组网方式的研究。ZigBee2007/PRO中规定的ZigBee网络中节点采取无线自组网的方式组建网络。自组网容易将多个子节点经同一父节点入网,导致部分路由节点负担过重耗电较快,进而引起过早死亡。本文主要是研究通过一种可控的组网方式,使得用户可以通过上位机自动或手动的选择父节点让节点入网,这样可以避免对个别关键节点的过量消耗,延长网络寿命。

1 无线自组网方法分析

无线自组网(Ad Hoc)又称为多跳无线网,它是一种无中心节点、多跳的自组织技术。在ZigBee2007/PRO中倡导的组网方式中,一个新的节点在网络中可以随机放置,接通电源后先完成节点初始化,然后首先向协调点发送指令,协调点接收到请求分配级别指令后会记录节点信息并分配对应级别,并发送分配级别指令。节点在设定的时间内如果收到了分配指令,就会协调点发送包含白组织信息的数据包,确定自己在网络中的级别和父节点信息,接入网络。如果在设定的时间内没有收到分配级别的指令,该节点就会从待机状态唤醒,再次发送分配级别请求指令,循环执行,直到接入成功。当达到设置的上限次数但仍未获得指令信息时,则节点接入失败并报告错误。节点自组织流程图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-ASSOICATE.in dication,将接收到的父节点信息发送到上层。网络层收到原语后将记录父节点信息并比对与近邻表中记录的可用父节点信息是否一致,若一致,则向MAC层发送加入请求原语MLME-JOIN.request;若不一致则发送错误报告。MAC层在与父节点关联成功后会向网络层发送加入确认原语MLME-JOIN.confirm指示加入成功,网络层将向应用层发送加入确认原语NLME-JOIN.confirm,告知节点入网成功。新节点加入网络中子节点的信息流程图如2所示。

基于ZigBee无线网络的可控组网方法研究

作为父节点的协调点或路由节点收到子节点发出的节点扫描信标帧后,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所示。

基于ZigBee无线网络的可控组网方法研究


相关内容