目录

一、什么是蓝牙(Bluetooth)

二、蓝牙的发展版本

三、Classic Bluetooth 与 BLE

3.1 Classic Bluetooth(经典蓝牙)

3.2 BLE(Bluetooth Low Energy)

四、蓝牙设备角色

4.1 Classic Bluetooth

4.2 BLE 角色

五、蓝牙通信方式

5.1 广播:公开喊话

5.2 连接:私人热线

六、BLE 的数据结构(核心概念)

6.1 Service(服务)

6.2 Characteristic(特征)

6.3 Descriptor(描述符)

七、蓝牙 UUID

八、BLE 通信流程(典型流程)

8.1 设备广播

8.2 Central 扫描

8.3 建立连接

8.4 服务发现

8.5 数据通信

九、蓝牙协议栈结构

十、结语

 📚 蓝牙学习系列专栏


一、什么是蓝牙(Bluetooth)

蓝牙(Bluetooth)是一种短距离无线通信技术,主要用于设备之间的数据交换。

其特点包括:

  • 工作在 2.4GHz ISM 频段
  • 支持设备自动发现与连接
  • 支持点对点和广播通信

蓝牙最初的设计目标是替代短距离有线连接,例如:

  • 用无线耳机替代有线耳机
  • 用无线鼠标替代 USB 鼠标
  • 手机与设备之间无线传输数据

二、蓝牙的发展版本

蓝牙技术经历了多次版本升级,不同版本带来了不同能力。

版本 发布时间 主要特点
Bluetooth 1.0 1999 最早版本
Bluetooth 2.0 2004 引入 EDR,提高数据速率
Bluetooth 3.0 2009 引入 HS(High Speed)
Bluetooth 4.0 2010 引入 BLE(低功耗蓝牙)
Bluetooth 4.2 2014 提升安全性和数据容量
Bluetooth 5.0 2016 提升距离、速度、广播能力
Bluetooth 5.1 2019 引入方向定位
Bluetooth 5.2 2020 引入 LE Audio
Bluetooth 5.3 2021 改进低功耗通信

综上,无线通信的简单原理是什么?工作在2.4G频段是什么意思?你可以把无线通信想象成两个人之间“扔小球”:

  • 你有数据(比如一段音乐) → 转换成一种看不见的“波” → 发射出去
  • 对方设备接收到这个“波” → 重新转换成音乐

蓝牙用的频段是 2.4GHz​ 左右,这数字你可能也在Wi-Fi、微波炉上见过。

        把空中传递的无线信号想象成一条“大马路”,2.4GHz就像是城市里一条免费、大家都能用的公共道路

  • 蓝牙在这条路上开车,一辆车只占很小的车道(带宽窄),适合短距离、小数据量传输,比如音频、鼠标移动信号。

  • Wi-Fi 也走这条路,但它的车大得多(带宽宽),一次能拉很多数据,适合上网、看视频。

  • 微波炉 也“路过”这条路(微波炉频率约2.45GHz),但它不是来“通信”的,而是用这个频段的波去震动水分子,产生热量。

正因为这条路是公共的,所以有时候设备多了会“堵车”(干扰)。蓝牙的聪明之处在于,它会在这条2.4G的大街上快速跳换车道(跳频技术),一会儿在这个小频点发,一眨眼又换到另一个,从而尽量避开拥堵,稳定连接。这种“波”就是电磁波,和收音机、Wi-Fi用的本质上是同一种东西,只是频率、编码方式不同。


三、Classic Bluetooth 与 BLE

蓝牙技术主要分为两种模式:

3.1 Classic Bluetooth(经典蓝牙)

经典蓝牙(本篇不做过多阐述)主要用于持续数据传输场景

例如:

  • 蓝牙耳机(A2DP)
  • 蓝牙音箱
  • 蓝牙串口
  • 蓝牙键盘鼠标(早期)

特点:

  • 数据速率较高
  • 功耗相对较高
  • 连接保持时间长

常见 Profile:

  • A2DP(音频)
  • HFP(通话)
  • SPP(串口)

3.2 BLE(Bluetooth Low Energy)

BLE 是 Bluetooth 4.0 引入的一种低功耗通信技术

BLE 的设计目标是:

在保证通信能力的前提下,大幅降低功耗。

BLE 特点:

  • 极低功耗(睡眠状态下可达平均几uA电流)
  • 支持广播模式
  • 数据量相对较小
  • 非常适合 IoT 设备

典型应用:

  • 智能手环
  • 蓝牙遥控器
  • 体温计
  • 心率设备
  • Beacon

目前绝大多数 IoT 设备都使用 BLE


四、蓝牙设备角色

在蓝牙通信中,设备通常分为不同角色。

4.1 Classic Bluetooth

经典蓝牙通常采用:

  • Master(主设备)
  • Slave(从设备)

4.2 BLE 角色

BLE 的角色更细化:

角色 说明

通俗比喻

Broadcaster(广播者) 只广播数据 只说不听的“公告牌”
Observer(观察者) 只扫描广播 只听不说的“侦察兵”
Peripheral(外围设备) 提供服务 被动的“信息提供者”或“执行者”

Central(中心设备)

主动连接设备 主动的“询问者”或“指挥官”

中心设备:智能手机是最常见的中心设备,它主动扫描并连接你的耳机、手环等设备。

外围设备:像蓝牙耳机、智能手环这类产品,就是外围设备,它们广播自身并等待被手机连接和控制。

广播者:蓝牙防丢器或商场导航信标是典型的广播者,它们只循环发送自己的位置信号,不接受任何连接。

观察者:在商场里,你手机上的导航App就充当观察者,它只接收各个信标的广播信号来实现定位,而不去连接它们。


五、蓝牙通信方式

蓝牙通信主要有两种方式。

5.1 广播:公开喊话

  • 是什么:设备单向对外发声,任何在接收范围内的设备都能听到,但“听”不等于“聊”。
  • 两种模式
    • 可连接广播:“我是耳机,可以连我!---> 连接成功后对应ble角色中的外围设备
    • 纯广播:“我是信标,位置在A1。”(只发不收,不连接)--->ble角色中的广播者
  • 特点:一对多、单向。
  • 用途:设备被发现、室内定位、简单信息发布。

5.2 连接:私人热线

  • 是什么:两个设备在“喊话”认识后,建立一条独占、稳定的双向通话通道。
  • 过程:手机扫描到耳机的“可连接广播” → 发起配对 → 建立连接。
  • 特点:一对一、双向、稳定可靠。
  • 用途:传输音频、文件、实时操控等所有需要可靠交互的场景。

六、BLE 的数据结构(核心概念)

BLE 使用一种叫 GATT(Generic Attribute Profile) 的数据模型。

其层级结构如下:

Device
        └── Service
                        └── Characteristic
                                        └── Descriptor

下面逐个简单介绍,后续会详细解释。

6.1 Service(服务)

Service 用来表示一个功能模块。

例如:

  • 电池服务
  • 心率服务
  • 设备信息服务

每个 Service 都有一个 UUID

示例:

Battery Service
UUID: 0x180F

6.2 Characteristic(特征)

Characteristic 是实际的数据项。

例如:

电池服务中有一个特征:

Battery Level

数据内容:

电池电量百分比

Characteristic 具有以下属性:

  • Read
  • Write
  • Notify
  • Indicate

6.3 Descriptor(描述符)

Descriptor 用于描述 Characteristic。

例如:

Client Characteristic Configuration Descriptor (CCCD)

它用于:

  • 开启 Notify
  • 关闭 Notify

七、蓝牙 UUID

在 BLE 中,每个对象都有一个 UUID(Universally Unique Identifier)

例如:

标准服务:

Battery Service
UUID = 0x180F

自定义服务通常使用:

128-bit UUID

示例:

12345678-1234-5678-1234-56789abcdef0

UUID 的作用是:

唯一标识服务特征。(记住服务和特征都有uuid)


八、BLE 通信流程(典型流程)

一个典型 BLE简单通信流程如下:

8.1 设备广播

Peripheral 周期性发送 Advertising。

8.2 Central 扫描

Central 设备扫描到广播。

8.3 建立连接

Central 发起连接请求。

8.4 服务发现

Central 读取设备的 Service / Characteristic。

8.5 数据通信

通过 Characteristic 进行:

  • Read
  • Write
  • Notify

九、蓝牙协议栈结构

蓝牙协议栈通常分为几层,如图9-1所示。

图9-1

简单理解:

  • PHY(物理层):最底层,负责在2.4GHz频段收发无线电波。

  • Link Layer(链路层):管理广播、扫描、建立连接、跳频等空中接口时序。

  • HCI(主机控制器接口):连接“控制器”(PHY+LL)和“主机”(以上所有层)的通信桥梁。

  • L2CAP(逻辑链路控制与适配协议):负责数据包的分片重组和多路复用。

  • SMP(安全管理协议)— 负责配对、密钥分发和加密管理

  • ATT(属性协议):定义数据如何被查找、读、写、通知的底层协议。

  • GATT(通用属性配置文件):基于ATT,定义数据如何组织成“服务”和“特征值”的结构。

  • GAP(通用访问配置文件):定义设备角色、广播、扫描和连接过程的规范。

  • Application(应用层):最上层,开发者基于GATT和GAP实现的具体功能。

在嵌入式开发中,很多 SDK 已经实现了协议栈,开发者通常只需要处理:

  • 广播与扫描
  • Service
  • Characteristic
  • 数据交互

十、结语

本篇从无线通信的基础“波”与2.4G频段讲起,梳理了蓝牙的角色、通信方式、数据结构和协议栈分层,希望能帮助你建立起对蓝牙技术的系统性认识。

由于个人水平有限,文中若有任何疏漏或表述不清之处,欢迎在评论区指正与交流。

后续更新预告:我将持续更新ble系列的技术科普,下一篇计划《BLE 协议栈详细解析》。如果本文对你有帮助,欢迎点赞、收藏、关注,这是对我最大的鼓励!


 📚 蓝牙学习系列专栏

本系列是系统性的蓝牙低功耗(BLE)技术教程,从协议栈原理到实战开发,适合嵌入式开发者、物联网工程师和所有对蓝牙技术感兴趣的读者。

🎯 **系列导航**:本文是《蓝牙学习系列》第1篇  

🔗 **完整专栏**: 蓝牙学习系列专栏

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐