多摩川协议理解-(1)
多摩川编码器有绝对值的和增量的两种,这边主要是我对多摩川绝对值的理解。
前文,
多摩川编码器其实是日本有一家公司叫多摩川的公司做出来的,其实他们家有很多种编码器,但是这里我只对他的们出的协议作出理解。
硬件接口方面,因为有单圈和多圈只分,多圈一般有电池,所以会多一个带电池的。其主要就是其实是485通讯
单圈 | 多圈 |
5V供电 | 5V供电 |
GND | GND |
485 A | 485 A |
485 B | 485 B |
PE | PE |
NC | 电池正极 |
NC | 电池负极 |
它的通讯波特率是2.5M,
通讯方面,对于绝对试编码器,其一般流程都是,发送指令给编码器,编码器返回对应信息。
其中多摩川编码器有多种指令,这里我们以单圈17位编码器为例子
指令分我分为两类
1,读取编码器信息状态,清除和改变编码器错误和状态的一些指令(单CF一个字节)
2,读写编码器的EEPROM的的指令
在详细说明多摩川的指令和返回信息,这边我们先说明一些名词
指令名词 | 解释 |
CF | 不同的命令类型(比如我要读取绝对值信息) |
SF | 编码器的一些状态 |
DF | 编码器的位置信息 |
ADF | 编码器的EEPROM地址 |
EDF | 编码器EEPROM地址的内容 |
CRC | crc校验多项式x8+1,(其实这就是异或校验) |
1,读取编码器信息状态的指令示意图
2,读写EEPROM的指令图
写EEPROM
读EEPROM
4,CF指令说明
CF的类型 | CF数组(发送) | 解释,和返回 |
读取信息 | ID0(0x02) | 读取单圈信息,返回CF+SF+ABS单圈信息+CRC |
ID1(0X8A) | 读取多圈信息,返回CF+SF+ABM多圈信息+CRC | |
ID2(0X92) | 读取ID信息,返回CF+SF+ENID编码器ID+CEC | |
ID3(0X1A) | 读取全部信息,返回CF+SF+ABS+ENID+ABM+ALMC+CRC | |
清除和改变 | ID7(0XBA) | 清除所以故障位,间隔62.5us以上,连续发10次 |
ID8(0XC2) | 将当前位置设置为编码器零点,间隔62.5us以上,连续发10次(断电后也生效) | |
IDC(0X62) | 将多圈数据清零,间隔62.5us以上,连续发10次 |
5,DF 说明
CF类型 | DF0 | DF1 | DF2 | DF3 | DF4 | DF5 | DF6 | DF7 |
ID0(0X02) |
ABS0 | ABS1 | ABS2 | |||||
ID1(0X8A) | ABM0 | ABM1 | ABM2 | |||||
ID2(0X92) | ENID | |||||||
ID3(0X1A) | ABS0 | ABS1 | ABS2 | ENID | ABM0 | ABM1 | ABM2 | ALMC |
ID7(0XBA) | ABS0 | ABS1 | ABS2 | |||||
ID8(0XC2) | ABS0 | ABS1 | ABS2 |
1、 ABS0~ABS2 分别为编码器单圈位置的低位、中位和高位其中 ABS2 的高 7 位为 0,其他数据组成 17bits 单圈位置信息。
2、 ABM0~ABM2 分别为编码器多圈位置的低位、中位和高位,其中 ABM2 为 0,其他数据组成 16bits 多圈位置信息
3、 ENID 为编码器 ID 信息,默认为 0x11(一般表示为17位)。PS(0X17表示23位)
4、ALMC SF 由于目前其实磁编码器和光编有不一样,其实得看编码器厂商,这边我贴一下多摩川原版的图片定义,比如磁编,有可能会有磁铁弱的警告定义,具体还得问厂商拿手册看一下。
这是我第一次写博客,有错的地方希望能帮我指出(因为这是我自己网上摸索的,自己也是刚毕业没一年小公司没人带,这些里面也不一定是全对),下几期我会实际,解析举例,C代码,时序上的讲解,和做一个多摩川编码器。