问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

BLE低功耗蓝牙基础介绍

创作时间:
作者:
@小白创作中心

BLE低功耗蓝牙基础介绍

引用
CSDN
1.
https://blog.csdn.net/panjoys/article/details/138095517

低功耗蓝牙(BLE)技术自2010年发布以来,凭借其低功耗、高效率的特点,在智能家居、可穿戴设备、医疗健康等领域得到了广泛应用。本文将从背景介绍、通信规范组成以及协议栈架构三个方面,深入解析BLE技术的核心原理和应用场景。

一、背景介绍

蓝牙通信技术发布于2000年,最初创建的目的是允许两个设备无需任何中间网络设备的连接,通过无线通信的方式进行数据交换。这使得它很快就应用在无线鼠标和车载面提电话之类的产品上,在此之后就应用在了音频产品上。从最初版本的蓝牙通信技术开始,音频就作为它的杀手级应用,多年以来一直如此。

对于使用第一版蓝牙通信技术的蓝牙产品,一个更加正式的称呼为Bluetooth BR(Basic Rate——蓝牙基础速率),它的物理层速率为1Mbit/s。之后又定义了一个传输速率更快版本,叫作Bluetooth BR/EDR(Enhanced Data Rate——增强数据速率),它的传输速率增加到2Mbit/s,但是仍然设计为两个设备直接交换通信数据的用户场景。

Bluetooth LE(低功耗蓝牙)最初跟随蓝牙4.0一起发布,这是一个全新版本的蓝牙通信技术。与其说是替代它的前任Bluetooth BR/EDR,不如说是Bluetooth LE作为一个能力与素质并存的通信技术和Bluetooth BR/EDR一起完美的应用于新一代的产品。使得蓝牙通信技术有充分的能力来面对新的技术挑战和功能需求。

BLE除了支持两个设备之间点对点的通信拓扑之外,当它处于广播模式下还支持一对多的星形通信拓扑结构。它还可以作为蓝牙Mesh组网的基础,允许创建拥有成千上万个设备的网络,每个设备都可以和网络中的其他设备进行通信。两个设备之间点对点的通信包含面向连接的通信方式和无连接的通信方式,一对多的通信则采用无连接的广播方式。

最初设计BLE通信协议的一个目标是更加高效的使用电量。人们设想设备使用硬币大小的小型电池运行数天,数周或者更长的时间,这种提高能源效率需求就解释了BLE定义的许多特征。特别是,该设计为设备分配了不对称的功能和责任,旨在确保具有相对充足电源(例如大型智能手机电池)的设备比使用纽扣电池运行的对端设备承担更多的繁重工作。这些设计决策使得BLE成为了低功耗无线通信技术,并使其在接下来的几年中在多种类型的产品中得到广泛采用。

二、BLE通信规范的组成

要深入透彻地理解BLE,需要非常熟悉它的应用规范。BLE的架构、流程和协议由一项称为蓝牙核心规范的关键规范完整定义。 产品如何使用蓝牙实现交互,由称为配置和服务的两种特殊类型的规范集合所涵盖。 下图说明了BLE规范类型及其关系。

2.1 Bluetooth Core Specification(蓝牙核心规范)

蓝牙核心规范是BLE和经典蓝牙的主要规范。 它定义了蓝牙技术架构和层级关系以及描述了关键功能,与此同时还定义了支持重要操作的正式程序以及设备可以在协议栈的指定层进行通信的协议,这也导致了它是一个很大的规范。蓝牙核心规范定义了蓝牙技术的工作原理以及开发人员在实现蓝牙协议栈一项或多项功能时的要求。

详见:Bluetooth Core Specification 5.4

2.2 Profile Specifications(配置规范)

当两个BLE设备通过连接进行通信时,通常会形成客户端/服务端关系。 服务端包含状态数据,客户端以某种方式使用该数据。考虑一个蓝牙钥匙扣的使用场景,其目的是在您把钥匙放忘在了某个地方后帮助您找到钥匙。 智能手表可能充当客户端设备,而蓝牙钥匙扣则充当服务端。 按下智能手表显示屏上的按钮可以使得钥匙扣的状态发生变化,并且它会响应此变化而发出巨大的声音,以便您可以再次找到钥匙。

配置文件规范定义了相关设备(例如智能手表和钥匙扣)所承担的角色,特别是定义了客户端设备的行为以及它会用到的已连接服务端上的数据。在钥匙查找器示例中,智能手表或其他承担相同角色的设备的行为的定义就可以在配置规范里面找到。

2.3 Service Specifications(服务规范)

服务端的状态数据驻留在正式定义的数据项中,被称为characteristics(特征)和descriptors(描述符)。characteristics和descriptors被分组在称为services(服务)的构造内。 Services提供了一个上下文,可以在其中为其包含的characteristics和descriptors分配含义和行为。服务规范定义单个service及其包含的characteristics和descriptors。 服务规范中定义了设备响应各种条件和状态数据值而表现出的行为。服务规范可以被认为是定义服务端设备行为的一方面。在智能手表和钥匙扣示例中,钥匙扣充当服务端并实现了“立即报警服务”。

2.4 Assigned Numbers(分配号码)

BLE的各个方面都利用了唯一标识符。 例如,所有services、characteristics和descriptors都具有通用唯一标识符(UUID),该标识符标识与其相关的services、characteristics或descriptors的类型,而不是特定设备上的特定实例。 公司可以通过唯一的公司标识符来标识,这是某些配置文件所需要的。蓝牙 SIG 分配的标识符称为分配号码,此类标识符的完整列表可以从蓝牙 SIG 网站上的分配号码页面获取。

三、BLE协议栈概要

3.1 协议栈架构

BLE协议栈由多个层和功能模块组成,其中一些是强制性的一些是可选的。 协议栈的这些部分分布在称为Host(主机)和Controller(控制器)的两个主要架构模块上,并且标准逻辑接口定义了这两个组件之间的通信方式。Host通常类似于操作系统。 Controller通常是片上系统。 然而情况并非一定如此,蓝牙规范并不强制要求任何此类实现细节。 重要的是,Host和Controller在架构中充当独立的逻辑容器,可以以某种方式在物理上独立的组件中实现,并为它们之间的通信定义标准接口。 这使得蓝牙系统可以由来自不同制造商的Host和Controller组件组成。下图说明了BLE协议栈、它所包含的层级以及其在Host和Controller组件中的分布。

Host Controller Interface(HCI) 指示它们之间的逻辑接口,但本身并不是物理组件。 就底层物理传输而言,HCI 可以通过多种不同方式实现,但逻辑或功能接口始终相同。LC3 是低复杂度通信编解码器,是BLE音频使用的默认音频编解码器。 它不是标准BLE协议栈的一部分,但始终存在于B LE音频产品中,LC3 组件要么在host中实现,要么在controller中实现,如上图所示。BLE协议栈跨越 OSI 参考模型的所有层,而许多其他无线系统仅跨越 OSI 层的子集,例如物理层和数据链路层。 蓝牙技术作为全栈通信系统的一个优势是不存在对其他标准机构的外部依赖,这种依赖性会限制技术的发展。

蓝牙Mesh网络使用具有链路层和物理层的BLE控制器,而Host部分包含一组实现蓝牙Mesh网络协议和程序的替代层,如下图所示:

3.2 协议栈各层一览表

如下表所示,BLE协议栈各层的主要职责和功能总结如下:

主要职责
Physical Layer(物理层)
1. 定义了与Radio (RF 无线电) 使用相关的蓝牙技术的所有方面,包括调制方案、频段、信道使用、发射器和接收器特性。
2. 定义了几种不同的、受支持的物理层参数组合,并将其称为 PHY。
Link Layer(链路层)
1. 定义空中接口数据包格式、比特流处理程序(例如错误检查)、状态机以及空中通信和链路控制协议。
2. 定义了使用底层无线电进行无连接、面向连接和同步通信等称为逻辑传输的几种不同方式。
Isochronous Adaptation Layer(ISOAL 同步适配层)
1. 允许使用同步通信的设备使用不同的帧持续时间。
2. 对成帧 PDU或非成帧 PDU 进行分段和重组。
Host Controller Interface(HCI 主机控制器接口层)
提供明确定义的功能接口,用于Host和Controller之间的命令和数据的双向通信。支持若干种物理传输的实现方式
Logical Link Control and Adaptation Protocol(L2CAP 逻辑链路控制和适配层)
1. 充当Host内的协议多路复用器,确保协议由适当的Host组件提供服务。
2. 在 L2CAP 下层和上层之间执行 PDU/SDU 的分段和重组。
Security Manager Protocol(SMP 安全管理协议)
在执行配对等安全过程期间使用的协议。
Attribute Protocol(ATT 属性协议)
ATT 客户端和 ATT 服务端使用的协议,允许发现和使用服务端属性表中的数据。
Generic Attribute Profile(GATT 通用属性配置)
1. 根据属性表中的底层属性定义称为services、characteristics和descriptors的高级数据类型。
2. 定义使用 ATT 处理属性表的更高级别程序。
Generic Access Profile(GAP 通用访问配置)
1. 定义在非连接状态下可以使用的操作模式和过程,例如如何使用广播进行无连接通信以及如何执行设备发现。
2. 定义安全级别和模式。
3. 定义某些用户接口标准
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号