英飞凌TC3xx之DMA工作原理及应用实例
DMA是直接存储访问Direct Memory Access的简称。它的唯一职能就是在不需要CPU参与的情况下,将数据从源地址搬运到目的地址。所以,我们由此可知,在TC38x芯片内部,DMA做的就是个“快递员”的工作。而对于作为开发者的我们,要做的事就是告诉这个“快递员”,我的“寄件地址”是什么,我的“收件地址”是什么,我的“取件时间”是什么时候,我寄件成功以后,是否要做些什么后续工作?
如果这样看待这件事的话,那么是不是感受更加直观了呢?
1 DMA的架构
照惯例,我们先上一张DMA的架构图,它能帮我们更直观的了解它的工作机制。
- DMA从源地址搬运数据到目的地址是不需要CPU或者其他片上外设参与的。数据搬运由通过ME(搬运引擎)执行的激活的DMA通道中的TCS(传输控制集)控制,而DMA通道由DMA请求激活。
- DMA在SPB总线上实现了符合FPI总线协议的标准的FPI从机接口,DMA配置接口支持单个数据传输,而不支持块传输。
- 在DMA配置期间,每个DMA通道都会分配到一个RP(资源分区)上。
- Access Enable对每个RP进行保护,每个具有总线主控功能的RP都有一个唯一的主标签标识符,用于识别片上总线事务的来源,基于主标签标识符的访问保护可以