选择LPN模式的原因:
能有效的降低产品功耗。
比如:一个温湿度传感器产品,需要超过设定阈值才会从上送数据,这样就没有长时间唤醒时间,就无法接收到网关下发的设置数据,这时候就需要LPN模式。LPN的节点正常还是超过阈值才会上报数据,然后会过一段时间唤醒去访问他对应的Friend节点,去询问是否有对应的设置数据。这样就保证低功耗的同时又可以保证功能的完整性。
LPN节点与Friend节点的连接配置:
其中好友节点P与低功耗节点 I、J和K为“友谊”关系,寻址到节点I、J或 K的消息将被好友节点P存储并转发,好友节点的转发仅在低功耗节点轮询好友节点以获得等待传送的消息时才会发生。所以Friend节点一般都是为长供电设备,用于一直接收数据。
LPN节点与Friend节点连接建立参数:
1. ReceiveDelay是从LPN向好友节点发送请求,到其开始收听响应中间经过的时间。这让好友节点有时间做好响应的准备,并将响应发回。
2. ReceiveWindow 是LPN用于收听响应的时间。图中描述了涉及ReceiveDelay和ReceiveWindow的时序。
3. PollTimeout设定了LPN发送给其好友节点的两个连续请求之间可能经过的最长时间。如果在PollTimeout计时器到时之前,好友节点未能收到LPN的请求,则友谊关系将被终止。
LPN节点与Friend节点建立连接条件:
LPN发布一个“好友请求”消息。该消息不会被中继,因此只有处于直接无线电范围内的好友节点才能处理该消息。不具有“好友”特性的节点会将消息丢弃。“好友请求” 消息包括LPN的ReceiveDelay、ReceiveWindow和PollTimeout参数。
附近的好友节点若支持“好友请求”消息中特定的要求,将准备一个“Friend Offer”消息,并将其发送回LPN。该消息包括各种参数,包括支持的ReceiveWindow大小、可用的消息队列大小、可用的订阅列表(Subscription List)大小、以及由好友节点测量的RSSI值。
LPN接收到“Friend Offer”消息时,通过应用一种实施专用的算法来选择合适的好友节点。该算法可能会考虑到各种各样的情况。某些设备可能会优先考虑ReceiveWindow大小,以尽可能减少功耗;而有些设备则可能会更加关注RSSI值,以确保能够与好友节点保持高质量的链路。所采用的精确算法由产品开发者决定。
选择好友节点之后,LPN将向好友节点发送一个“Friend Poll”轮询消息。
从LPN收到“好友轮询”(Friend Poll)消息后,好友节点会回复一个“Friend Update”更新消息,完成“好友” 建立流程并提供安全参数。此时“友谊”得以建立。
LPN节点与Friend节点的消息交互:
友谊建立之后,好友节点将LPN的所有消息存储在“好友队列”(Friend Queue)中,这些消息就是我们所说的“ 被存储的消息 ”。下方的描绘的就是好友节点和关联LPN之间的消息交换。
当好友节点收到一个寻址到该节点的LPN的消息时,好友节点会缓冲此消息,将其存储在称为“好友队列”的区域中。在图4中,我们可以看到,好友节点为LPN存储了消息1和2。
LPN会周期性地启用其收发器(transceiver),并向好友节点发送 “好友轮询” 消息,询问是否存储有任何为其缓冲的消息。
好友节点会先将一个被存储的消息发回至LPN作为对“好友轮询”(Friend Poll)的响应。
在每次接收到来自好友节点的消息之后,LPN会将继续发送“好友轮询”消息,直到收到一条“MD(MD =更多数据)”字段设置为0的“好友更新”消息为止。这意味着已经没有为LPN缓冲的更多消息了。此时,LPN停止对好友节点的轮询。
LPN节点与Friend节点的消息交互的安全性:
主安全资料(Master Security Material):由网络密钥(NetKey)派生,可被同一网络中的其他节点使用。使用主安全资料加密的消息可被同一网络中的任何节点解码。
好友安全资料(Friend Security Material):由网络密钥(NetKey)、以及由低功耗节点(LPN)和好友节点生成的额外计数器号码派生而来。使用好友安全资料加密的消息只能由处理该消息的好友节点和LPN解码。
使用好友安全材料加密的友谊消息:轮训、好友更新(Friend Update)、好友订阅列表(Friend Subscription List)添加/删除/确认好友节点发送至LPN的“被存储的消息”。
使用主安全资料加密的相应友谊消息:好友清除(Friend Clear)、好友清除确认(Friend Clear Confirm)。
从LPN发送至好友节点的消息将根据应用设置,通过主安全资料或好友安全资料进行加密。
LPN节点与Friend节点的友谊终止:
1、在PollTimeout计时结束之前,好友节点未收到“ 好友轮询”、“好友订阅列表添加”或“好友订阅列表删除”消息,则友谊终止。
2、LPN可以通过将“好友清除”消息发送给好友节点,以启动友谊终止程序,“友谊”就会被好友节点终止。
平台选择:
RAM容量:可用的RAM容量直接影响一个 好友节点可支持LPN的数量、及其可为相关LPN缓冲多少个消息。
LPN:所选MCU和模块的通用功耗性能对于LPN很关键。 此外,从休眠模式到运行模式的唤醒/预热时间会影响LPN的响应速度和延迟。