Dshot数字电调协议的介绍

2019-04-13 12:22发布

         Dshot,一种全新的电调协议。穿越机,真的是航模发展的奇迹之一。         Cleanflight,Raceflight,Betaflight,Kiss,四大开发团队,发展目标不太一样。大家知道,在遥控接收机上面,有PWM,PPM,这些都是模拟信号;而SBUS和IBUS等这些xxxBus协议就是数字协议,走的是单片机的串行接收端口。那么由Futaba和Frsky等遥控器厂家大力推行串行数字接收协议,大家也看到他们的牛逼之处。但是我们现在用的电调都是模拟PWM方波信号,于是,由Flyduino(Kiss飞控的公司)联合Betaflight开发团队共同研发了Dshot数字电调协议。

数字电调协议的组成
16位 = 11位油门信号 + 1位电调信息回传 + 4位循环冗余校验
  • 11位  - 2048步骤的分辨率油门值
  •   1位  -遥测要求
  •   4位  - CRC校验(检查信号的正确性)
  •  

 
如何代表0和1呢?
拿Dshot600来说,一位信号就大概是1.67微秒,那么通过对时间的占空比代表0或者1.
如果表示0:高电平占据625纳秒,
如果表示1:高电平占据1250纳秒
 

Dshot数字电调协议的优点
1.不再需要校准电调油门行程
2.精准的电调信号,数字信号的最大优点,由于PWM是模拟信号,容易出现传输过程中出现的波形变形问题
3.相比目前“1000-2000”的值,Dshot的行程由“0-2048”扩展(从00000000000到11111111111),毕竟有11位二进制数,2的11次方就是2048
4.速度上面,比Oneshot电调协议快太多
5.安全性,Dshot自带四位循环冗余校验(CRC)

与Oneshot和Mutishot的对比
       Dshot完全是数字信号,Oneshot和Mutishot是模拟信号,如果在使用上,电调硬件或者软件多多少少需要进行滤波设置,去除由于传输过程中带来的噪声,大家如果想用bls电调升级到dshot,估计就得手动把电调是的电容去除掉,而这颗电容或电阻就是用于硬件滤波的,而Dshot除了省去校准电调行程外,在传输过程中根本不需要进行滤波!毕竟0就是0,1就是1,且带有循环冗余校验位,很爽。

速度对比(全油门情况下的对比)
  • Oneshot125 – 250 uS
  • DShot150 – 106.7 uS
  • Oneshot42 – 84 uS
  • DShot300 – 53.3 uS
  • DShot600 – 26.7 uS
  • Multishot – 25 uS
             可以看出,Dshot600已经很接近Mutishot的速度了,而且kiss开发团队正在尝试Dshot1200,估计以后就是他们的天下啊,集合速度和安全一体的电调协议,爽!

数字电调支持的电调
1.BB21类:BLS电调(部分电调需要手动去除输入滤波电容)
2.STM32类:Kiss 24A(原厂支持,以后将会上Dshot1200)     这里补充说明一句,不是说8位单片机就不行,32位单片机就很牛逼,还是看各家对电调程序的优化能力了。BLS作者目前已经推送了Dshot600的固件到github上,欢迎各位折腾,小白还是别折腾了,等正式版推开吧。