4、固件与协议:BLHeli_S / BLHeli_32 固件特性、DShot / Oneshot 协议对比与选择
电调固件和通信协议,说白了就是飞控和电机之间的“翻译官”和“执行者”。选对了,你的飞机指哪打哪;选错了,轻则手感怪异,重则空中断电。这一节,我把这几年在 BLHeli 固件和数字协议上踩过的坑、总结的经验,一次性说清楚。
4.1 BLHeli_S 与 BLHeli_32:两代固件的分水岭
先聊固件。目前市面上主流的就是 BLHeli_S 和 BLHeli_32。很多人觉得“32 比 S 新,肯定更好”,其实不一定。你得看自己的飞控和需求。
4.1.1 BLHeli_S:成熟稳定的性价比之选
BLHeli_S 是基于 8 位 MCU 的固件。它最大的优势就是——稳。我在 2018 年做第一批 5 寸花飞测试机时,用的就是 BLHeli_S 电调。那时候 DShot 协议刚普及,BLHeli_S 对 DShot300/600 的支持已经非常成熟,几乎没有遇到过丢包或失控的情况。
- 基于 8 位处理器(如 Silabs EFM8BB2)
- 支持 DShot150/300/600、Oneshot125/42、Multishot
- 固件升级需通过 C2 接口(需要专用烧录器)
- PWM 频率最高 48kHz(实际多数电调跑 24kHz)
- 不支持双向 DShot(RPM 滤波)
4.1.2 BLHeli_32:性能怪兽,但需要好飞控
BLHeli_32 是 32 位 ARM 架构的固件。它带来的最大提升是——双向 DShot。说白了,就是电调能实时告诉飞控“我现在转得多快”,飞控就能更精准地控制电机。这在做 RPM 滤波时特别有用。
我记得第一次在 7 寸远航机上用 BLHeli_32 电调,配合 Betaflight 4.2 的 RPM 滤波,那手感……怎么说呢,就像从开卡车换成了开跑车。震动直接降了一半,PID 可以拉得更高,飞起来特别跟手。
| 对比项 | BLHeli_S | BLHeli_32 |
|---|---|---|
| 处理器架构 | 8 位 (Silabs EFM8BB2) | 32 位 ARM (STM32/AT32) |
| PWM 频率 | 最高 48kHz | 最高 96kHz |
| 双向 DShot | 不支持 | 支持 |
| 固件升级 | C2 烧录器 | USB/蓝牙直刷 |
| 价格 | 便宜 | 贵 30%-50% |
| 适用场景 | 入门、花飞、低成本 | 竞速、远航、高端装机 |
4.2 DShot 与 Oneshot:数字协议的前世今生
协议这块,很多人搞混。我简单梳理一下:Oneshot 是模拟协议,DShot 是数字协议。现在主流是 DShot,但 Oneshot 在某些老飞控上还有用武之地。
4.2.1 Oneshot125/42:模拟时代的遗珠
Oneshot 协议的原理,是通过脉冲宽度来传递油门值。Oneshot125 的脉冲范围是 125-250μs,Oneshot42 更短,只有 42-84μs。脉冲越短,延迟越低。
但有个问题——它容易受干扰。我早期用 Oneshot125 飞穿越机,有一次在高压线塔附近飞,电机突然抽搐了一下。后来查日志发现是信号线上串入了噪声。换成 DShot 后,再也没出现过。
- 优点:兼容老飞控(F3、F4 早期版本)
- 优点:延迟低(Oneshot42 约 42μs)
- 缺点:无校验,易受干扰
- 缺点:需要校准油门行程
- 缺点:不支持双向通信
4.2.2 DShot:数字协议的王者
DShot 是数字协议,油门值通过一串数字脉冲来编码。它最大的好处是——不需要校准油门行程。你想想看,每次换电调都要重新校准,多麻烦。DShot 直接省了这一步。
DShot 有多个速率:150、300、600、1200。数字越大,延迟越低。但要注意,不是所有飞控都能跑 DShot600 以上。我试过在 F411 飞控上跑 DShot1200,结果飞控直接死机。后来查资料才知道,F411 的硬件定时器频率不够。
| 协议 | 延迟 | 校验 | 校准油门 | 双向通信 |
|---|---|---|---|---|
| Oneshot125 | ~125μs | 无 | 需要 | 不支持 |
| Oneshot42 | ~42μs | 无 | 需要 | 不支持 |
| DShot150 | ~106μs | CRC | 不需要 | 支持(32位固件) |
| DShot300 | ~53μs | CRC | 不需要 | 支持(32位固件) |
| DShot600 | ~27μs | CRC | 不需要 | 支持(32位固件) |
| DShot1200 | ~13μs | CRC | 不需要 | 支持(32位固件) |
4.3 如何选择:一个实用的决策流程
说了这么多,到底怎么选?我画了个流程图,你照着走一遍就行。
4.4 实战配置:以 Betaflight 为例
最后,给个实际配置的例子。假设你用的是 BLHeli_32 电调 + F405 飞控,想跑 DShot600 并开启双向 DShot。
# 在 Betaflight CLI 中输入:
set dshot_bidir = ON
set motor_pwm_protocol = DSHOT600
save
# 然后在 BLHeliSuite32 中:
# 1. 连接电调
# 2. 确保 "Bidirectional" 选项已勾选
# 3. 设置 PWM Frequency 为 48kHz
# 4. 点击 "Write Setup"
嗯,这一节的内容就到这里。固件和协议的选择,说白了就是平衡性能、预算和兼容性。记住一个原则:能用 DShot 就别用 Oneshot,能用 BLHeli_32 就别省那几十块钱。但如果你飞的是入门机,BLHeli_S + DShot300 也完全够用,别被参数绑架了。