蓝牙是一种短距离通信系统,蓝牙系统分为两种不同的技术:经典蓝牙(Classic Bluetooth)和蓝牙低功耗(Bluetooth Low Energy)。
从整体结构上,蓝牙可分为控制器(Controller)和主机(Host)两大部分;
ESP32应用的三种场景:
场景一(ESP-IDF默认):在 ESP32 的系统上,选择 BLUEDROID 为蓝⽛牙主机,并通过 VHCI(软件实现的虚拟 HCI 接⼝口)接⼝口,访问控制器器。
场景⼆:在 ESP32 上运⾏控制器器(此时设备将单纯作为蓝⽛控制器使⽤),外接⼀个运⾏蓝⽛主机的设备(如运⾏ BlueZ 的 Linux PC、运⾏BLUEDROID 的 Android等)。
场景三:此场景与场景二类似,特别之处在于,在 BQB(或其它认证)的控制器测试下,可以将 ESP32 作为 DUT,用 UART 作为 IO 接口,接上认证测试的 PC 机,即可完成认证。
HCI接口选择
ESP32 上,HCI 只能同时使⽤用⼀个 IO 接口,即如使用 UART,则放弃 VHCI、 SDIO 等其他 IO 接口。在 ESP-IDF(V2.1 以后)中,可以在 menuconfig 中将蓝牙的 HCI IO 接口方式配置为 VHCI 或 UART。