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.BUS | PPM | PWM |
|---|---|---|---|
| 通道数 | 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协议将继续发挥重要作用,为各类运动控制系统提供可靠的通信基础。
