SBUS是一种广泛应用于航模遥控器中的串行通信协议,全称为Serial Bus。该协议能够通过单一的信号线传输多达16通道的数据,相比于传统的PWM(脉宽调制)捕获方式更为高效且节省资源。在无人机、航模等遥控设备中,SBUS因其高效的数据传输和便捷的接口特性而被广泛采用。
从技术细节方面看,SBUS使用的是RS232C串口的硬件协议作为其基础,采用TTL电平(3.3V),并使用负逻辑,即低电平为“1”,高电平为“0”。此外,它的波特率为100K,数据位8位,停止位2位,采用偶校验,配置可概括为8E2。
在协议的格式方面,一帧SBUS数据包括25个字节,具体格式为:[startbyte] [data1] [data2]...[data22] [flags] [endbyte]。其中,startbyte为0x0f, endbyte为0x00。每个data字节代表一个通道的数据,总共可以表示16个通道的数据。每个通道的数据位为11bit,通过分包合并的方式实现高效数据打包。
对于信号的取反问题,SBUS通常需要进行硬件取反。这是因为SBUS的信号采用负逻辑,需要通过硬件电路进行电平反转。在STM32等微控制器中,通常通过简单的三极管电路实现信号取反,确保数据的准确传输。
SBUS的数据解析过程较为复杂。由于每个通道的数据被分包在多个字节中,并且低位在前、高位在后,因此需要通过位移和与或运算将数据重新组合成完整的通道值。例如,ch1的11位数据由data2的低3位和data1的高8位组成。这种分包策略虽然增加了解析的复杂度,但提高了总线的数据传输效率。
此外,SBUS有两种工作模式:高速模式和普通模式。高速模式下,每隔7ms发送一帧数据,而普通模式下每隔14ms发送一帧数据。这种周期性的数据发送特性使得SBUS适用于实时性要求较高的控制系统。
总体来看,SBUS作为一种高效且节省资源的串行通信协议,在航模、无人机等遥控设备中得到了广泛应用。其高效的数据传输机制和灵活的配置选项使其成为遥控设备通信的理想选择。然而,开发者在使用SBUS时需要注意信号取反和数据解析的具体实现,确保数据的准确传输和有效利用。
作者: 丙丁先生, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3996156.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
文章评论(0条评论)
登录后参与讨论