DShot是 Digital Shot 的缩写。DShot是数字协议(相对于oneshot,oneshot125,oneshot42,multishot等)。它最初是由Felix在KISS提出的,后来被Betaflight和BLHeli_S开发团队采用。
要理解这一点,首先需要理解旧的模拟电调协议是如何工作的: 它们每隔几微秒就将电脉冲从飞控发送到电调。脉冲持续时间的长短(油门大小)决定了电机的功率。这种控制方案受到电噪声和电脉冲定时精度的限制。使用 DShot 数字化意味着飞控将以数字编号的形式向电调发送精确的油门值。这个数字将有一个校验值,以便从飞控发送到电调的油门值永远不会被识别错误。
•无需进行电调行程校准
•更精确的传输信号,更强大的抗干扰能力
•分辨率为2048,而其他协议分辨率为1000
•比Oneshot协议更快
•更安全,每个信号 电调都可以检测yifan损坏的数据
目前常用的DShot协议有:DShot600,DShot300,DShot150
(DShot1200已经在最新的betaflight4.11固件取消了)
•DShot600 – 600,000 bits/Sec
•DShot300 – 300,000 bits/Sec
•DShot150 – 150,000 bits/Sec
计算延迟时间
首先我们需要知道一个数据包中有多少位,然后对协议的速度进行划分。一个 DShot 数据包由16位组成: 11位表示油门值(2^10= 2048分辨率) ,1位表示遥测请求,4位表示 CRC 校验(循环冗余校验)。
例如,DShot600的频率为600,000 / 1637500hz= 37.5 KHz,这意味着将一个油门值从飞控发送到电调需要大约26.7 uS。
各种电调传输协议速度对比
与 Oneshot125、 Oneshot42和 Multishot 的速度相比(假设信号是100% 油门)
Oneshot125 – 250 uS
DShot150 – 106.7 uS
Oneshot42 – 84 uS
DShot300 – 53.3 uS
DShot600 – 26.7 uS
Multishot – 25 uS
快速传输速度的 DShot 理论上将允许高达33KHz的飞控运行频率。(不要高达37.5 KHz,因为需要留有一些空间)。虽然 DShot600没有 Multishot 那么快,但是只要它比飞控运行频率快就足够了。
引用
propwashed BLHeli DShot Guide
Oscarliang WHAT IS DSHOT ESC PROTOCOL