通信协议¶
飞特总线舵机通过带设备 ID 的串行数据包通信。SCS/SCSCL、STS、SMS 和 HLS 系列共用基础指令框架,但物理接口、字节顺序和内存表并不完全相同。开发前请先根据系列与接口确认所用应用层。
数据包格式¶
指令包¶
状态包¶
Length 为“指令或状态字节 + 参数或数据 + 校验和”的字节数。校验和按以下方式计算:
广播 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 当前应用层头文件,适合程序对接和快速核对。型号专属的单位、量程、默认值、保护阈值和固件差异,应以该型号规格页及设备实际固件为准。
开发建议¶
- 先确认 TTL 或 RS485 接口、供电范围、针序和共地。
- 总线只连接一只舵机,使用 Ping 和只读寄存器验证 ID、波特率和字节顺序。
- 写入 RAM 地址并进行低速、小位移测试。
- 确认结果后,再修改 ID、波特率、模式和限位等持久化参数。
- 多机控制时保证 ID 唯一,并使用独立供电和足够的线径。
写入前确认型号
不要把 SCSCL、SMS/STS 与 HLS 的内存表混用。错误写入持久化区域可能改变 ID、波特率、工作模式或保护参数,造成设备失联或意外运动。