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

相关文章

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

Java对接MQTT协议的完整实现示例代码

《Java对接MQTT协议的完整实现示例代码》MQTT是一个基于客户端-服务器的消息发布/订阅传输协议,MQTT协议是轻量、简单、开放和易于实现的,这些特点使它适用范围非常广泛,:本文主要介绍Ja... 目录前言前置依赖1. MQTT配置类代码解析1.1 MQTT客户端工厂1.2 MQTT消息订阅适配器1.

Linux中的自定义协议+序列反序列化用法

《Linux中的自定义协议+序列反序列化用法》文章探讨网络程序在应用层的实现,涉及TCP协议的数据传输机制、结构化数据的序列化与反序列化方法,以及通过JSON和自定义协议构建网络计算器的思路,强调分层... 目录一,再次理解协议二,序列化和反序列化三,实现网络计算器3.1 日志文件3.2Socket.hpp

Linux中的HTTPS协议原理分析

《Linux中的HTTPS协议原理分析》文章解释了HTTPS的必要性:HTTP明文传输易被篡改和劫持,HTTPS通过非对称加密协商对称密钥、CA证书认证和混合加密机制,有效防范中间人攻击,保障通信安全... 目录一、什么是加密和解密?二、为什么需要加密?三、常见的加密方式3.1 对称加密3.2非对称加密四、

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

使用Python进行GRPC和Dubbo协议的高级测试

《使用Python进行GRPC和Dubbo协议的高级测试》GRPC(GoogleRemoteProcedureCall)是一种高性能、开源的远程过程调用(RPC)框架,Dubbo是一种高性能的分布式服... 目录01 GRPC测试安装gRPC编写.proto文件实现服务02 Dubbo测试1. 安装Dubb

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名