多摩川编码器是一种常用的绝对值编码器,其协议基于485硬件接口的标准NRZ协议,通讯波特率为固定的2.5Mbps。以下是多摩川编码器协议的详细说明:
 
硬件接口
多摩川编码器使用RS485接口进行通信,接口定义如下:
- 5V供电:电源线
- GND:地线
- 485 A:数据线A
- 485 B:数据线B
- PE:保护地线(可选)
- 电池正极:多圈编码器特有的电池正极(单圈编码器没有此引脚)
- 电池负极:多圈编码器特有的电池负极(单圈编码器没有此引脚)
通讯参数
- 波特率:2.5Mbps
- 数据格式:1起始位,8数据位,1停止位
- 校验方式:无校验
- 通讯方式:半双工
协议结构
多摩川编码器的通讯协议包括以下几个主要部分:
- CF(Control Field):控制字段,表示命令类型。
- SF(Status Field):状态字段,表示编码器的状态。
- DF(Data Field):数据字段,表示具体的数据。
- CRC:循环冗余校验,用于数据校验。
命令类型
多摩川编码器支持多种命令类型,主要包括读取编码器信息状态和读写EEPROM的指令。
1. 读取编码器信息状态
-  读取单圈信息: - 命令:ID0 (0x02)
- 响应:CF + SF + ABS0 + ABS1 + ABS2 + CRC
- 数据: - ABS0:单圈位置低位
- ABS1:单圈位置中位
- ABS2:单圈位置高位(高7位为0,低17位为单圈位置信息)
 
 
- 命令:
-  读取多圈信息: - 命令:ID1 (0x8A)
- 响应:CF + SF + ABM0 + ABM1 + ABM2 + CRC
- 数据: - ABM0:多圈位置低位
- ABM1:多圈位置中位
- ABM2:多圈位置高位(高8位为0,低16位为多圈位置信息)
 
 
- 命令:
-  读取ID信息: - 命令:ID2 (0x92)
- 响应:CF + SF + ENID + CRC
- 数据: - ENID:编码器ID信息,默认为- 0x11(表示17位)
 
 
- 命令:
-  读取全部信息: - 命令:ID3 (0x1A)
- 响应:CF + SF + ABS0 + ABS1 + ABS2 + ENID + ABM0 + ABM1 + ABM2 + ALMC + CRC
- 数据: - ABS0:单圈位置低位
- ABS1:单圈位置中位
- ABS2:单圈位置高位
- ENID:编码器ID信息
- ABM0:多圈位置低位
- ABM1:多圈位置中位
- ABM2:多圈位置高位
- ALMC:报警状态
 
 
- 命令:
2. 清除和改变编码器状态
-  清除所有故障位: - 命令:ID7 (0xBA)
- 响应:无响应
- 操作:间隔62.5µs以上,连续发送10次
 
- 命令:
-  将当前位置设置为编码器零点: - 命令:ID8 (0xC2)
- 响应:无响应
- 操作:间隔62.5µs以上,连续发送10次
 
- 命令:
-  将多圈数据清零: - 命令:IDC (0x62)
- 响应:无响应
- 操作:间隔62.5µs以上,连续发送10次
 
- 命令:
3. 读写EEPROM
-  读取EEPROM: - 命令:ADF + EDF + CRC
- 响应:CF + SF + EDF + CRC
- 数据: - ADF:EEPROM地址
- EDF:EEPROM地址的内容
 
 
- 命令:
-  写入EEPROM: - 命令:ADF + EDF + CRC
- 响应:CF + SF + CRC
- 数据: - ADF:EEPROM地址
- EDF:要写入的数据
 
 
- 命令:
CRC校验
- 校验算法:CRC-8,多项式为x^8 + x^2 + x + 1(即0x07)
- 校验范围:从CF到DF的所有字节
示例
假设你要读取多摩川编码器的单圈位置信息,可以按照以下步骤进行:
-  发送命令: 0x02
-  接收响应: 0x02 0x00 0x12 0x34 0x56 0xAB- 0x02:CF(命令类型)
- 0x00:SF(状态字段)
- 0x12:ABS0(单圈位置低位)
- 0x34:ABS1(单圈位置中位)
- 0x56:ABS2(单圈位置高位)
- 0xAB:CRC(校验值)
 
总结
多摩川编码器协议基于RS422接口,支持多种命令类型,包括读取编码器信息状态、清除和改变编码器状态以及读写EEPROM。协议中使用CRC-8校验确保数据传输的可靠性。