云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > Zigbee建网和入网过程实验

Zigbee建网和入网过程实验

  • 62 次阅读
  • 3 次下载
  • 2025/5/29 8:50:27

FFD节点上电激活主动扫描查找范围内的协调器N检测到信标?Y向协调器发送关联加入命令N协调器资源足够YNaResponsetime时间内做出决定直接从协调器信标内提取关联相应命令向协调器发送数据请求命令提取成功?协调器将关联相应命令发送给节点NY加入成功,获得网络短地址

图6-2-3 节点(FFD)与协调器连接加入网络的流程图

为了建立连接,FFD节点需要向协调器提出连接请求,协调器接收到节点的连接请求后根据情况决定是否允许其连接,然后对请求连接的节点做出响应,节点与协调器建立连接以后,才能实现数据的收发。如图6-2-3所示,具体的流程可以分为以下几步:

1) 查找网络协调器。首先会主动扫描查找周围网络的协调器,如果在扫描期限内检测到信

标,那么将获得协调器的有关信息,这时就向协调器发送连接请求,在选择合适的网络后,上层将请求MAC层对物理层和MAC层的phyCurrentChannel、macPANID等PIB(数据库)属性进行相应的设置。如果没有检测到,间隔一段时间后,节点重新发送扫描。 2) 发送关联请求命令(Associate request commmand)。节点将关联请求命令发给协调器,

协调器收到后立即回复一个确认帧(ACK),同时向它的上层发送连接指示原语,表示已经收到节点的连接请求。但这并不意味着已经建立连接,只表示协调器已经收到节点的连接请求。当协调器的MAC层的上层接收到连接指示原语后,将根据自己的资源情况(存储空间和能量)决定是否同意此节点加入请求,然后给节点MAC层发送响应。

3) 等待协调器处理。当节点收到协调器加入请求命令的ACK后,节点的MAC将等待一段时

间,接收协调器的连接响应。在预定的时间内,如果接收到连接响应,它将这个响应向它的上层通告。而协调器给节点的MAC层发送响应时会设置一个等待响应时间(T_ResponseWaitTime)来等待协调器对其加入请求命令的处理,若协调器资源足够,协调器会给节点分配一个16位的短地址,并产生包含新地址和连接成功状态的连接响

应命令,则此节点将成功的和协调器建立连接并可以开始通信。若协调器资源不够,待加入的节点将重新发送请求信息,直到入网成功。

4) 发送数据请求命令。如果协调器在响应时间内同意节点加入,那么将产生关联响应命令

(Associate reponse command)并先存储这个命令。当响应时间过后,节点发送数据请求命令(Data request command)给协调器,协调器收到后立即回复ACK,然后将存储的关联响应命令发给节点。如果在响应时间到后,协议器还没有决定是否同意节点加入,那么节点将试图从协议器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。

5) 回复。节点收到关联响应命令后,立即向协调器回复一个确认帧(ACK),以确认接收到

连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联加入成功的信息。

上面的完成以后,等待加入网络的节点应该已经收到协调器的加入请求回复。如果该请求通过,该节点将成功和协调器建立连接并获得网络地址和其他节点进行通信。在上述连接过程中,请求建立连接的节点的上层生成连接请求原语发送给节点的MAC层。MAC层的MLME接收到这个原语后,先向物理层发送和原语更新phyCurrentchannel和macPANID的值,然后生成一个含有建立连接请求的命令帧发送给指定的协调器。节点在发送命令帧时使用CSMA-CA(载波侦听多址接入—冲突避免)。如图6-2-4所示为节点连接过程原语时序图。

节点上层MLME-SCAN.request选择合适的PANMLME-SCAN.confirmMLME-ASSOCIATE.request执行CSMAPD-DATA.request连接请求Association.requesrtPD-DATA.confirmt确认AcknowledgementPD-DATA.indicationT_AcWaitPD-DATA.confirmtT_Response Wait TimeMLME-ASSOCIATE-indicationPD-DATA.indicationPD-DATA.requestT_AS_SCAN执行主动扫描节点MAC节点PHYBeacon requestBeacon ...协调器PHY...协调器MAC协调器上层...Send ACKMLME-ASSOCIATE-reponse执行CSMAPD-DATA.requestPD-DATA.confirmt...PD-DATA.indicationPD-DATA.indicationMLME-ASSOCIATE.confirmtPD-DATA.requestPD-DATA.confirmt连接响应Association.response数据请求Data requestStore Associate responsePD-DATA.indicationPD-DATA.requestPD-DATA.confirmt执行CSMAPD-DATA.requestPD-DATA.confirmtSend ACK确认Acknowledgement确认AcknowledgementPD-DATA.indicationT_AcWaitSend ACK 图6-2-4 节点与协调器连接原语时序图

5 节点通过已有节点加入网络

当靠近协调器的FFD节点和协调器关联成功后,处于这个网络范围内的其他节点就以这些FFD节点作为父节点加入网络了,具体加入网络的方式有两种:

①通过关联(association)方式,就是待加入节点发起加入网络;也就是子设备用MAC连接程序来加入网络

②直接方式(direct)方式,子设备直接同一个预先所指定的父设备连接来加入网络。

其中关联方式是ZigBee网络中新节点加入网络的主要途径

对于一个节点来说,只有没有加入网络的才能进行加入网络。在这些节点中,有些是曾经加入过网络,但是却与父节点失去联系(这样的节点称为孤儿节点),而有些则是新节点。当是孤儿节点时,在它的相邻表中存有原父节点的信息,于是它可以直接给源父节点发送加入网络的请求信息。如果父节点有能量同意它加入,于是直接告知它的以前被分配的网络地址,它便入网成功;如果此时它原来的父节点的网络中,子节点数已经达到最大值,也就是说网络地址已经分配满,父节点便无法批准它加入,它只能以新节点身份重新寻找并加入网络。

而对于新节点来说,它首先会在预先设定的一个或多个信道上通过主动或被动扫描周围它可找到的网络,寻找有能批准自己加入网络的父节点,并把可以找到的所有父节点的资料存入自己的相邻表。存入相邻表的父节点的资料包括:ZigBee协议的版本、堆栈的规范、PANID和可以加入的信息。在相邻表中所有的父节点中选择一个发送请求。如果发送的请求被批准,那么父节点同时会被分配给它一个16为的网络地址,此时入网成功,子节点可以开始通信。如果请求失败,那么重新查找相邻表,继续发送请求信息,直到加入网络或者相邻表中没有了合适的父节点。 3)实验步骤

第一步:打开协调器,蓝灯先亮,然后黄灯闪烁几下,既而一直保持亮。 第二步:打开路由器,蓝灯先亮,然后黄灯闪烁几下,既而一直保持亮。 第三步:按动一下协调器的上键,这时路由器的绿灯闪烁四下。 第四步:按动一下路由器的上键,这时协调器的绿灯闪烁四下。 4)程序清单

清单6.2.1 管理协调器的孩子节点,并向这些节点发送关联消息

/****************************************************************************** * 函数名 ZDP_NwkAddrReq

* 描述 构建并发送一个网络地址请求帧。利用广播的方式,利用IEEE地址来寻求

网络地址。

* 参数 IEEEAddress:获取的设备IEEE地址;ReqType :两种获取方式。一个是单

一获取(0x0001),一个是扩展获取(0x0002)。StartIndex :开始索引,默认为0;SecurityEnable:安全选项;

* 返回值 afStatus_t

*****************************************************************************/ afStatus_t ZDP_NwkAddrReq( uint8 *IEEEAddress, byte ReqType,

byte StartIndex, byte SecurityEnable ) {

uint8 *pBuf = ZDP_TmpBuf;

byte len = Z_EXTADDR_LEN + 1 + 1; // IEEEAddress + ReqType + StartIndex. zAddrType_t dstAddr;

(void)SecurityEnable; // Intentionally unreferenced parameter

if ( osal_ExtAddrEqual( saveExtAddr, IEEEAddress ) == FALSE ) {

dstAddr.addrMode = AddrBroadcast;

dstAddr.addr.shortAddr = NWK_BROADCAST_SHORTADDR_DEVRXON; } else {

dstAddr.addrMode = Addr16Bit;

dstAddr.addr.shortAddr = ZDAppNwkAddr.addr.shortAddr; }

pBuf = osal_cpyExtAddr( pBuf, IEEEAddress );

*pBuf++ = ReqType; *pBuf++ = StartIndex;

return fillAndSend( &ZDP_TransID, &dstAddr, NWK_addr_req, len ); }

6.2.3 实验结果

我们可以通过协议分析仪分析ZigBee数据包来描述实验的结果。以下是利用协议分析仪分析建立ZigBee网络,节点加入及发送数据的实验过程。

搜索更多关于: Zigbee建网和入网过程实验 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

FFD节点上电激活主动扫描查找范围内的协调器N检测到信标?Y向协调器发送关联加入命令N协调器资源足够YNaResponsetime时间内做出决定直接从协调器信标内提取关联相应命令向协调器发送数据请求命令提取成功?协调器将关联相应命令发送给节点NY加入成功,获得网络短地址 图6-2-3 节点(FFD)与协调器连接加入网络的流程图 为了建立连接,FFD节点需要向协调器提出连接请求,协调器接收到节点的连接请求后根据情况决定是否允许其连接,然后对请求连接的节点做出响应,节点与协调器建立连接以后,才能实现数据的收发。如图6-2-3所示,具体的流程可以分为以下几步: 1) 查找网络协调器。首先会主动扫描查找周围网络的协调器,如果在扫描期限内检测到信标,那么将获得协调器的有关信息,这时就向协调器发送连

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com