我是靠谱客的博主 活力唇膏,最近开发中收集的这篇文章主要介绍Zigbee 网络层分配机制——计算个节点的网络地址,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

网络层地址分配机制介绍

节点的网络深度是指从节点到根节点协调器的最短跳数,标识节点在网络拓扑结构图中的层次位置。当协调器建立一个新的网络后,首先将自己的16bit网络地址初始化为0,网络深度初始化为0,在Zigbee网络中,16为短地址的分配机制如下。
规定每个父节点最多可以连接C各子节点,这些子节点中最多可以由R个路由器节点,网络的最大深度为L,Cskip(d)是网络深度为d的父节点为其子节点分配的地址之间的偏移量,其值按照下式计算:

说明:
(1)当一个路由器节点的Cskip(d)为0时,它就不具备为子节点分配地址的能力,也即表明不能够在使用别的节点通过他加入网络。
(2)当Cskip(d)大于0时表明父节点可以接受其他节点为其子节点,并为子节点分配网络地址。父节点会为第一个与它关联的路由器分配比他大1的地址,之后与之关联的路由器节点的地址之间都相隔偏移量Cskip(d)。

例题解析

无线传感器网络的网络拓扑图如下图所示,节点间的通讯协议采用ZigBee协议进行数据传输,其中节点A为协调器,请完成以下问题:

(1)请说明该网络结构的网络拓扑模型及所有节点的设备类型。

(2)请分析A,B,C,E节点使用ZigBee协议在一个通讯周期内工作及休眠的时段。

(3)利用ZigBee协议地址分配算法计算该网络中每个节点的地址,写出具体的计算过程并在图中标注,其中A的地址为0。

分析:计算如图所示每个节点的网络地址。其中,A号为Zigbee协调器,与协调器相连的其他节点为路由器和终端:假设在当前的网络结构中,每个父节点最多可以连接3个子节点,最多可以有2个路由器节点,当前网络最大深度为3。

首先,计算偏移量。根据偏移量Cskip的计算公式,计算出不同网络深度的父节点为其子节点分配地址之间的偏移量:

由题可知:
C = 3
L = 3
R = 2

其次网络深度d范围为:0~3

然后我们要选用的计算Cskip(d)的公式为:

当网络深度为d=0时:
Cskip(0) = (1+3-2-(3*4^(3-0-1)))/(1-2) = 10

当网络深度为d=1时:
Cskip(0) = (1+3-2-(3*4^(3-1-1)))/(1-2) = 4

当网络深度为d=2时:
Cskip(0) = (1+3-2-(3*4^(3-2-1)))/(1-2) = 1

注:对于路由节点:父节点会为第一个与它关联的路由器分配比他大1的地址,之后与之关联的路由器节点的地址之间都相隔偏移量Cskip(d)。

我们需要确定谁是终端节点和接入同一个路由器的路由节点谁首先建立连接。                                题目中的图没有给出明确的说明:我们姑且认为,所有节点均为路由节点。根节点下的B、C、D节点中B首先加入,B父节点下的子节点中E节点首先加入网络,C父节点下的子节点中I节点首先加入网络。下面我们开始计算。

深度d为0时:
首先是根节点的地址为:addr(0) = 0;                                                                                           深度d为1时:
B节点的地址:B是首先与A建立连接的,所以B的地址为A地址加1。addr(B) = addr(A)+1=0
C节点地址:addr(B) = addr(2) + Cskip(0) = 1+10= 11
D节点地址:addr(D) = addr(C) + Cskip(0) = 11+10 = 21
深度d为2时:                                                                                                                                     E节点的地址:E是首先与B建立连接的,所以E的地址为B地址加1。addr(E)= addr(B)+1=2
H节点地址:addr(H) = addr(E) + Cskip(1) = 2+4= 6
I节点地址:addr(I) = addr(C) + 1= 11+1 = 12                                                                                    J节点地址:addr(J)=addr(C)+Cskip(1) =12+4=16                                                                              K节点地址:addr(K)=addr(J)+Cskip(1) =16+4=20                                                                            深度d为3时:                                                                                                                                      addr(F)=addr(E)+1=2+1=3                                                                                                                addr(G)=addr(F)+1=3+Cskip(2) =3 

解:

(1)网络结构的网络拓扑模型:簇树型;                                                                                          节点类型:A为协调器,B、C、E:中继节点,D、F、G、H、I、J、K:叶子结点。                      (2)

(3)Cm=3,Rm=2,Lm=3                                                                                                                     Cskip(0)=10,Cskip(1)=4,Cskip(2)=1                                                                                             每个节点的地址如下图所示:                                                                                                           

原文链接:https://blog.csdn.net/weixin_46897073/article/details/111500333


最后

以上就是活力唇膏为你收集整理的Zigbee 网络层分配机制——计算个节点的网络地址的全部内容,希望文章能够帮你解决Zigbee 网络层分配机制——计算个节点的网络地址所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部