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