深入了解总线伺服舵机的通讯协议

1. 串口通信配置

参数名称(en)参数名称(cn)参数数值备注
baudrate波特率115200串口舵机支持的多种波特率,参见<参数>波特率选项
parity奇偶校验
stopbits停止位1
bytesize字节长度8

2. 数据类型说明

串口通讯协议里用到的数据类型 (字节大小,取值范围)

数据类型数据名称(en)数据名称(cn)字节长度最小值最大值
uint8_tbyte字节()10255
uint16_tunsigned short无符号短整型2065535
int16_tsigned short有符号短整数2-3276832767
uint32_tunsigned long无符号长整数404294967295
int32_tsigned long有符号长整数4-21474836482147483647
uint8_t[n]byte array变长字节数组n

注意事项:

  • 舵机通讯协议里面使用的字节序为小端字节序,例如一个uint16_t的数值4660,它的十六进制表示为0x1234。在发送/接收时,低位字节在前,高位字节在后,即以0x34 0x12形式发送。

计算机电路先处理低位字节,效率比较高,所以在大部分的MCU里面(例如STM32),默认字节序也是小端字节序

拓展阅读: 理解字节序 大端字节序和小端字节序

3. 舵机控制指令

串口舵机共支持17种舵机控制指令。其中12种为通用指令,余下5种指令仅限于磁编码系列舵机

通用指令

指令ID指令名称(EN)指令名称(CN)备注
1PING舵机通讯检测检查舵机是否在线
2RESET_USER_DATA用户自定义数据重置重新将用户自定义数据设置为默认值
3READ_DATA舵机数据读取读取单个用户自定义参数,用户自定义参数的字节长度为可变长
4WRITE_DATA用户自定义数据写写入单个用户自定义数据,用户自定义参数的字节长度为可变长
5READ_BATCH_DATA用户自定义数据批量读取读取所有的用户自定义数据,所有的用户自定义数据的字节长度为32字节
6WRITE_BATCH_DATA用户自定义数据批量写入写入所有的用户自定义数据,所有的用户自定义数据的字节长度为32字节
7MOVE_ON_WHEEL_MODE(SPIN)轮式模式控制设置旋转方向,定速,定圈,定时
8MOVE_ON_ANGLE_MODE(ROTATE)角度模式控制-设置舵机角度设置舵机旋转的目标角度,时间间隔,执行功率
9MOVE_ON_DAMPING_MODE(DAMPING)阻尼模式控制阻尼模式,设置舵机保持的功率
10READ_ANGLE读取舵机角度
11MOVE_ON_ANGLE_MODE_EX_BY_INTERVAL角度模式控制-指定时间带加减速控制的角度模式,设置加减速时间,时间间隔,目标角度,执行功率
12MOVE_ON_ANGLE_MODE_EX_BY_VELOCITY角度模式控制-指定速度带加减速控制的角度模式,设置加减速时间,目标速度,目标角度,执行功率

特定指令,仅限于磁编码系列舵机

指令ID指令名称(EN)指令名称(CN)备注
13MOVE_ON_MULTI_TURN_ANGLE_MODE(ROTATE)多圈角度控制设置舵机旋转的目标角度,时间间隔,执行功率
14MOVE_ON_MULTI_TURN_ANGLE_MODE_EX_BY_INTERVAL多圈角度控制-指定时间带加减速控制的多圈角度模式,设置加减速时间,时间间隔,目标角度,执行功率
15MOVE_ON_MULTI_TURN_ANGLE_MODE_EX_BY_VELOCITY多圈角度控制-指定速度带加减速控制的多圈角度模式,设置加减速时间,目标速度,目标角度,执行功率
16READ_MULTI_TURN_ANGLE读取多圈角度
17RESET_MULTI_TURN_ANGLE重设多圈角度重置圈数,重置后角度范围为[-180,180]

注意事项:

  1. 所有的舵机指令都是针对单个舵机的。
  2. 批量读/写针对的都是单个舵机的所有的用户自定义数据,而不是所有的舵机。
  3. 发送控制指令之前,请确保串联在一起的舵机每个舵机的ID号都不一样。
  4. 批量读取跟批量写入针对的都是用户自定义参数区块。

发布者:Fashion Star,转转请注明出处:https://fashionrobo.com/protocol/24686/

联系我们

13924656166

james@fashionstar.com.hk