Appearance
蓝牙
BLE: 低功耗控制器
BR/EDR: 两个标准的蓝牙协议, 一个是低速, 一个是高速(经典控制器)
支持两个 --> 双模
支持一个 --> 单模
蓝牙支持4.2版本以后支持ipv6, ESP32支持的版本, 但是不可以直接连接广域网
蓝牙mesh: 蓝牙局域网
客户端 Client
- 请求数据服务
- 客户端可以主动搜索并连接附近的服务端
- 客户端类似蹭网的
服务端Server
- 提供数据服务
- 服务端不需要进行主动设置,只要开启广播就可以让附近的客户端搜索到,并提供连接
- 服务端类似被蹭网的wifi
如果想要让ESP处于别人随时可以搜索连接的情况要配置为服务端;如果想让ESP通过扫描连接周围可连接的蓝牙设备,需要把它设置成客户端,正好和WiFi模式的设定相反
蓝牙协议栈
结构
蓝牙控制器
有BR/EDR控制器, BLE控制器和AMP控制器(已经被弃用了)
蓝牙主机
专用术语
GAP: 通用访问
GATT/ATT: 通用属性
SMP: 安全管理
SDP: 服务发现
L2CAP: 链路管理与适配
HCI: 主机控制接口
DM: 设备管理
LM: 链路管理
LC: 链路控制
PHY: 物理层
ESP32
esp32使用的是bluedroid这一个协议栈
bluedroid: 安卓系统
bluez: linux系统官方
Zephyr 物联网系统里面有自己的协议栈
AliOS-Things 阿里物联网操作系统使用自己的操作站
nimble: RT-Thread
bluedroid是谷歌开发的