1、DMA基本原理
DMA(Direct Memory Access),直接存储器访问,它可以将数据从一个地址空间复制到另一个地址空间。当CPU初始化这个传输动作时,数据传输由DMA控制器来实现和完成,无需CPU的干涉。
DMA没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM和IO设备开辟一条直接传输数据的通道,使得CPU的效率大大提高。
大容量的单片机中有两个DMA——DMA1(七个通道)和DMA2(五个通道),每个通道专门用来管理来自一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。
2、DMA处理
在发生一个事件后,外设向DMA控制器发送一个请求,DMA控制器根据优先级处理请求。当DMA开始访问发送请求的外设时,会发送一个应答信号。当外设收到应答信号后,便立即释放它的请求。一旦外设释放了请求,DMA控制器也同时撤销应答信号。如果有更多的请求,外设可以启动下一个周期。
3、通道优先级
通道优先级一共有四级——很高、高、中等和低。在相等优先级情况下,则较低编号的通道比较高编号的通道的优先级要高。
4、数据传输方向
可以通过DMA_CCRx寄存器中的DIR来设置传输方向。0为从外设读——外设传向存储器;1为从存储器读——存储器传向外设。
5、地址增量
地址增量包括存储器地址增量模式和外设地址增量模式。
举个例子——存储器地址增