跳转到内容

无线协议 ​

ESP32 家族的卖点之一是「一颗芯片多种无线」。但并不是每颗芯片都能做所有事:有的没有蓝牙,有的没有 Wi-Fi,只有部分带 IEEE 802.15.4(Thread / Zigbee 的物理层)。选芯片前先看这一页。

概览 ​

下表是按我对各芯片产品线的了解整理的粗略矩阵,具体到每颗芯片请以乐鑫官方数据手册为准,本文没有逐颗核对。

芯片Wi-Fi蓝牙802.15.4
ESP322.4 GHz,Wi-Fi 4Classic + BLE无
ESP32-S22.4 GHz,Wi-Fi 4无无
ESP32-S32.4 GHz,Wi-Fi 4BLE 5无
ESP32-C32.4 GHz,Wi-Fi 4BLE 5无
ESP32-C62.4 GHz,Wi-Fi 6BLE 5有
ESP32-C52.4 GHz + 5 GHz 双频,Wi-Fi 6BLE 5有
ESP32-H2无BLE 5有
ESP32-P4无(常配协处理器)无无

经典蓝牙(Classic Bluetooth,用于 A2DP 音频等)只有原版 ESP32 具备。其余芯片都是 BLE 单模。

无线发射的合规

更改发射功率、信道、频段,或使用扫描、注入类工具,可能违反所在地区的无线电法规。日本、欧盟、美国的合规要求不同;做成品出售需要对应认证(如日本的技适)。本文只介绍协议能力,不鼓励绕过合规限制。回退方法:恢复默认国家码与发射功率,并在自己拥有的设备上测试。

关键信息 ​

ESP-NOW ​

ESP-NOW 是乐鑫的无连接通信协议,基于 Wi-Fi 的 vendor action 帧,设备之间不需要路由器。查看 ESP-IDF 文档:

  • 版本:v1.0 单包最多 250 字节;v2.0 最多 1470 字节。v2.0 设备可以接收两种版本的包,v1.0 设备只能接收不超过 250 字节的 v2.0 包。
  • 对端:最多 20 个,其中加密对端最多 17 个,默认 7(CONFIG_ESP_WIFI_ESPNOW_MAX_ENCRYPT_NUM)。
  • 加密:CCMP,主密钥 PMK 与每个对端的密钥 LMK 各 16 字节;没设置 LMK 就是明文。
  • 默认速率 1 Mbps,可对每个对端调整。
  • 使用前要先启动 Wi-Fi,再调用 esp_now_init()。
  • 回调运行在高优先级 Wi-Fi 任务,保持简短。
  • 文档存在不一致:esp_now_send() 参考页仍写长度必须小于 ESP_NOW_MAX_DATA_LEN,与 v2.0 的 1470 字节说法冲突,实际使用请以对应版本头文件为准。
  • MicroPython v1.29.0 的 ESP-NOW 已升级到 v2.0,见 MicroPython。

ESP-WIFI-MESH ​

ESP-WIFI-MESH 让大量 ESP32 设备以树状拓扑组成自愈的 Wi-Fi 网络,根节点连接路由器。它只用 Wi-Fi 射频,不引入额外芯片。需要注意的是它是乐鑫私有方案,不与手机或其他厂商互通。有一个轻量版本 ESP-MESH-LITE,我没有核对其当前状态。

Bluetooth LE 与 BLE Mesh ​

ESP-IDF 提供两套主机栈:Bluedroid(支持 Classic 与 BLE)和 NimBLE(只支持 BLE,占用小)。BLE 5 的特性(2M PHY、Coded PHY 长距离、扩展广播)在较新芯片上可用,具体见官方的功能支持状态页。ESP-BLE-MESH 是基于蓝牙 Mesh 规范的实现,文档包含入门、示例和 FAQ。BLE Mesh 对设备数、消息大小有限制,使用前读文档里的限制。

Thread、Zigbee、Matter ​

这三者靠 IEEE 802.15.4 无线电,所以只有 C6、C5、H2 这类带 802.15.4 的芯片能够直接做 Thread 终端或 Zigbee 设备。

  • Thread:乐鑫提供基于 OpenThread 的支持。Thread 网络通过边界路由器与 IP 网络连接,乐鑫也有 Thread 边界路由器方案。
  • Zigbee:乐鑫提供 esp-zigbee-sdk,可以做协调器、路由器、终端设备,具体角色和芯片支持请查仓库说明。
  • Matter:ESP-Matter 同时支持 Wi-Fi 与 Thread 设备,详见 乐鑫官方解决方案。
  • 同一颗 C6 同时跑 Wi-Fi、BLE、802.15.4 时共用射频,存在共存调度,吞吐与稳定性会受影响。

Wi-Fi 6、Wi-Fi Aware 与 FTM 测距 ​

C6 与 C5 等新芯片支持 Wi-Fi 6(802.11ax);C5 加入 5 GHz。FTM(Fine Timing Measurement,精确时间测量)可用于 Wi-Fi 测距,部分芯片支持。Wi-Fi Aware(NAN)则在较新的 ESP-IDF 里有一些实验性支持。这几项我没有逐项核对哪些芯片和版本支持,请到各芯片的 IDF 文档页确认。

怎么选 ​

需求建议
手机配网 + 家庭 Wi-Fi任意带 Wi-Fi 的芯片
蓝牙音频(A2DP)原版 ESP32
Thread / Zigbee / Matter over ThreadC6 或 H2
5 GHz Wi-FiC5
低功耗电池节点 + 手机 BLEC3、C6、H2
点对点短消息、遥控ESP-NOW,任意带 Wi-Fi 的芯片

适合谁 / 不适合谁 ​

适合在选芯片、设计网络拓扑之前需要查阅无线能力矩阵的读者。不适合需要深入协议规范细节的读者,请直接看官方文档与协议标准。

参考资料 ​

ESP32 非官方中文调查手册,与乐鑫科技(Espressif Systems)无隶属关系。