[具身智能-672]:SBUS通信协议 完整详解(机器人/STM32专用)

一、协议基础定义

SBUS(S.BUS)是日本Futaba推出的航模/机器人专用单向串行串口协议,是目前无人机、ROS机器人、智能小车最主流的遥控器通信标准。核心优势为单信号线传输多路控制数据、抗干扰强、布线极简,专门用于无线接收机 → 主控(STM32/飞控)的摇杆、开关控制信号传输。

区别于传统多路PWM接收机,SBUS仅需1根信号线,即可传输16路模拟摇杆通道+2路数字开关通道,彻底解决多通道布线杂乱、电磁干扰大的问题。

二、固定硬件串口参数(不可修改)

SBUS协议参数为行业固定标准,所有设备统一适配,无需自定义配置:

  • 波特率:100000 baud(100K)

  • 数据格式:8E2(8数据位、偶校验Even、2停止位)

  • 核心特性:负逻辑电平(反向TTL),与普通串口电平完全相反

  • 电平标准:3.3V TTL

  • 通信方向:单向通信(接收机→主控,仅下发控制指令,无回传)

  • 刷新率:标准70Hz(14ms/帧),高速模式140Hz(7ms/帧)

关键适配说明:亚博STM32机器人控制板已内置硬件反相电路,无需外接三极管,可直接直插SBUS接收机使用,普通STM32板子需额外硬件反相或软件取反解析。

三、标准数据帧结构(固定25字节/帧)

每一帧数据严格25字节,结构固定、无偏差,是STM32解析的核心依据:

  1. Byte0 帧头:固定 0x0F(帧起始标识,用于同步数据)

  2. Byte1~Byte22 通道数据区(22字节):打包存储16路模拟通道(CH1~CH16),每路通道占用11bit,单通道数值精度0~2047

  3. Byte23 状态标志位(核心安全位)

    1. Bit7:CH17 数字开关通道

    2. Bit6:CH18 数字开关通道

    3. Bit5:Frame Lost(信号丢失标志)

    4. Bit4:Failsafe(失控保护触发标志)

  4. Byte24 帧尾:固定 0x00(帧结束标识)

四、通道数值标准范围

  • 原始数值区间:0~2047(11bit高精度,远高于普通PWM)

  • 工程有效区间:350~1650

  • 中位基准值:1000(摇杆居中、设备静止)

  • 适配场景:可精准换算为小车速度、云台角度、舵机转角

五、机器人实际工作逻辑(适配STM32+RDK X5)

模式1:纯STM32脱机遥控(无上位机)

遥控器摇杆→无线SBUS接收机→亚博STM32板,STM32解析通道数据,直接控制底盘电机、云台舵机,实现小车前进、后退、转向、云台俯仰旋转,无需RDK X5开机,断电重启即插即用。

模式2:搭配RDK X5 ROS2整机方案

SBUS为机器人安全应急通道:正常状态下小车由RDK X5自主导航控制;信号有效时,SBUS遥控优先级高于ROS导航指令,可随时手动接管小车,规避导航失控风险。STM32可将解析后的遥控数据通过USB上传至RDK X5,供ROS系统二次处理。

六、SBUS VS 传统多路PWM接收机(核心优势)

对比项

多路PWM接收机

SBUS接收机

布线方式

1通道1根信号线,多通道线束繁杂

仅1根信号线+电源地,极简布线

通道数量

最多6~8通道,拓展性差

16路模拟+2路数字通道,拓展无压力

抗干扰性

模拟脉冲信号,易受电机电磁干扰

数字数据包传输,抗干扰能力极强

资源占用

占用大量定时器、GPIO引脚

仅占用1路串口资源

精度

低,调速、控角顺滑度差

11bit高精度,控制更细腻

七、工程核心注意事项

  • 负逻辑必须适配:普通串口直接解析会数据乱码,需硬件反相或软件翻转电平,亚博板子已适配无需改动。

  • 失控保护必备:遥控器关机、信号丢失时,Byte23标志位会触发Failsafe,STM32固件需配置自动刹车,杜绝小车失控乱跑。

  • 协议不兼容:与大疆DBUS、CRSF协议不通用,引脚、参数、帧结构均不匹配,不可混插混用。

  • 单向通信限制:仅能接收机向主控传数据,无法实现主控回传状态、双向交互。

八、机器人标准通道分配(通用方案)

  • CH1:车身左右转向

  • CH2:车身前后行进

  • CH3:云台俯仰控制

  • CH4:云台水平旋转

  • CH5/CH6:模式切换开关(遥控模式/ROS自主导航模式)