⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dma控制器.txt

📁 我们学校教授的课件 很好的学习助手啊 里面讲的很详细 汉好
💻 TXT
字号:
可编程DMA控制器8237A
    DMA(Direct memory access)称为直接存储器存取。是一种完全硬件控制
的I/O交换方式。DMA控制器从CPU临时借用总线控制权后,在存储器和I/O设备
之间建立一个数据传送通道,而不通过CPU,实现批量数据的高速传输。
    DMA控制其在微机系统中常用作为:显卡、软盘、硬盘、光盘和存储器之间
的接口。
    DMA在数据交换过程中的基本操作过程:
   1) 外部设备发出DMA请求。
   2) CPU响应DMA请求,将总线控制权交给DMA控制器,由DMA控制总线。
   3) DMA控制器对存储器寻址,确定数据传送的内存单元地址和交换数据的长度,
       开始交换数据。
   4) 数据交换结束,DMA控制器向CPU交还总线控制权。 
一、8237A的内部结构
    8237A由数据总线缓冲器、读写逻辑部件、工作方式寄存器、状态寄存器、优先
选择逻辑和4个DMA通道组成。
 1、DMA通道0--通道3(4个通道完全相同)每个通道有一个16位地址寄存器(存放存
储器区域首地址的偏移地址);一个16位终点计数寄存器(低14位用来存放传送数据块的长度)                          
   其中终点计数器的高两位用来定义所选通道的操作方式。
    D15    D14        DMA操作方式
    0      0          DMA校验
    0      1          DMA写操作
    1      0          DMA读操作
  每个通道有一条DMA请求线合应答线
      请求线:DRQ0-DRQ3由外部请求DMA传输的外部设备输入,高电平有效。
      应答线:DACK0-DACK3有8237输出给提出DMA请求的外设,低电平有效。
 2、数据总线缓冲器
    是一个双向三态缓冲存储器
    当8237处于从属状态时(获得总线控制权以前的状态),CPU像访问一般接口一样
    通过这个缓冲器对8237进行读写操作。    
 3、读写控制逻辑部件
    I/OR--读信号,双向三态,低电平有效。
    I/OW--写信号,双向三态,低电平有效
    A3-A0---输入输出地址线,从属状态是CPU通过它寻址8237内部的某个单口   
                           主控状态时向存储器输出低4位地址。
     CS--片选
     CLK--时钟输入,确定8237的工作速度。
4、控制逻辑部件
   用来向CPU发出总线请求,进入主控状态后,有它发出各种控制信号。
   1)HRQ(HOLD REQUEST)--保持请求信号。高电平有效。
     当任一通道收到DMA请求时,8237立即向CPU发出请求使用总线的信号HRQ。
   2)HLDA--保持响应信号,CPU输入,高电平有效。
      CPU收到HRQ信号,待当前总线周期执行完,向8237送出HLDA信号,表示总线控制权
      交给8237,此后,8237进入主控状态。
   3)READY--准备就绪,输入,高电平有效。
      在DMA操作过程中,若存储器或外设来不及读写操作,要求延长读写操作周期时。可使
      READY线无效,以便在DMA周期中增加等待周期,直到READY有效为止。
   4)MEMR和MEMW--读写存储器信号,低电平有效。
      是82337处于主控状态向存储器输出的读写控制信号
       MEMR有效————I/OW有效
       MEMW有效————I/OR有效
    5)A7-A4__地址输出线
       高4位地址线,DMA期间有效。

    6)TC(TERMINAI COUNT)__终点计数信号,高电平有效。
       终点计数器件一为0时,TC输出有效,表示当前正在传输的是最后的一个字节。可用来
       通知外设结束数据传送,使DRQi信号无效。
  5、工作方式寄存器机状态寄存器
     工作方式寄存器用于定义各通道的工作方式(由CPU初始化使写入)
     状态寄存器用于描述当前各通道的状态(只读)   
     工作方式寄存低键257页
     状态寄存器的定义键258页

   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -