微机原理与接口概要_第1页
微机原理与接口概要_第2页
微机原理与接口概要_第3页
微机原理与接口概要_第4页
微机原理与接口概要_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第十二章8237ADMA控制器及其应用 416 前面各种I O方式都需要CPU作为中介 外设 CPU 内存 两个含义 1 软件 外设与内存之间的数据传送是通过CPU执行程序来完成的 PIO方式 2 硬件 I O接口和存储器的读写控制信号 地址信号都是由CPU发出的 总线由CPU控制 缺点 程序的执行速度限定了传送的最大速度 约为几十KB 秒 解决方法 DMA传输 DMA传输概念 外设直接与存储器进行数据交换 CPU不再担当数据传输的中介者 DMA传输 外设 内存 优点 数据传输由DMA硬件来控制 数据直接在内存和外设之间交换 可以达到很高的传输速率 可达几MB 秒 总线由DMA控制器 DMAC 进行控制 CPU要放弃总线控制权 内存 外设的地址和读写控制信号均由DMAC提供 DMA传输概念 总线控制权 master slave DMA传输 外设 内存 几个基本概念 DMAC编程周期 slave DMAC控制总线进行数据传输周期 master DMA的数据传输形式 基本的 MEM I O和扩充的 MEM MEMI O I O DMA传输概念 DMA传送原理示意图 外设发出DMA请求 DMAC向CPU申请总线 CPU响应 释放总线控制权 DMAC得到总线控制权 并发出DMA响应信号 由DMAC发出各种控制信号 控制外设与存储器之间的数据传送 数据传送完后 DMAC撤销HOLD信号 CPU释放HLDA信号 并重新控制总线 DMA传输概念 DMA控制器的工作过程 1 当外设准备好 可以进行DMA传送时 外设向DMA控制器发出 DMA传送请求 信号 DREQ 2 DMA控制器收到请求后 向CPU发出 总线请求 信号HOLD 表示希望占用总线 3 CPU在完成当前总线周期后会立即对HOLD信号进行响应 响应包括两个动作 一是CPU将数据总线 地址总线和相应的控制信号线均置为高阻态 由此放弃对总线的控制权 另一方面 CPU向DMA控制器发出 总线响应 信号 HLDA 4 DMA控制器收到HLDA信号后 就开始控制总线 并向外设发出DMA响应信号DACK DMA传输概念 DMA控制器的工作过程 5 DMA控制器送出地址信号和相应的控制信号 实现外设与内存或内存与内存之间的直接数据传送 例如 向I O接口发出读信号 同时往地址总线上发出存储器的地址和存储器写信号和AEN信号 即可从外设向内存传送一个字节 6 DMA控制器自动修改地址和字节计数器 并判断是否需要重复传送操作 当规定的数据传送完后 DMA控制器就撤销发往CPU的HOLD信号 CPU检测到HOLD失效后 紧接着撤销HLDA信号 并在下一时钟周期重新开始控制总线 DMA传输概念 DMA的三种传输方式P423 连续传送 块传送 DMAC申请到总线后 将一块数据传送完后才释放总线 而不管在这期间DREQ是否有效 单次传送 每次传送一个字节 每个DMA周期只传送一个字节就立即释放总线 按需传送 猝发传送 请求传送 也可以传送数据块 直到要求停止 与块传送不同的是 每次传送一个字节后都要对DREQ进行测试 一旦该信号无效 就马上停止传送 但不释放总线 一旦DREQ有效 又开始传送 12 18237A的组成和工作原理 P416 一 8237的内部结构 1 时序控制逻辑 8237A是一个可编程的DMA控制器芯片 它直接应用于8086 8088和80286系统 在386和486系统中 作为集成系统外设接口芯片中的一部分仍起着DMA控制器的作用 8237A的内部结构框图见P417图12 1 从态时接受系统送来的时钟 复位 片选和读写信号 完成相应的操作 主态时则向系统发出相应的控制信号 2 优先权编码电路 根据初始化命令 对同时提出DMA请求的多个通道进行排队判优 8237A有4个DMA通道 优先级管理方式 固定优先级 循环优先级 8237A的组成和原理 一 8237的内部结构 3 数据和地址缓冲器组 A7 A4 A3 A0为地址线 DB7 DB0在从态时传送数据信息 主态时传送地址信息 4 命令控制逻辑 一 8237的内部结构 5 内部寄存器组 P417 8237A的组成和原理 二 8237的引脚功能 P418 8237A有两种工作状态 主态和从态 部分管脚在主态和从态时其意义有所不同 CLK 时钟信号 3MHZ CS 从态时有效 作为8237的片选信号 READY 存储器或外设的引入信号 速度慢时插入Tw A3 A0 双向 从态时 寻址内部寄存器 主态时 输出被访问存储器的最低4位地址 A7 A4 输出 从态时浮空 主态时输出4位地址DB7 DB0 从态时 CPU与8237交换数据使用 即编程 主态时 输出地址信息15 A8 与A7 A0构成16位地址信息 8237A的组成和原理 二 8237的引脚功能 8237A的组成和原理 三 8237的内部寄存器 P420表12 1 1 基地址寄存器和当前地址寄存器 每个通道都有一个基地址寄存器 一个当前地址寄存器 16位 占用相同的端口地址 如果8237设置成自动预置方式 产生EOP后 自动将基地址寄存器的内容重新装入到该寄存器中 基地址寄存器 DMA传输的内存地址初值 在初始化时由CPU分两次写入 当前地址寄存器 DMA传输过程中 内存地址的当前值 每传输一字节 该寄存器的值增1或减1 CPU可分两次读出其值 8237A的组成和原理 三 8237的内部寄存器 2 基字计数寄存器和当前字节计数寄存器 每个通道都有一个基字计数器 一个当前字节计数器 16位 占用相同的端口地址 基字节计数器 DMA传输的字节数初值 在初始化时由CPU分两次写入 8237规定 初值比实际传输的字节数少1 当前字节计数器 DMA传输过程中 当前的计数值 每传输一字节 该寄存器的值减1 当计数值减到FFFFH时 8237发出结束信号EOP CPU可分两次读出其值 如果8237设置成自动预置方式 产生EOP后 自动将基字节寄存器的内容重新装入到该寄存器中 8237A的组成和原理 三 8237的内部寄存器 3 命令寄存器 8位 4个通道共用 用于设定8237的信号形式 工作时序 传输方向 地址 A3A2A1A0 1000B D0 0 内存 I O间的传输 1 内存 内存间的传输 D1 内存到内存传输时 D1 1使源地址保持不变 若D0 0时 该位无效 D2 0 启动 指允许 8237工作 1 停止 指禁止 8237工作 8237A的组成和原理 三 8237的内部寄存器 3 命令寄存器 D3 0 正常时序 1 压缩时序 D4 0 固定优先级 通道0优先级最高 通道3优先级最低 1 循环优先级 顺序为 刚响应过的通道优先级变为最低 以防止某一通道长期占用总线 D6 0 DREQ高电平有效 1 DREQ低电平有效 D7 0 DACK低电平有效 1 DACK高电平有效 8237A的组成和原理 三 8237的内部寄存器 4 工作方式寄存器 地址 A3A2A1A0 1011B 8位 设定DMA的传输模式 4个通道的模式寄存器共用一个端口地址 单字节传输模式 每次DMA操作只传送一字节后 接着8237释放总线 请求传输模式 每传输一个字节后 8237要检测DREQ信号 询问外设 当DREQ无效时 8237暂停传输 不释放总线 当DREQ再次有效后 继续进行传输 8237A的组成和原理 三 8237的内部寄存器 级联传输模式 多片8237级联时 可以构成主从式DMA系统 级联的方式是把从片的请求线HRQ连至主片的DREQ引脚 主片的DACK联至从片的HLDA引脚 见教材P424图12 5 D1 D0 通道选择 决定D7 D2定义的是哪一个通道的工作方式 00 通道001 通道110 通道211 通道3 D3 D2 所选通道的传输方向选择00 校验传输 01 写传输 I O 内存 10 读传输 内存 I O 11 无意义 工作方式寄存器各数据位定义 P422图12 4 4 工作方式寄存器 地址 A3A2A1A0 1011B 8237A的组成和原理 三 8237的内部寄存器 D4 自动预置功能 0 禁止 1 允许 D7 D6 模式选择00 请求传输模式 01 单字节传输模式10 块传输模式 11 级联传输模式 工作方式寄存器各数据位定义 4 工作方式寄存器 地址 A3A2A1A0 1011B D5 存储器地址增减选择 0 地址增1 1 地址减1 5 请求寄存器 地址 A3A2A1A0 1001B 四个通道的请求触发器构成一个请求寄存器 一般情况下 DMA请求由硬件信号DREQ发出 也可由软件设置请求触发器来发出DMA请求 P424图12 6 8237A的组成和原理 三 8237的内部寄存器 6 屏蔽寄存器 1 写单个通道屏蔽寄存器 A3A2A1A0 1010B 4位 每位对应一个通道 相应位为1时 禁止请求 8237可以写入两种屏蔽字 地址不同 D2 1 设置屏蔽 D2 0 清除屏蔽 D1 D0 选通道 格式 当屏蔽位置位时 该通道就禁止接受DREQ的DMA请求信号 反之 屏蔽位复位则允许DREQ的请求 当某一通道进行DMA传输后 产生EOP信号 则这一通道在禁止自动预置工作条件下的屏蔽位置 1 必须再次编程 使该通道屏蔽位复位 才能进行下一次的DMA传输 8237A的组成和原理 三 8237的内部寄存器 6 屏蔽寄存器P427的表12 2 D3 D0 相应通道的屏蔽位 2 主屏蔽字 A3A2A1A0 1111B 可用写入一条主屏蔽命令分别对4个通道相应位进行复位 允许 及置位 禁止 DMA请求 注意 当系统RESET复位或用软件置位时 主屏蔽寄存器各位均被置位 即禁止所有通道接受DMA请求 8237A的组成和原理 三 8237的内部寄存器 7 状态寄存器 读A3A2A1A0 1000B 8位 4个通道共用 记录每个通道是否有请求 传输是否结束 D3 D0 分别对应通道3 0 指出4个通道的DMA传送是否结束 结束为1D7 D4 分别对应通道3 0 表示4个通道是否有DMA请求 有DMA请求为1 当芯片编程选择操作方式为存储器到存储器传输时 通道0和通道1交换的数据保存在暂存寄存器 8位 待传输全部完成后 最后一个传输数据仍保存在暂存器中 可被CPU编程读出 在DMA复位时被清除 8 暂存器 与主清命令REG地址相同A3A2A1A0 1101B 8237A的组成和原理 三 8237的内部寄存器 9 软件命令 类似于启动A D 只对地址译码 数据取值情况无所谓 清除先 后触发器命令 地址 A3A2A1A0 1100B 对该地址虚写一次即可完成 主清命令 同RESET 使屏蔽REG置1 其它REG清0 清除屏蔽寄存器命令 允许各个通道接受DMA请求 10 各寄存器对应的端口地址 8237A的组成和原理 三 8237的内部寄存器 一个完整的DMA传输过程必须经过4个阶段 DMA请求 DMA控制器 8237 接受由I O设备发来的DMA请求信号DREQ 并经判优后向总线裁决逻辑提出总线请求HRQ信号 DMA响应 由总线裁决逻辑对总线请求进行裁决 如CPU不再对DMA初始编程 则当CPU完成当前总线周期后予以响应 允许进行DMA传输 CPU放弃对总线的控制权 向8237DMA控制器发出总线应答信号HLDA DMA传输 由DMA控制器控制总线 发出相应的地址与控制信息 按要传输的字节数直接控制I O接口与RAM的数据交换 8237A的组成和原理 三 8237的内部寄存器 DMA传输结束 当DMA传输结束时 DMA控制器产生计数终止信号EOP 并通过接口向CPU提出中断请求 以使CPU进行DMA传输正确性检查并重新获得对总线的控制权 12 38237A的编程和应用举例 一 DMAC8237的编程步骤 1 输出主清命令 使8237复位 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论