Chinaunix首页 | 论坛 | 博客
  • 博客访问: 707728
  • 博文数量: 255
  • 博客积分: 5000
  • 博客等级: 大校
  • 技术积分: 2811
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-09 13:29
个人简介

IT业行者,行者无疆

文章分类

全部博文(255)

文章存档

2011年(121)

2010年(134)

我的朋友

分类: 嵌入式

2010-10-13 09:58:00

DMA笔记
1.全服务/单服务
全服务:a.状态3时,DMA原子操作一直被重复到计数器(CURR_TC)变成0.
          b.计数器CURR_TC变成0,清除DMA ACK.
          c.主状态机一直在状态3等待。
          d.DMA ACK 在传输过程中一直有效,直到计数器CURR_TC为0.
          e.DMA ACK 在传输区间被声明后进行原子操作当TC达到0时。
  单服务:a.状态3时,DMA原子操作仅被执行一次,然后停止,再等待其他的DMA REQ。
          b.原子操作完成清除DMA ACK.
          c.如果另外DMA REQ到来,将重复三个状态。
         d.每个原子传输过程中DMA ACK总是先有效再无效。
e.DMA ACK 被声明后进行每个原子操作。
         
  任何服务,计数器CURR_TC为0时,中断请求信号INT_REQ发出。
 
请求/握手模式对比
  请求 ----- 单方 ( 请求 )
  握手 ----- 双方 ( 请求 ---- > 应答 )
  
 请求模式
    
 握手模式
     只有XnXDACK无效(高电平)以后,XnXDREQ才能为有效(低电平)
    
XnXDREQ无效,DMA在两个周期内将XnXDACK设无效。XnXDREQ有效则会一直等至XnXDREQ无效。
     一个传输后,XnXDREQ先无效再有效方开始下一传输。
     DMA检测两次XnXDREQ。
 
    一个传输:单服务 --- 原子操作完成;
              全服务 --- 原子操作重复到计数器(CURR_TC)变成0。
单服务原子操作完成、全服务计数器CURR_TC为0时都会清除DMA ACK.
在请求模式,直接至DMA ACK为无效。
不用理会DMA REQ,DMA REQ可以持续也可以变化?
在握手模式, 先致(或等至)DMA REQ无效,然后DMA ACK无效。
  只有XnXDACK无效(高电平)以后,XnXDREQ才能为有效(低电平)
 

S3C2440芯片手册:

两种模式的差异在其是否等待DACK无效。

在握手模式下,DMA控制器在开始一个新传输前等待无效DREQ。如果DREQ无效,其使得DACK无效并等待另外有效DREQ.

在请求模式下,DMA控制器不会等到DREQ无效,其仅将DACK置无效且如果DREQ有效则开始另一个传输。

 
传输大小:
 
阅读(592) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~