Zigbee系列(end device)
End device设备分为睡眠和非睡眠两种(RxOnWhenIdle标记不同)。 入网时的association请求,会使用这个标记。
共同特性
- 子节点多次发送数据失败(无回应),发送孤点扫描(realignment), 尝试重回网络。
802.15.4 : 用于网络同步,设备与协调器通信异常,可发orphan notify。
An orphan scan allows a device to attempt to relocate its coordinator following a loss of synchronization.
During an orphan scan, the MAC sublayer shall discard all frames received over the PHY data service that
are not coordinator realignment command frames.
An orphan scan over a specified set of logical channels is requested using the MLME-SCAN.request
primitive with the ScanType parameter set to indicate an orphan scan. For each logical channel, the device
shall first switch to the channel, by setting phyCurrentChannel and phyCurrentPage accordingly, and then
send an orphan notification command (see 7.3.6). Upon successful transmission of the orphan notification
command, the device shall enable its receiver for at most macResponseWaitTime symbols. If the device
successfully receives a coordinator realignment command (see 7.3.8) within this time, the device shall
terminate the scan.
孤点通知:
重排列: The coordinator realignment command is sent by the PAN coordinator
- 子节点N次data request没有收到回应(参数N子设备可配置)。认为丢失父节点,开始move过程。发送beacon request寻找父节点,找到后,通过rejoin回到网络。
- 父节点判断子节点是否已离开的方式:父节点设置超时时间(默认值nwkEndDeviceTimeoutDefault),如果超时时间内一直没有收到子节点的data request,认为子节点已离开;子节点重新回来的时候,会通知子节点rejoin。
(子节点入网后,需要通过End Device Timeout Request命令通知父节点设置超时时间数值 zigbee specification 3.6.10。)
- 子节点重新上电一般发送孤点扫描(realignment), silabs可修改这项配置。
非睡眠end device
- 父节点可以直接向该节点发送数据,不需要等待子节点的data poll
验证步骤:编译一个非睡眠的固件,long poll设置为10秒,子节点直连协调器,协调器发送多个on命令,每个命令可以直接发出,不需要等待子节点的data request
睡眠end device
- 父节点缓存报文,子节点通过data poll请求数据后,将数据发给子节点
Rejoin安全性
参考silicon labs 的文档 ug103-05-fundamentals-security.pdf
Section 3.5 Network Rejoin
Zigbee系列(end device)的更多相关文章
- Zigbee系列(概览)
Zigbee技术特点 低速率: 数据传输速率只有20~250kb/s, 2.4GHZ提供250kb/s, 915MHz对应40kb/s, 868Mhz对应20kb/s 低功耗:睡眠模式设备使用电池供电 ...
- Zigbee系列(网络)
Zigbee设备类型 Coordinator:形成网络,选择信道.PANID.允许其他设备加入等. Router: 作为路由节点,转发报文. End Device: 终端节点,不转发报文. Zigbe ...
- Zigbee系列(路由机制)
参考文档: ug103-02-fundamentals-zigbee.pdf section4 zigbe routing concepts docs-05-3474-21-0csg-zigbee-s ...
- [ZigBee] 16、Zigbee协议栈应用(二)——基于OSAL的无线控制LED闪烁分析(下)
说在前面:上一篇介绍了无线LED闪烁实现的OSAL部分,本篇介绍如何实现无线数据收发及数据处理: 上一篇是用SI跟着流程查看源码,我个人认为以架构的思维去了解代码能让人更清晰 ::ZMain.c程序入 ...
- [ZigBee] 15、Zigbee协议栈应用(一)——Zigbee协议栈介绍及简单例子(长文,OSAL及Zigbee入门知识)
1.Zigbee协议栈简介 协议是一系列的通信标准,通信双方需要按照这一标准进行正常的数据发射和接收.协议栈是协议的具体实现形式,通俗讲协议栈就是协议和用户之间的一个接口,开发人员通过使用协议栈来使用 ...
- [ZigBee] 14、Zigbee无线通信前奏——BasicRF 简单无线点对点传输协议
本工程不带zigbee协议栈,作为过渡 实验现象: 一个EB2530(终端A)定义为发射模块,另一个EB2530(终端B)定义为接收模块. 按EB2530(终端A)上的按键,无线控制另一个EB2530 ...
- [ZigBee] 13、ZigBee基础阶段性回顾与加深理解——用定时器1产生PWM来控制LED亮度(七色灯)
引言:PWM对于很多软件工程师可能又熟悉又陌生,以PWM调节LED亮度为例,其本质是在每个周期都偷工减料一些,整体表现出LED欠压亮度不同的效果.像大家看到的七色彩灯其原理也类似,只是用3路PWM分别 ...
- [ZigBee] 12、ZigBee之看门狗定时器——饿了就咬人的GOOD DOG
引言:硬件中的看门狗,不是门卫的意思,而是一只很凶的狗!如果你不按时喂它,它就会让系统重启!这反而是我们想要的功能~ 1.看门狗概述 看门狗定时器(WDT,Watch Dog Timer)是单片机的一 ...
- [ZigBee] 11、ZigBee之睡眠定时器二
1.前言 上一节讲了Zigbee的睡眠定时器利用外部按键使系统从休眠态唤醒到工作态,其核心在于: 61 void SysPowerMode(uchar mode) 62 { 63 if(mode &g ...
随机推荐
- 2、Dubbo-核心概念
dubbo核心概念 2.1).简介 Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能.轻量级的开源Java RPC框架, 它提供了三大核心能力:面向接口的远程方法调用 ...
- Java并发基础概念
Java并发基础概念 线程和进程 线程和进程都能实现并发,在java编程领域,线程是实现并发的主要方式 每个进程都有独立的运行环境,内存空间.进程的通信需要通过,pipline或者socket 线程共 ...
- SQL server数据异地备份到OSS
背景需求: 某部门需要将windows机器上的SQL server数据做一个异地备份,经过对现有的软硬件资源评估,决定使用阿里云的OSS存储 方法:利用SQLserver自带的维护计划做指定数据库的备 ...
- 面试 : C语言 功底 被 鄙视了
第一道:被鄙视 的 C语言语法问题 请看 下面 程序 : 错误程序: void GetMemory( char *p ){ p = (char *) malloc( 100 );}void Test( ...
- LWIP network interface 即 LWIP 的 硬件 数据 接口 移植 详解 STM32 以太网数据 到达 的第二站: void ethernetif_input( void * pvParameters )
根据 上一篇 文章 , ETH DMA 数据中断 会 发送 一个信号量 ,我使用 全局 搜索 这个信号量 s_xSemaphore 得到 一下 几个 值 根据 这个 分析 我们找到了 数据 的 ...
- Linux命令总结(转)
1.ls [选项] [目录名 | 列出相关目录下的所有目录和文件 -a 列出包括.a开头的隐藏文件的所有文件 -A 通-a,但不列出"."和".." -l 列出 ...
- EF Core 2.0中如何手动映射数据库的视图为实体
由于Scaffold-DbContext指令目前还不支持自动映射数据库中的视图为实体,所以当我们想使用EF Core来读取数据库视图数据的时候,我们需要手动去做映射,本文介绍如何在EF Core中手动 ...
- javascript 获取排列后的对象建值
function getSortedParameter (parameterObject){ let attributes = []; parameterObject = parameterObjec ...
- zookeeper报错 JAVA_HOME is not set
很多开发者安装zookeeper的时候,应该会发现到这么一个问题: JAVA_HOME is not set 好的!那么这个是什么意思呢? 就是说你的 JAVA_HOME 变量没有设定 为什么会提示 ...
- Linux系统初学-第一课 虚拟机安装CentOS6.5以及Root密码找回
Linux系统初学第一课 虚拟机安装CentOS6.5以及Root密码找回 虚拟机安装CentOS6.5 一.安装虚拟机 1-1.安装虚拟机VMware Station,新建虚拟机,选择典型配置. 1 ...