USER GUIDE / CONNECTIVITY & NETWORKING / CAN FD / RECEIVE DMA
接收 DMA
当通过设置 DMAEN 使能接收 DMA 模式时,从 DMA 控制器将持续发出 dma_req 信号,直到 RX-FIFO 为空。当 dma_ack 有效时,RX 数据在 HRDAT[31:0] 上有效。并且 RX 数据始终占用 32 位宽度。
用户应检查 DLC[3-0] 以获取实际数据长度。dma_hburst[3:0] 信号会根据当前帧中带有 dma_req 的剩余条目数动态调整,在 INCR16、INCR8、INCR4 或 SINGLE 之间进行选择。在当前帧的最后一次传输中,dma_last 信号会与 dma_req 在同一个周期内置位。如果接收到来自 Host 的 dma_finish,则该帧事务完成,并且在 dma_finish 去使能后,RX-FIFO 存储空间将被释放。
以下波形是一个包含 16 字节 RX 数据的 RX DMA 示例。第一个 32 位数据(RD0)是“CAN Receive Frame Information Register”,与 CANRFIR 相同,第二个 32 位数据(RD1)是“CAN Receive Identifier Register”。后续数据为接收到的数据(RD2 ~ RD5)。
