KST 舵机 RS485 总线通讯协议 V1.3
KST 舵机 RS485 总线通讯协议 V1.3
此协议定义了上位机与下位机之间的 RS485 总线通讯规约,后续可根据需要进行扩充或修订。
一、默认值
节点地址:0x25
xx率:115200bps通信格式:8N1
二、帧格式
字节 | 1 | 1 | 1 | 1 | 4 | 1 | 1 |
名称 | 帧头 | 版本 | 地址 | 命令码 | 数据 | 校验 | 帧尾 |
内容 | 0xFE | 0xCA | 2.2 | 2.3 | 2.4 | 2.5 | 0x0A |
2.1 帧头,版本,帧尾:
此三个字节为固定数值;
2.2 地址
即从节点地址,范围 0x00~0xFF, 其中 0x00 用作发送广播命令。不管是命令或者响应都使用从节点地址。
2.3 命令码
即发送命令或响应的代码。命令代码范围 0x00~0x3F,正常响应代码=命令代码+0x40,
出错响应代码=命令代码+0xC0。具体见三、命令说明。
2.4 数据
固定为 4 字节,不够用 0x00 补足。具体见三、命令说明。
2.5 校验
从版本加到数据共 7 字节的算术和,舍去高位溢出,取低 8 位。
三、命令说明(以下部分只描述命令码和数据部分内容)
1、xx率设置命令:
xx率默认为 1152000。使用设置命令可以将xx率设置为对照表中的可选值。
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x06 | X | 0x00 | 0x00 | 0x00 |
X 为xx率设置字节,xx率设置对照表如下:
X | 00 | 01 | 02 | 03 | 04 | 05 | 06 | 07 |
xx率 | 9600 | 19200 | 38400 | 57600 | 115200 | 256000 | 512000 | 921600 |
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x46 | X | 0x00 | 0x00 | 0x00 |
xx率变更必须使用保存命令保存,并且断电重启后才生效(更高的xx率对通讯线缆和布线结构有特殊要求,具体要求请参考相关的 RS485 协议)。
2、节点号设置命令节点号默认为 0x25。
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x08 | X | 0x00 | 0x00 | 0x00 |
X 为新的节点号。
收到如下回复说明设置成功:
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x48 | X | 0x00 | 0x00 | 0x00 |
节点号变更必须使用保存命令保存,并且断电重启后才生效。
3、保存命令(下位机无需响应)
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x0F | 0x73 | 0x61 | 0x76 | 0x65 |
保存节点号、xx率等。
4、读节点号
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x18 | 0x00 | 0x00 | 0x00 | 0x00 |
回复:
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x58 | X | 0x00 | 0x00 | 0x00 |
X 为返回的当前设备节点号。
5、设置位置命令
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x09 | Low | High | 0x00 | 0x00 |
位置设置命令步长 0.1°,范围-100°~+100°,采用补码表示(超过范围的位置指令,当前设备返回出错代码;位置设置的精度为±0.5°)。
位置 | -100° | -10.9° | -0.8° | 0° | 0.8° | 10.9° | 100° |
High | 0xFC | 0xFF | 0xFF | 0x00 | 0x00 | 0x00 | 0x03 |
Low | 0x18 | 0x93 | 0Xf8 | 0x00 | 0x08 | 0x6D | 0xE8 |
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x49 | Low | High | 0x00 | 0x00 |
设置成功后,当前值变更立刻生效。
6、读取位置
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x19 | 0x00 | 0x00 | 0x00 | 0x00 |
回复:
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x59 | Low | High | 0x00 | 0x00 |
与设置位置的High,Low 字节定义相同。
7、读取设备状态
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x15 | 0x00 | 0x00 | 0x00 | 0x00 |
回复:
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x55 | X1 | X2 | X3 | 0x00 |
X1X2 表示工作电流(精度±5%,或者 0.01A),单位 10mA,例如:
X2 | 0x00 | 0x00 | 0x00 | 0x01 | 0x01 |
X1 | 0x32 | 0x4B | 0x64 | 0x00 | 0xF4 |
电流 | 0.50A | 0.75A | 1.00A | 2.56A | 5.00A |
X3 表示工作温度(温度范围-40~+120℃,精度±2℃),用补码表示,例如:
X3 | 0xD8 | 0xF6 | 0x00 | 0x19 | 0x78 |
温度 | -40℃ | -10℃ | 0℃ | 25℃ | 120℃ |
8、读固件版本
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x1A | 0x00 | 0x00 | 0x00 | 0x00 |
回复:
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0x5A | X1 | X2 | X3 | X4 |
9、读写失败回复
命令码 | 字节 1 | 字节 2 | 字节 3 | 字节 4 |
0xC0+X | 错误代码 |