Chinaunix首页 | 论坛 | 博客
  • 博客访问: 507938
  • 博文数量: 76
  • 博客积分: 2535
  • 博客等级: 少校
  • 技术积分: 3130
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-22 11:26
个人简介

京都医院http://www.fjzzled.com/杭州京都医院

文章分类

全部博文(76)

文章存档

2011年(25)

2010年(51)

我的朋友

分类: 嵌入式

2010-12-06 10:19:00

DMA的概述

SC2440支持位于系统总线与外围总线之间的四通道DMA控制。每一通道的DMA都可以处理一下四种情况:

1.         源和目的器件均可以在系统总线

2.         源器件在系统总线而目的器件在外围总线

3.         源器件在外围总线而目的器件在系统总线

4.         源和目的器件均可以在外围总线

DMA最大的有点就是可以在没有CPU干涉的情况下进行数据的传送。可以通过软件控制DMA启动,或者通过内部请求或者外部请求引脚启动。

DMA请求源

       DCON寄存器选择DMA请求方式为H/W时,每一通道的DMA控制器能在四个DMA请求源之中选择一种DMA。(注意:如果DCON寄存器选择的是S/W请求方式,DMA请求源是没有意义的)

每通道的DMA请求源

 

Source0

Source1

Source2

Source3

Source4

Source5

Source6

Ch-0

nXDREQ0

UART0

SDI

Timer

USB device EP1

I2SSDO

PCMIN

Ch-1

nXDREQ1

UART1

I2SSDI

SPI0

USB device EP2

PCMOUT

SDI

Ch-2

I2SSDO

I2SSDI

SDI

Timer

USB device EP3

PCMIN

MICIN

Ch-3

UART2

SDI

SPI1

Timer

USB device EP4

MICIN

PCMOUT

 

DMA控制

      DMA使用三态的有限状态机FSM (Finite State Machine),有限状态机制)对其进行控制,以下用三步进行描述:

l         状态1

在初始状态,DMA等待DMA请求。当DMA请求到达时,进入状态2。在这 阶段DMA ACKINT REQ均为0

l         状态2

在这个阶段,DMA ACK变成1以及计数器CURR_TCDCON[19:0]寄存器加载数据。(注意:DMA ACK保持1直到对其清零)

l         状态3

在这个阶段,DMA对进行原子操作(atomic operation)的子有限状态机(sub-FSM)进行初始化。sub-FSM从源地址读取数据以后并写进目的地址。在这个操作前,数据的大小和传输的大小均应给予考虑。在整体模式(Whole service mode)下的计数器(CURR_TC)0之前,数据传输的操作将会继续。当sub-FSM完成原子操作后,主FSM进行倒计。另外,在计数器CRRR_TC0以及中断设置DCON[29]寄存器被置1时,主FSM发出INT REQ信号。除此之外,同时清除DMA ACK。假如以下一种情况发生:

1.         在整体服务模式下计数器CURR_TC0

2.         在单一服务模式下原子操作的完成

(注意:在单一服务模式下,主FSM的三个状态在完成停止后,等待下一个DMA REQ。当有新的DMA REQ到来,就会重复三个状态)

 

有限状态机

  在数字电路系统中,有限状态机是一种十分重要的时序逻辑电路模块,它对数字系统的设计具有十分重要的作用。

  有限状态机是指输出取决于过去输入部分和当前输入部分的时序逻辑电路。一般来说,除了输入部分和输出部分外,有限状态机还含有一组具有记忆功能的寄存器,这些寄存器的功能是记忆有限状态机的内部状态,它们常被称为状态寄存器。在有限状态机中,状态寄存器的的下一个状态不仅与输入信号有关,而且还与该寄存器的当前状态有关,因此有限状态机又可以认为是组合逻辑和寄存器逻辑的一种组合。其中,寄存器逻辑的功能是存储有限状态机的内部状态;而组合逻辑有可以分为次态逻辑和输出逻辑两部分,次态逻辑的功能是确定有限状态机的下一个状态,输出逻辑的功能是确定有限状态机的输出。

  在实际的应用中,根据有限状态机是否使用输入信号,设计人员经常将其分为Moore型有限状态机和Mealy型有限状态机两种类型。1 Moore型有限状态机 其输出信号仅与当前状态有关,即可以把Moore型有限状态的输出看成是当前状态的函数。2 Mealy型有限状态机 其输出信号不仅与当前状态有关,而且还与所有的输入信号有关,即可以把Mealy型有限状态机的输出看成是当前状态和所有输入信号的函数。

参考:

 

Atomic operation

An atomic operation in computer science refers to a set of that can be combined so that they appear to the rest of the system to be a single operation with only two possible outcomes: success or failure.

1.     Until the entire set of operations completes, no other can know about the changes being made (); and

2.     If any of the operations then the entire set of operations fails, and the of the system is restored to the state it was in before any of the operations began.

Even without the complications of , this can be to implement. As long as there is the possibility of a change in the , without atomicity there is the possibility that the system can enter an (invalid as defined by the program, a so-called ).

 

原子操作

原子操作是计算机科学所指的可以结合起来的一组操作,使这些操作看起来像是系统的一个单独操作,然而操作的结果只有两个:成功或者失败。

为了能实现原子操作,必须满足两个条件:

1.         在整组操作没有完成之前,不能有其他进程能了解操作在发生的变化

2.         如果有任何一组操作失败,则一整组操作就失败,以及当前状态要被恢复到操作之前的状态。

 

 

外部DMA DREQ/DACK 协议

       外部DMA有三种请求/应答协议:

1.         单一服务查询(Single service Demand,)

2.         单一服务握手(Single service Handshake)

3.         整体服务握手(Whole service Handshake)

每类定义的DMA请求和应答信号都与这些协议有关。

 

查询/请求(Demand/Handshake)模式的比较

查询/请求模式的区别在于XnXDREQ and XnXDACK

 

查询模式(Demand Mode)

如果 XnXDREQ 保持低电平,下一个传输立即开始。否则等待 XnXDREQ 为低电平。

握手模式(Handshake Mode)

如果 XnXDREQ 为高电平,DMA XnXDACK 的高电平维持2个周期。否则进入等待直到XnXDREQ 位高电平。

S3C2440的DMA控制 - jammy_lee - jammy_lee 的原始部落

 

DMA专用寄存器

每通道DMA都有9个控制寄存器(总共有36个对四通道DMA控制的寄存器),其中6个是控制DMA传输的控制寄存器,另外3个是对DMA状态监视的控制器。

      6DMA控制传输的寄存器,可以进行读/

l         DISRCnDMA INITIAL SOURCE (DISRC) REGISTER

l         DISRCCnDMA INITIAL SOURCE CONTROL (DISRCC) REGISTER

l         DIDSTnDMA INITIAL DESTINATION (DIDST) REGISTER

l         DIDSTCnDMA INITIAL DESTINATION CONTROL (DIDSTC) REGISTER

l         DCONnDMA CONTROL (DCON) REGISTER

l         DMASKTRIGnDMA MASK TRIGGER (DMASKTRIG) REGISTER

 

3个状态监视的寄存器,只能进行读

l         DSTATnDMA STATUS (DSTAT) REGISTER

l         DCSRCnDMA CURRENT SOURCE (DCSRC) REGISTER

l         DCDSTnCURRENT DESTINATION (DCDST) REGISTER

 

阅读(2693) | 评论(0) | 转发(3) |
给主人留下些什么吧!~~