feixiang20 发表于 2018-8-15 00:04:07

S-BUS协议实际上通过串口进行数据发送。但是需要注意的是,S-BUS的逻辑电平是反的,需用如下电路对电平反相,再接到串口接收的管脚。三极管可以用8050。

串口配置为波特率100kbps( 100000 ),8位数据,偶校验(even),2位停止位,无流控。

每帧25个字节,帧格式如下:
….
两帧之间的时间间隔4ms(高速模式),约7ms一帧。
其中:
Start Byte = 0x0F。中间22个字节为16个通道的数据,每个通道用 11 bit表示,范围是0-2047。
End Byte根据S-BUS协议版本不同而不同。
Flags的定义:
bit7 = ch17 = digital channel (0x80)
bit6 = ch18 = digital channel (0x40)
bit5 = Frame lost, equivalent red LED on receiver (0x20)
bit4 = failsafe activated (0x10)
bit3 = n/a
bit2 = n/a
bit1 = n/a
bit0 = n/a
数据部分:
如果把22个字节看作一个数的话,则数据部分采用小端模式。即若把数据按照…的顺序排列,则的 bit 7 为MSB,的 bit 0 为LSB,每 11 bit 为一个通道的数据。Data和的高3位为通道16的值,以此类推。

页: 1 [2]
查看完整版本: 关于S-BUS协议