DES 结构体
描述符地址必须按照 32 位对齐,每个描述符包含 16 字节的控制和状态信息,以及数据缓存的指针和容量。每个描述符由四个 DES 结构体组成,每个 DES 都存储 32 位数据。
DES0 用于配置控制信息,说明如下:
位域 | 位域名称 | 说明 |
---|---|---|
31 | OWN |
|
30 | CES (Card Error Summary) | 错误位
|
29:6 | RESET | / |
5 | ER (End of Ring) | 置 1,表示描述符链表到达最后一个描述符。IDMAC 返回链表的基址,创建一个描述符环。仅在双缓存描述符结构时有效。 |
4 | CH (Second Address Chained) | 置 1,表示描述符的第二个地址是下一个描述符的地址,不是第二个缓存的地址。该位域置 1 时,DES1[25:13] 应该清零。 |
3 | FS (Fist Descriptor) | 置 1,表示描述符包含第一个缓存的数据。如果第一个缓存的容量为 0,下一个描述符包含起始数据。 |
2 | LD (Last Descriptor) | 与一次 IDMAC 传输的最后一个 block 有关。
|
1 | DIC (Disable Interrupt on Completion) | 置 1,防止 IDMAC 状态寄存器的 bit0/ 1 置位。 |
0 | RES | / |
DES1 用于配置每个描述符的数据长度,说明如下:
位域 | 位域名称 | 说明 |
---|---|---|
31:26 | RES | / |
25:13 | BS2 (Buffer 2 Size) | 缓存 2 容量,表示第二个数据缓存的字节容量。
|
12:0 | BS1 (Buffer 1 Size) | 缓存 1 容量,表示第一个数据缓存的字节容量。
注: 如果仅有一个缓存被编程,必须使用缓存 1,而不是缓存
2。 |
DES2 用于配置第一个描述符的起始地址,说明如下:
位域 | 位域名称 | 说明 |
---|---|---|
31:0 | 缓存地址指针 1 |
|
DES3 用于配置下一个描述符的起始地址,说明如下:
位域 | 位域名称 | 说明 |
---|---|---|
31:0 | 缓存地址指针 2 | 使用双缓存结构时,表示第二个缓存的物理地址。如果 DES0[4] 置 1,该地址指向下一个描述符的地址。如果不是最后一个描述符,下一个描述符的地址必须按 32 位对齐,即 bit[1:0] 为 0,内部最低有效位被忽略。 |