谷动谷力

 找回密码
 立即注册
查看: 1318|回复: 0
打印 上一主题 下一主题
收起左侧

AliOS Things SIG BLE Mesh网络的介绍和搭建

[复制链接]
跳转到指定楼层
楼主
发表于 2022-2-26 23:41:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AliOS Things SIG BLE Mesh网络的介绍和搭建


摘要: 在最新的版本(1.2.1)中,AliOS Things 开始支持SIG BLE mesh。本文对SIG BLE mesh及如何使用AliOS Things搭建BLE mesh网络进行了详细的说明。

点此查看原文:http://click.aliyun.com/m/42946/

在最新的版本(1.2.1)中,AliOS Things 开始支持SIG BLE mesh。目前,SIG BLE mesh还处于起步阶段,能够查找到的材料里面对于如何一步一步搭建SIG BLE mesh,并部署应用的案例并不多,且不够详尽。本文首先介绍SIG BLE mesh;然后详细介绍如何使用AliOS Things SIG BLE mesh搭建传感监测网络;最后,分析SIG BLE mesh使用过程中遇到的问题,并提出解决办法。

SIG BLE mesh介绍

SIG BLE mesh是随着BLE 5.0一起发布的标准,但它与BLE 5.0并没有强绑定的关系,在BLE 4.2的芯片上也能够工作。BLE mesh的推出扩展了BLE技术的拓扑选项,由原来支持的点到点和广播,扩展到可以支持更加灵活与自组织的mesh网络,目前主要的应用场景是智能照明。

网络的拓扑和节点


图片源自[1]

SIG BLE mesh的拓扑是全连通的mesh网络。链路主要包括两种类型,一种是广播链路,另外一种是GATT (Generic Attribute Profile)链路。GATT链路主要是为了兼容不支持广播链路的节点加入mesh网络设计。

节点包括四种类型:普通节点,中继节点,朋友节点,和低功耗节点。中继节点是具有数据转发能力的节点。朋友节点是低功耗节点的朋友。低功耗节点的所有数据都需要朋友节点帮助发送和接收,来实现低功耗节点在一段时间能够进入休眠状态的目的。目前,低功耗节点只能够是叶子节点。

协议栈结构


图片源自[1]

在标准中,BLE mesh协议栈被分为了很多层,简化版本应该可以分为两层,一层是和应用业务相关,另一层是和网络链路相关。标准中,将每层进行了非常细致的功能细化。网络链路相关细分为了以下层次:

Access Layer: 主要定义了上层应用业务层次如何使用网络传输的能力

Upper Transport Layer: 主要定义了数据的加解密,及基本数据传输功能

Lower Transport Layer: 主要定义了数据的分包与组包逻辑

Network Layer: 定义了数据的寻址与转发

Bearer Layer: 定义了如何利用核心层在点到点设备之间传输数据

Provisioning

SIG BLE mesh需要一个特殊的节点完成网络的配置,这个节点是provisioner。provisioner通常是手机或者一个联网设备。目前开源可以直接使用的provisioner有Bluez meshctl工具。

Provisioning主要功能是节点认证,配网和传输网络配置信息到节点。主要交互包括: beaconing,发出邀请,交换公钥,认证,和分发provisioning data。provisioning成功后,SIG BLE mesh网络链路即建立完成,网络节点之间可以收发数据。

在provisioning完成后,还需要再次建立连接,用于传输应用相关的配置信息,包括: 应用层使用的密钥,绑定使用的model,及配置这些model (如数据发送次数与周期等)。配置完成后,应用业务逻辑即开始工作。

关于SIG BLE mesh标准相关内容,可以移步SIG下载,https://www.bluetooth.com/specifications/mesh-specifications

AliOS Things SIG BLE mesh网络搭建

硬件环境

Raspberry PI3一块

乐鑫ESP32 Devkitc两块

微雪NRF51822开发板两块



ESP32和NRF51822开发板跳线图



软件环境

Raspberry PI kernel
为了能够运行Bluez meshctl工具,需要更改Raspberrian默认的安全加密加密相关配置,需要重新编译kernel。

json-c
json-c主要作用是解析meshctl所需的网络相关配置文件。

Bluez
Bluez是Linux的蓝牙协议栈,这里我们使用的是5.48版本。主要使用meshctl工具作为provisioner。

Bluetooth controller
烧录在nrf51822上作为controller使用。

Server端和Client端应用程序
烧录在ESP32上,和nrf51822组合在一起作为BLE mesh节点使用。

传感数据监测网络

传感监测网络包括三种角色,provisioner,server和client。provisioner是网络的配置者,server是传感信息的发布者,client是传感信息的订阅者。

使用AliOS Things一步一步搭建SIG BLE mesh网络指南,请移步https://github.com/alibaba/AliOS ... E-mesh-Setup-Guides

一些想法和解决方案

在开发和使用AliOS Things搭建SIG BLE mesh网络过程中,主要遇到的痛点是配网不方便,和低功耗支持。

目前,SIG BLE mesh需要使用provisioner逐个配置网络节点,有时候还可能由于网络不稳定导致失败。这样当街点规模较大时,即使是配置一遍,也是一件足够头痛的事情。我们正在做的一件事情是将AliOS Things uMesh网络自动认证的能力赋能给BLE mesh,使得SIG BLE mesh网络的配置更加方便和高效。

另一方面,目前SIG BLE mesh除了叶子节点,其余节点都需要保证100%的监听时间,其实已经不再是低功耗了,我们另外正在做的意见事情是将正在开发中的AliOS Things uMesh低功耗网络的能力赋能给BLE mesh,降低BLE mesh的功耗。

最后,我们会增加更多的硬件平台支持,方便开发者快速建立自己的业务应用。敬请期待,更多内容请移步https://github.com/alibaba/AliOS-Things

References:
[1] Bluetooth Specification Mesh Profile v1.0


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|深圳市光明谷科技有限公司|光明谷商城|Sunshine Silicon Corpporation ( 粤ICP备14060730号|Sitemap

GMT+8, 2024-4-20 20:55 , Processed in 0.160510 second(s), 35 queries .

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表