Skip to content

蓝牙

BLE: 低功耗控制器

BR/EDR: 两个标准的蓝牙协议, 一个是低速, 一个是高速(经典控制器)

支持两个 --> 双模

支持一个 --> 单模

蓝牙支持4.2版本以后支持ipv6, ESP32支持的版本, 但是不可以直接连接广域网

蓝牙mesh: 蓝牙局域网

image-20240610102221260

客户端 Client

  1. 请求数据服务
  2. 客户端可以主动搜索并连接附近的服务端
  3. 客户端类似蹭网的

服务端Server

  1. 提供数据服务
  2. 服务端不需要进行主动设置,只要开启广播就可以让附近的客户端搜索到,并提供连接
  3. 服务端类似被蹭网的wifi

如果想要让ESP处于别人随时可以搜索连接的情况要配置为服务端;如果想让ESP通过扫描连接周围可连接的蓝牙设备,需要把它设置成客户端,正好和WiFi模式的设定相反

蓝牙协议栈

结构

image-20240609231306004

蓝牙控制器

有BR/EDR控制器, BLE控制器和AMP控制器(已经被弃用了)

image-20240610102351298

蓝牙主机

image-20240610102410928

专用术语

GAP: 通用访问

GATT/ATT: 通用属性

SMP: 安全管理

SDP: 服务发现

L2CAP: 链路管理与适配

HCI: 主机控制接口

DM: 设备管理

LM: 链路管理

LC: 链路控制

PHY: 物理层

ESP32

esp32使用的是bluedroid这一个协议栈

bluedroid: 安卓系统

bluez: linux系统官方

Zephyr 物联网系统里面有自己的协议栈

AliOS-Things 阿里物联网操作系统使用自己的操作站

nimble: RT-Thread

bluedroid是谷歌开发的