YD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.sydtek.com/

本文转载于:https://mp.weixin.qq.com/s/gKfLTSu2H0PnAki-8mPCFA

这里只是为了方便学习,绝无抄袭之意!

解密蓝牙mesh系列 | 第五篇

原创2017-09-22 任凯蓝牙技术联盟

 蓝牙mesh网络 

 友谊篇 

蓝牙技术联盟亚太区技术项目经理

任凯

低功耗蓝牙(Bluetooth Low Energy)是全球最具节能性的短距离无线通信技术之一。其低功耗的特性广受开发者和消费者赞誉。随着蓝牙mesh网络的推出,开发者可能想知道蓝牙mesh网络是否也被设计为低功耗,是否继承了低功耗蓝牙的这一优点?

答案当然是YES!

蓝牙mesh网络采取了多种优化功耗的措施,特别包括一项称为“friendship” (友谊)的特性。

概述

蓝牙mesh网络中“friendship”(友谊)特性的应用可能非常多样化。一些如照明功能的产品会与主电源(国家电网)相连接,那么相较于照明本身的功耗,蓝牙mesh模块的功耗就可忽略不计。但其他产品,如智能传感器或智能锁,就会在供电方式上功耗受限,这意味着它们需要通过小型电池或能量采集技术来供电。这些产品最有可能利用到蓝牙mesh网络的友谊概念。

第一篇| 第二篇

第三篇 | 第四篇

如果您阅读过我们蓝牙mesh网络系列之前的文章,那么您就知道节点(Node)是已经启动配置(Provision)并成为mesh网络中一员的设备。节点具有与其产品类型相关的功能,但也可具有与网络本身操作相关的功能并在其中扮演特定角色。而这取决于其所支持的mesh网络特性。所有节点都能够在网络中发送并接收mesh消息,此外还可以选择性地支持一个或多个其他网络特性,如下所列:

  • 中继(Relay)特性:通过广播承载层接收并重新发送mesh消息、以构建更大规模网络的能力。

  • 代理(Proxy)特性:在GATT和广播承载层之间接收并重新发送mesh消息的能力。

  • 低功耗(Low-Power)特性:能够以明显较低的接收端占空比在mesh网络中运行。通过将无线电接收器启用时间最小化可实现节点功耗的降低,只有在绝对必要时才启动接收器。低功耗节点(LPN)通过与好友(friend)节点建立友谊(friendship)关系来实现这一点。

  • 好友(Friend)特性:通过存储发往LPN的消息,仅在LPN明确发出请求时才进行转发来帮助LPN运行的能力。

要了解“友谊”是如何帮助LPN降低功耗的,我们可以先从传感器开始:传感器是一个很好的例子,它可以利用“友谊”,并被用作LPN。它们通常将绝大部分时间用于传输数据,且很少需要接收数据。传感器可能只有在温度超出一系列预设的限制时才会发送温度读数,而这种情况每天可能只会发生两次。正是这种不频繁的数据传输才使得此类设备的能耗使用维持在较低水平。

但如果需要根据季节将这些温度限制修改为不同的值,同时需要通过向传感器发送配置消息来实现这些限制的修改呢?传感器若想直接接收此类消息,就需要开启无线电进行收听。大多数时间它什么也接收不到,却在消耗能量。

因此,与好友节点的合作能够使低功耗节点(LPN)规划对无线电的使用,以适当或更低的频率接收消息而无需一直保持收听。低功耗节点会对好友节点进行轮询(Poll),查看是否有新消息(好友节点只会间或地对新消息进行存储)。功耗就是通过上述步骤得到节省的。

好友(Friend)和低功耗节点(LPN)

低功耗节点(LPN)必须与支持“好友”特性的另一节点建立“友谊”(friend)关系,以减少其接收器占空比(Duty Cycle)并节约能耗。图1来自蓝牙mesh配置文件规格,主要描绘了低功耗节点和好友节点之间的关系,具体如下:

浅蓝色:低功耗节点

深灰色:与特定低功耗节点相关联的好友节点

浅灰色:没有与低功耗节点建立关系的好友节点

图 1 - mesh网络的拓扑结构示例

好友节点P与低功耗节点 I、J和K为“友谊”关系。好友节点O与低功耗节点 L和M为“friendship”关系。因此,寻址到节点I、J或 K的消息将被好友节点P存储并转发。寻址至节点L或M的消息将被好友节点 O存储和转发。好友节点的转发仅在低功耗节点轮询好友节点以获得等待传送的消息时才会发生。

友谊(Friendship)参数

低功耗节点需要找到好友节点,与其建立“友谊”关系。所涉及的流程称为“友谊建立”。我们稍后会探讨此流程。在此之前,先介绍一些有关对LPN行为进行管理的关键参数,这些参数被设定于友谊建立过程中。

1. ReceiveDelay是从LPN向好友节点发送请求,到其开始收听响应中间经过的时间。这让好友节点有时间做好响应的准备,并将响应发回。

2. ReceiveWindow 是LPN用于收听响应的时间。图2描述了涉及ReceiveDelay和ReceiveWindow的时序。

图2 - ReceiveDelay和ReceiveWindow时序

3.PollTimeout设定了LPN发送给其好友节点的两个连续请求之间可能经过的最长时间。如果在PollTimeout计时器到时之前,好友节点未能收到LPN的请求,则友谊关系将被终止。

图 3 – PollTimeout时序

“友谊”建立

如果两个人想建立友谊,可能对视一眼就已足够!

但对于蓝牙mesh网络中“友谊”的建立,还需要经过更多的步骤。

  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”更新消息,完成“好友” 建立流程并提供安全参数。此时“友谊”得以建立。

友谊(Friendship)消息传送

友谊建立之后,好友节点将LPN的所有消息存储在“好友队列”(Friend Queue)中,这些消息就是我们所说的“ 被存储的消息 ”。下方的图4描绘的就是好友节点和关联LPN之间的消息交换。

  • 当好友节点收到一个寻址到该节点的LPN的消息时,好友节点会缓冲此消息,将其存储在称为“好友队列”的区域中。在图4中,我们可以看到,好友节点为LPN存储了消息1和2。

  • LPN会周期性地启用其收发器(transceiver),并向好友节点发送 “好友轮询” 消息,询问是否存储有任何为其缓冲的消息。

  • 好友节点会先将一个被存储的消息发回至LPN作为对“好友轮询”(Friend Poll)的响应。

  • 在每次接收到来自好友节点的消息之后,LPN会将继续发送“好友轮询”消息,直到收到一条“MD(MD =更多数据)”字段设置为0的“好友更新”消息为止。这意味着已经没有为LPN缓冲的更多消息了。此时,LPN停止对好友节点的轮询。

图 4 – “友谊”消息传递

安全性

蓝牙mesh中,安全性保障无处不在,“友谊”也如此,它采用两种特殊的安全证书:

  • 主安全资料(Master Security Material):由网络密钥(NetKey)派生,可被同一网络中的其他节点使用。使用主安全资料加密的消息可被同一网络中的任何节点解码。

  • 好友安全资料(Friend Security Material):由网络密钥(NetKey)、以及由低功耗节点(LPN)和好友节点生成的额外计数器号码派生而来。使用好友安全资料加密的消息只能由处理该消息的好友节点和LPN解码。

LPN和好友节点使用的两种安全资料是怎样的呢?总结如下:

使用好友安全材料加密的相应友谊消息:

  • 好友轮询(Friend Poll)

  • 好友更新(Friend Update)

  • 好友订阅列表(Friend Subscription List)添加/删除/确认好友节点发送至LPN的“被存储的消息”

使用主安全资料加密的相应友谊消息:

  • 好友清除(Friend Clear)

  • 好友清除确认(Friend Clear Confirm)

从LPN发送至好友节点的消息将根据应用设置,通过主安全资料或好友安全资料进行加密。

“友谊”终止

“友谊”可在某些情况下终止:

  • 如果在PollTimeout计时结束之前,好友节点未收到“ 好友轮询”、“好友订阅列表添加”或“好友订阅列表删除”消息,则友谊终止。

  • LPN可以通过将“好友清除”消息发送给好友节点,以启动友谊终止程序,“友谊”就会被好友节点终止。

平台选择小窍门

开发者在选择实施好友和LPN的平台时,应考虑遵循以下指南:

  • RAM容量:可用的RAM容量直接影响一个 好友节点可支持LPN的数量、及其可为相关LPN缓冲多少个消息。

  • LPN:所选MCU和模块的通用功耗性能对于LPN很关键。 此外,从休眠模式到运行模式的唤醒/预热时间会影响LPN的响应速度和延迟。

作为开发者,我像你们一样对蓝牙mesh SDK怀有热切的期望。让我们一同感受蓝牙mesh“ 友谊 ”的魅力吧!

截图:

转载 解密蓝牙mesh系列 | 第五篇 【好友(Friend)和低功耗节点(LPN)】【友谊(Friendship)参数】【友谊建立】【友谊(Friendship)消息传送】【安全性】【友谊终止】相关推荐

  1. 转载 解密蓝牙mesh系列 | 第七篇【低功耗蓝牙】【承载层(bearer layer)】【节点与特性】【代理节点(Proxy Node)】【蓝牙mesh代理服务】【发现代理节点】【代理协议】

    SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机.32位ARM Cortex-M0处理器.128kB Flash存储器.以及丰富的数字接口.SYD8801片上集成了 ...

  2. 蓝牙mesh — 解密蓝牙mesh系列文章汇总

    写在前面:转自"蓝牙技术联盟"微信公众号,只为方便学习~相信小码哥和凯哥会理解的~ (转载文章,如有不妥,通知后我会立即删除) 解密蓝牙mesh系列 往期回顾: 1.解密蓝牙mes ...

  3. 互联网神经学系列第五篇:研究大脑中的谷歌,脸书和华为思科路由,脑互联网生理学

    本文是互联网神经学系列第五篇-"大脑中的类互联网应用和结构,脑互联网生理学" 一.人类大脑研究的困境 大脑的秘密一直是科学皇冠上最明亮的宝石之一,但在两千年前,人们确连它的重要意义 ...

  4. 【云原生Kubernetes系列第五篇】kubeadm v1.20 部署K8S 集群架构(人生这道选择题,总会有遗憾)

    系列文章目录 ??即日起,更新云原生相关知识,喜欢的小伙伴可以给我点个三连喔 ??收录至专栏 云原生 ??[云原生Docker系列第一篇]Docker镜像管理 ??[云原生Docker系列第二篇]Do ...

  5. requests 获取div_爬虫系列第五篇 使用requests与BeautifulSoup爬取豆瓣图书Top250

    上一篇我们学习了BeautifulSoup的基本用法,本节我们使用它来爬取豆瓣图书Top250. 一.网页分析 我们爬取的网页的url是https://book.douban.com/top250?i ...

  6. Python金融系列第五篇:多元线性回归和残差分析

    作者:chen_h 微信号 & QQ:862251340 微信公众号:coderpai 第一篇:计算股票回报率,均值和方差 第二篇:简单线性回归 第三篇:随机变量和分布 第四篇:置信区间和假设 ...

  7. HPM6750系列--第五篇 使用Segger Embedded Studio for RISC-V开发环境

    一.目的 之前的博文中<HPM6750系列--第四篇 搭建Visual Studio Code开发调试环境>我们介绍了如何使用visual studio code进行开发调试,但是用起来总 ...

  8. 深入理解ajax系列第五篇——进度事件

    前面的话 一般地,使用readystatechange事件探测HTTP请求的完成.XHR2规范草案定义了进度事件Progress Events规范,XMLHttpRequest对象在请求的不同阶段触发 ...

  9. “睡服”面试官系列第五篇之proxy(建议收藏学习)

    目录 1. 概述 2. Proxy 实例的方法 2.1get() 2.2set() 2.3apply() 2.4has() 2.5construct() 2.7deleteProperty() 2.8 ...

最新文章

  1. 24招加速你的Python,超级实用!
  2. [Android学习笔记]LinearLayout布局,剩余空间的使用
  3. python 仿真_Python SimPy 仿真系列 (2)
  4. 天池 在线编程 滑动数独(滑动窗口)
  5. 【Angular 4】依赖注入
  6. 【转】知识图谱构建全过程
  7. 2018年计算机基础应用教程,全国计算机等级考试一级教程:计算机基础及Photoshop应用(2018年版)...
  8. 彼得林奇PEG价值选股策略(附源码入口)
  9. Go语言实用用法大全
  10. 安装的photoshop cs2为什么一进去就说我的用户名、组织、或序列号无效或错误???
  11. nginx获取第三方ngixn中请求头信息以及判断是否有参数的跳转地址
  12. X-Frame-Options响应头配置详解
  13. C语言main函数参数[转:C语言中文网]
  14. 开源项目——小Q聊天机器人V1.1
  15. Consumer raised exception, processing can restart if the connection factory supports it
  16. 拿起手术刀 深入剖解路由器的“心脏”技术
  17. java的默认访问权限_java类的访问权限
  18. 修改sep客户端服务器地址,SEP服务更改IP地址操作手册
  19. FPGA图像处理_中值滤波、均值滤波、极值滤波
  20. 基于c语言图像灰度拉伸算法实现,c语言实现图像灰度均衡化

热门文章

  1. Android - 批量发送短信的实现方式
  2. 换算rem的宽度和高度不生效 chrome字体最小为12px
  3. 2017web前端校招面试总结 - 陌陌技术保障组
  4. IDEA Windows + Mac 快捷键(全)
  5. 机器学习40讲-12正则化处理:收缩方法与边际化
  6. 关联规则:营销购物,自有乾坤
  7. 【UWB 定位】测距TOA 和 TDOA详解
  8. 使用跟踪查看器查看 ASP.NET 跟踪信息
  9. 薄膜收放卷张力控制问题
  10. 疫情下我离职一年,收入增长了10倍