LV03-02-蓝牙Mesh基础-01-蓝牙Mesh简介
本文主要是蓝牙Mesh——蓝牙Mesh简介的相关笔记,若笔记中有错误或者不合适的地方,欢迎批评指正😃。
点击查看使用工具及版本
Windows版本 | windows11 |
Ubuntu版本 | Ubuntu22.04的64位版本 |
VMware® Workstation 16 Pro | 16.2.3 build-19376536 |
终端软件 | MobaXterm(Professional Edition v23.0 Build 5042 (license)) |
点击查看本文参考资料
分类 | 网址 | 说明 |
官方网站 | 阿里云 | 阿里云官网主页 |
阿里生活物联平台 | 生活物联网平台(飞燕平台)主页 | |
AliGenie | 天猫精灵开放平台AliGenie主页 | |
阿里物联网平台 | 阿里物联网平台主页 | |
Bluetooth 技术网站 | 蓝牙协议规范什么的可以来这里找 | |
Telink | Telink | Chips for a Smarter IoT (telink-semi.com) Telink中文官网 | |
开发手册 | AliOS Things开发指南 | AliOS Things开发指南,这里是最新版本,可以直接从官网找到 |
AliOS Things开发指南 | AliOS Things应用开发指南,这里应该是3.3版本的完整开发文档 | |
AliOS Things开发指南(3.0) | AliOS Things应用开发指南,这里应该是3.0版本的完整开发文档 | |
生活物联网平台开发文档 | 生活物联网平台(飞燕平台)开发文档 《设备端开发指南》 | |
Wi-Fi IoT品类定义与功能开发 | 天猫精灵IoT开放平台——Wi-Fi IoT品类定义与功能开发 | |
硬件平台 | mk3080 WiFi开发板 | WiFi开发板使用指南-阿里云开发者社区 |
esp8266开发板 | 一个教程:ESP8266-NodeMCU开发板详解-太极创客 (taichi-maker.com) | |
TLSR8258 Datasheet | Datasheet for Telink BLE + IEEE802.15.4 MultiStandard Wireless SoC TLSR8258 | |
参考资料 | AliOS Things 3.0 应用开发指南 | 这个只是一篇参考文章,里面是一些环境搭建相关的,可以参考 |
IP知识百科 - 华为 (huawei.com) | IP的一些相关知识点 |
点击查看相关文件下载
分类 | 网址 | 说明 |
蓝牙规范相关文档 | Core Specification 5.2 | 核心规格 5.2,该规范定义了创建可互操作的Bluetooth 设备所需的技术。 《Core_v5.2.pdf》 |
Mesh Model(v1.1) | 本Bluetooth 规范定义了模型(以及它们所需的状态和消息),这些模型用于在mesh 网络中的节点上执行基本功能,超出了Bluetooth Mesh 配置文件 规范中定义的基础模型。 本规范包括定义跨设备类型标准功能的通用模型,以及支持关键mesh 场景的模型,如照明控制、传感器、时间和场景。 《MshMDL_v1.1.pdf》 | |
Mesh Profile(v1.0.1) | 该Bluetooth 规范定义了基本要求,以实现可互操作的mesh 网络解决方案,用于Bluetooth 低能量无线技术。 《MshPRFv1.0.1.pdf》 | |
Mesh Device Properties | 本规范包含Bluetooth Mesh 配置文件 和Bluetooth Mesh 模型规范所要求的设备属性的定义。 但是跟之前的有些区别,我主要看的之前的版本:《MMeshDeviceProperties_v1.2.pdf》 | |
GATT Specification Supplement | GATT Specification Supplement | Bluetooth® Technology Website。 好像可以在线看:《GATT Specification Supplement》 | |
Assigned Numbers | GATT的一些类型定义可以在这里找。 | |
AliOS Things | alios-things/AliOS-Things | Gitee上的AliOSThings SDK源码仓库 |
alibaba/AliOS-Things | GitHub上的AliOSThings SDK源码仓库 | |
天猫精灵蓝牙Mesh协议栈 | alibaba-archive/genie-bt-mesh-stack | GitHub上的天猫精灵蓝牙Mesh协议栈源码仓库。 之前是在alibaba/genie-bt-mesh-stack这个仓库。 写笔记的时候最新提交为faf523618a6a2560090fc423222b9db80984bb7a |
蓝牙Mesh设备开发指南 | 阿里云生活服务平台开发手册——蓝牙设备开发一节中的内容 |
一、蓝牙Mesh简介
1. 什么是Mesh
1. 瓶颈的出现
在了解Mesh这个网络结构之前有必要先了解一下已面临瓶颈的传统局域网结构:
局域网的基本结构包括星型结构、环型结构、总线结构、分布式结构、树型结构等。最常见最广泛使用的星型结构是以中央节点作为核心,其他节点都连接至中央节点上,这种结构的成本较高、可靠性较低,但是其延迟小、结构简单便于管理。总线型结构则是各个网络设备都挂接在一条总线上,没有明显的中心,优点是结构简单、可扩展性好,但是缺点同样明显,比如维护困难、分支结构故障查找困难。为了在使用中更安全、更高效,目前绝大部分运行中的商用局域网都采用多种网络拓扑模式组合的方式,尽可能发挥局域网的性能并避免阻碍的产生。
对普通用户来说,我们一般不会去关心运营商机房应该怎么布置,能最直接接触到的局域网就是家庭、单位甚至小区的网络布置了。目前典型的局域网布置都采用星型结构或者多层星型结构,网络通过主路由器接入,再分配至各个分路由器,最后连接至不同的主机和设备上。这样的布线实现起来比较简单,并且所需的线缆数量也比较少。这样的布置方式和布置思想横跨了有线和无线时代,比如在家庭中,用户会从电信、联通等网络服务商处接入网络,再通过无线路由器转出多路信号或者无线信号供家中的多个有线、无线设备使用,这也是一个典型的星形结构。
家用网络一般使用最常见的星型结构拓扑
星型结构、总线型结构等局域网拓扑结构的发展,带来了互联网的大爆发,但是其固有的缺陷却一直无法避免,比如数据中心的安全性和可靠性、总线型布置维护难度等。虽然技术人员已经通过各种手段加强了传统局域网结构,甚至使用了复合拓扑结构,但由于固有的问题没有得到解决,人们的体验依旧难以得到保证。
为突破传统局域网结构的瓶颈,最近几年,一种并不新鲜但由于技术限制一直未被重视的网络拓扑结构就走上了前台,这就是Mesh——网状网络结构。
典型Mesh(网状网络)结构
说起Mesh这个单词,英文含义非常简单,就是网、网格、网状物。从它的基本定义来讲,网状网络的拓扑结构是:网络中所有的节点都互相连接,并且每一个节点至少连接其他两个节点,所有的节点之间形成一个整体的网络。在有线时代,由于网线的存在,要实现Mesh布局的网络显得非常困难。不过在无线时代,由于脱离了网线的羁绊,再通过各种全新技术的应用,无线Mesh网络的布局就显得相对容易了。
1.2 Mesh组网是什么?
Mesh是一种多节点、无中心、自组织的无线多跳通信网络(注:当前也有部分厂家及应用市场引出了有线Mesh及混合互联:即有线+无线的概念,但我们这里主要讨论传统无线Mesh,因为在很多特殊应用场景下,是不具备布线条件或者说布线起来十分困难且使用不便的),网络中的任何无线设备节点都可以作为路由器发送和接收信号,并且都能以任意方式动态地保持与其他单个或多个节点的连接通信。无线Mesh可以与其它网络协同通信,以解决有线网络覆盖不到的绝大部分区域的通信问题。
1.3 无线Mesh特点
- 从网络拓扑结构来看,无线Mesh网络具有如下特点:
节点互联互通:局域网中所有的节点都是连接在一起的,任意两个节点之间拥有多条连接通道,并且呈现出明显的去中心化态势。由包括一组呈网状分布的无线AP构成,AP均采用点对点方式通过无线中继链路互联,将传统WLAN中的无线“热点”扩展为真正大面积覆盖的无线“热区”。
自配置:无线Mesh网中AP具备自动配置和集中管理能力,简化了网络的管理维护。
自愈合:无线Mesh网中AP具备自动发现和冬天路由连接,消除单点故障对业务的影响,提供冗余路径。
高带宽:将传统WLAN的“热点”覆盖扩展为更大范围的“热区”覆盖,消除原有的WLAN随距离增加导致的带宽下降。另外,采用Mesh结构的系统,信号能够避开障碍物的干扰,使信号传送畅通无阻,消除盲区。
高利用率:高利用率是Mesh网络的另一个技术优势。在单跳网络中,一个固定的AP被多个设备共享使用,随着网络设备的增多,AP的通讯网络可用率会大大下降。而在Mesh网络中,由于每个节点都是AP,根本不会发生此类问题,一旦某个AP可用率下降,数据将会自动重新选择一个AP进行传输。
兼容性:Mesh采用标准的802.11b/g/n/ac制式,可广泛地兼容无线客户终端。
- 从应用的角度来看,无线Mesh网络的优势也是非常明显的:
部署速度快,安装简单
无线Mesh网络的部署速度快、安装难度低。由于通过无线方式传输数据,用户只要将设备从包装盒中取出并连上电源后,进入配置页面即可。这是因为在无线Mesh网络中,除了少部分节点设备需要网线和AP连接外,绝大部分设备都只需要一根电源线,不需要网线和AP连接,所有数据都是无线传输的。这样一来,不但大大节约了连接速度,还降低了有线布局的难度,非常方便。
无线Mesh网络的健壮性表现出色
我们知道,目前常见的局域网中,所有的数据都接入到单一的AP中进行收发。在一个局域网中,如果存在一个中心AP的话,由于数据传输的道路只有一条,因此在实际使用中很容易造成数据堵塞或者失效(比如AP连接断开或者设备损坏等)。但是在无线Mesh网络中,由于其多跳网络的特性,一个节点可以连接至少两个其他的节点,当某一个节点堵塞或者无响应时,无线Mesh网络可以根据情况选择其他的节点进行数据转播。换句话来说,就是无线Mesh网络拥有至少一条备用路径,因此在数据传输的可靠性上非常高。
实现非视距传输
无线Mesh网络的另一个特点是能够提供非视距传输。所谓非视距传输,是指在对原始信号覆盖范围外的区域提供传输功能。这也很好理解,因为每一个节点都拥有同时接收和发送的特性,相当于在一定程度上扩大了网络的覆盖范围。举例来说,传统的网络只有一个数据发送节点,就是连接AP的中心节点,在中心节点覆盖范围内,数据发送和传输是有效的,但是距离变远之后就无效了。
在无线Mesh网络中,每一个节点都相当于一个中继器,相当于扩大了数据覆盖的范围,能够为连接AP的节点视距之外的用户提供网络,大幅度提高了无线网络的应用领域和覆盖范围。
结构灵活
其实结构灵活这一点和健壮性是有关联的,即不存在数据堵塞或者节点失效等情况。当无线Mesh网络中两个节点之间需要传递数据时,节点可以根据连接情况和响应情况,自动选择响应时间最快、传输速度最高的转发路径,避免了节点通信堵塞。甚至对一些拥有极高权限的节点来说,可以同时选择多个节点并发传输数据至多个目标,大大节约了数据传输时间,提高了效率。
高带宽高传输效能
带宽永远是一个难以解决的问题。因为无线通讯的特性所致,只有传输距离较短的时候,带宽才容易提升。但是数据的传输距离又和信号强弱紧密相关,而传统的单中心方式覆盖面积是有限的。由于无线Mesh网络非视距传输的特性,信号覆盖更好、强度更高,更容易实现总带宽的提升。另外,同样是由于节点中继的作用,无线Mesh网络信号覆盖出色,因此传输所需功率降低,对节能也有一定帮助。
无线Mesh网络大幅提升信号覆盖范围
从上面的介绍不难看出,无线Mesh网络的优点非常突出,它能解决目前常见的星型结构局域网、总线结构局域网的问题,还能拓展出更多涉及安全性、稳定性和高带宽等方面的功能。如果能应用到新的无线网络产品上,有望引领网络技术的进一步发展,实现更高的传输速度、更广泛的信号覆盖。
无线Mesh网络无论是技术还是原理,都要好过目前我们使用的无线技术。在覆盖面积、性能等关键性指标上,无线Mesh网络依靠先天的结构优势,带来了极好的网络覆盖效果,其发展前景被广泛看好!
2. 蓝牙、WiFi与zigbee
在智能家居方面,WiFi的表现是很好的,但是,他有一个缺点,就是功耗很高,而且需要接入电源。在低功耗方面,蓝牙和zigbee的表现会明显好于WiFi。zigbee功耗非常低,而且组网的话理论上最多可以有0xFFFF个设备,但是实际上并不会有这么多,可能就是100多个左右吧,而且它的传输速率很低。蓝牙的功耗也很低,它的传输速率会高的多,但是,它组网的时候,一开始最多支持8个设备,通信距离也比较短。
这个时候看起来zigbee除了传输速度,各方面其实都会比蓝牙好得多,蓝牙的地位就非常尴尬了。但是这个时候,蓝牙升级到5.0版本了,在这一版本及之后的版本,蓝牙都支持低功耗和Mesh。支持了Mesh组网的蓝牙,在原来劣势的地方都超过了zigbee,比zigbee更强,理论组网设备数可达无穷大。
3. 什么是蓝牙Mesh?
简单来说,蓝牙Mesh是一种新的网络技术,能够与多个节点之间建立通信。注意:它并不是一种新的无线技术。
在官网(Bluetooth® Mesh |Bluetooth® 技术网站)是这样介绍的:Bluetooth Mesh 非常适合需要成百上千台设备相互通信的控制、监控和自动化系统。Bluetooth Mesh 是专为满足商业和工业环境的严格要求而设计的,在这些环境中,部署的便捷性、性能和安全性至关重要。网络化照明控制是Bluetooth Mesh 技术迅速普及的一个应用案例。
低功耗蓝牙(BLE)作为一种无线通讯技术,能够在超低功耗下实现数据的可靠传输,其背后依托于蓝牙2.4G的跳频技术(目前蓝牙已经发展到5.2版本,其跳频技术也从一种变成两种)。蓝牙Mesh为了实现节点之间的相互通信(去中心化),借助了蓝牙的广播扫描机制(代理机制属于蓝牙Mesh网络中的边缘节点),也就是说,蓝牙Mesh是以广播的形式进行数据发送,而其他节点通过扫描来接受数据。
4. 为什么使用蓝牙Mesh?
4.1 易于部署
借助Bluetooth Mesh技术,安装人员可以使用调试应用程序直接与Bluetooth Mesh 网络上的节点进行通信,无需专业工程知识或互联网和云平台来支持系统的安装和运行。此外,远程配置功能使添加新设备或更改现有设备变得更加容易。
4.2 可靠和可扩展的性能
Bluetooth Mesh 是专为大规模无线网络部署而设计的。Bluetooth Mesh 与其他无线网络技术相比,有三个主要特点,可提供安装人员、楼宇经理和最终用户在商业和工业安装中所需的弹性。
- 基于Bluetooth Mesh 的控制系统不需要集中式控制器,因为智能分布在所有终端设备上。分散式控制架构可使系统以更低的成本实现更大的规模、可靠性和性能。
- 独特的发布/订阅寻址方法能够大大减少网络上的信息收发流量,从而实现更大的网络规模和更高的性能。
- Bluetooth Mesh 为信息中继提供多种选择。托管洪泛(Managed Flood)可通过多跳提供可靠的多路径信息传递。定向转发提高了可扩展性,可在最复杂的大规模mesh 网络中提高信息传递效率。
4.3 强制性多级安全
Bluetooth Mesh 的设计将安全性作为重中之重,提供工业级安全保护,可抵御所有已知攻击。
- 必须提供覆盖整个设备网络和各种设备分组的全面安全保障。
- 还可提供其他功能,以进一步提高安全性和网络设备隐私性。
- Bluetooth Mesh 安全架构是开放的,可供公众审查。
二、蓝牙Mesh网络模型
三、蓝牙Mesh的灵活度
1. 四大节点
蓝牙Mesh的灵活度体现在它有四种节点:
未配网设备在配好网,被纳入网络后,可称之为节点。蓝牙mesh网络中,节点可以有选择地支持四大功能——朋友、低功耗、转发、代理功能。对应功能的节点就被称为代理节点、低功耗节点、转发节点和朋友节点。
代理节点(Proxy):可以实现通过手机APP对其配网,可以连接到手机。我们要想操作某一个IOT蓝牙设备,我们是不能直接使用手机把消息发给IOT设备的,需要通过代理节点转发数据,这是因为蓝牙Mesh网络的数据是不可被发现,不可被连接的。
低功耗节点(Low-Power):我们可以理解为那种带纽扣电池的,功耗非常低的设备。就比如自动窗帘,我们就使用的时候激活一下,剩下的时间可能都在待机,所以功耗就会很低很低。
转发节点(Relay):通过广播承载层接收并重新发送mesh消息、以构建更大规模网络的能力。
朋友节点(Friend):结合低功耗节点使用。低功耗节点的低功耗,一部分要归功于朋友节点,朋友节点可以说是包揽了低功耗节点的消息“接收”功能。就像“菜鸟驿站”和“收件人”,在消息传递给与朋友节点相连的低功耗节点时,朋友节点会先代收(菜鸟驿站收到包裹),再由低功耗节点定时询问朋友节点是否有消息,有则接收(收件人去取件),没有就下次再说。这就给低功耗节点节省了功耗,不用时刻去抓取广播层中的数据,查看是否是发给自己的(收件人有自己的学习工作,不用不停地查询是否有包裹)。