news 2026/2/16 10:18:56

BLE 协议栈

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
BLE 协议栈

BLE(Bluetooth Low Energy,蓝牙低功耗)协议栈是实现 BLE 通信功能的软件架构,它按照分层模型组织,每一层负责特定的功能。BLE 协议栈通常遵循蓝牙核心规范(Bluetooth Core Specification),目前最新版本为 Bluetooth 5.4(截至2024年)。以下是 BLE 协议栈的主要层次结构及其功能说明:


1.物理层(PHY - Physical Layer)

  • 负责无线信号的发送与接收。
  • 工作在 2.4 GHz ISM 频段,使用 GFSK(高斯频移键控)调制。
  • BLE 使用 40 个 RF 信道(37 个数据信道 + 3 个广播信道)。
  • 支持多种 PHY 模式(如 1M PHY、2M PHY、Coded PHY)以平衡速率与距离。

2.链路层(LL - Link Layer)

  • 控制设备的射频状态(广播、扫描、连接等)。
  • 定义 BLE 的五种设备角色:
    • 广播者(Advertiser)
    • 扫描者(Scanner)
    • 发起者(Initiator)
    • 主设备(Master / Central)
    • 从设备(Slave / Peripheral)
  • 负责连接建立、加密、跳频、数据包格式、重传机制等底层通信控制。

3.主机控制器接口(HCI - Host Controller Interface)(可选)

  • 提供主机(Host)与控制器(Controller)之间的标准通信接口。
  • 常用于将 BLE 控制器(如芯片中的基带+射频)与主处理器(运行应用和高层协议)分离的系统中。
  • 可通过 UART、USB、SPI 等物理接口传输 HCI 命令/事件/数据。

注:在 SoC(单芯片)方案中,HCI 层常被省略或内部集成。


4.逻辑链路控制与适配协议层(L2CAP - Logical Link Control and Adaptation Protocol)

  • 提供多路复用、分段与重组、协议复用等功能。
  • 为上层协议(如 ATT、SM)提供面向通道的数据传输服务。
  • BLE 中 L2CAP 通道通常基于固定信道(如信令信道、ATT 信道)或动态信道(用于 LE Credit Based Flow Control)。

5.安全管理层(SM - Security Manager)

  • 负责 BLE 设备间的配对(Pairing)、绑定(Bonding)、加密和密钥分发。
  • 支持多种安全模式(如 Just Works、Passkey Entry、OOB、Numeric Comparison)。
  • 生成长期密钥(LTK)、身份解析密钥(IRK)等用于安全通信。

6.属性协议层(ATT - Attribute Protocol)

  • BLE 数据交换的核心协议。
  • 基于“属性”(Attribute)模型:每个属性包含句柄(Handle)、UUID、值(Value)和权限。
  • 定义了客户端(Client)与服务器(Server)角色:
    • Server:存储属性(如传感器数据)
    • Client:读写/订阅这些属性
  • 支持操作:Read、Write、Notify、Indicate、Discover 等。

7.通用属性配置文件(GATT - Generic Attribute Profile)

  • 构建在 ATT 之上,定义了属性的组织方式和使用规范。
  • 引入Service(服务)Characteristic(特征)Descriptor(描述符)的概念:
    • Service:一组相关的数据/功能(如 Battery Service)
    • Characteristic:具体的数据项(如 Battery Level)
    • Descriptor:描述 Characteristic 的元数据(如 Client Characteristic Configuration Descriptor 用于使能 Notify)
  • 所有 BLE 应用(如心率监测、智能家居)都基于 GATT Profile 实现互操作。

8.通用访问配置文件(GAP - Generic Access Profile)

  • 定义设备如何被发现、连接和广播。
  • 规范设备角色(Central/Peripheral)、广播类型(可连接/不可连接/定向等)、连接参数。
  • 处理设备名称、外观(Appearance)、广播数据内容等。

协议栈整体结构(自下而上):

Application ↑ GATT (Generic Attribute Profile) ↑ ATT (Attribute Protocol) ↑ SM (Security Manager) ←→ L2CAP (Logical Link Control and Adaptation Protocol) ↑ ↑ GAP (Generic Access Profile) ↑ ↑ ↑ HCI (Host Controller Interface) ←→ (可选) ↑ LL (Link Layer) ↑ PHY (Physical Layer)

常见 BLE 芯片厂商的协议栈实现:

  • Nordic Semiconductor:SoftDevice(如 S112, S132, S140)
  • Texas Instruments:BLE Stack(如 CC2640R2 SDK)
  • Silicon Labs:Bluetooth SDK(基于 Gecko Platform)
  • ESP32(Espressif):Bluedroid 或 NimBLE 协议栈
  • Zephyr OS:开源 BLE 协议栈(支持 Nordic、NXP、STM32 等)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/8 22:29:13

Python可视化实战技巧(解决中文乱码的底层原理与实操步骤)

第一章:Python可视化中文乱码问题的背景与挑战 在使用Python进行数据可视化时,中文显示异常是一个常见且令人困扰的问题。当图表中包含中文标签、标题或图例时,常出现方框、小方块或空白字符,严重影响信息传达和视觉效果。这一问题…

作者头像 李华
网站建设 2026/2/14 4:50:28

json.dumps()默认无序?教你3步实现Python中JSON文件的有序存储与读取

第一章:JSON序列化默认行为的底层探源 在现代Web开发中,JSON序列化是数据交换的核心机制。理解其默认行为的底层实现,有助于开发者规避潜在的类型丢失与结构异常问题。大多数编程语言内置的JSON库在序列化对象时,遵循一套通用规则…

作者头像 李华
网站建设 2026/2/10 21:54:00

小白也能懂:用Gradio快速调用Qwen3-Reranker-4B服务

小白也能懂:用Gradio快速调用Qwen3-Reranker-4B服务 1. 为什么你需要了解这个模型? 你有没有遇到过这样的问题:在一堆搜索结果里,真正有用的信息总是藏在后面?尤其是在做多语言内容检索、技术文档查找,或…

作者头像 李华
网站建设 2026/2/11 0:48:09

高效语音增强落地|FRCRN单麦16k模型镜像全解析

高效语音增强落地|FRCRN单麦16k模型镜像全解析 1. 快速上手:三步实现专业级语音降噪 你是否遇到过这样的场景?在嘈杂的办公室录制会议纪要,背景风扇声、键盘敲击声混成一片;或是户外采访中,风噪和车流声盖…

作者头像 李华
网站建设 2026/2/9 7:36:59

多协议支持物联网平台

物联网平台 - Thinglinks-iot ## 🌟 项目简介 一个功能完备、高可扩展的物联网平台,提供完整的设备接入、管理和数据处理解决方案。支持多种网络协议,具备强大的消息解析和实时告警能力,帮助企业快速构建物联网应用。 该项目现已纳…

作者头像 李华
网站建设 2026/2/5 4:38:03

5分钟部署Z-Image-Turbo,文生图AI开箱即用实战指南

5分钟部署Z-Image-Turbo,文生图AI开箱即用实战指南 你是否还在为文生图模型下载慢、配置复杂、显存不够而头疼? 现在,只需5分钟,就能在本地跑起一个无需下载权重、启动即用、9步极速生成1024高清图的AI绘画引擎——Z-Image-Turbo…

作者头像 李华