当前位置: 首页 > news >正文

蓝牙学习系列(一):从零认识蓝牙技术体系

目录

一、什么是蓝牙(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.01999最早版本
Bluetooth 2.02004引入 EDR,提高数据速率
Bluetooth 3.02009引入 HS(High Speed)
Bluetooth 4.02010引入 BLE(低功耗蓝牙)
Bluetooth 4.22014提升安全性和数据容量
Bluetooth 5.02016提升距离、速度、广播能力
Bluetooth 5.12019引入方向定位
Bluetooth 5.22020引入 LE Audio
Bluetooth 5.32021改进低功耗通信

综上,无线通信的简单原理是什么?工作在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
  • 数据交互

十、本系列后续内容

本蓝牙系列文章将继续深入以下内容:

后续计划(持续更新中):

1️⃣ BLE 协议栈详细解析
2️⃣ BLE Advertising 机制详解
3️⃣ BLE GATT / ATT 深入理解
4️⃣ BLE Service 与 Characteristic 开发
5️⃣ BLE Notify / Indicate 机制
6️⃣ BLE 连接参数与功耗优化
7️⃣ BLE 实际开发流程
8️⃣ BLE 抓包分析(Ellisys / nRF Sniffer)


十一、结语

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

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

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

http://www.jsqmd.com/news/476575/

相关文章:

  • CrewAI智能体开发:CrewAI 运行自动化工具
  • 锁相环抓取基波相位
  • Flutter 三方库 jsonize 的鸿蒙化适配指南 - JSON 转换的极简流派、在鸿蒙端实现流式序列化实战
  • 基于No.1186 S7-200 PLC与组态王的锅炉水温串级调节系统的设计与实现
  • 升级 Java 21 却把网关压崩了?Spring Boot 虚拟线程与传统线程池的生死冲突揭秘
  • DO-254通读--10.0 硬件设计生命周期数据
  • 基于22三菱PLC与MCGS组态的饮料灌装自动化控制系统设计与实现
  • 智能指针原理、使用和实现——C++11新特性
  • 计算机毕业设计springboot数字化心理健康服务系统的设计与实现 基于SpringBoot的“树洞“心理咨询服务平台的设计与实现 基于SpringBoot的在线心理支持与智慧辅导平台
  • OpenClaw 生态全景:九大类 Open Claw 产品深度横评
  • 收藏!彻底解决RAG系统效果不佳问题:这套组合策略让准确率飙升60%
  • 从岭回归到循环矩阵:KCF算法核心数学工具全解析
  • 改进蚁群算法agv路径规划。 基于matlab的二维栅格地图的精英蚁群算法的路径规划算法仿真
  • 第10章 数据库的安全与保护
  • 基于MATLAB的准Z源NpC三电平逆变器:创新SVPWM调制与中性点平衡算法的研究与实践
  • 智能体记忆详解:解锁大模型长时推理与持续学习能力
  • 权威指南 第三章
  • pipx — 安全便捷地管理 Python 命令行工具
  • 从施密特触发器到迟滞比较器:运算放大器正反馈应用的深度解析
  • 网站打不开(空白页/404/500)问题|已解决
  • 带隙基准技术的Cadence电路设计:超低漂、高电源抑制比、精细化温度补偿及功耗优化详解(附带...
  • C++:继承】面向对象编程精要:C++继承机制深度解析与最佳实践
  • STM32C8T6+WS2811 RGB彩灯时序调试实战与PWM控制对比
  • 为什么要做信创产品评估测试?对企业有哪些核心好处?
  • 一文读懂AI智能体(Agent):小白也能掌握的大模型应用新方向
  • 网站进入后台后,提示“后台 JavaScript 加载失败”,部分功能(如编辑文章、切换菜单)无法使用问题|已解决
  • 2026年真空袋厂家电话查询推荐:高效对接与使用贴士 - 十大品牌推荐
  • Cadence Bandgap电路设计实战:从稳定性、噪声到PSRR的仿真优化全解析
  • 基于改进鹈鹕算法(IPOA)优化BP神经网络的时间序列预测(IPOA-BP) 鹈鹕算法是202...
  • C++:继承和多态】多态加餐:面试常考——多态的常见问题11问