S.BUS是什么协议?

  S.BUS(全称 Serial Bus)是由日本Futaba(双叶)公司开发的一种数字串行通信协议,专门用于遥控模型(如无人机、航模)和飞行控制系统中,通过单根信号线实现多通道控制数据的传输。 该协议最初设计用于替代传统的PWM(脉宽调制)信号方案,以解决多通道控制中布线复杂、效率低下的问题。

  一、S.BUS协议的定义与起源

  关于S.BUS的全称,存在多种解释,包括“Serial Bus”“Sun Bus”“Software Blocking Unblocking Sending”等,但在遥控模型领域,它特指Futaba定义的这种串行总线协议。 S.BUS也被称为S-BUS、SBUS或Futaba S.BUS。

  二、S.BUS协议的技术规范

  1. 电气特性

  物理层基础

  S.BUS协议基于RS232串口通信硬件标准,但采用了 TTL反向电平(负逻辑)‍ 这一独特设计。 具体而言:

  逻辑“1”对应物理低电平

  逻辑“0”对应物理高电平

  这种反相逻辑设计提高了信号的抗干扰能力,减少了误判的可能性。 由于电平是反向的,在实际使用时需要硬件反相器(如模拟电路)或软件处理来进行电平转换,以便与标准的UART接口兼容。

  通信参数

  S.BUS协议的核心通信参数如下: 

参数规格
波特率100.000 bps(固定,不兼容115200)
数据位8位
校验位偶校验(Even Parity)
停止位2位
帧长度25字节
电平标准TTL反向电平(负逻辑)

  这种数据格式通常被称为 8E2(8数据位 + 偶校验 + 2停止位)。 值得注意的是,S.BUS没有采用常见的4800、9600或57600等波特率,而是固定使用100kbps,这使得它需要专门的串口配置。

  帧时序

  S.BUS协议的更新率有两种模式:

  普通模式:每14ms发送一帧(约11ms间隔)

  高速模式:每7ms发送一帧(约4ms间隔)

  2. 数据帧结构

  S.BUS的完整数据帧由 25个字节 组成,其结构如下:

字节位置字节类型内容说明
Byte 1起始字节(Start Byte)固定为0x0F
Byte 2-23通道数据(22字节)16个比例通道,每通道11位
Byte 24标志位字节(Flags)2个数字通道 + 2个状态位
Byte 25结束字节(End Byte)固定为0x00

  通道数据解析

  中间22个数据字节承载了16个比例通道的数据,每个通道占 11位,取值范围为0-2047. 通道数据采用 低位在前、高位在后 的排列方式,在解析时需要按特定算法提取。例如,提取第一个通道值的公式为:Channel[0] = ((SBUS_BUF[2]&0x07)<<8) + SBUS_BUF[1]。

  标志位定义

  第24字节(Flags)各位含义如下:

Bit位含义
Bit 7数字通道CH17(0x80)
Bit 6数字通道CH18(0x40)
Bit 5帧丢失标志(Frame Lost,0x20)
Bit 4故障保护激活(Failsafe,0x10)
Bit 3-0未使用

  校验机制

  S.BUS协议采用 异或校验(XOR)‍ 来确保数据完整性。 这为通信提供了一层额外的可靠性保障。

  三、S.BUS协议的核心特点

  1. 单线多通道传输

  S.BUS最显著的优势在于通过 一根信号线 即可传输多达16个比例通道和2个数字通道的数据。 相比传统PWM协议需要每个通道单独布线,S.BUS大幅简化了系统布线,减少了线缆混乱和故障点。 在大型航模或具有多个控制面的飞行器中,这一优势尤为突出。

  2. 数字信号高分辨率

  S.BUS采用数字信号传输,每个通道具有 11位分辨率(0-2047)‍ ,可以更精确地控制舵机和电调。相比模拟PWM信号,S.BUS的控制精度更高,延迟更低(10-20ms)。

  3. 硬件兼容性

  S.BUS基于UART串口通信,可以方便地与微控制器连接。Futaba和FrSky等主流品牌的接收机广泛支持该协议,许多现代飞控系统(如Baseflight、Ardupilot、PX4)也都内置了S.BUS支持。

  四、S.BUS与S.BUS2的区别

  S.BUS在发展过程中推出了升级版本 S.BUS 2

  S.BUS 1:仅支持单向通信,数据从接收机传输至飞控或舵机。

  S.BUS 2:支持双向通信,可以传输传感器数据回接收机(如电池电压、电机转速等),提升了系统监测能力。

  使用S.BUS2时,必须连接兼容的设备,否则可能影响正常工作。

  五、S.BUS协议的应用场景

  1. 无人机与航模

  S.BUS协议最广泛的应用是在无人机和航模领域,主要用于连接飞控板和遥控器。 飞控板通过S.BUS接口接收所有通道的数据,并根据这些数据进行飞行姿态控制。

  此外,S.BUS也常用于:

  扩展遥控器的控制距离(通过天空端SBUS_OUT接口连接飞控RC IN)

  连接HUB扩展多个舵机和电调

  大型航模的多个控制面联动控制

  2. 机器人控制

  S.BUS协议在机器人领域也有广泛应用。通过串行总线输出,机器人控制系统可以获取遥控器上所有通道的数据,实现对机器人的精确控制。 每个设备通过HUB与S.BUS总线相连,得到各自的控制信息。

  3. 相机功能控制

  S.BUS协议还被用于专业相机的远程控制。例如,Blackmagic Design的相机支持通过S.BUS将相机功能(如REC、Iris、Focus、Zoom、ISO、Shutter Angle等)分配给多达18个通道,使用户可以通过一个单一连接控制相机的多个参数。

  4. Arduino与嵌入式系统开发

  S.BUS常见于FrSky和Futaba接收机,可连接Arduino扩展功能,如额外舵机、灯光控制等。 开发者只需实现信号反相电路和串口解析代码,即可将S.BUS信号转换为可用的控制数据。

  六、与其他常见协议对比

特性S.BUSPPMPWM
通道数16+2最多8-12每通道1线
信号线数量1根1根每通道1根
分辨率11位(0-2047)取决于PPM帧宽取决于脉宽
信号类型数字模拟模拟
抗干扰能力
延迟低(7-14ms/帧)

  S.BUS相比PPM和PWM具有明显优势:通道数更多、布线更简洁、延迟更低、抗干扰能力更强。

  七、技术实现要点

  1. 硬件连接

  使用S.BUS协议时,接收机的S.BUS信号线连接到飞控或MCU的UART RX引脚即可。由于S.BUS采用反相电平,通常需要通过:

  硬件反相器:使用晶体管或专用反相芯片进行电平转换

  软件处理:某些微控制器的USART外设支持极性配置,可以在软件层面处理反向电平

  2. 串口配置

  配置UART时,需要特别注意参数设置:

  波特率:100000(而非标准115200)

  数据位:8

  校验位:偶校验

  停止位:2

  这种非标准波特率在部分微控制器上可能需要自定义配置。

  3. 数据解析

  接收端需要对25字节帧进行解析,提取16个通道的数据。由于11位通道数据跨越字节边界,解析时需要按位提取和拼接。 同时需要处理起始字节(0x0F)和结束字节(0x00)的同步。

  八、总结与展望

  S.BUS协议作为Futaba公司推出的数字串行通信标准,凭借其单线多通道、高分辨率、低延迟和强抗干扰能力等特点,已经成为无人机、航模、机器人等领域的重要通信协议。 其后续版本S.BUS 2增加了双向通信能力,进一步提升了系统的功能性和稳定性。

  尽管其他协议(如CRSF、MAVLink等)也在不断发展和应用,S.BUS凭借其成熟的技术方案、广泛的设备兼容性和高效的传输特性,仍然是当前遥控模型领域最主流的通信协议之一。随着无人机和智能机器人技术的持续进步,S.BUS协议将继续发挥重要作用,为各类运动控制系统提供可靠的通信基础。

滚动至顶部