低功耗蓝牙(BLE)基础
低功耗蓝牙(Bluetooth Low Energy,简称BLE)是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。以下是对低功耗蓝牙基础的详细介绍:
一、技术背景与发展
蓝牙通信技术最初发布于2000年,目的是允许两个设备无需任何中间网络设备的连接,通过无线通信的方式进行数据交换。
蓝牙技术经历了多个版本的迭代,从最初的BR(Basic Rate,基础速率)到EDR(Enhanced Data Rate,增强数据速率),再到BLE的引入,都是为了满足不断变化的市场需求和技术挑战。
BLE作为蓝牙4.0规范的一部分于2010年推出,针对超低功耗应用进行了优化。
二、主要特点
低功耗:BLE的主要特点是低功耗,这使得它在需要长时间运行的电池供电设备中非常受欢迎。通过智能地管理无线传输和采用节能技术,BLE设备能够在保持连接的同时最大限度地延长电池寿命。
短距离通信:BLE是一种短距离无线连接技术,适用于设备之间的近距离通信。它的通信范围通常在几米到几十米之间,这取决于设备的发射功率和接收灵敏度。
低成本:BLE技术的引入降低了蓝牙设备的成本,使得更多类型的设备能够采用蓝牙技术进行通信。
三、工作原理与技术细节
调制方式:BLE采用2GFSK-BT0.5的调制方式,这是一种在移动通信、航空与航海通信等领域广泛应用的调制方式。它通过使用高斯低通滤波器来限制调变后的信号频谱宽度,从而实现高效的频谱利用和功率消耗。
中心频点与信道:BLE的工作频道为2.4GHz~2.4835GHz,共有40个信道,每个信道带宽为2MHz。其中,37、38、39三个信道被指定为主要广告信道,用于设备发现和连接建立。
通信方式:BLE支持两种通信方式:无连接通信和面向连接的通信。无连接通信通过广播数据包将信息发送给任何监听设备,而面向连接的通信则通过建立专用连接并使用客户端-服务器机制进行通信。
跳频技术:为了解决信道干扰的问题,BLE采用跳频技术。这意味着BLE设备会在不同的信道上按照一定的规律进行通信,从而减少数据传输时产生的干扰。
BLE(Bluetooth Low Energy,低功耗蓝牙)的通信模型主要基于GATT(Generic Attribute Profile,通用属性配置文件)协议。GATT是BLE技术的核心协议之一,它定义了如何在BLE连接中交换所有配置文件和用户数据。在GATT模型中,主要涉及两个角色:GATT Server(服务器)和GATT Client(客户端)。
GATT Server(服务器)

功能:负责存储并提供用户数据给客户端,数据以属性的形式组织。这些属性包括服务(Service)、特征(Characteristic)和描述符(Descriptor)。
特点:
通常是被连接的设备,进行广播以吸引客户端的连接。
存储属性,并接收来自客户端的ATT(Attribute Protocol,属性协议)请求、命令和确认。
在配置为这样做时,可以发送服务器发起的更新。
GATT Client(客户端)
功能:负责请求和接收来自服务器的数据。客户端通过发送ATT请求来读取、写入或订阅服务器的属性。
特点:
通常是进行扫描的设备,主动寻找并连接服务器。
在连接建立后,通过执行服务发现来了解服务器的属性存在和性质。
可以读取和写入服务器中找到的属性,并接收服务器发起的更新。
GATT通信流程
设备发现:客户端通过扫描来发现周围的BLE设备,并找到想要连接的GATT服务器。
连接建立:一旦找到服务器,客户端会尝试与其建立连接。这通常涉及一系列的握手和认证过程。
服务发现:连接建立后,客户端会执行服务发现过程,以了解服务器上可用的服务和特征。
数据交换:客户端可以读取、写入或订阅服务器的特征值。这通常涉及发送ATT请求并接收服务器的响应。
断开连接:当不再需要通信时,客户端可以断开与服务器的连接。

核心概念:服务(Service)、特征值(Characteristic)、描述符(Descriptor)
在BLE(Bluetooth Low Energy,低功耗蓝牙)技术中,服务(Service)、特征值(Characteristic)和描述符(Descriptor)是三个核心概念。它们共同构成了BLE设备间通信的基础框架。以下是对这三个概念的详细解释:
服务(Service)
定义:服务是BLE设备提供的一组相关数据和操作的集合。每个服务都有一个唯一的UUID(Universally Unique Identifier,通用唯一识别码)来标识其身份。
功能:服务代表了BLE设备的一个特定功能或数据集,例如心率监测、电池电量显示等。
分类:服务可以分为主要服务(Primary Service)和次要服务(Secondary Service)。主要服务是设备的主要功能,而次要服务则是附加功能。
特征值(Characteristic)
定义:特征值是BLE服务中的一个数据点或状态信息。每个特征值也有一个唯一的UUID。
功能:特征值包含了服务的具体数据或状态信息,可以被读取、写入或监听。例如,心率服务的特征值可能包含心率值。
组成:特征值通常由声明(Declaration)、值(Value)和可选的描述符(Descriptor)组成。声明部分包含特征值的UUID、属性(如读、写、通知等)以及值的长度等信息。值部分是实际的数据内容。
描述符(Descriptor)
定义:描述符是用于描述特征值的额外信息或元数据。它提供了关于特征值如何被使用或解释的详细信息。
功能:描述符帮助用户或应用程序更好地理解特征值的作用和如何使用它。例如,描述符可以包含特征值的单位、范围或格式等信息。
存在性:描述符是可选的,不是每个特征值都必须有描述符。
关系与交互
服务与特征值的关系:一个BLE设备可以提供多个服务,每个服务包含多个特征值。这些特征值代表了服务的具体数据或状态信息。
特征值与描述符的关系:特征值可以附带一个或多个描述符。描述符提供了关于特征值的额外信息,有助于用户或应用程序正确地解释和使用特征值。
交互方式:BLE设备间的通信通常是通过客户端(如智能手机)和服务器(如BLE传感器)之间的交互来实现的。客户端通过读取、写入或监听服务器上的特征值来获取数据或控制设备。描述符在这个过程中提供了关于特征值的额外上下文信息。
服务、特征值和描述符共同构成了BLE技术的核心概念框架。它们之间的紧密关系使得BLE设备能够以低功耗的方式实现高效、可靠的通信和数据交换。
经典蓝牙(Bluetooth Classic)概述
经典蓝牙的工作模式
经典蓝牙的工作模式涵盖了不同的符号速率和通信需求,主要包括以下几种:
BR(Basic Rate,基本速率)模式:
符号速率较低,适用于基本的语音和数据通信。
采用GFSK(Gaussian Frequency Shift Keying,高斯频移键控)调制方式。
EDR(Enhanced Data Rate,增强数据速率)模式:
提供比BR模式更高的数据传输速率。
包括EDR 2M和EDR 3M等不同速率版本。
采用更高效的调制方式,如π/4-DQPSK(Differential Quadrature Phase Shift Keying,差分正交相移键控)和8DPSK(8-ary Differential Phase Shift Keying,8进制差分相移键控)。
这些工作模式允许经典蓝牙设备在不同的应用场景中实现灵活的通信,从基本的语音通话到高速数据传输均可满足。
经典蓝牙的协议栈
经典蓝牙的协议栈遵循开放系统互连参考模型(OSI/RM),从低到高定义了各个层次,以确保不同设备之间的互操作性。完整的经典蓝牙协议栈主要包括以下几个层次:
物理层(Physical Layer):
负责蓝牙设备之间的射频连接和物理信道的建立。
定义了工作频段、发射功率、调制方式等物理特性。
链路层(Link Layer):
负责建立、维护和终止蓝牙设备之间的连接。
提供了面向连接(SCO)和无连接(ACL)两种类型的连接。
实现了基带协议(BaseBand Protocol)和链路管理协议(LMP,Link Management Protocol)。
网络层(Network Layer,对应L2CAP):
在链路层之上提供了逻辑链路控制和适配服务。
实现了逻辑链路控制和适配协议(L2CAP,Logical Link Control and Adaptation Protocol)。
支持数据分割、重组和多路复用等功能。
传输层(Transport Layer,可选):
提供了数据传输的可靠性、流量控制和错误恢复机制。
在经典蓝牙中,传输层不是必需的,但可以根据应用需求进行实现。
会话层(Session Layer,对应RFCOMM等):
提供了串行通信的仿真,使得传统串行设备可以通过蓝牙进行互连。
实现了RFCOMM(Radio Frequency Communication)等协议。
表示层(Presentation Layer,可选):
负责数据的格式化和编码转换,以确保不同设备之间的数据兼容性。
在经典蓝牙中,表示层通常不是必需的,但可以根据特定应用需求进行实现。
应用层(Application Layer):
包含了各种蓝牙应用和服务,如语音通信、文件传输、设备控制等。
定义了服务发现协议(SDP,Service Discovery Protocol)等用于发现和访问蓝牙服务的协议。
此外,经典蓝牙协议栈还包括主机控制器接口(HCI,Host Controller Interface),它为基带控制器、连接管理器、硬件状态和控制寄存器提供命令接口,实现了主机与蓝牙控制器之间的通信。
经典蓝牙与BLE的主要区别
经典蓝牙(Bluetooth Classic)与BLE(Bluetooth Low Energy,低功耗蓝牙)是蓝牙技术的两种主要模式,它们在多个方面存在显著的区别。以下是两者的主要差异:
一、功耗
经典蓝牙:功耗相对较高,因为它需要更多的能量来支持高速数据传输和稳定的连接。这使得经典蓝牙更适合用于那些需要持续数据传输的设备,但可能不太适合需要长时间运行且无法频繁更换电池的设备。
BLE:设计目标是显著降低设备的功耗,使得小型电池可以使用更长的时间。BLE通过减少设备处于活动状态的时间来大幅降低功耗,因此非常适合电池供电的设备,如智能手表、健身追踪器等需要长时间待机的设备。
二、数据传输速率
经典蓝牙:具有较高的传输速率,通常可以达到1-3 Mbps,更适合需要高带宽的应用,如音频流、文件传输等。
BLE:传输速率较低,通常在1 Mbps以下(BLE 5.0版本可以提升到2 Mbps),但对于一些低带宽的应用来说已经足够,如传感器数据、状态更新等。
三、通信距离
经典蓝牙:通信距离较远,通常可以达到几十米,甚至在某些情况下可能更远(视具体设备和环境条件而定)。这使得经典蓝牙适合需要更大覆盖范围的应用。
BLE:通信距离相对较短,一般在几米到十几米之间(BLE的通信距离也可能因版本和具体实现而异,但通常不会超过经典蓝牙)。这限制了BLE在某些需要远距离通信的应用中的使用。
四、连接方式和延迟
经典蓝牙:通常采用配对(pairing)方式建立连接,用户需要在两个设备之间建立一个持久的连接。连接和通信延迟可能较长,不太适合需要快速响应的应用。
BLE:引入了一种称为“广播”的新模式,设备可以在不建立持久连接的情况下传输数据。这使得BLE更适合需要频繁广播小数据包的应用,如信标(Beacon)和物联网(IoT)设备。同时,BLE的连接和通信延迟较短,更适合实时性要求较高的应用。
五、应用场景
经典蓝牙:广泛应用于需要高带宽、稳定连接的场景,如无线耳机、音箱、游戏控制器和车载系统等。
BLE:主要应用于需要长时间待机且数据传输量小的设备,如穿戴设备(智能手表、手环)、健康监测设备(心率带、血糖仪)、智能家居设备(门锁、灯泡)和IoT设备等。
六、兼容性和生态系统
经典蓝牙:技术已经非常成熟,广泛应用于各种消费电子设备中,兼容性较好。在音频传输领域,经典蓝牙已经形成了较为完善的生态系统。
BLE:尽管BLE与传统蓝牙在某些方面存在差异,但BLE设备通常能够兼容传统蓝牙设备(尤其是在蓝牙4.0及更高版本之后,很多设备都支持双模蓝牙,即同时支持经典蓝牙和BLE)。这使得BLE能够在不破坏现有生态系统的情况下逐渐普及和发展。
经典蓝牙与BLE在功耗、数据传输速率、通信距离、连接方式和延迟、应用场景以及兼容性和生态系统等方面存在显著差异。根据具体的应用需求选择合适的蓝牙技术模式对于实现最佳的无线通信效果至关重要。