esp32系列(5):esp32 蓝牙架构学习

本文详细介绍了ESP32的蓝牙架构,包括经典蓝牙和低功耗蓝牙(BLE)。内容涵盖蓝牙系统结构、ESP32的控制器与主机、HCI接口选择、蓝牙运行环境以及BLUEDROID框架。此外,还提供了经典蓝牙的代码实现,展示了如何使用ESP-IDF进行SPP通信。对于BLE,讲解了GAP和GATT的概念,并阐述了广播和扫描流程。关键词涉及ESP32、蓝牙、经典蓝牙、低功耗蓝牙、GATT、GAP。

1 ESP32 蓝牙架构学习

1.1 蓝牙

  • 蓝牙是一种短距通信系统。

  • 蓝牙系统分为两种不同的技术(ESP32都支持):

    • 经典蓝牙(Classic Bluetooth)
    • 蓝牙低功耗(Bluetooth Low Energy)
  • 整体结构: 在这里插入图片描述

    分为控制器(Controller)和主机(Host)两大部分。

    • 控制器
      • 组成:包括PHY、 Baseband、 Link Controller、 Link Manager、 Device Manager、 HCI 等模块
      • 功能:硬件接口管理、链路管理等。
    • 主机
      • 组成:包括了了 L2CAP、 SMP、 SDP、 ATT、 GATT、 GAP 以及各种规范
      • 功能:构建了了向应⽤用层提供接⼝口的基础,⽅方便便应⽤用层对蓝⽛牙系统的访问。
      • 特征:可以与控制器在同一宿主或不同宿主。
  • 由于主机的特征,ESP32 有几种典型应用场景:

    • 1 宿主相同(ESP-IDF默认):控制器(ESP32 Bluetooth Controller)与主机(ESP32 BLUEDROID )。
    • 2 宿主不同:控制器(ESP32 Bluetooth Controller)与主机(PC/Phone/Pad )。
    • 3 宿主不同:与2类似,但是用于BQB(或其它认证)的控制器器测试。

1.1.1 HCI 接口选择

Host与Bluetooth Controller连接的HCI(主机控制接口, Host Controller Interface), 在ESP32中只能同时使用以下IO接口中的一个:

  • UART
  • VHCI
  • SDIO

在ESP-IDF中,可以在 menuconfig 中配置蓝牙的 HCI IO接口方式。

1.1.2 蓝牙运行环境

ESP-IDF 的默认运行环境为双核 FreeRTOS, ESP32 的蓝牙可按照功能分为多个任务(task)运行,不同任务的优先级也有不同,其中优先级最⾼的为运⾏控制器的任务。控制器任务对实时性要求高,在FreeRTOS系统中的优先级仅次于IPC任务(IPC任务用于CPU的进程间通信)。BLUEDROID(ESP-IDF默认的蓝牙主机)共包含4个任务:

  • BTC
  • BTU
  • HCI UPWARD
  • HCI DOWNWARD

1.1.3 框架

1.1.3.1 控制器

ESP32 同时支持 Classic BT 和 BLE,蓝牙版本4.2 。集成了H4 协议、 HCI、 Link Manager、 Link Controller、 Device Manager、 HW Interface 等功能。这些功能以库的形式提供给开发者。
在这里插入图片描述

1.1.3.2 BLUEDROID

BLUEDROID蓝牙主机内部分为两层:

  • BTU层
    • 功能:负责蓝⽛主机底层协议栈的处理,包括 L2CAP、 GATT/ATT、 SMP、 GAP 以及部分规范等。
  • BTC层(除去HCI)
    • 功能:负责向应用层提供接口支持、处理基于 GATT 的规范、处理杂项等 。

所有的API都在ESP_API层,开发者应当使用“esp”为前缀的蓝牙API。

1.2 经典蓝牙

ESP-ID

评论 6
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ChipWeaver

觉得有用的话点个赞吧 :)

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值