第2章 硬件选型:主流WiFi+蓝牙双模芯片对比(ESP32、RTL8720、BK7231)
做扫地机器人,选对芯片等于成功了一半。我这些年经手过不下十款WiFi+蓝牙方案,踩过的坑能写本书。今天咱们就聊聊市面上最主流的三个选手:ESP32、RTL8720、BK7231。
说实话,没有完美的芯片,只有最合适的方案。你想想看,扫地机器人对成本敏感,但对稳定性要求又极高——这本身就是个矛盾。我个人的习惯是,先看需求,再选芯片,而不是反过来。
2.1 三款芯片的核心参数对比
先上干货。我把三款芯片的关键参数整理成了表格,方便你快速对比。
| 参数项 | ESP32(乐鑫) | RTL8720(瑞昱) | BK7231(博通集成) |
|---|---|---|---|
| CPU核心 | 双核 Xtensa LX6 @240MHz | 单核 ARM Cortex-M4 @200MHz | 单核 ARM Cortex-M4F @160MHz |
| SRAM | 520KB | 512KB | 256KB |
| Flash | 外置,通常4MB~16MB | 外置,通常2MB~8MB | 内置2MB,可外扩 |
| WiFi标准 | 802.11 b/g/n,HT20/40 | 802.11 b/g/n,HT20/40 | 802.11 b/g/n,仅HT20 |
| 蓝牙版本 | BLE 4.2 + Classic BT | BLE 5.0 | BLE 5.0 |
| GPIO数量 | 34个(可复用) | 25个(可复用) | 15个(可复用) |
| ADC精度 | 12位,2个SAR ADC | 12位,1个SAR ADC | 10位,1个SAR ADC |
| 工作温度 | -40°C ~ +125°C | -40°C ~ +85°C | -40°C ~ +85°C |
| 参考价格(批量) | 约$1.5 ~ $2.5 | 约$1.2 ~ $2.0 | 约$0.8 ~ $1.2 |
我的建议:如果项目预算充足,且对性能有极致要求,选ESP32。如果追求性价比,RTL8720是很好的平衡点。BK7231适合极致成本敏感的场景,但要做好功能取舍。
2.2 ESP32:生态之王,但有点“重”
ESP32我用了好几年,说实话,它最大的优势不是性能,而是生态。乐鑫的ESP-IDF框架、Arduino支持、大量的开源项目——你几乎能找到任何你想做的功能的现成代码。
我记得有一次做扫地机器人的OTA升级功能,从零开始到跑通,只花了两天。为什么?因为ESP32的OTA例程写得非常清楚,我直接改改回调函数就搞定了。
但ESP32也有它的短板。首先是功耗,双核全开时能到几百毫安,对电池供电的扫地机器人来说是个挑战。其次是体积,QFN封装的芯片加上外置Flash,占板面积不小。
小技巧:如果你用ESP32做扫地机器人,建议把WiFi和蓝牙的协议栈跑在同一个核上,另一个核专门处理电机控制和传感器数据。这样可以避免中断冲突。
2.3 RTL8720:性能均衡,但文档是硬伤
RTL8720是我最近两年开始重点关注的芯片。它的BLE 5.0支持长距离模式,这对扫地机器人和手机之间的通信很有帮助——你想想看,人在客厅,机器在卧室,信号还能稳定连接。
不过,瑞昱的文档质量嘛……嗯,我只能说“有提升空间”。我当初调RTL8720的WiFi扫描功能时,发现官方SDK里有个bug,扫描结果会漏掉部分AP。后来我翻遍了论坛才找到workaround。
为什么会这样?说白了,瑞昱的芯片主要面向白牌市场,文档和社区支持远不如乐鑫。如果你团队里有熟悉底层驱动的人,RTL8720是个好选择。否则,我建议你慎重。
避坑指南:我曾经因为RTL8720的BLE MTU设置不当,导致扫地机器人和手机之间的数据传输频繁断连。后来发现是默认MTU只有23字节,改成247字节后问题解决。切记,BLE通信一定要先协商MTU。
2.4 BK7231:成本杀手,但功能受限
BK7231是博通集成推出的芯片,主打低成本。它的价格只有ESP32的一半左右,非常适合对成本极度敏感的扫地机器人方案。
但便宜是有代价的。BK7231的SRAM只有256KB,跑完WiFi协议栈后,留给应用层的空间就很小了。我试过在上面跑一个完整的MQTT客户端加上JSON解析,结果内存直接爆了。
另外,BK7231的ADC只有10位精度。如果你需要精确检测扫地机器人的电池电压或者红外传感器,这个精度可能不够用。
我个人建议,BK7231适合做“轻量级”的扫地机器人——比如只做WiFi配网、定时清扫、简单状态上报。如果你需要复杂的路径规划、视觉识别,还是老老实实上ESP32吧。
2.5 如何选择?一个实用的决策流程
说了这么多,到底怎么选?我总结了一个简单的决策流程,你可以照着走一遍:
- 先看功能需求:需要Classic Bluetooth吗?需要OTA吗?需要本地语音识别吗?如果答案是“是”,直接选ESP32。
- 再看成本预算:BOM成本允许超过$2吗?如果允许,RTL8720是性价比之选。如果必须控制在$1以内,只能选BK7231。
- 然后看团队能力:团队有底层驱动工程师吗?如果有,RTL8720和BK7231都可以考虑。如果没有,选ESP32最稳妥。
- 最后看量产经验:如果这是你的第一款扫地机器人产品,我建议用ESP32。等产品稳定了,再考虑降成本换芯片。
我的经验:我见过太多团队,一开始为了省几毛钱选了BK7231,结果开发周期拉长了两倍,最后得不偿失。记住,芯片成本只是总成本的一小部分,开发成本和维护成本才是大头。
2.6 小结
好了,这一章的内容就到这里。总结一下:
- ESP32:生态好、性能强、功耗高、价格贵。适合功能复杂的旗舰机型。
- RTL8720:性能均衡、BLE 5.0给力、文档差。适合有一定技术积累的团队。
- BK7231:成本低、功能受限、内存小。适合极致成本控制的入门机型。
下一章,我们会深入讲解如何搭建ESP32的WiFi+蓝牙双模开发环境。到时候我会手把手带你配置SDK、编译第一个例程。咱们下章见。