多摩川协议理解-(1)

多摩川编码器有绝对值的和增量的两种,这边主要是我对多摩川绝对值的理解。

前文,

多摩川编码器其实是日本有一家公司叫多摩川的公司做出来的,其实他们家有很多种编码器,但是这里我只对他的们出的协议作出理解。

硬件接口方面,因为有单圈和多圈只分,多圈一般有电池,所以会多一个带电池的。其主要就是其实是485通讯

单圈多圈
5V供电5V供电
GNDGND
485 A485 A
485 B485 B
PEPE
NC电池正极
NC电池负极

它的通讯波特率是2.5M,通讯方面,对于绝对试编码器,其一般流程都是,发送指令给编码器,编码器返回对应信息。其中多摩川编码器有多种指令,这里我们以单圈17位编码器为例子指令分我分为两类1,读取编码器信息状态,清除和改变编码器错误和状态的一些指令(单CF一个字节)2,读写编码器的EEPROM的的指令在详细说明多摩川的指令和返回信息,这边我们先说明一些名词

指令名词解释
CF不同的命令类型(比如我要读取绝对值信息)
SF编码器的一些状态
DF编码器的位置信息
ADF编码器的EEPROM地址
EDF编码器EEPROM地址的内容
CRCcrc校验多项式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类型DF0DF1DF2DF3DF4DF5DF6DF7

ID0(0X02)

ABS0ABS1ABS2
ID1(0X8A)ABM0ABM1ABM2
ID2(0X92)ENID
ID3(0X1A)ABS0ABS1ABS2ENIDABM0ABM1ABM2ALMC
ID7(0XBA)ABS0ABS1ABS2
ID8(0XC2)ABS0ABS1ABS2

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代码,时序上的讲解,和做一个多摩川编码器。