当前位置: 首页 > 专利查询>湖北大学专利>正文

一种基于ZigBee的无中心节点自组网方法技术

技术编号:18021943 阅读:61 留言:0更新日期:2018-05-23 06:50
本发明专利技术公开了一种基于ZigBee的无中心节点自组网方法,通过在设备上电后对通信范围内其他设备进行检测来灵活决定自身的网络启动类型,设备能根据自己上电的时序判断是组建还是加入网络;为了避免出现多个网络并存的情况提出并实现一种网络融合机制使得设备只能组建唯一网络。本发明专利技术使得网络内所有设备地位相等,不存在特殊设备。任何设备故障、不上电均不会影响其他设备的工作已及网络的正常组建和运行,提高了自组织网络的灵活性以应用于恶劣环境下集群设备的监控。本发明专利技术是基于Z‑Stack协议栈设计并实现的,针对Z‑Stack中不同设备需下载不同代码以及设备中必须有协调器特殊设备等问题而设计并实现一种无需特殊设备,所有设备代码均一样的自组网方法。

【技术实现步骤摘要】
一种基于ZigBee的无中心节点自组网方法
本专利技术属于无线自组网
,涉及一种无线自组网方法,具体涉及一种基于ZigBee的无中心节点自组网方法。
技术介绍
Zigbee是一种无线自组网技术标准,由Zigbee联盟制定。主要用于距离短、功耗低且传输速率不高的各种电子设备之间进行数据传输以及典型的有周期性数据、间歇性数据和低反应时间数据传输的应用。ZigBee是一个由可多到65535个无线数传模块组成的一个无线数传网络平台,在整个网络范围内,每一个ZigBee网络数传模块之间可以相互通信,每个网络节点间的距离可以从标准的75m无限扩展。ZigBee是一种无线连接,可工作在2.4GHz(全球流行)、868MHz(欧洲流行)和915MHz(美国流行)3个频段上,分别具有最高250kbit/s、20kbit/s和40kbit/s的传输速率,它的传输距离在10-75m的范围内,但可以继续增加。作为一种无线通信技术,ZigBee具有如下特点:(1)低功耗:由于ZigBee的传输速率低,发射功率仅为1mW,而且采用了休眠模式,功耗低,因此ZigBee设备非常省电。据估算,ZigBee设备仅靠两节5号电池就可以维持长达6个月到2年左右的使用时间,这是其它无线设备望尘莫及的。(2)成本低:ZigBee模块的初始成本在6美元左右,估计很快就能降到1.5—2.5美元,并且ZigBee协议是免专利费的。低成本对于ZigBee也是一个关键的因素。(3)时延短:通信时延和从休眠状态激活的时延都非常短,典型的搜索设备时延30ms,休眠激活的时延是15ms,活动设备信道接入的时延为15ms。因此ZigBee技术适用于对时延要求苛刻的无线控制(如工业控制场合等)应用。(4)网络容量大:一个星型结构的Zigbee网络最多可以容纳254个从设备和一个主设备,一个区域内可以同时存在最多100个ZigBee网络,而且网络组成灵活。(5)可靠:采取了碰撞避免策略,同时为需要固定带宽的通信业务预留了专用时隙,避开了发送数据的竞争和冲突。MAC层采用了完全确认的数据传输模式,每个发送的数据包都必须等待接收方的确认信息。如果传输过程中出现问题可以进行重发。(6)安全:ZigBee提供了基于循环冗余校验(CRC)的数据包完整性检查功能,支持鉴权和认证,采用了AES-128的加密方法,各个应用可以灵活确定其安全属性。但是,现有协议栈都需要预先设置设备功能,并且所有设备不可能都是同一个功能,这样可能导致网络有固定中心节点使得网络不灵活的缺陷;请见图1,现有技术中整个z-stack协议栈的主要工作流程,大致分为系统启动、驱动初始化、OSAL初始化和启动、进入任务轮循几个阶段,下面将逐一详细分析:1、系统上电后,通过执行ZMain文件夹中ZMain.c的ZSEGintmain()函数实现硬件的初始化,其中包括关总中断osal_int_disable(INTS_ALL)、初始化板上硬件设置HAL_BOARD_INIT()、初始化I/O口InitBoard(OB_COLD)、初始化HAL层驱动HalDriverInit()、初始化非易失性存储器sal_nv_init(NULL)、初始化MAC层ZMacInit()、分配64位地址zmain_ext_addr()、初始化操作系统osal_init_system()等。2、当顺利完成上述初始化时,执行osal_start_system()函数开始运行OSAL系统。该任务调度函数按照优先级检测各个任务是否就绪。如果存在就绪的任务则调用tasksArr[]中相对应的任务处理函数去处理该事件,直到执行完所有就绪的任务。如果任务列表中没有就绪的任务,则可以使处理器进入睡眠状态实现低功耗。OSAL是协议栈的核心,Z-stack的任何一个子系统都作为OSAL的一个任务,因此在开发应用层的时候,必须通过创建OSAL任务来运行应用程序。通过osalInitTasks()函数创建OSAL任务,其中TaskID为每个任务的唯一标识号。请见图2,任何OSAL任务必须分为两步:一是进行任务初始化;二是处理任务事件。任务初始化主要步骤如下:(1)初始化应用服务变量;constpTaskEventHandlerFntasksArr[]数组定义系统提供的应用服务和用户服务变量,如MAC层服务macEventLoop、用户服务SampleApp_ProcessEvent等;(2)分配任务ID和分配堆栈内存;voidosalInitTasks(void)主要功能是通过调用osal_mem_alloc()函数给各个任务分配内存空间,和给各个已定义任务指定唯一的标识号。(3)在AF层注册应用对象;通过填入endPointDesc_t数据格式的EndPoint变量,调用afRegister()在AF层注册EndPoint应用对象。通过在AF层注册应用对象的信息,告知系统afAddrType_t地址类型数据包的路由端点,例如用于发送周期信息的SampleApp_Periodic_DstAddr和发送LED闪烁指令的SampleApp_Flash_DstAddr。(4)注册相应的OSAL或则HAL系统服务;在协议栈中,Z-stack提供键盘响应和串口活动响应两种系统服务,但是任何Z-Stask任务均不自行注册系统服务,两者均需要由用户应用程序注册。值得注意的是,有且仅有一个OSALTask可以注册服务。例如注册键盘活动响应可调用RegisterForKeys()函数。(5)处理任务事件;处理任务事件通过创建“ApplicationName”_ProcessEvent()函数处理。一个OSAL任务除了强制事件(MandatoryEvents)之外还可以定义15个事件。SYS_EVENT_MSG(0x8000)是强制事件。该事件主要用来发送全局的系统信息,包括以下信息:AF_DATA_CONFIRM_CMD:该信息用来指示通过唤醒AFDataRequest()函数发送的数据请求信息的情况。ZSuccess确认数据请求成功的发送。如果数据请求是通过AF_ACK_REQUEST置位实现的,那么ZSussess可以确认数据正确的到达目的地。否则,ZSucess仅仅能确认数据成功的传输到了下一个路由。AF_INCOMING_MSG_CMD:用来指示接收到的AF信息。KEY_CHANGE:用来确认按键动作。ZDO_NEW_DSTADDR:用来指示自动匹配请求。ZDO_STATE_CHANGE:用来指示网络状态的变化。Zigbee设备有两种网络地址:1个是64位的IEEE地址,通常也叫作MAC地址或者扩展地址(Extendedaddress),另一个是16位的网络地址,也叫做逻辑地址(Logicaladdress)或者短地址。64位长地址是全球唯一的地址,并且终身分配给设备。这个地址可由制造商设定或者在安装的时候设置,是由IEEE来提供。当设备加入Zigbee网络被分配一个短地址,在其所在的网络中是唯一的。这个地址主要用来在网络中辨识设备,传递信息等。协调器(Coordinator)首先在某个频段发起一个网络,网络频段的定义放在DEFAULT_CHANLI本文档来自技高网...
一种基于ZigBee的无中心节点自组网方法

【技术保护点】
一种基于ZigBee的无中心节点自组网方法,其特征在于,包括以下步骤:步骤1:设备按照Z‑Stack协议栈启动硬件初始化、驱动初始化、网络层初始化;在应用层初始化中设置固定网络标识参数A,以固定网络标识初始化网络参数;设置倒计时定时器T,设置本地标志F为true,并开始广播检测信息B来检测通信范围内节点;步骤2:设备不断同时执行下述两项判断;(1)倒计时定时器T是否到达;(2)设备是否接收到其它设备的广播检测信息B;若倒计时定时器T到达之前,设备接收到其它设备的广播检测信息B,则将自身本地标志位F设置为false,然后继续判断倒计时定时器T是否到达;若倒计时定时器T到达之前,设备没有接收到其它设备的广播检测信息B,则继续判断倒计时定时器T是否到达;若计时定时器T没有到达,则继续判断倒计时定时器T是否到达;若倒计时定时器T到达,则执行下述步骤3;步骤3:设备检测本地标志位F是否为true;若是,则设备以初始化网络参数和预设参数启动并组建网络,然后执行下述步骤4;若否,则设备更改自身网络参数与组建者参数一致,以加入者身份加入网络,开始正常工作;本流程结束;步骤4:设置心跳P来广播融合信息R;步骤5:设备开始检测是否接收到来自其它设备广播的融合信息R和融合信息C;若是,则执行下述步骤6;若否,则继续执行步骤5;步骤6:判断本地标志CT是否为true;若是,则执行下述步骤7;若否,则执行下述步骤8;步骤7:设备根据用户设定融合规则或者默认竞争机制开始网络融合,本流程结束;步骤8:设备开始对自己网络内设备进行信息采集,并广播开始融合消息C;步骤9:设置本地标志位CT为true,并回转执行步骤4。...

【技术特征摘要】
1.一种基于ZigBee的无中心节点自组网方法,其特征在于,包括以下步骤:步骤1:设备按照Z-Stack协议栈启动硬件初始化、驱动初始化、网络层初始化;在应用层初始化中设置固定网络标识参数A,以固定网络标识初始化网络参数;设置倒计时定时器T,设置本地标志F为true,并开始广播检测信息B来检测通信范围内节点;步骤2:设备不断同时执行下述两项判断;(1)倒计时定时器T是否到达;(2)设备是否接收到其它设备的广播检测信息B;若倒计时定时器T到达之前,设备接收到其它设备的广播检测信息B,则将自身本地标志位F设置为false,然后继续判断倒计时定时器T是否到达;若倒计时定时器T到达之前,设备没有接收到其它设备的广播检测信息B,则继续判断倒计时定时器T是否到达;若计时定时器T没有到达,则继续判断倒计时定时器T是否到达;若倒计时定时器T到达,则执行下述步骤3;步骤3:设备检测本地标志位F是否为true;若是,则设备以初始化网络参数和预设参数启动并组建网络,然后执行下述步骤4;若否,则设备更改自身网络参数与组建者参数一致,以加入者身份加入网络,开始正常工作;本流程结束;步骤4:设置心跳P来广播融合信息R;步骤5:设备开始检测是否接收到来自其它设备广播的融合信息R和融合信息C;若是,则执行下述步骤6;若否,则继续执行步骤5;步骤6:判断本地标志CT是否为true;若是,则执行下述步骤7;若否,则执行下述步骤8;步骤7:设备根据用户设定融合规则或者默认竞争机制开始网络融合,本流程结束;步骤8:设备开始对自己网络内设备进行信息采集,并广播开始融合消息C;步骤9:设置本地标志位CT为tr...

【专利技术属性】
技术研发人员:陈侃松阮玉龙胡博杨洋胡婧昕万吉祥
申请(专利权)人:湖北大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1