文章目录
| 协议栈 | 所属/起源 | 开源许可证 | 主要特点 | 适用平台 |
|---|---|---|---|---|
| BlueZ | Linux官方协议栈 | GPL | 功能全面,与Linux内核深度集成,通过D-Bus接口与上层应用交互。 | Linux桌面、服务器、嵌入式Linux设备(如树莓派) |
| Bluedroid | Android官方协议栈(4.2-7.x) | Apache 2.0 | 为移动设备优化,几乎所有逻辑都在用户态,通过HAL隔离硬件,稳定性好。 | 原生Android系统,也被移植到像ESP32这样的物联网平台 |
| Fluoride | Android官方协议栈(8.0+) | Apache 2.0 | Bluedroid的现代化重构版本,模块化更好,采用HIDL/AIDL接口,代码更健壮。 | 现代Android系统、Android Automotive OS (AAOS) |
| NimBLE | Apache Mynewt OS | Apache 2.0 | 极致轻量,RAM占用可低至3KB,支持Bluetooth 5.4和BLE Mesh,是资源受限设备的理想选择。 | 资源受限的MCU(如Nordic nRF52/53系列,在ESP-IDF中也可选),特别适合电池供电的传感器节点 |
| BTstack | 独立项目(BlueKitchen) | 自定义(非商业免费) | 支持经典蓝牙与BLE双模,专为资源受限的MCU设计,可移植性极强,甚至能在8位MCU上运行。 | 从8位MCU到Linux的广泛嵌入式系统 |
| Cordio ARM | (现由Packetcraft维护) | 开源 | 全球首款量产就绪的开源低功耗蓝牙协议栈,与ARM Mbed OS深度集成。 | 基于ARM Cortex-M的IoT设备,特别是使用Mbed OS的项目 |
Zephyr原生的BLE协议栈(开源)的适用平台:
| 厂商 | 支持的平台系列/型号 | 说明与引用 |
|---|---|---|
| Nordic | nRF51 和 nRF52 系列 nRF52x 和 nRF53x 系列 | 支持最成熟、集成最紧密的系列 |
| 芯科科技 (Silicon Labs) | EFR32系列,如xG22, xG24, xG27, xG29 | 通过其官方维护的下游SDK "Simplicity SDK for Zephyr" 提供经完整验证的稳定支持。 |
| 恩智浦 (NXP) | Kinetis W系列 (如kw41z), i.MX RT系列, RW61x, MCXW71 | Zephyr项目的创始白金会员,为多款产品提供了强大的Zephyr BLE支持。 |
| 英飞凌 (Infineon) | AIROC系列 (如CYW20829) | Zephyr OS 3.7.0版本正式加入了对英飞凌CYW20829芯片的支持。 |
| 意法半导体 (ST) | STM32WBA系列, BlueNRG系列 | STM32WBA系列有相应的BLE Controller库实现,BlueNRG系列通过扩展板形式支持。 |
| 泰凌微 (Telink) | TL721x系列 | Zephyr平台已支持该系列,开发者通过其官方GitHub仓库获取支持,但可能需要对不同型号进行设备树适配。 |
| 德州仪器 (TI) | CC2340, CC2755 | 虽然上游Zephyr主线可能不支持,但TI通过其官方下游分支 simplelink-zephyr 提供支持。 |
| 瑞萨 (Renesas) | DA14695 | Zephyr的示例项目已验证对该型号的支持。 |
| 微芯 (Microchip) | RNBD451 (蓝牙模块), PIC32-BZ6 | 前者作为外部控制器通过Zephyr驱动支持,后者作为主控MCU支持 |