子zigbee设备离线开zigbee网络怎么才能知道

比特客户端
您的位置:
详解大数据
详解大数据
详解大数据
详解大数据
基于ZigBee无线网络的可控组网方法研究
关键字:ZigBee
  ZigBee网络申节点多采用自组网的方式入网,这种方式容易引起网络中部分节点的过度消耗。针对此种情况提出可控组网方式,通过对节点入网父节点的选择控制,可以有效的监控管理整个网络的拓扑结构和节点分布,并延长节点和网络的寿命。通过在基于CC2530的开发系统申对可控组网方式编译和实现,验证了其可行性。
  随着社会的发展,无线网络在我们的各项活动中扮演着越来越重要的角色。技术有很多,其中ZigBee技术以其低速率、短距离、低功耗的特点,较好地适用于、智能建筑、医疗应用和工业等某些特定的需求。
  文中主要是对ZigBee网络通讯组网方式的研究。ZigBee2007/PRO中规定的ZigBee网络中节点采取无线自组网的方式组建网络。自组网容易将多个子节点经同一父节点入网,导致部分路由节点负担过重耗电较快,进而引起过早死亡。本文主要是研究通过一种可控的组网方式,使得用户可以通过上位机自动或手动的选择父节点让节点入网,这样可以避免对个别关键节点的过量消耗,延长网络寿命。
  1 无线自组网方法分析
  无线自组网(Ad Hoc)又称为无线网,它是一种无中心节点、多跳的自组织技术。在ZigBee2007/PRO中倡导的组网方式中,一个新的节点在网络中可以随机放置,接通电源后先完成节点初始化,然后首先向协调点发送指令,协调点接收到请求分配级别指令后会记录节点信息并分配对应级别,并发送分配级别指令。节点在设定的时间内如果收到了分配指令,就会协调点发送包含白组织信息的数据包,确定自己在网络中的级别和父节点信息,接入网络。如果在设定的时间内没有收到分配级别的指令,该节点就会从待机状态唤醒,再次发送分配级别请求指令,循环执行,直到接入成功。当达到设置的上限次数但仍未获得指令信息时,则节点接入失败并报告错误。节点自组织流程图1所示。
  2 改进的组网方式
  文中要实现的组网方式,是要让子节点加入网络时实现有效的全程可控。当新节点放入网络后,会先广播发送信标帧,有效范围内的可用父节点收到信标后会回复确认消息,其中包含父节点本身的信息,新节点收到反馈的消息后会父节点信息,整理后把包含父节点信息和自身信息的消息广播发协调器。协调器接收到消息后会通过串口发送到上位机控制器,经判断后自动或人为的选择适合接入的父节点并将此消息发送给对应父节点,父节点接收到此消息后向新节点发送消息建立连接,节点入网完成。
  一个新节点放入网络中,打开电源后会首先应用层会向网络层发送发络请求原语NLME-NETWORK-DISCOVERY.request对节点进行初始化。网络层收到网络发现请求原语后会向层发送节点扫描请求原语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.若不一致则发送错误报告。MAC层在与父节点关联成功后会向网络层发送加入确认原语MLME-JOIN.confirm指示加入成功,网络层将向应用层发送加入确认原语NLME-JOIN.confirm,告知节点入网成功。新节点加入网络中子节点的信息流程图如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 组网过程的实现
  在进行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 结论
  通过对组建网络和网络节点入网过程的运行实现,验证了所做的可控组网改进方法达到了预期设定的目的,实现了上位机通过选取可用的父节点对入网过程的控制。这样的情况下当在一些特殊情况下或者已知路由节点状态的情况下可以很好地避开功能较弱或者剩余电量较低的节点,可有效地提高关键节点的寿命,进而提高了网络的寿命。
[ 责任编辑:李桢君 ]
为更好推动开放架构发展,打造开…
甲骨文的云战略已经完成第一阶段…
软件信息化周刊
比特软件信息化周刊提供以数据库、操作系统和管理软件为重点的全面软件信息化产业热点、应用方案推荐、实用技巧分享等。以最新的软件资讯,最新的软件技巧,最新的软件与服务业内动态来为IT用户找到软捷径。
商务办公周刊
比特商务周刊是一个及行业资讯、深度分析、企业导购等为一体的综合性周刊。其中,与中国计量科学研究院合力打造的比特实验室可以为商业用户提供最权威的采购指南。是企业用户不可缺少的智选周刊!
比特网络周刊向企业网管员以及网络技术和产品使用者提供关于网络产业动态、技术热点、组网、建网、网络管理、网络运维等最新技术和实用技巧,帮助网管答疑解惑,成为网管好帮手。
服务器周刊
比特服务器周刊作为比特网的重点频道之一,主要关注x86服务器,RISC架构服务器以及高性能计算机行业的产品及发展动态。通过最独到的编辑观点和业界动态分析,让您第一时间了解服务器行业的趋势。
比特存储周刊长期以来,为读者提供企业存储领域高质量的原创内容,及时、全面的资讯、技术、方案以及案例文章,力求成为业界领先的存储媒体。比特存储周刊始终致力于用户的企业信息化建设、存储业务、数据保护与容灾构建以及数据管理部署等方面服务。
比特安全周刊通过专业的信息安全内容建设,为企业级用户打造最具商业价值的信息沟通平台,并为安全厂商提供多层面、多维度的媒体宣传手段。与其他同类网站信息安全内容相比,比特安全周刊运作模式更加独立,对信息安全界的动态新闻更新更快。
新闻中心热点推荐
新闻中心以独特视角精选一周内最具影响力的行业重大事件或圈内精彩故事,为企业级用户打造重点突出,可读性强,商业价值高的信息共享平台;同时为互联网、IT业界及通信厂商提供一条精准快捷,渗透力强,覆盖面广的媒体传播途径。
云计算周刊
比特云计算周刊关注云计算产业热点技术应用与趋势发展,全方位报道云计算领域最新动态。为用户与企业架设起沟通交流平台。包括IaaS、PaaS、SaaS各种不同的服务类型以及相关的安全与管理内容介绍。
CIO俱乐部周刊
比特CIO俱乐部周刊以大量高端CIO沙龙或专题研讨会以及对明星CIO的深入采访为依托,汇聚中国500强CIO的集体智慧。旨为中国杰出的CIO提供一个良好的互融互通 、促进交流的平台,并持续提供丰富的资讯和服务,探讨信息化建设,推动中国信息化发展引领CIO未来职业发展。
IT专家新闻邮件长期以来,以定向、分众、整合的商业模式,为企业IT专业人士以及IT系统采购决策者提供高质量的原创内容,包括IT新闻、评论、专家答疑、技巧和白皮书。此外,IT专家网还为读者提供包括咨询、社区、论坛、线下会议、读者沙龙等多种服务。
X周刊是一份IT人的技术娱乐周刊,给用户实时传递I最新T资讯、IT段子、技术技巧、畅销书籍,同时用户还能参与我们推荐的互动游戏,给广大的IT技术人士忙碌工作之余带来轻松休闲一刻。
微信扫一扫
关注Chinabyte后使用快捷导航没有帐号?
查看: 3090|回复: 5
星型网络中终端设备离开网络后,协调器可以知道吗?
如题,星型网络中终端设备离开网络后,协调器可以知道吗?如果知道的话,会触发协调器中的什么事件,调用什么函数呢?忘各位大神指点。
应该不知道吧,你需要自己设定规则定时发送消息通知协调器吧。或者协调器定时查询节点和路由器的状态。
& & 你好:谢谢您回帖。那么请问在Z-stack中,是否提供了协调器主动查询终端或者路由状态的API函数呢?还是需要自己去写API函数,定时的查询给终端或者路由器状态?如果Z-stack中提供了API,麻烦您告知一哪个函数呢,谢谢。
我也正在尝试中,我的计划是在自己写的程序里面加入状态查询,因为我不止要知道是否在线,还要知道其他的状态。
多长时间查询一次还没想好,太频繁了浪费带宽,太长了达不到要求。
& & 那你是想在协调器中设置一个定时事件,向终端查询信息喽,如果得到应答,证明设备在网络中,并且终端设备的应答中包括终端设备的devState吧?另外你说的查询设备状态是指 DEV_HOLD,& &DEV_INIT等这些状态吗?
不是,我准备在应用层自己做自己的轮询查询,不是调用系统的调用。比如我每隔10分钟给每个节点单独发一个查询命令下去,节点收到后汇报给我他的状态。当然,我的应用不需要低功耗,所以可以这么做,如果你需要低功耗,这么做显然不合适。怎么最好我也在试探中。
• • • • • • 
Powered by
X3.1&&Template by:}

我要回帖

更多关于 zigbee模块 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信