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

ESP32- 开发笔记- 软件开发 6 蓝牙协议栈 1

1 蓝牙

ESP32 是一款支持蓝牙功能的强大微控制器,ESP-IDF (Espressif IoT Development Framework) 提供了完整的蓝牙开发支持。

1.1 蓝牙模式

ESP32 支持两种蓝牙模式,即同时支持经典蓝牙和低功耗蓝牙。

1.1.1 蓝牙经典 (BT/BDR/EDR)

支持传统蓝牙协议

适合音频传输、文件传输等场景

1.1.2 蓝牙低功耗 (BLE)

低功耗设计

适合物联网设备、传感器等

1.2 基本概念

GATT (Generic Attribute Profile): 定义服务、特征和描述符的层次结构

Service: 提供特定功能的一组特征

Characteristic: 服务中的数据点

Descriptor: 特征的元数据

1.3 参考资料

参考蓝牙手册
蓝牙参考api

2 蓝牙协议栈

蓝牙协议栈是一种分层通信架构,定义了蓝牙设备如何发现彼此、建立连接、交换数据,并确保通信安全可靠。如图 蓝牙核心系统架构(来源:蓝牙核心规范) 所示,协议栈主要分为控制器(Controller)和主机(Host)两大部分,两者通过 HCI 接口进行通信。

在这里插入图片描述

2.1 蓝牙结构

蓝牙主机和控制器可以集成在同一设备上,也可以在不同设备上实现。ESP32 可以支持上述两种方式,下图 ESP32 蓝牙主机与控制器的关系结构图 展示了典型的应用结构:

在这里插入图片描述

2.1.1 控制器

控制器负责硬件层面的操作和底层链路控制,包含:

PHY (物理层): 处理 2.4 GHz ISM 频段的蓝牙信号收发。

基带 (Baseband): 管理底层时序和控制功能,包括跳频、数据包格式化和纠错。

链路控制器 (Link Controller): 处理设备连接/断开的链路状态机、流控和重传机制。

链路管理器 (Link Manager): 管理链路设置、身份验证、加密和功率控制。

设备管理器 (Device Manager): 管理设备状态,处理寻呼/查询流程,存储安全密钥。

2.1.2 主机

主机实现应用交互所需的高层协议,包含:

L2CAP (逻辑链路控制与适配协议): 处理数据分段、重组和复用。

SMP (安全管理协议): 管理身份验证、加密和安全配对。

GAP (通用访问规范): 管理设备发现、连接建立,并定义蓝牙设备的角色和模式。

ATT/GATT (属性协议/通用属性规范): 通过服务和特征实现基于属性的数据交换,主要用于低功耗蓝牙。

SDP (服务发现协议): 允许设备广播和发现可用服务,主要用于经典蓝牙。

2.2 蓝牙运行环境

ESP-IDF 蓝牙协议栈运行在 FreeRTOS 环境中,蓝牙任务根据功能和优先级进行分配。由于实时性要求,控制器任务具有最高优先级(部分跨核通信 IPC 任务除外)。默认的蓝牙主机 Bluedroid 包含三个任务:BTC、BTU 和 HCI。

2.2.1 Bluedroid

ESP-Bluedroid 是基于 Android 蓝牙协议栈 Bluedroid 的修改版, 支持经典蓝牙和低功耗蓝牙。由两层组成:

蓝牙上层 (BTU): 实现核心协议(L2CAP、GATT、SMP 等)。

蓝牙传输控制器层 (BTC): 提供应用层 API, 并管理配置文件。

使用场景: 推荐用于同时需要经典蓝牙和蓝牙低能耗的应用。

http://www.xdnf.cn/news/4392.html

相关文章:

  • console-chat-gpt开源程序是用于 AI Chat API 的 Python CLI
  • 屏幕炫光也能轻松应对,远程控制电脑可以避免裂痕碍眼
  • 白杨SEO:如何查看百度、抖音、微信、微博、小红书、知乎、B站、视频号、快手等7天内最热门话题及流量关键词有哪些?使用方法和免费工具推荐以及注意事项【干货】
  • NX二次开发——BlockUI 弹出另一个BlockUI对话框
  • 深入了解linux系统—— 进程控制
  • PPT 制作难题迎刃而解,影刀 RPA 开启自动化创作时代
  • Kotlin 中实现单例模式的几种常见模式
  • 用R语言+随机森林玩转遥感空间预测-基于R语言机器学习遥感数据处理与模型空间预测技术及实际项目案例分析
  • 全局网络:重构数字时代的连接范式
  • 【Hive入门】Hive增量数据导入:基于Sqoop的关系型数据库同步方案深度解析
  • 汽车服务小程序功能点开发
  • 康养休闲旅游住宿服务实训室:构建产教融合新标杆
  • JVM的双亲委派模型
  • 基于RK3568多功能车载定位导航智能信息终端
  • 【IP101】图像分割技术全解析:从传统算法到深度学习的进阶之路
  • 【图书管理系统】详细讲解用户登录:后端代码实现及讲解、前端代码讲解
  • vue2开发者sass预处理注意
  • 关于STM32 SPI收发数据异常
  • 日常开发中,iOS 性能调优我们怎么做?
  • ISCC 2025练武题 WP部分
  • DELL R770 服务器,更换OCP模块!
  • (九)PMSM驱动控制学习---分流电阻采样及重构
  • 密码学系列 - SR25519与ED25519
  • chili3d调试笔记12 deepwiki viewport svg雪碧图 camera three.ts
  • JDK 发展历史及其版本特性
  • 瑞芯微RV1126开发笔记
  • NetApp SAS 连接线:铜缆与光缆的全面介绍
  • 学习alpha,第2个alpha
  • 逻辑越权--登录和支付数据篡改
  • 双强联袂登场,解锁边缘智能开发新范式 | 2025高通边缘智能创新应用大赛首场公开课重磅来袭