Edit online

指令表

如下ENDAT-IF支持指令表

1. ENDAT-IF支持指令表
模式指令 M2 M1 M0 (M2) (M1) (M0) TX Typ RX Typ
编码器发送位置 EnDat 2.1 EnDat 2.2 0 0 0 1 1 1 Typ1 Typ1
存储区选择 EnDat 2.1 EnDat 2.2 0 0 1 1 1 0 Typ2 Typ3
编码器接收参数 EnDat 2.1 EnDat 2.2 0 1 1 1 0 0 Typ2 Typ3
编码器发送参数 EnDat 2.1 EnDat 2.2 1 0 0 0 1 1 Typ2 Typ3
编码器接收复位 EnDat 2.1 EnDat 2.2 1 0 1 0 1 0 Typ1 Typ1
编码器发送位置值及附加信息 EnDat 2.2 1 1 1 0 0 0 Typ1 Typ1
编码器发送位置值和接收存储区选择 EnDat 2.2 0 0 1 0 0 1 Typ1 Typ2
编码器发送位置值并接收参数 EnDat 2.2 0 1 1 0 1 1 Typ1 Typ2
编码器发送位置值和参数 EnDat 2.2 1 0 0 1 0 0 Typ1 Typ1
编码器发送位置值并接收出错复位 EnDat 2.2 1 0 1 1 0 1 Typ1 Typ2

ENDAT-IF通过寄存器可以配置不同的发送类型和接收类型,进而兼容Endat 2.1/2.2的命令的传输模式。

发送类型:

  • TX type1:只发送模式命令;

  • TX type2:发送模式命令 + 8-bit MRS + 16-bit Data。

接收类型:

  • RX type1:接收位置数据,其中在此类型当中,可以通过寄存器使能是否接收附加数据1和附加数据2。另外为兼容Endat2.1,可以通过寄存器配置错误位为1-bit;

  • RX type2:接收位置数据 + 续发控制数据,在此类型中同样可以配置附加数据。另外在此模式下,trt寄存器生效;

  • RX type3:接收控制类数据。

下面给出典型的命令控制例子:

Case1: TX type1 + RX type1 (未使能接收附加数据)

这里对于RX位置数据的CRC,进行补充说明,位置数据的CRC的计算:

  • 计算的多项式为x^5+x^3+x+1;

  • 计算的范围是从F1 + F2(指令000111无此位) + Data;

  • 计算的初始值为0x1F;

  • 最后计算的CRC结果需要取反;

  • 返回的CRC是LSB先发送。

Case2: TX type2 + RX type3

这里对于RX参数数据的CRC,进行补充说明,参数的CRC的计算:

  • 计算的多项式为x^5+x^3+x+1;

  • 计算的范围是24-bit参数;

  • 计算的初始值为0x1F;

  • 最后计算的CRC结果需要取反;

  • 返回的CRC是LSB先发送。

Case3: TX type1 + RX type2 (未使能附加数据)

Case4: TX type1 + RX type1 (使能附加数据2和附加数据1)

这里对于RX 附加数据 的格式,进行补充说明:

其中附加数据的CRC的计算如下:

  • 计算的多项式为x^5+x^3+x+1;

  • 计算的范围是WRN + RM + Busy +8bit ACK+ 8-bit地址 + 8-bit数据;

  • 计算的初始值为0x1F;

  • 最后计算的CRC结果需要取反;

  • 返回的CRC是LSB先发送。