IEEE 802.15.4协议——信标的产生及设备发现

5.1.2.4 信标的产生

  只有当 macShortAddress 不等于 0xffff 时,设备才能发送信标帧。

  只有当参数 BeaconOrder 小于 15 时,完整功能设备才能用 MLME-START.request 原语命令开始信标传输。完整功能设备既能够作为新的 PAN 协调器,也可以作为已建立的 PAN 网络中的的设备来发送信标帧, 以哪种身份发送信标帧取决于参数 PANCoordinator 的设置(参考 6.2.12.1 节)。完整功能设备只有在成功连接到该 PAN 后才能作为该已建立的 PAN 网络中的的设备来发送信标帧。

  如果一个完整功能设备是一个 PAN 协调器(即参数 PANCoordinator 设置为 TRUE) ,MAC 子层将忽略 StartTime 参数并立即开始发送信标。将 StartTime 参数设置为 0 也能使 MAC 子层立即开始发送信标。如果一个完整功能设备不是一个 PAN 协调器,并且 StartTime 参数为非 0,开始发送信标的时间应根据下列方法计算出来。先对参数 StartTime 进行四舍五入,使其与退避周期边界对齐,然后与当 MAC 子层接收到它所关联的 PAN 协调器的信标时获取到的本地时钟时间相加。当从本地时钟获取到的时间与上面计算出来的时间相等时,MAC 子层将开始传输信标。为了让 MAC 子层计算出信标发送时间,MAC 子层应该先跟踪它所关联的协调器的信标。如果 MLME-START.request 原语命令中参数 StartTime 为非 0,并且 MAC 子层此时没有跟踪协调器的信标, MLME 不会传输信标,但会发送状态为TRACKING_OFF 的 MLME-START.confirm 原语命令。

  如果设备错过了 1 到 (aMaxLostBeacons–1) 之间个连续的协调器信标帧,该设备将根据 macBeaconOrder (参考 5.1.2.3.4 节)和它的本地时钟继续发送自己的信标。如果设备后来收到了协调器的信标,也没有失去同步,设备将根据参数 StartTime 和接收到的信标来继续发送自己的信标。如果设备与协调器失去同步(译注:即设备错过了 aMaxLostBeacons 个以上的连续的来自协调器的信标帧),它的 MLME 将向上层发送 MLME-SYNC-LOSS.indication 原语命令并立即停止发送信标。上层在任何时间收到 MLME-SYNC-LOSS.indication 原语命令,都会通过发送新的 MLME-START.request 原语命令来恢复信标传输。

  MAC 子层接收到 MLME-START.request 原语后,会在 macPANId 中设置 PAN 标识符,并在信标帧的源 PAN 标识符字段中使用该值。如果 macShortAddress 等于 0xfffe,则信标帧的源地址字段的地址应包含 macExtendedAddress;否则,包含 macShortAddress。

  多数最近发送信标的时间都被记录在 macBeaconTxTime 中,并且经过计算使这些值位于每一个信标帧中相同的符号边界上,信标帧的位置取决于执行的具体情况。macSyncSymbolOffset 属性所指定的符号边界与接收到的信标帧中时间戳(参考 5.1.4.1 节)是相同的。

  所有的信标帧都应该在每个超帧的开始时传输,且传输的间隔等于 aBase-SuperframeDuration × 2n,其中,n 是 macBeaconOrder 的值。

  信标传输的优先级应该比其它所有传输、接收超帧的优先级高。

5.1.2.4 设备发现

  PAN 协调器或普通协调器通过向其它设备传输信标帧来宣告它的存在。其它设备可以根据这一点执行设备发现功能。

  非 PAN 协调器的协调器只有在与 PAN 网络关联后,才能传输信标帧。通过 MLME-START.request 原语对设备传输的信标帧进行初始化,其中 PANCoordinator 设置为 FALSE。接收到此原语命令后, MLME 将使用设备所关联的 PAN 的标识符 macPANId 及其地址(若 macShortAddress 等于 0xfffe 则为扩展地址 aExtendedAddress,否则为短地址 macShortAddress),以及参数 StartTime(参考 5.1.2.4节)来发送信标。信标帧的发送速率为每 aBaseSuperframeDuration × 2n 发送一次,其中 n 为 macBeaconOrder 的值。

原文链接: http://iot-fans.xyz