首页 > 编程知识 正文

zigbee技术的特点(zigbee组网)

时间:2023-05-06 08:24:53 阅读:123221 作者:2768

网络设计:构建完整的zigbee网状网络包括初始化网络和节点加入网络两个步骤。 其中,节点加入网络有两个步骤:通过与协调员的连接加入和通过现有父节点加入。

网络初始化:

Zigbee网络的构建由网络协调员启动,其中一个Zigbee节点要构建网络必须满足以下两个要求:

1 .节点是FFD节点,具备zigbee协调器的能力;

2 .节点尚未连接到其他网络。 如果节点已经连接到其他网络,则该节点仅充当该网络的子节点,因为zigbee网络有一个网络协调员,而只有一个网络协调员。

网络初始化的流程如下。

1 .确定网络协调器,首先确定节点是否是FFD节点,然后确定FFD节点是否存在于其他网络中,或者网络中是否已经存在协调器。 主动扫描发送信标请求命令(Beacon request command ),设置扫描期间(T_scan_duration ),如果在扫描期间内未检测到信标,则FFD将其pos

2 .进行通道扫描过程。 有两个过程:能量扫描和主动扫描。 首先,对指定信道或默认信道进行能量检测,以避免可能的干扰。 测量得到的能量值按信道顺序递增,抛弃那些能量值超过允许能量水平的信道,选择允许能量水平的信道,并标记这些信道为可用信道。 接着进行主动扫描,搜索节点通信半径内的网络信息。 这些信息以信标帧的形式在网络中广播,其中节点通过活动信道扫描获得这些信标帧,基于这些信息,找到最佳的相对安静的信道,以及记录的结果是最小的zigbebed 在主动扫描期间,mac层丢弃除了phy层数据服务接收到的信标之外的所有帧。

3 .设置网络ID。 找到合适的通道后,协调员将选择网络的网络标识符(panID(0x3fff ) )。 此id在使用的通道中必须是唯一的,并且与其他zigbee网络冲突,或者广播地址oxFFFF (此地址是保留地址,不能使用。 可以通过监视其他网络的ID并选择不冲突的ID来获取PAN ID。 或者,可以人工指定扫描的通道,以确定以后不会与其他网络冲突的PAN ID。 zigbee网络有两种地址模式:扩展地址(64位)和短地址(16位)。 其中,扩展地址由IEEE组织分配,用于唯一的设备id。 短地址用于本地网络中的设备id。 在一个网络中,每个设备的短地址必须是唯一的,并且在节点加入网络时由父节点分配,并使用短地址进行通信。 对协调员来说,短地址通常设置为0x0000。

完成上述步骤后,zigbee网状网络成功初始化,然后等待其他节点加入。 加入时,使范围内信号最强的父节点(包括协调器)加入网络,成功时获取网络的短地址,通过该地址进行数据的发送接收,网络拓扑和地址分别传递给各个flash

节点通过协调员加入网络:

节点协调员决定后,节点必须首先建立与协调员的连接并加入网络。 考虑到网络容量和FFD/RFD特点,本文仅讨论FFD节点的情况,而FFD节点与协调器连接加入网络的流程图;

为了建立连接,FFD节点需要向协调器发出请求,协调器在接收到来自节点的连接请求后,根据情况决定是否允许连接,并响应于请求连接的节点,节点和协调器建立连接,然后才进行数据连接具体流程可分为以下几个步骤。

1 .找网络协调员。 首先,主动地扫描搜索周围网络的协调器,并且如果在扫描时段中检测到信标,则获取关于协调器的信息,并且向协调器发出连接请求。 选择合适的网络后,高层要求mac层适当设置物理层和mac层的phyCurrentChannel、macPANID等PIB属性。 如果未检测到,节点将每隔一段时间重新开始扫描。

2 .发送相关请求命令(关联请求命令)。 节点向协调器发送关联请求命令,协调器在收到该命令后立即返回ack(ack ),同时向其上层发送指示已接收到来自节点的连接请求的连接指示元。 但是,这并不意味着已建立连接,而是协调员收到了来自节点的连接请求。 当协调器的mac层的上层接收到连接指示元时,上层基于其资源状况(存储空间和能量)决定是否同意该节点的加入请求,并向节点的mac层发送响应。

3 .等待协调员的处理。 当节点收到协调员加入请求命令的ACK时,节点mac将等待一段时间,直到它接受协调员的连接响应。 在预定的时间内,收到连接响应时,会将该响应通知高层。 设置协调器向节点的mac层发送响应时等待协调器加入请求命令的时间(T_ResponseWaitTime )。 如果协调员资源充足,协调员将为节点分配16位短地址,并生成包含新地址和连接成功状态的连接响应命令。 该节点可以成功地与协调员建立连接并启动通信。 如果协调员资源不足,参与节点将重新发送请求消息,直接加入成功。

4 .发送数据请求指令。 如果协调员在响应时间内同意节点加入,则会生成相关的响应命令“关联响应命令”,并保存该命令。 响应时间过后,节点向协调器发送数据请求命令“数据请求命令”,协调器收到后立即作出响应

ACK,然后将存储的关联响应命令发给节点。如果在响应时间到后,协调器还没有决定是否同意节点加入,那么节点将试图从协调器的信标帧中提取关联响应命令,成功的话就可以入网成功,否则重新发送请求信息直到入网成功。
5.回复。节点受到关联响应命令后,立即向协调器回复一个确认帧(ack),以确认接收到连接响应命令,此时节点将保存协调器的短地址和扩展地址,并且节点的MLME向上层发送连接确认原语,通告关联加入成功的信息。
节点通过已有节点加入网络
当靠近协调器的FFD节点和协调器关联成功后,处于这个网络范围内的其他节点就以这些FFD节点作为父节点加入网络了,具体加入网络有两种方式,一种是通过关联(associate)方式,就是待加入的节点发起加入网络;另一种是直接(direct)方式,就是待加入的节点具体加入到那个节点下,作为该节点的子节点。其中关联方式是zigbee网络中新节点加入网络的主要途径,
 
对于一个节点来说只有没有加入过网络的才能进行加入网络。在这些节点中,有些是曾经加入过网络中,但是却与它的父节点失去联系(这样的被称为孤儿节点),而有些则是新节点。当是孤儿节点时,在它的相邻表中存有原父节点的信息,于是它可以直接给原父节点发送加入网络的请求信息。如果父节点有能力同意它加入,于是直接告诉它的以前被分配的网络地址,它便入网成功;如果此时它原来的父节点的网络中,子节点数已达到最大值,也就是说网络地址已经分配满,父节点便无法批准它加入,它只能以新节点身份重新寻找并加入网络。
而对于新节点来说,他首先会在预先设定的一个或多个信道上通过主动或被动扫描周围它可以找到的网络,寻找有能批准自己加入网络的父节点,并把可以找到的父节点的资料存入自己的相邻表。存入相邻表的父节点的资料包括zigbee协议的版本、堆栈的规范、PAN ID和可以加入的信息。在相邻表中所有的父节点中选择一个深度最小的,并对其发出请求信息,如果出现相同最小深度的两个以上的父节点,那么随机选取一个发送请求。如果相邻表中没有合适的父节点的信息,那么表示入网失败,终止过程。如果发出的请求被批准,那么父节点同时会分配一个16位的网络地址,此时入网成功,子节点可以开始通信。如果请求失败,那么重新查找相邻表,继续发送请求信息,直到加入网络或者相邻表中没有合适的父节点。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。