DMA(1)外部DMA请求/应答协议

DMA(1)外部DMA请求/应答协议
短程蒸馏器  这⾥主要讲述4种类型的DMA请求/应答协议。
  (1)握⼿模式
  Handshake模式:DMA完成⼀次请求后等待Request信号⽆效,如果Request⽆效,DMA会⽆效ACK两个时钟周期,再等待下⼀次Request。
  在握⼿模式下,⼀个单独的DMA请求信号对应⼀个DMA应答信号。⽽且在该模式下,⼀次DMA操作意味着在DMA操作中的⼀对或不可分的读和写周期。在DMA操作中,总线控制器不能把`总线的使⽤权分配给其他总线控制者。如果想在DMA 操作中响应⾼优先级的总线控制,则必须⽤单步模式,单步模式是把⼀个DMA操作看成是分离的读和写操作周期。
垃圾热解  由nXDREQ产⽣的DMA请求引起⼀个字节、⼀个半字或者⼀个字被传送出去。在握⼿模式下,每⼀个数据的传送都需要DMA请求。
  (2)demand mode 需求模式
  Demand模式:如果DMA完成⼀次请求后Request仍然有效,那么DMA就认为这是下⼀次DMA请求,并⽴即开始下⼀次的传输。
  (这⾥应该是有问题:需求模式在⼀次dma request 后就开始等待下⼀个 dma request 不采⽤传统的计数⽅式,不会霸占总线不放 ,  长时间占⽤总线是whole mode )
  请求模式表⽰,只要DMA请求信号有效,DMA传送周期将连续进⾏。不像完整服务模式,需求模式不允许将总线控制权交给⾼优先级的总线控制者,即使它在DMA操作中向总线控制器发出请求。也就是说,在需求模式下,DMA垄断总线控制权。
  (3)单步模式
  单步模式意味着有两个DMA应答周期,分别为DMA读和写周期。单步模式通常⽤于测试和调试,因为在读与写之间总线控制权可能会交给其他总线控制者。在nXDACK的⾮有效区,⽐如在读与写周期之间,总线控制器将再次评估总线优先级,以决定新的总线控制权。因此,单步模式下的数据传输将慢于握⼿模式下的数据传输。
  当DMA请求信号变低时,如果没有⾼优先级的总线请求,则总线通过降低DMA应答信号来表明对DMA操作的总线分配。在DMA应答信号的第⼀个低电平段,将有⼀个DMA的读周期。在DMA读周期后,DMA应答信号将有⼀个上升沿来表⽰DMA读周期的结束;同时,如果在DMA应答信号上升时DMA请求信号⼀直为低电平,则表明下⾯将是DMA写周期。但是如果在DMA应答信号上升时DMA请求信号也为⾼电平,则DMA写周期将会延迟到新的DMA请求信号被激活。
  (4)whole mode 完整服务模式
  在完整服务模式下,⼀次DMA请求将产⽣连续的DMA传输,直到规定的DMA传输数据完成。
  在完整服务模式下,如果DMA传送操作的数量太⼤,DMA操作长时间占⽤总线,将引起⼀些问题,因为其他总线服务将⽆法进⾏。为了解决此问题,在完整服务模式下,每传送完⼀个单元,DMA将释放总线控制权。当DMA释放总线控制权后,其他总线就可以拥有总线控制权;如果其他总线拥有了总线控制权,则在完成该服务后将继续执⾏剩余的DMA操作,⽽且不需要再次激活nXDREQ。
附加:
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发出。
请求/握⼿模式对⽐
请求 ----- 单⽅ ( 请求 )
adma
握⼿ ----- 双⽅ ( 请求 ---- > 应答 )格宾笼挡墙
请求模式
多元合金握⼿模式
只有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.  (DREQ , DACK都对应有相应的引脚和外设相连的,可以看原理图)
在请求模式下,DMA控制器不会等到DREQ⽆效,其仅将DACK置⽆效且如果DREQ有效则开始另⼀个传输。

本文发布于:2024-09-21 21:49:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/334474.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:总线   请求   模式   信号   操作
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议