一、组网的介绍
Zigbee是一种基于IEEE 802.15.4标准的低功耗、短距离无线通信技术。它采用星型、树型和网状等多种组网方式。
星型组网方式:所有设备都连接到一个中心节点,所有的数据都由中心节点转发,这种组网方式适用于只需要一个中心节点的系统,例如家庭自动化系统或工业控制系统。
树型组网方式:每个设备都可以既是父节点又是子节点,形成一棵树形结构,这种组网方式适用于需要多个节点之间互相通讯的系统,例如传感器网络或智能家居系统。
网状组网方式:每个设备都可以作为任何其他设备的直接或间接邻居,形成一张网格状结构,这种组网方式可以实现设备间的全双工通信和高可靠性,适用于大规模的物联网系统。
二、基于Z-STACK组网
前言
Zigbee组网至少需要三个Zigbee设备!其中一个为协调器!!!
星状
Zigbee星状组网是一种基于中心节点的通信模式,在这种模式下,所有的设备都连接到一个中心节点,所有的通信都需要经过这个中心节点进行转发。星形组网的优点是结构简单、易于管理,而且可以实现快速的数据传输,因为所有的数据都只需要经过一次转发就可以到达目的地。
在Zigbee星状组网中,中心节点通常是具有较高处理能力和存储容量的设备,它负责管理和控制整个网络。所有的设备都连接到中心节点上,并且只能与中心节点直接通信,而不能相互之间直接通信。
Zigbee星状组网的主要优点包括:
* 结构简单:所有的设备都连接到一个中心节点,所有的通信都需要经过这个中心节点进行转发,因此网络的结构非常简单。
* 管理和控制方便:中心节点负责管理和控制整个网络,因此可以通过中心节点轻松地管理和控制所有的设备。
* 快速的数据传输:所有的数据都只需要经过一次转发就可以到达目的地,因此数据传输的速度非常快。
但是,Zigbee星状组网也有一些缺点,比如网络的扩展性较差,如果需要增加新的设备,就必须增加中心节点的数量;此外,由于所有数据都必须经过中心节点进行转发,因此在网络拥塞的情况下,数据传输的速度可能会下降。如下为一个星状组网:
由以上的组网示意图可见,Zigbee在组成星形网时,一定需要一个协调器节点!然后其它节点为路由器或者终端节点都可。
通信规则:每一个路由器或终端节点都必须经过中央的协调器才能进行传输。
树状
Zigbee树状组网是一种类似于星状组网的通信模式,但是在这个模式下,每个设备都有一个唯一的父节点,设备之间的关系形成了一个层次结构,就像一棵树一样。在树状组网中,根节点是最高级别的设备,所有的其他设备都是它的子节点,它们都可以与根节点直接通信。
在Zigbee树状组网中,每个设备都可以选择自己的子节点,但是只有根节点才能选择自己的父节点。这就意味着,每个设备都知道自己在树中的位置,以及自己的上级和下级设备。
Zigbee树状组网的主要优点包括:
* 易于扩展:由于每个设备都有一个唯一的父节点,因此在增加新的设备时,只需要添加一个新的设备作为父节点的子节点即可,无需改变整个网络的结构。
* 简化了管理:由于每个设备都知道自己在树中的位置,以及自己的上级和下级设备,因此网络的管理和控制变得相对容易。
* 可以自适应变化:由于每个设备都有一个唯一的父节点,因此在网络发生变化时,例如某个设备出现故障或离线,网络可以通过重新选择父节点来保持稳定。
然而,Zigbee树状组网也有一些缺点,比如当网络规模较大时,树状结构可能难以管理;此外,由于设备之间的关系是固定的,因此在网络发生变化时,如某个设备出现故障或离线,可能会导致网络不稳定。如下为一个树状组网:
由以上的组网示意图可见,Zigbee在组成树状网时,也是一定需要一个协调器节点!然后其它节点为路由器或者终端节点都可。
通信规则:但是需要注意的是:每一个路由节点都只能和他的父节点和子节点之间进行通信。如果需要从节点与节点之间需要发送数据,那信息就会沿着树的路由往上上传递到最近的一个祖先节点后,再往下传递到目标节点。
网状
Zigbee网状组网是一种多对多的通信模式,在这种模式下,每个设备都可以既是发送者又是接收者,从而形成一个复杂的网络拓扑结构。相比于传统的星形组网,网状组网具有更高的可靠性和更强的覆盖能力。
在Zigbee网状组网中,每个设备都可以选择多个邻居设备进行通信,并且可以通过这些邻居设备进一步扩大自己的通信范围。这意味着即使某些设备发生故障或者通信中断,也可以通过其他的邻居设备进行通信,从而保证了网络的稳定性和可靠性。
Zigbee网状组网的主要优点包括:
* 高可靠性:即使某些设备发生故障,也可以通过其他的邻居设备进行通信,从而保证了网络的稳定性和可靠性。
* 强大的覆盖能力:由于每个设备都可以选择多个邻居设备进行通信,并且可以通过这些邻居设备进一步扩大自己的通信范围,因此网络的覆盖能力非常强。
* 节能:由于数据可以经过多个设备进行转发,因此可以大大降低数据传输的能量消耗。
但是,Zigbee网状组网也有一些缺点,比如网络的复杂度较高,管理和维护起来比较困难;此外,由于数据需要经过多个设备进行转发,因此网络的延迟可能会比星形组网更高。如下为一个网状组网:
由以上的组网示意图可见,Zigbee在组成网状网时,也是一定需要一个协调器节点!然后他包括多个路由节点和终端节点。
通信规则:对于网状网络而言,他同树状网络其实通信规则差不多,但是相较于树状网络,他更具灵活性!在可能的情况下,路由节点之间是可以进行直接通信的。这也意味着其中一个通信路由路劲出了问题,信息仍然可以从其它的路劲传输过来。大家可以在组网成功后试着将一个路由器断电,看看信息是否能够传递。
根据原理修改Z-STACK源码
1、修改panid
修改panid的原因是防止连错其它的Z-STACK网络,也是防止同环境受到其它网络的干扰,确保网络通信的安全可靠。如下图所示:(作者将panid改为了0x7777,但是也需要注意panid的范围,从0x0000到0xFFFF)
2、修改拓扑
这里往下主要演示组星状网的操作。
注意:在组网方面:星状、树状、网状,都是改变相同的地方进行切换组网的!例如:以下也是通过改变以下109、110、111横的注释以达到切换组网方式的切换!
3、增加一些定义
分别在以下位置增加如下的三段代码,同样的这三段代码和上面一样,对应的相应的网络拓扑结构,要使用哪种进行切换即可。
1. #define NWK_MODE NWK_MODE_STAR #define NWK_MODE NWK_MODE_TREE #define NWK_MODE NWK_MODE_MESH
4、一些额外定义
通过以上的三小点设置其实已经将网络拓扑设置成功了!当然Z-STACK中还是包括有OLED显示的,如果需要在OLED上显示相应的信息,可以修改以下信息:(根据自己的实际情况来修改!!!作者的修改仅仅作为参考!)分别根据自己设备对应的引脚修改相应的CS和DC相关。
星状网组网成功后的演示视频
感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o!