|
5. DSM2(DSMX)
a) 什么是DSM2(DSMX)
DSM是Digital Spread Spectrum Modulation的缩写,一共有三代: DSM、DSM2、DSMX。国内最常见的是DSM2,JR的遥控器和Spectrum的遥控器都支持。该协议也是一种串行协议,但是比S.BUS更加通用,使用的标准串口定义,所以市面上兼容接收机更加便宜,兼容的设备也更多,比如电直的三轴陀螺VBar就可以直接接受DSM2信号。
但是该协议并不是一种总线化的协议,要靠接收机取把协议变为PWM来驱动舵机,DSM2接口也只能连接接收机和卫星接收机,不过对于飞控来说这个无所谓,反正也是一个接口连接到飞控就可以了。
DSMX是DSM2的升级版,协议基本一样就是速率加快了。DSMX协议可以用于双向传输,即能够将飞机上的信息传回遥控器上在液晶屏显示,不过对于玩儿飞控这个功能不重要,有了电台和PC,这个意义不大。所以我们下面只讨论DSM2协议的接收问题。
b) DSM2硬件协议
DSM2设备使用三线连接,黑色线是地线,红色是电源线,另一条是信号线,这个跟舵机一样,但是注意:电源线是3.3V。 信号线上跑的是标准TTL串口,3.3V电平,串口的电平逻辑跟普通TTL串口一致,可以直接跟现在的大部分单片机兼容,比如STM32。 串口波特率115200,数据位8bit,1个停止位,无校验位,无流控制。
c) DSM2软件协议
软件协议简单得多。 每一帧数据使用两个Byte,16字节。 第1个字节表示此帧状态,为0的时候表示此帧为遥控数据,1的时候表示为其他数据。 后面4个字节为通道ID,对应接收机上面的输出0: Throttle, 1: Aileron, 2: Elevator, 3: Rudder, 4: Gear, 5: Aux1, 6: Aux2, 7: Aux3。 后11个字节是0~2047的通道数据。1023为中间值对应输出1.5ms的PWM信号,0对应0.75ms,2047对应2.25ms。
|
|