berrie
驱动牛犊
驱动牛犊
  • 注册日期2004-06-16
  • 最后登录2005-05-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2061回复:4

DMA启动后能暂停吗?

楼主#
更多 发布于:2005-01-11 09:55
最近有个疑问:
    DMA启动后(Bterm Enabled, Burst Enabled),如果需要暂停它。
    可不可以直接把LOCAL端的READY拉高,当需要再传输时把READY来低?
    9054的时序图里没有这样的操作。请问各位大侠如果在DMA传输过程中READY置低后,ADS、BLAST会怎么变化?
qizhi
驱动小牛
驱动小牛
  • 注册日期2001-10-18
  • 最后登录2017-07-31
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望41点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-01-12 10:58
这个方法似乎不成,因为READY仅仅用于操作的时序配合,如果此信号一直不下来则机器将处于死机状态。
具体暂停方式可能与DMA的方式不同而不同,具体看一下9054的手册吧;应是使启动DMA的条件暂时不成立即可,如在Demand模式的DMA里,将DREQ信号暂时无效即可。其他模式我不熟悉,应该与此同理,但信号肯定不是上述信号了。
berrie
驱动牛犊
驱动牛犊
  • 注册日期2004-06-16
  • 最后登录2005-05-16
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-01-12 16:28
我就是在9054的资料上没看到这样的时序。
这样的设想也许是不对的吧,等有了逻辑分析仪可以试一试。
有一种方式可以实现:
DMA PCI-to-Local with Local Bus Pause and Latency Timers
不过这个暂停时间是固定的。
hglzw
驱动小牛
驱动小牛
  • 注册日期2001-06-12
  • 最后登录2006-03-03
  • 粉丝0
  • 关注0
  • 积分19分
  • 威望2点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-01-21 09:25
如qizhi所说,应控制DMAREQ信号,对于MASTER DMA方式一次猝发DMA传输完成后,9054会向CPU申请重新获得总线控制权(通过DMAREQ信号),如果用设备的READY信号或者一个人为的控制信号封住DMAREQ信号,则使9054处在一直等DMAACK的状态,DMA传输暂停。一直到这个控制信号有效,CPU才会收到这个DMAREQ,在CPU允许时即发出DMAACK通知9054,已获得总线控制权,可以进行下一个猝发传输。
[img]http://www.kinboh.com/images/5130.jpg[/img]
woodhead
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2007-01-04
  • 粉丝0
  • 关注0
  • 积分20分
  • 威望2点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-01-25 15:49
好像有函数调用来着
游客

返回顶部