ZigBee TI ZStack CC2530 4.3 自组网

简介: (配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一、基本的网络参数配置(参考《Z-Stack Sample Applications.pdf》) 1、Device Types(设备类型) 在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器)、Router(路由器)和EndDevice(终端设备)。

(配套源码软件开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911


一、基本的网络参数配置(参考《Z-Stack Sample Applications.pdf》)

1、Device Types(设备类型)

在ZigBee网络中存在三种逻辑设备类型:Coordinator(协调器)、Router(路由器)和EndDevice(终端设备)。ZigBee网络由一个Coordinator以及多个Router或多个End_Device组成。

2、CHANNEL(信道)

当协调器创建网络时,首先会在已定义的信道上进行扫描,选择能量最低也就是信道质量最好的信道来建立网络;Z-Stack中关于信道的定义,在f8wConfig.cfg文件中,如下:

/* Default channel is Channel 11 - 0x0B */
// Channels are defined in the following:
//         0      : 868 MHz     0x00000001
//         1 - 10 : 915 MHz     0x000007FE
//        11 - 26 : 2.4 GHz     0x07FFF800
//
//-DMAX_CHANNELS_868MHZ     0x00000001
//-DMAX_CHANNELS_915MHZ     0x000007FE
//-DMAX_CHANNELS_24GHZ      0x07FFF800
//-DDEFAULT_CHANLIST=0x04000000  // 26 - 0x1A
//-DDEFAULT_CHANLIST=0x02000000  // 25 - 0x19
//-DDEFAULT_CHANLIST=0x01000000  // 24 - 0x18
//-DDEFAULT_CHANLIST=0x00800000  // 23 - 0x17
//-DDEFAULT_CHANLIST=0x00400000  // 22 - 0x16
//-DDEFAULT_CHANLIST=0x00200000  // 21 - 0x15
//-DDEFAULT_CHANLIST=0x00100000  // 20 - 0x14
//-DDEFAULT_CHANLIST=0x00080000  // 19 - 0x13
//-DDEFAULT_CHANLIST=0x00040000  // 18 - 0x12
//-DDEFAULT_CHANLIST=0x00020000  // 17 - 0x11
//-DDEFAULT_CHANLIST=0x00010000  // 16 - 0x10
//-DDEFAULT_CHANLIST=0x00008000  // 15 - 0x0F
//-DDEFAULT_CHANLIST=0x00004000  // 14 - 0x0E
//-DDEFAULT_CHANLIST=0x00002000  // 13 - 0x0D
//-DDEFAULT_CHANLIST=0x00001000  // 12 - 0x0C
-DDEFAULT_CHANLIST=0x00000800  // 11 - 0x0B

可见Z-Stack中默认选择的是11号信道,这边我们如果要改到15号信道的话,只需将对应行前面的双斜杠“//”去掉,并在原来那行前面加上双斜杠“//”即可:

......
-DDEFAULT_CHANLIST=0x00008000  // 15 - 0x0F
//-DDEFAULT_CHANLIST=0x00004000  // 14 - 0x0E
//-DDEFAULT_CHANLIST=0x00002000  // 13 - 0x0D
//-DDEFAULT_CHANLIST=0x00001000  // 12 - 0x0C
//-DDEFAULT_CHANLIST=0x00000800  // 11 - 0x0B

选定信道之后,协调器将在指定信道上创建网络,路由器终端设备将只能在指定信道上搜索网络!

此此外,仔细看一下,会外CHANLIST是按位定义的,可以选择多个信道,同样的操作即可!

3、PANID(个域网标识符)

协调器创建的网络会有一个PANID;ZStack中关于PANID的定义,在f8wConfig.cfg文件中,如下:

-DZDAPP_CONFIG_PAN_ID=0xFFFF
可见Z-Stack中PANID默认配置为0xFFFF,意味着

协调器创建的网络PANID将是0x0000~0xFFFF之间的随机值,路由器终端设备将随机加入一个PANID的网络!

若该值不是0xFFFF,比如我们将其改为oxABCD。应更改如下:

-DZDAPP_CONFIG_PAN_ID=0xABCD

如果像这样我们给网络指定一个非0xFFFF的PANID值,意味着:

协调器将创建一个PANID值固定为0xABCD的网络,路由器终端设备将只能加入PANID值为0xABCD的网络!

若在网络覆盖范围内存在两个PANID配置值(如0xABCD)相同的协调器,则只有先创建网络成功的协调器的网络为0xABCD,另一个协调器创建的网络PANID会在配置值的基础上加1,变为0xABCE!(此处建议自己亲自实验验证一下:用两个ZigBee设备,都烧写同样的协调器的代码即可)

4、Network Address(网络地址)

加入到ZigBee网络中的每个节点(协调器、路由器、终端)都会获得在该网络里一个唯一的16位的地址,该地址称为网络(短)地址;协调器的网络地址固定为0x0000,其余节点的网络地址由其父节点随机分配。

二、自组网

1、自组网说明

Z-Stack协议栈中默认配置的是自组网!意味着,各个设备一旦启动,均会默认自动扫描创建或搜寻加入网络,无须我们人为去控制或做任何配置!

关于如何判断设备是否成功创建或者加入了ZigBee网络,以及查看网络中所有设备的网络信息,Z-Stack中提供的相关的库函数可以直接调用,在NLMEDE.h文件中,协议栈中仅提供函数声明,不提供具体函数实现代码(半开源)。我们最常用的几个函数如下所示:

......
extern byte *NLME_GetExtAddr( void );
......
extern uint16 NLME_GetShortAddr( void );
......
extern uint16 NLME_GetCoordShortAddr( void );
......
extern void NLME_GetCoordExtAddr( byte * );
......

分别用于:获取自身MAC地址、获取自身网络短地址、获取父节点网络短地址、获取父节点MAC地址;凭借这4个函数,我们便可非常轻松地得出该网络的拓扑结构

2、地址查询实现

为了便于我们查看ZigBee设备的网络信息,我们一般在该设备的网络状态稳定之后再对其进行查看;对此,我特意编写了user_api.cuser_api.h文件,结合“强大”的printf( )函数实现了该功能,请大家去统一下载链接下载查看相关文件代码~

协调器从上电,到创建网络成功,网络状态变化及最终网络信息如下图所示:


(配套源码软件开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911

相关文章
|
传感器 物联网
( zigbee)CC2530+BH1750光敏传感器获取光照强度
( zigbee)CC2530+BH1750光敏传感器获取光照强度
837 0
( zigbee)CC2530+BH1750光敏传感器获取光照强度
|
传感器 网络协议 物联网
基于CC2530(ZigBee)设计的景观照明控制系统+配套手机APP
基于CC2530(ZigBee)设计的景观照明控制系统+配套手机APP
567 0
基于CC2530(ZigBee)设计的景观照明控制系统+配套手机APP
|
传感器 网络协议 物联网
基于CC2530(ZigBee)设计的自动照明系统
基于ZigBee的自动照明系统设计,上面连接了光感传感器,ESP8266WIFI模块。通过ESP8266与手机APP之间通信,ESP8266创建热点,配置为TCP服务器模式; 手机APP连接上ESP8266的热点之后,再连接ESP8266创建的服务器,完成通信。 手机APP上通过按钮可以控制B,C开发板上LED灯的开关。
571 0
|
传感器 物联网 Linux
基于CC2530(ZigBee设计)的温度报警器
这是基于CC2530设计的远程温度报警器,通过CC2530终端检测环境温度上传给手机APP实时显示。 一共有两块CC2530开发板,这里就分别称为A板(当做协调器)、B板(当做温度节点),A板上接了ESP8266 WIF模块,用于与手机APP之间通信。B板上接了DS18B20 温度传感器模块,用于给A板传递检测的温度,A板收到DS18B20的温度之后,发送给手机APP显示。APP上位机采用Qt框架设计,支持跨平台,Android、windows、IOS、Linux都可以编译运行安装。
866 0
|
物联网
ZigBee(CC2530)最小系统PCB设计(AD18开发软件)
ZigBee(CC2530)最小系统PCB设计(AD18开发软件
ZigBee(CC2530)最小系统PCB设计(AD18开发软件)
|
物联网
ZigBee TI ZStack CC2530 2.3 协议栈版本
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一、协议栈发展历史 TI的ZigBee 协议栈Z-Stack,从最开始的Z-Stack 0.1到大家熟悉的ZStack-CC2530-2.5.1a,再到几个月前刚刚发布的最新版本——Z-Stack 3.0.1,历经了非常多的版本。
3250 0
|
移动开发 物联网 流计算
ZigBee TI ZStack CC2530 3.12 LED驱动移植及使用
(配套源码、软件、开发板等资源,可移步博客同名QQ群/TB店铺:拿破仑940911) 一、前言 关于Z-Stack协议栈中的LED控制,如果使用协议栈中自带的驱动,很简单就可以实现非常丰富的功能。
2082 0
Adobe XD CC 55.2.12.2 是一款非常专业的矢量图形规划软件Adobe XD 2023版本软件下载安装教程(内含所有版本)
Adobe XD CC 55.2.12.2 是一款非常专业的矢量图形规划软件,全新的桌面端UX原型工具,这是新一代网页与移动应用的UX设计工具。xd能够帮助设计者快速有效的设计图形、建立手机APP以及网站原型等等设计制作,支持设备的尺寸多样。集原型、设计和交互等功能于一体,从网站和移动应用程序到语音交互都可轻松实现,Adobe XD CC带来了响应调整大小、自动动画、语音原型、插件和应用程序集成等新功能,
Adobe Photoshop CC 2019下载中文永久安装和破解教程
Adobe Photoshop CC 2019下载中文永久安装和破解教程
50075 0
Animate CC 2019免费下载丨Adobe Animate CC 2019下载中文完整版永久安装教程
Adobe 提供了一整套可互相配合使用的动画应用程序,助您实现所有创意。使用 Animate CC 创建适用于游戏、应用程序和 Web 的交互式矢量动画。利用 Character Animator CC 将人物实时制成动画。
8462 0