蓝牙Mesh开发五 Ble Mesh友谊FriendShip之TLSR8258低功耗节点

本文详细介绍了蓝牙Mesh中低功耗节点如何通过友谊协议与好友节点合作,降低功耗并实现长续航。内容涵盖了友谊时间参数、建立过程、通信机制、安全性及友谊终止策略。实例分析了实际应用中的挑战和优化建议。

背景

蓝牙Mesh应用中存在低功耗的场景,如温湿度、烟感传感器通过电池供电且需要尽量长的续航时间,针对这一类产品,蓝牙Mesh规范中定义了友谊(Friendship)相关协议,本章会继续使用泰凌微8258评估友谊功能
如有异议,欢迎留言指正

简介

低功耗节点(LPN,low power node)通过与邻近的好友节点(FN,friend node)建立友谊(friendship)关系,低功耗(Low-Power)节点以明显较低的接收端占空比在 mesh 网络中运行。通过将无线电接收器启用时间最小化来降低节点功耗,只有在绝对必要时才启动接收器。

  • 对于 LPN 节点,只能和一个 FN 建立友谊;
  • 对于 FN 节点,可以和多个 LPN 节点建立友谊。
  • 当建立 friendship 后,低功耗节点会以一个比较长的周期对好友节点进行轮询(Poll),查看是否有新消息,如果有,则获取该消息。
  • 好友(Friend)节点将mesh网络中发送给低功耗节点的消息缓存到消息队列中,仅在 LPN 明确发出请求时才进行转发来帮助 LPN 运行的能力。
友谊时间参数
  • ReceiveDelay:接收延迟是低功耗节点发送请求和侦听响应之间的时间,让Friend节点有时间准备响应

  • ReceiveWindow:接收窗口是低功耗节点侦听响应的时间。 当低功耗节点从其Friend节点接收消息时,它可以停止侦听其他消息
    在这里插入图片描述

  • PollTimeout:轮询超时用于低功耗节点发送的两个连续请求之间的时间,如果在PollTimeout计时器到来之前,好友节点未能收到LPN的请求,则友谊关系将被终止。
    在这里插入图片描述

友谊建立
消息格式

在上一篇有讲到,上层传输层包含了朋友特性的的实现(具体友谊消息格式可以查看Mesh规范第3.6.5小节)

  • 不分包控制消息格式(分包数据格式会在数据域中进行细分分包索引)
File Size(bit) Note
SEG 1 0(不分包) 1 (分包)
Opcode 7 0x00:分包消息应答包
0x01~0x7F:其他控制命令
Parameters 0~88 数据域
  • 其中Opcode消息如下
Data Message Note
0x01 Friend Poll 低功耗节点向Friend节点请求是否有消息的命令
0x02 Friend Update Friend 节点向低功耗节点通知安全消息的更新
0x03 Friend Request 低功耗节点开始寻找Friend节点
0x04 Friend Offer Friend 节点向低功耗节点发的Offer
0x05 Friend Clear Friend节点通知低功耗节点之前的Friend节点与其解除朋友关系
0x06 Friend Clear Confirm Friend 节点移除朋友节点的确认
请求过程
  • 1 . LPN发布一个“好友请求”(Friend Request)消息。该消息不会被中继,因此只有处于直接无线电范围内的好友节点才能处理该消息。不具有“好友”特性的节点会将消息丢弃。“好友请求” 消息包括LPN的ReceiveDelay、ReceiveWindow和PollTimeout参数。
  • 2 . 附近的好友节点若支持“好友请求”消息中特定的要求,将准备一个“Friend Offer”消息,并将其发送回LPN。该消息包括各种参数,包括支持的ReceiveWindow大小、可用的消息队列大小、可用的订阅列表(Subscription List)大小、以及由好友节点测量的RSSI值。
  • 3 . LPN接收到“Friend Offer”消息时,通过应用一种实施专用的算法来选择合适的好友节点。该算法可能会考虑到各种各样的情况。某些设备可能会优先考虑ReceiveWindow大小,以尽可能减少功耗;而有些设备则可能会更加关注RSSI值,以确保能够与好友节点保持高质量的链路。所采用的精确算法由产品开发者决定。
  • 4 . 选择好友节点之后,LPN将向好友节点发送一个“Friend Poll”轮询消息。
  • 5 . 从LPN收到“好友轮询”(Friend Poll)消息后,好友节点会回复一个“Friend Update”更新消息,完成“好友” 建立流程并提供安全参数,好友节点会为低功耗节点存储一个订阅列表,此时“友谊”得以建立。
    在这里插入图片描述

在这里插入图片描述

友谊消息通信

友谊建立成功后,好友节点会缓存发往LPN节点的消息
低功耗节点LPN会周期唤醒向好友节点发送轮询消息获取其缓存数据
当好友缓存中无消息时,MD字段设置为0终止消息,LPN会停止轮询并重新进入休眠
在这里插入图片描述

分包缓存消息

当发往LPN低功耗节点的消息存在分包情况时,好友节点会缓存完整的消息后才会应答给LPN节点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值