蓝牙通讯入门必知
📌 1. 蓝牙技术与双模概述
蓝牙最初是为替代有线数据线而设计的短距离无线通信技术,经历了多个版本的演进。
- 经典蓝牙(BR/EDR):主要用于大数据量、低延时的应用,如音频、视频传输、外设连接(键盘、鼠标、耳机等)。
- 低功耗蓝牙(BLE):自蓝牙4.0起引入,专注于低功耗、短数据传输、适合物联网、可穿戴设备等应用。
在蓝牙5.3中,很多芯片都采用了双模设计,即在同一芯片内集成了经典蓝牙与BLE两套协议栈,使得设备既能实现高带宽的传统数据传输,又能在低功耗场景下工作。这种双模设计大大提高了应用的灵活性和兼容性。
以下是从蓝牙1.0到蓝牙5.4各版本的功能及更新内容的对比表格:
蓝牙版本 | 发布年份 | 最大传输速度 | 最大范围 | 主要更新内容 |
---|---|---|---|---|
蓝牙1.0 | 1999 | 1 Mbps | 10米 | 奠定蓝牙技术基础,实现基本的无线连接。 |
蓝牙1.1 | 2001 | 1 Mbps | 10米 | 修复蓝牙1.0的兼容性问题,提高连接稳定性。 |
蓝牙1.2 | 2003 | 1 Mbps | 10米 | 引入自适应跳频(AFH)技术,减少干扰。 |
蓝牙2.0 | 2004 | 3 Mbps | 10米 | 引入增强数据速率(EDR)技术,提高传输速度和功耗效率。 |
蓝牙2.1 | 2007 | 3 Mbps | 10米 | 简化配对过程,引入NFC集成,降低功耗。 |
蓝牙3.0 | 2009 | 24 Mbps | 10米 | 引入高速(HS)技术,提高数据传输速率。 |
蓝牙4.0 | 2010 | 1 Mbps (LE) / 3 Mbps (EDR) | 60米 | 引入低功耗蓝牙(LE),支持经典蓝牙和LE的双模设备。 |
蓝牙4.1 | 2013 | 1 Mbps (LE) / 3 Mbps (EDR) | 60米 | 提高与LTE共存的能力,增强连接稳定性。 |
蓝牙4.2 | 2014 | 1 Mbps (LE) / 3 Mbps (EDR) | 60米 | 提高传输速度和数据包容量,增强隐私保护。 |
蓝牙5.0 | 2016 | 2 Mbps (LE) / 50 Mbps (EDR) | 240米 | 增加消息容量,改进广播模式,提升速度、范围和容量。 |
蓝牙5.1 | 2019 | 2 Mbps (LE) / 50 Mbps (EDR) | 240米 | 引入方向查找功能,提高定位精度,优化能耗。 |
蓝牙5.2 | 2020 | 2 Mbps (LE) / 50 Mbps (EDR) | 240米 | 引入LE Audio,提升数据传输效率,改善音频体验。 |
蓝牙5.3 | 2021 | 2 Mbps (LE) / 50 Mbps (EDR) | 240米 | 减少延迟,增强抗干扰能力,提高电池寿命。 |
蓝牙5.4 | 2023 | 2 Mbps (LE) / 50 Mbps (EDR) | 240米 | 引入PAwR节省能耗,加密广播数据提升安全性。 |
- LE:低功耗蓝牙(Bluetooth Low Energy)。
- EDR:增强数据速率(Enhanced Data Rate)。
- AFH:自适应跳频(Adaptive Frequency Hopping)。
- NFC:近场通信(Near Field Communication)。
- PAwR:功率控制和优化(Power Control and Optimization)。
📌 2. 蓝牙协议栈的总体架构
无论是经典蓝牙还是BLE,其协议栈大体可以分为两大部分:Controller(控制器) 和 Host(主机)。在单芯片方案中,有时还不需要单独的HCI层,但在双芯片或者分布式设计中,HCI(Host Controller Interface,主机控制器接口)起着桥梁作用。
2.1 控制器(Controller)
物理层(PHY)
- BLE的物理层定义了如何使用无线电发射器/接收器来编码和解码用于传输和接收的数字数据,以及应用的其他无线电相关参数和属性。现阶段可以略过
主要了解下Frequency Band
BLE在2400Mhz至2483.5 MHz的2.4GHz免授权频段内工作。BLE采用40个信道,每个信道间隔为2MHz,分为数据信道和广播信道;广播信道占用3个,用于发现设备、建立连接、广播数据;数据信道占用37个,用于已建立连接设备间的数据通信。建立连接的两个设备,必须同一时间处于同一信道上才能通信。
其中37/38/39固定为广播信道,其余为数据信道。
链路层(LL)或基带层
在BLE中称为Link Layer(LL),在经典蓝牙中称为基带层。它负责建立连接、数据包格式、时序同步、信道选择、重传、加密等关键工作。BLE的LL层特别设计了低功耗传输的时隙、广播、扫描和连接管理机制;而经典蓝牙的基带层则更侧重于流媒体和连续数据传输的管理。
HCI(Host Controller Interface)
HCI (Host Controller interface), 为Host访问Controller提供一组标准的接口 主要完成3个任务:
- Host通过HCI发送命令给Controller
- Controller通过HCI将事件发送给Host
- 传递ACL Data(面向连接,在连接通道上进行数据传输)
HCI将高层协议与低层硬件细节分离,确保应用层开发者无需关心无线电细节。
2.2 主机(Host)
在Host部分,各种高层协议主要负责数据的封装、拆分、加密、安全、服务定义以及用户数据的传输。
L2CAP(逻辑链路控制与适配协议)
L2CAP是个复用层,可以让低功耗蓝牙复用三条不同的信道。它也支持数据的分割和重组功能,使得较大的报文可以在底层无线电中传输。
BLE:主要由下面几个协议构成:
- ATT(属性协议):规定了数据以属性的形式进行存储和传输,每个属性都有句柄、类型和数值。
- GATT(Generic Attribute Profile, 通用属性规范):在ATT基础上组织数据,定义了服务和特征,便于客户端和服务端之间通过读、写、通知方式交换数据。
🔹 示例:BLE 设备的 GATT 结构
pgsql复制编辑设备: 智能手环
└── Service: 心率服务 (UUID: 0x180D)
├── Characteristic: 心率测量 (UUID: 0x2A37) [Notify]
├── Characteristic: Body Sensor Location (UUID: 0x2A38) [Read]
├── Characteristic: Heart Rate Control Point (UUID: 0x2A39) [Write]
GAP(Generic Access Profile, 通用访问规范)):规定了设备发现、连接、广播、扫描、配对、绑定等基本功能,是所有蓝牙设备必须实现的通用接口。
📌 相关 GAP(通用访问协议)模式
BLE 设备的广播 & 发现行为由 GAP 模式 决定,关键参数如下:
模式名称 作用 是否广播 是否可被发现 是否可连接 可广播模式(Broadcast Mode) 设备周期性发送广播数据,无需连接 ✅ 是 ❌ 否 ❌ 否 可发现模式(Discoverable Mode) 设备允许被扫描设备发现 ✅ 是 ✅ 是 ✅ 是 可连接模式(Connectable Mode) 允许其他设备连接 ✅ 是 ✅ 是 ✅ 是 非广播模式(Non-Broadcast Mode) 设备不会主动广播 ❌ 否 ✅ 是 ✅ 是 SMP(Secure manager protocol)安全管理协议
:管理配对、认证和加密过程,确保数据交换的安全性。
📌 3. 双模蓝牙(BLE + 经典蓝牙)的协同工作
在双模蓝牙设备中,两个协议栈共存,但它们之间有一些公共的基础模块:
- 共享HCI接口:无论是经典还是低功耗,Host与Controller之间通过统一的HCI通信。
- 公共的物理层硬件:虽然信号调制和信道划分可能有所不同,但物理无线电部分通常由同一芯片实现,支持不同协议模式下的发射与接收。
- 软件调度与资源分配:在多任务操作系统中,系统需要调度经典蓝牙与BLE之间的无线资源,确保它们不会互相干扰。双模设计使设备能够根据应用需求动态切换工作模式,从而在高带宽和低功耗之间取得平衡。