Z-Stack协议栈学习笔记---修改PANID与信道选择

2023-10-11 02:30

本文主要是介绍Z-Stack协议栈学习笔记---修改PANID与信道选择,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

PANID设置

     一个zigbee网络的标志就是PANID,PANID是一个16位变量,可以定义65535个不同PANID号的网络。我们可以使用PANID在相同的信道内区分不同的zigbee网络。PANID一般由coordinator决定,router与endDevice接入时会从coordinator获取PANID。也可以固定router和endDevice的PANID,使其加入特定的coordinator。这个值在zstack协议栈的tools/f8wConfig.cfg中定义:


修改这个宏可以设置PANID,如果这个值被设置为0xFFFF表示随机,coordinator会在0~0x3FFF的范围内随机选择一个数作为PANID。

信道设置

     除了PANID,我们也可以使用信道来区分,毕竟不同信道的设备无法通信。coordinator与router和endDevice必须设置为相同的信道才能连接到同一网络中。修改位置同样在tools/f8wConfig.cfg中:


    通过打开对应信道的宏来设置信道,例如这里就是设置信道26。zigbee协议定义了26个信道,分别为868MHz1个,915MHz10个,2.4GHz11个。但由于CC2530芯片只支持2.4G,因此这里只能设置2.4G频段,即11信道到26信道。

信道选择

     zigbee布网最大的障碍就是干扰,也就是来自于wifi的干扰。wifi与zigbee都处于2.4G频段,信道高度重合。而且无论是功率还是抗干扰能力zigbee都敌不过wifi。因此在部署zigbee网络时要考虑当前环境中wifi信号的干扰频段,并尽可能避开这些频段。


   如上图,wifi在2.4g频段具有14个信道,且信道之间相互重叠。但在中国,无线ap最常用的信道是1、6、11,几乎所有的民用无线AP默认都是这三个信道。自己观察可以发现这三个信道前后与之间有细微的间隔,分别为f<2.401、2.423<f<2.426、2.448<f<2.451、f>2.473。让我们再来看看zigbee的信道分布:


 对比可以看出,15、20、25、26这四个zigbee信道完全避开了常用的wifi信道1、6、11。是zigbee布网的最佳选择。


这篇关于Z-Stack协议栈学习笔记---修改PANID与信道选择的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/184890

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Docker镜像修改hosts及dockerfile修改hosts文件的实现方式

《Docker镜像修改hosts及dockerfile修改hosts文件的实现方式》:本文主要介绍Docker镜像修改hosts及dockerfile修改hosts文件的实现方式,具有很好的参考价... 目录docker镜像修改hosts及dockerfile修改hosts文件准备 dockerfile 文

关于WebSocket协议状态码解析

《关于WebSocket协议状态码解析》:本文主要介绍关于WebSocket协议状态码的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录WebSocket协议状态码解析1. 引言2. WebSocket协议状态码概述3. WebSocket协议状态码详解3

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很

Linux修改pip和conda缓存路径的几种方法

《Linux修改pip和conda缓存路径的几种方法》在Python生态中,pip和conda是两种常见的软件包管理工具,它们在安装、更新和卸载软件包时都会使用缓存来提高效率,适当地修改它们的缓存路径... 目录一、pip 和 conda 的缓存机制1. pip 的缓存机制默认缓存路径2. conda 的缓

Linux修改pip临时目录方法的详解

《Linux修改pip临时目录方法的详解》在Linux系统中,pip在安装Python包时会使用临时目录(TMPDIR),但默认的临时目录可能会受到存储空间不足或权限问题的影响,所以本文将详细介绍如何... 目录引言一、为什么要修改 pip 的临时目录?1. 解决存储空间不足的问题2. 解决权限问题3. 提

Linux文件名修改方法大全

《Linux文件名修改方法大全》在Linux系统中,文件名修改是一个常见且重要的操作,文件名修改可以更好地管理文件和文件夹,使其更具可读性和有序性,本文将介绍三种在Linux系统下常用的文件名修改方法... 目录一、引言二、使用mv命令修改文件名三、使用rename命令修改文件名四、mv命令和rename命

mybatis-plus 实现查询表名动态修改的示例代码

《mybatis-plus实现查询表名动态修改的示例代码》通过MyBatis-Plus实现表名的动态替换,根据配置或入参选择不同的表,本文主要介绍了mybatis-plus实现查询表名动态修改的示... 目录实现数据库初始化依赖包配置读取类设置 myBATis-plus 插件测试通过 mybatis-plu

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx