A-Format域
CDF
CDF 组成结构如下:

CDF,Command Data Field,只在TX涉及,由以下组成:
-
Start bit:1'b0,固定值;
-
Sink code:3’b010,固定值;
-
Frame Code:2-bit,CDF对应2’b00;
-
Encoder Address:3-bit,编码器的地址;
-
Comand Code:5-bit,命令代码;
-
CRC code:3-bit,CRC校验码,生成多项式为X^3+X+1,计算范围除了Start Bit、Stop Bit和Sink Code以外的所有bit,这里需要硬件自动计算生成;
-
Delimiter:1'b1,固定值。
MDF
MDF 组成结构如下:

MDF0/1/2,Memory Data Field 0/1/2,只在TX涉及,由以下组成:
-
Start bit:1'b0,固定值;
-
Sink code:3’b010,固定值;
-
Frame Code:2-bit,MDF0对应2’b01,MDF1对应2’b10,MDF2对应2’b11;
-
Data bit:8-bit,数据位;
-
CRC code:3-bit,CRC校验码,生成多项式为X^3+X+1,计算范围除了Start Bit、Stop Bit和Sink Code以外的所有bit,这里需要硬件自动生成;
-
Delimiter:1'b1,固定值。
IF
IF只在RX涉及,其格式与CDF命令有关。
当CDF为CDF0~CDF20,适用以下的格式:

-
Start bit:1'b0,固定值;
-
Sink code:3’b100,固定值;
-
Encoder Address:3-bit,RX应该与TX的一致,不一致则产生错误状态;
-
Command Code:5 bit,RX应该与TX的CDF域的CC Code一致,不一致则产生错误状态;
-
Encoder Status:4-bit;
-
Delimiter:1'b1,固定值。
当CDF为CDF21/22,适用以下的格式:

-
Start bit:1'b0,固定值;
-
Sink code:3’b100,固定值;
-
EAX:3-bit;
-
ES:1-bit,状态位,ES = ES0 + ES1 + ES2 + ES3;
-
Data bit:8-bit,数据位;
-
Delimiter:1'b1,固定值。
DF0/1/2
DF0/1/2 组成结构如下:

DF0/1/2,Data Field 0/1/2,只在RX涉及,DF的数量与CDF有关,由以下组成:
-
Start bit:1'b0,固定值;
-
Data bit:16-bit,数据位;
-
Delimiter:1'b1,固定值。
RX_CRC_ERR
对于接收到的编码器的数据,包含了8bit CRC码,CRC码的生成多项式为 X^8+X^4+X^3+X^2+1,计算的范围为所有接收的Field,除去起始位和截止位的数据。 以下是3field的CRC计算例子(DF1的低8-bit为CRC):
IF | DF0 | DF1 |
---|---|---|
00111110 00000011 | 00000000 11101111 | 11011111 00110101 |
对于RX数据域的CRC,支持对该CRC码的验证,如果CRC码不正确,则在RX_ASTS寄存器中相应的BIT位指示校验不正确。