蓝牙低功耗(bluetoothle)是世界上功率最高的短距离无线通信技术之一。其低功耗被开发商和消费者广泛赞誉。随着蓝牙网状网络(mesh)的发布,开发人员可能会想知道蓝牙网格是否也被设计为低功耗。它是否继承了蓝牙le低功耗的优势?
答案是肯定的!蓝牙网状网络包括优化功耗的各种措施,特别是称为“友邻节点(friendship)”的功能。
蓝牙网状网络标准概述
蓝牙网状网络中的friendship功能的应用可能非常多样化。一些产品,如灯,将连接到主电源,蓝牙网格模块的功耗与光线本身的功耗相比,可以忽略不计。但是其他产品,如智能传感器或锁具,将受到功率限制,这意味着它们需要由小型电池或能量采集技术供电。像这样的产品最有可能利用蓝牙网格的friendship概念。
如果您已经阅读了我们的蓝牙网状网络系列中的较早的文章,那么您已经知道节点是已经被设置并且是网状网络成员的设备。节点具有与产品类型相关的功能,但是也可以具有关于网络本身的操作的功能,并且可以承担特殊的角色。
这由他们支持的网格特征决定。所有节点都可以在网络中发送和接收mesh消息。此外,节点还可以选择性地支持一个或多个额外的网络功能,如下所列:
· 中继功能:通过广播承载接收和重传网状消息的能力,以实现更大的网络。
· 代理功能:在gatt和广播承载之间接收和重传网状消息的能力。
· 低功耗特性:能够以显着降低的接收机占空比在网状网络内工作。使无线电接收器的时间最小化导致节点的功耗降低,只有在严格必要时才能使接收机使能。低功耗节点(lpn)通过与friend节点建立friendship来实现这一点。
· 友邻功能:通过存储发往lpn的消息来帮助lpn运行的能力,并且只有在lpn明确地从“friend”节点请求消息时才转发它们。
要了解friendship如何使lpn降低功耗,请考虑传感器。传感器是一种可能利用friendship并充当lpn的节点的一个很好的例子。他们通常花费最多的时间来传输数据,而且很少需要接收数据。也许传感器只有在超出一组配置的限制范围内才能发送温度读数,也许这只会每天发生两次。这种不频繁的数据传输保持了这种类型的设备的能量消耗低。
但是如果这些温度限制需要修改以根据季节使用不同的值,并且通过向传感器发送配置消息来实现这些限制的修改呢?对于传感器直接接收这样的消息,需要切换无线并进行收听。大多数时候它正在听,没有收到任何东西,但能量消耗了。
所以,与friend合作允许lpn安排使用无线接收消息到任何频率对于该设备是有意义的,并且以比其它需要的频率低得多的频率,如果它必须一直接收消息。 lpns轮询他们的friend的新消息,friend只会偶尔存储。这是如何节省电力。
友邻和低功耗节点
lpn必须与支持friend功能的另一个节点建立friendship关系,以减少其接收器占空比并节省能源。图1取自蓝牙网状网络规范。另外,它说明了lpn和friend节点之间的关系。特别是它显示:
·light blue: lpns
·dark grey: friend nodes associated with and service specific lpns
·light grey: friend nodes which do not have a relationship with anlpn
·浅蓝色:lpn
·深灰色:与特定lpn相关联的friend节点
·浅灰色:与lpn没有关系的friend节点
图1 - 网状网络的拓扑示例
friend节点p与lpni,j和k具有friendship关系。friend节点o与lpn l和m具有friendship关系。因此,寻址到节点i,j或k的消息将被friend p存储并转发。节点l或m将被friend o存储和转发。由friend节点转发仅在lpn轮询friend以获得等待传送的消息时发生。
友邻节点参数
lpn需要找到“friend”节点并与他们建立friendship关系。所涉及的程序称为friend建立。我们稍后会检查这个过程,但在我们介绍一些关于lpn行为的关键参数之前,因为这些参数是在friend建立过程中设置的。
1. receivedelay是lpn之间经过的时间,向friend节点发送请求,并开始收听响应。这允许“friend”节点时间准备其响应并将其发送回来。
2. receivewindow是lpn花费时间来收听响应的时间。图2说明了涉及receivedelay和receivewindow的时序。
图2- receivedelay和receivewindow时序
1. polltimeout建立在lpn发送给其“friend”节点的两个连续请求之间可能经过的最长时间。如果在polltimeout计时器到期之前,friend节点没有收到lpn的请求,则friendship将被终止。
图3- polltimeout时序
友邻节点建立
如果两个人想建立友谊,只要一瞥就够了!为了建立蓝牙网状网络的friendship,还需要几个步骤。
1.lpn发布一个friend请求消息。此消息不被中继,因此只有直接无线范围中的“friend”节点才能处理它。没有friend功能的节点丢弃它。friend请求消息包括lpn的receivedelay,receivewindow和polltimeout参数。
1.可以支持“friend请求”消息中指定的要求的附近的每个“friend”节点准备好“friend offer”消息并将其发送回lpn。该消息包括各种参数,包括支持的receivewindow大小,可用的消息队列大小,可用的列表大小以及由friend节点测量的rssi值。
2.在接收到“friendoffer”消息时,lpn通过应用实现特定的算法来选择合适的friend节点。该算法可能会考虑各种各样的点。某些设备可能会将接收窗口大小置于优先级,以尽可能减少功耗,而有些设备可能会更加关注rssi值,以确保它们能够与“friend”节点保持良好的链接质量。使用的精确算法由产品开发人员决定。
3.选择friend节点后,lpn将向friend节点发送一个friend poll消息。
4.从lpn收到friend poll消息后,friend节点回复一个friend update消息,该消息结束了friend建立过程并提供安全参数。在这一点上,建立了friendship。
友邻节点信息
friendship建立之后,“friend”节点将lpn的所有消息存储在friend queue中。这些被称为存储的消息。下面的图4说明了在friend节点和关联lpn之间的消息交换。
· 当“friend”节点收到一个寻址到“friend”节点的lpn的消息时,“friend”节点缓冲此消息,将其存储在称为“friend queue”的区域中。在图4中,我们可以看到消息1和2代表lpn存储在friend节点中。
· 定期地,lpn使其收发器发送一个friend poll到friend节点,要求为它存储任何缓冲的消息。
· “friend”节点首先将一个存储的消息发送回lpn作为对“friend poll”的回复。
· 在每个接收到来自“friend”节点的消息之后,lpn将继续发送“friend poll”消息,直到收到“md(md =更多数据)”字段设置为0的“friendupdate”消息为止。这意味着lpn没有更多消息被缓冲。此时,lpn停止轮询“friend”节点。
图4- friendship messaging
安全性
蓝牙网络中的安全无处不在。friendship也是如此,它使用两个特殊的安全凭证:
· master security material:从netkey派生,也可以由同一网络中的其他节点使用。使用master security material加密的消息可以由同一网络中的任何节点解密。
· friend security material:从netkey派生,还有一些额外的计数器号由lpn和friend节点生成。使用friend security material加密的消息只能由拥有它的friend和lpn解密。
lpn和friend节点使用的两种security materials如何?总结如下:
与friend的securitymaterials加密的相应friendship消息是:
·friend poll
·friend update
·friend subscription listadd/remove/confirm
·存储friend节点传递给lpn的消息
使用master security material加密的相应的friendship消息是:
·friend清除
·friend清除确认
根据应用程序设置,从lpn发送到friend节点的消息将使用master或friend的安全资料进行加密。
终止友邻节点
在某些情况下可以终止friendship:
· 如果没有friend poll,friend subscription list add或friend subscription list remove消息在polltimeout计时器到期之前由friend节点收到,friendship终止。
· lpn可以通过将friend clear消息发送给friend节点来启动friendship终止过程,从而导致friendship节点被friend终止。
平台选择建议
开发人员在选择实施friend和lpn的平台时,应考虑以下准则:
· ram容量:可用的ram数量直接影响了friend节点可以支持多少个lpn,以及它可以为相关的lpn缓冲多少个消息。
· lpn:所选mcu和模块的一般功耗性能是lpn的关键。此外,从休眠模式到运行模式的唤醒/预热时间会影响lpn的响应速度和延迟。
作为一名开发人员,我相信我们可以分享您对蓝牙网状网络sdk的期待。然后我们可以一起分享蓝牙网状网络“友邻节点”!
腾讯在车联网安全领域的深入探索
就算惨淡时期的比特币,也挡不住民众的喜爱
华为倡议共划产业发展确定性,携手迈进5.5G时代
可穿戴崛起的开始
基于区块链技术的制造社群去中心化构建方法
一文读懂蓝牙网状网络什么是“友邻节点”与低功耗
2020年第三季度平板电脑市场出货量为4760万台
Redmi新机Redmi 8A将在本月正式亮相
TektronixTDS7104数字荧光示波器TDS7104
PADS Logic界面鼠标的使用介绍
小米6高通835首发 小米5C松果首发 小米平板3是个问题 雷军的手法高明
如何使用GoKit和GC211来实现4G网络的开发?
基于区块链技术的数据库应用平台ChainSQL介绍
小米汽车要来了?你会买吗?浅谈小米汽车的核心技术之汽车PCB线路板
AI商机全球抢 谁将最终获胜
单相异步电机外观不好看怎样处理呢?
IFA2015各大厂商智能手机现场评测汇总
iOS10.2正式版:漏洞汇总说明,看了别失望
思达科技冥王星一体化可靠性测试系统已开始接单出货
如何评估TI C2000系列微控制器程序的堆栈使用情况?