DMA控制器第10章
第10章 DMA控制器
本章讲述了DMA控制器,包括DMA的结构和主要特征、DMA的功能描述、DMA库函数和DMA应用实例
本章讲述了DMA控制器,包括DMA的结构和主要特征 、DMA的功能描述、DMA库函数和DMA应用实例
10.1DMA的结构和主要特征DMA(DirectMemoryAccess,直接存储器存取)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输,无须CPU干预,是所有现代计算机的重要特色。在DMA模式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样在很大程度上减轻了CPU资源占有率,可以大大节省系统资源。DMA主要用于快速设备和主存储器成批交换数据的场合。在这种应用中,处理问题的出发点集中到两点:一是不能去失快速设备提供出来的数据,二是进一步减少快速设备输入/输出操作过程中对CPU的打扰。这可以通过把这批数据的传输过程交由DMA来控制,让DMA代替CPU控制在快速设备与主存储器之间直接传输数据。当完成一批数据传输
10.1 DMA的结构和主要特征 DMA(Direct Memory Access,直接存储器存取)用来 提供在外设和存储器之间或者存储器和存储器之间的高速数 据传输,无须CPU干预,是所有现代计算机的重要特色。在 DMA模式下,CPU只需向DMA控制器下达指令,让DMA控制 器来处理数据的传送,数据传送完毕再把信息反馈给CPU, 这样在很大程度上减轻了CPU资源占有率,可以大大节省系 统资源。DMA主要用于快速设备和主存储器成批交换数据的 场合。在这种应用中,处理问题的出发点集中到两点:一是 不能丢失快速设备提供出来的数据,二是进一步减少快速设 备输入/输出操作过程中对CPU的打扰。这可以通过把这批 数据的传输过程交由DMA来控制,让DMA代替CPU控制在快 速设备与主存储器之间直接传输数据。当完成一批数据传输
之后,快速设备还是要向CPU发一次中断请求,报告本次传输结束的同时,“请示”下一步的操作要求。STM32的两个DMA控制器有12个通道(DMA1有7个通道,DMA2有5个通道),每个通道专门用来管理来自一个或多个外设对存储器访问的请求。还有一个仲裁器来协调各个DMA请求的优先权。DMA的功能框图如图10-1所示STM32F103VET6的DMA模块具有如下特征。1)12个独立的可配置的通道(请求):DMA1有7个通道,DMA2有5个通道。2)每个通道都直接连接专用的硬件DMA请求,每个通道都支持软件触发。这些功能通过软件来配置
之后,快速设备还是要向CPU发一次中断请求,报告本次传 输结束的同时,“请示”下一步的操作要求。 STM32的两个DMA控制器有12个通道(DMA1有7个通道 ,DMA2有5个通道),每个通道专门用来管理来自一个或多 个外设对存储器访问的请求。还有一个仲裁器来协调各个 DMA请求的优先权。DMA的功能框图如图10-1所示。 STM32F103VET6的DMA模块具有如下特征。 1)12个独立的可配置的通道(请求):DMA1有7个通 道,DMA2有5个通道。 2)每个通道都直接连接专用的硬件DMA请求,每个通道 都支持软件触发。这些功能通过软件来配置
3)在同一个DMA模块上,多个请求间的优先权可以通过软件编程设置(共有4级:很高、高、中等和低),优先权设置相等时由硬件决定(请求0优先于请求1,以此类推)。4)独立数据源和目标数据区的传输宽度(字节、半字、全字)是独立的,模拟打包和拆包的过程。源和目的地址必须按数据传输宽度对齐。5)支持循环的缓冲器管理。6)每个通道都有3个事件标志(DMA半传输、DMA传输完成和DMA传输出错),这3个事件标志通过逻辑“或”运算成为一个单独的中断请求。7)存储器和存储器间的传输。8)外设和存储器、存储器和外设之间的传输
3)在同一个DMA模块上,多个请求间的优先权可以通过 软件编程设置(共有4级:很高、高、中等和低),优先权设 置相等时由硬件决定(请求0优先于请求1,以此类推)。 4)独立数据源和目标数据区的传输宽度(字节、半字、 全字)是独立的,模拟打包和拆包的过程。源和目的地址必 须按数据传输宽度对齐。 5)支持循环的缓冲器管理。 6)每个通道都有3个事件标志(DMA半传输、DMA传输 完成和DMA传输出错),这3个事件标志通过逻辑“或”运算 成为一个单独的中断请求。 7)存储器和存储器间的传输。 8)外设和存储器、存储器和外设之间的传输