跳转至

通信协议

飞特总线舵机通过带设备 ID 的串行数据包通信。SCS/SCSCL、STS、SMS 和 HLS 系列共用基础指令框架,但物理接口、字节顺序和内存表并不完全相同。开发前请先根据系列与接口确认所用应用层。

数据包格式

指令包

0xFF 0xFF ID Length Instruction [Parameter 1 ... Parameter N] Checksum

状态包

0xFF 0xFF ID Length Status [Data 1 ... Data N] Checksum

Length 为“指令或状态字节 + 参数或数据 + 校验和”的字节数。校验和按以下方式计算:

Checksum = ~(ID + Length + Instruction/Status + Parameters/Data) & 0xFF

广播 ID 为 0xFE。广播写和同步写可同时控制多只舵机;广播指令通常不返回状态包,因此不能用广播响应判断单个设备是否成功执行。

指令集

指令 代码 用途
Ping 0x01 检查指定 ID 是否在线
Read 0x02 读取连续地址的数据
Write 0x03 立即写入数据
Reg Write 0x04 暂存待执行的写入
Reg Action 0x05 触发已暂存的写入
Recovery 0x06 执行恢复操作,支持范围以型号资料为准
Reset 0x0A 执行复位操作,支持范围以型号资料为准
Calibration 0x0B 执行校准操作,支持范围以型号资料为准
Sync Read 0x82 批量读取多个设备
Sync Write 0x83 批量写入多个设备

并非每个型号或固件都实现表中全部指令。批量操作前,应先用单设备读写验证地址、长度和返回策略。

波特率编码

官方 SDK 使用下列波特率编码:

编码 波特率 编码 波特率
0 1,000,000 6 57,600
1 500,000 7 38,400
2 250,000 8 19,200
3 128,000 9 14,400
4 115,200 10 9,600
5 76,800 11 4,800

修改设备波特率后,主机和同一总线上的其他设备也必须使用一致的通信速率。

应用层与字节顺序

系列 物理接口 SDK 应用层 16 位数据序列化
SCS / SCSCL 半双工 TTL SCSCL 高字节在前
STS 半双工 TTL SMS_STS 低字节在前
SMS RS485 SMS_STS 低字节在前
HLS 半双工 TTL HLSCL 低字节在前

这里的字节顺序说明对应官方 SDK 的 Host2SCS/SCS2Host 序列化行为。直接处理寄存器时,应调用所属应用层提供的读写接口,避免手动拼接造成高低字节颠倒。

内存表

不同应用层的同一地址可能具有不同含义,请进入对应页面查看:

页面列出的地址来自官方 SDK 当前应用层头文件,适合程序对接和快速核对。型号专属的单位、量程、默认值、保护阈值和固件差异,应以该型号规格页及设备实际固件为准。

开发建议

  1. 先确认 TTL 或 RS485 接口、供电范围、针序和共地。
  2. 总线只连接一只舵机,使用 Ping 和只读寄存器验证 ID、波特率和字节顺序。
  3. 写入 RAM 地址并进行低速、小位移测试。
  4. 确认结果后,再修改 ID、波特率、模式和限位等持久化参数。
  5. 多机控制时保证 ID 唯一,并使用独立供电和足够的线径。

写入前确认型号

不要把 SCSCL、SMS/STS 与 HLS 的内存表混用。错误写入持久化区域可能改变 ID、波特率、工作模式或保护参数,造成设备失联或意外运动。

官方资料