S3C2410:DMA介紹(精)
来源:互联网 发布:淘宝中老年女秋装 编辑:程序博客网 时间:2024/05/16 00:59
这里具体DMA
Atomic
Data
Request
DMA
RELOAD:在reload模式下,当transfer
Req&Ack:DMA请求和应答的协议有两种,Demard
传输总长度:DMA一次整体服务传输的总长度为:
2410的DMA支持四类DMA传输:系统总线到系统总线(ASB/AHB to ASB/AHB),系统总线到外设总线(ASB/AHBto APB),外设总线到系统总线(APB to ASB/AHB),外设总线到外设总线(APB to APB)。
2410共有四条DMA通道,每条通道5个请求源。
Ch0:nXDREQ0,UART0,SDI,Timer,USB EP1
Ch1: nXDREQ1,UART1,I2SSDI,SPI0,USB EP2
Ch2:I2SSDO,I2SSDI,SDI,Timer, USB EP3
Ch3:UART1,SDI,SPI1,Timer, USB EP4
2410 DMA 三个比较重要的信号,引用2410官方文档:
DMA REQ: In the Single service mode, these three states of main FSMare performed and then stops, and waits for another DMA REQ. And ifDMA REQ comes in, all three states are repeated.
DMA ACK: DMA ACK is asserted and then deasserted for each atomictransfer. In contrast, in the Whole service mode, main FSM waits atstate-3 until CURR_TC becomes 0. Therefore, DMA ACK is assertedduring all the transfers and then deasserted when TC reaches 0.
INT REQ: INT REQ is asserted only if CURR_TC becomes 0 regardlessof the service mode (Single service mode or Whole servicemode).
2410 DMA状态机:
2410 的DMA使用一个具有三个状态的有限状态机进行DMA 传输的流程控制,引用2410官方文档:
State-1. As an initial state, the DMA waits for a DMA request. Ifit comes, it goes to state-2. At this state, DMA ACK and INT REQare 0.
State-2. In this state, DMA ACK becomes 1 and the counter (CURR_TC)is loaded from DCON[19:0] register. Note that the DMA ACK remains 1until it is cleared later.
State-3. In this state, sub-FSM handling the atomic operation ofDMA is initiated. The sub-FSM reads the data from the sourceaddress and then writes it to destination address. In thisoperation, data size and transfer size(single or burst) areconsidered.
每当一次DMA操作结束,不管是使用什么服务模式,DMA状态机都会自动地从状态三回到状态一,开始另一次操作。注意这里信号是DMA REQ和 DMA ACK,而最终引脚信号是nXDREQ 和 nXDACK,所以最后实际输出的电平与这里的描述是相反的。
2410 DMA 的服务模式:
共有两种服务模式,一种是单一服务模式(single service),另外一种是整体服务模式(wholeservice)。
在单一服务模式下,不使用传统的DMA计数器,三个DMA状态被顺序执行一次后停止,等待DMA请求再一次来临后再重新开始另一次循环。
在整体服务模式下,使用传统的DMA计数器,状态机会停留在状态三,直到DMA计数器的值减为零,再回到状态一,等待下一次DMA请求。
2410 DMA 数据传输模式:
共有两种数据传输模式:
单位数据传输模式:执行一次读操作和一次写操作。
并发数据传输模式:执行四次读操作和四次写操作。
2410 DMA 的基本时序:
nXDREQ请求生效并经过2CLK周期同步后,nXDACK响应并开始生效,但至少还要经过3CLK的周期延迟,DMA控制器才可获得总线的控制权,并开始数据传输。
2410 DMA 的两种协议模式:
请求模式:If XnXDREQ remains asserted, the next transfer startsimmediately. Otherwise it waits for XnXDREQ to be asserted.
握手模式:If XnXDREQ is deasserted, DMA deasserts XnXDACK in 2cycles.Otherwise it waits until XnXDREQ is deasserted.
2410 DMA REQ与ACK 协议类型:
共有三种协议类型:
单一服务请求:
单一服务握手:
整体服务握手:
根据上面所说的服务模式和协议模式,很容易推知这三种协议的时序分别是什么。
- S3C2410:DMA介紹(精)
- S3C2410:DMA介紹(精)
- S3C2410:DMA介紹(精)
- S3C2410:DMA介紹(精)
- S3C2410:DMA介紹
- S3C2410:DMA介紹
- S3C2410 DMA工作过程
- S3C2410 DMA详解
- S3C2410 DMA 详解
- S3C2410 DMA详解
- S3C2410 DMA详解
- S3C2410 DMA原理与实例
- Linux s3c2410 DMA驱动开发
- Linux s3c2410 DMA驱动开发
- S3C2410下DMA的使用
- S3C2410的linux 下DMA驱动程序开发
- S3C2410的linux下DMA驱动程序开发
- s3c2410 DMA驱动源码分析2
- S3C2410通过IIS总线与音频芯片UDA1…
- 禁止所有的中断(关中断/开中断)
- 禁止所有的中断(关中断/开中断)
- S3C2410:DMA介紹(精)
- NSRunLoop
- S3C2410:DMA介紹(精)
- S3C2410 Linux IIS音频设备驱动分…
- S3C2410 Linux IIS音频设备驱动分…
- s3c2410的dma操作的一般步骤
- Python 学习笔记(1)
- s3c2410的dma操作的一般步骤
- s3c2440 spi驱动DMA模式
- s3c2440 spi驱动DMA模式
- IIC的linux驱动