微机原理与接口技术9章(DMA控制器)_第1页
微机原理与接口技术9章(DMA控制器)_第2页
微机原理与接口技术9章(DMA控制器)_第3页
微机原理与接口技术9章(DMA控制器)_第4页
微机原理与接口技术9章(DMA控制器)_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

微机原理与接口技术 第九章DMA控制器 第9章微型计算机常用接口技术 微机系统中多采用大规模集成接口芯片作为接口电路利用这种芯片构成的接口电路 在不改变硬件的情况下 可以通过编程改变其功能 工作方式 使用起来更灵活 第9章微型计算机常用接口技术 主要内容并行通信接口串行通信接口定时器 计数器DMA控制器A D和D A转换器 DMA控制器 主要内容概述DMA控制器8237A 概述 计算机和外设之间数据传送的控制方式程序控制方式 查询或中断方式 外设数据要经过CPU寄存器中转检查是否传送完毕 在程序中控制 由CPU执行修改内存地址 在程序中控制 由CPU执行DMA方式内存与高速外设直接交换数据 不需CPU干预 减少中间环节内存地址修改 传送结束报告 由硬件完成DMA方式用硬件控制代替软件控制 大大提高传输速度 同时增加了系统硬件的复杂性及成本 概述 DMA数据传送过程在DMA传送开始之前 用户可以对DMA控制器编程初始化初始化之后 等待外部设备来申请DMA传送 CPU DMAC 内存 系统总线 2 3 4 5 外设 1 6 4 7 1 DREQ 2 HRQ 3 HLDA 4 DACK及读写信号 5 数据传送 6 EOP 7 撤消HRQ 概述 DMA数据传送过程外设向DMA控制器发出DMA传送请求 DREQ DMAC如果允许外设的请求 进一步向CPU发出总线请求信号HRQ 连接到CPU的HOLD信号 概述 DMA数据传送过程CPU在完成当前总线操作后会立即对DMA请求做出响应CPU将控制总线 数据总线和地址总线浮空 高阻 让出对总线的控制权CPU将有效的HLDA信号送到DMAC 来通知DMAC CPU已经放弃了总线的控制权DMAC接管总线的控制权 成为系统的主控者 概述 DMA数据传送过程DMAC向外设发出DMA应答信号DACK 通知该外设成为被选中的DMA传送设备同时 向存储器发出地址信号以及向发送存储器和外设读写控制信号 控制数据按照初始化设定的方向实现外设与内存之间大量数据的快速传送 概述 DMA数据传送过程DMAC将规定的数据字节传送完之后 撤销总线请求信号HRQ CPU收到此信号 一方面使HLDA无效 使得DMAC脱开三总线 另一方面CPU又重新控制总线 概述 DMA数据传送过程注意 DMA传送过程中 CPU失去对总线的控制权 数据不会经过CPU在内存与外设之间进行DMA传送期间 DMAC只是输出地址及控制信号 而数据传送是直接在内存和外设端口之间进行的 并不经过DMAC 概述 DMA传送的形式存储器与外设之间两种高速外设之间存储器的两个区域之间对于内存不同区域之间的DMA传送 则应先用一个DMA存储器读周期将数据从内存的源区域读出 存入到DMAC的内部数据暂存器中 再利用一个DMA存储器写周期将该数据写到内存的目的区域中去 概述 DMAC的功能DMAC是控制存储器和外设之间直接高速传送数据的硬件DMAC应具备的功能能接受外设的DMA请求信号 并向外设发出DMA响应信号能向CPU发出总线请求信号 当CPU发出总线保持响应信号后 能够接管对总线的控制权能发出地址信息 对存储器寻址并修改地址能向存储器和外设发出读 写控制信号能控制传输的字节数 并判断传送是否结束能发出DMA结束信号 DMA传送结束后 能释放总线 让CPU重新获得总线控制权 概述 DMAC的两种工作状态DMAC具有接管和控制系统总线的功能 取代CPU成为系统的主控者在取得总线控制权之前 又和其他I O接口芯片一样 受CPU的控制总线控制权在DMAC与CPU之间的转移 概述 DMAC的两种工作状态被动态 受控者 接受CPU对它的控制和指挥 如同一般I O芯片 成为系统的受控者对DMAC进行初始化编程从DMAC读取状态等上电 复位时 自动出于被动状态 概述 DMAC的两种工作状态主动态 主控者 取代CPU获得总线控制权 成为系统的主控者向存储器和外设发号施令存储器地址 外设的DACK信号存储器和外设的读写控制信号 DMA控制器8237A 8237A的基本性能通用可编程的DMA控制器4个独立的DMA通道 每个通道的DMA请求都可以分别禁止和允许每个通道的DMA请求有不同的优先权每个通道一次传送的最大长度可达64KB可以在存储器和外设之间 也可在存储器的两个区域之间进行数据传送有四种工作方式和四种操作类型允许用来结束DMA传送或者重新初始化8237可以级联 扩展通道数 DMA控制器8237A 8237A的内部结构及引脚 DMA控制器8237A 8237A的内部结构4个独立的DMA通道包含的寄存器16位基地址寄存器16位当前地址寄存器16位基字节数寄存器16位当前字节数寄存器自动预置 当一个通道设置成自动预置模式 一旦当前字节数计数器内容减至0时 基地址寄存器内容会自动复制到当前地址寄存器中 基字节数寄存器内容会自动复制到当前字节数计数器中8位模式寄存器接收并保存来自于CPU的方式控制字 使本通道能够工作于不同的方式下 DMA控制器8237A 8237的内部结构4个独立的DMA通道共用的寄存器1个16位的地址暂存寄存器1个16位的字节数暂存寄存器1个8位的状态寄存器1个8位的控制 命令 寄存器1个8位的暂存寄存器1个4位的屏蔽寄存器1个4位的请求寄存器 DMA控制器8237A 8237的引脚8237的数据引线 地址引线都为三态 因而可以接收也可以释放总线特点 即可为主控者 又可为被控者 所以一些引脚设置为双向A0 A3 处于主动态时 8237提供16位地址线DB0 DB7 高8位 A0 A7 低8位AEN当8237工作在主动态时 输出高电平当8237工作在被动态是 输出低电平 DMA控制器8237A 8237的引脚DMA请求和应答信号DREQ0 3 外设向8237的DMA请求DACK0 3 8237向外设的DMA应答信号HRQ 8237向CPU的DMA请求信号HLDA CPU向8237的DMA应答信号HRQ和HLDA为高电平有效DREQ和DACK的有效电平可由软件设置 DMA控制器8237A 8237的引脚读写控制信号 输出信号 控制对存储器的读写 双向信号输入信号 CPU向8237写控制字或读8237状态输出信号 8237控制对外设的读写 DMA控制器8237A 8237的引脚数据地址信号DB0 DB7 既是CPU向8237的数据通道 输入或输出 主动状态时为向存储器输出的高8位地址A8 15A0 7 分两部分A0 3为双向 由CPU输入时选择8237的端口输出时A0 3和A4 7一起输出存储器低8位地址ADSTB 正脉冲输出 地址选通信号 将DB0 7中的高8位地址信号锁存到外部锁存器中AEN 高电平输出 地址输出允许 由它把锁存在外部锁存器中的高8位地址送入系统的地址总线 同时禁止其它系统驱动器使用系统总线 输入信号 片选信号 DMA控制器8237A 8237的引脚其他 双向 当字节数计数器减为0时 在上输出一个有效的低电平脉冲 表明DMA传送已经结束 也可接收外部的信号 强行结束8237的DMA操作或者重新进行8237的初始化CLK 时钟信号输入 对于标准的8237 其输入时钟频率为3MHzREADY 输入 高电平表示传送准备好 可用来在DMA传送周期中插入等待状态RESET 输入 复位信号 芯片复位时 屏蔽寄存器被置1 其他寄存器均清零 8237工作于空闲周期SI DMA控制器8237A 8237的工作方式单字节传送方式每次DMA操作仅传送一个字节的数据 完成一个字节的数传送后 8237将当前地址寄存器的内容加1 或减1 并将当前字节数寄存器的内容减1 每传送完这一个字节 DMAC就将总线控制权交回CPU数据块传送在这种传送方式下 DMAC一旦获得总线控制权 便开始连续传送数据 每传送一个字节 自动修改当前地址及当前字节数寄存器的内容 直到将所有规定的字节全部传送完 或收到外部信号 DMAC才结束传送 将总线控制权交给CPU在这种方式下 CPU可能会很长时间不能获得总线的控制权 DMA控制器8237A 8237的工作方式请求传送方式和数据块连续传送方式的区别是 当DREQ无效时 释放总线 级联方式当要使用的DMA通道数超过4个时 就需要将两片或多片8237A级联起来 级联模式用于8237A的级联 DMA控制器8237A 8237的传输类型读操作 DMA读 存储器I O设备写操作 DMA写 I O设备存储器校验产生时序 地址信号 不产生读 写控制信号 并不进行数据传送 外设可利用某些信号进行校验存储器到存储器通道0提供源地址 通道1提供目的地址及字节数传送由设置通道0的软件请求启动 完成一个字节的传送需两个总线周期 及内部暂存器采用数据块传送方式 DMA控制器8237A 8237的优先级方式固定优先级DREQ0优先级最高DREQ3优先级最低循环优先级通道的优先级随着DMA服务的结束而发生变化已服务过的通道优先级最低 它下一个通道的优先级变成最高任何通道开始DMA服务 其他通道不能打断该服务的进行 DMA控制器8237A 8237的编程模式寄存器的格式每个通道有一个8位的方式寄存器 但是它们占用同一个端口地址 用来存放方式字依靠方式控制字本身的特征位来区分写入不同的通道 DMA控制器8237A 8237的编程控制寄存器的格式 DMA控制器8237A 8237的编程请求寄存器的格式DMA请求可以由硬件发出 也可以由软件发出用于在软件控制下产生一个DMA请求这种软件请求只用于通道工作在数据块传送方式之下 DMA控制器8237A 8237的编程屏蔽寄存器的格式用来禁止或允许通道的DMA请求 当屏蔽位置位时 禁止本通道的DREQ进入若通道没有工作在自动预置方式 则当该通道遇到EOP信号时 它所对应的屏蔽位自动置位屏蔽命令有两种形式单个通道屏蔽寄存器4个通道屏蔽寄存器 DMA控制器8237A 8237的编程屏蔽寄存器的格式屏蔽命令有两种形式单通道屏蔽字主屏蔽字 DMA控制器8237A 8237的编程状态寄存器的格式存放各通道的状态 CPU读出其内容后 可得知8237的工作状况状态位在复位或被读出后 均被清零 DMA控制器8237A 8237的编程临时寄存器在存储器到存储器的传送方式下 临时寄存器保存从源存储单元读出的数据主清除命令主清除命令的功能和RESET信号相同该命令不需要通过数据总线写入控制字 而是通过8237A直接对地址和控制信号译码 来执行各自的功能 DMA控制器8237A 8237的编程清除先 后触发器命令先 后触发器命令是用来控制DMA通道中地址寄存器和字节计数器的初值设置的当此触发器状态为0时 进行低字节操作 一旦低字节读 写操作完成后 该触发会自动置1 再操作一次又会清0该命令不需要通过数据总线写入控制字 而是通过8237A直接对地址和控制信号译码 来执行各自的功能 DMA控制器8237A 8237的编程8237内部寄存器寻址及操作8237的编程步骤输出主清除命令写入基地址寄存器写入基字节计数器写入模式寄存器写入屏蔽寄存器写入控制寄存器写入请求寄存器 根据需要 例9 11利用通道0 由外设输入32K字节的一个数据块 传送至内存8000H开始的区域 DMA控制器8237A 8237的编程初始化编程注意的事项在对8237初始化之前 通常必须对8237进行复位操作编程开始时 应发送禁止8237工作的命令 或将要编程的通道加以屏蔽所有通道的模式寄存器都要加载向基和现行地址寄存器装入低16位地址之外 还要向页面寄存器写入高位地址值8237只能输出A0 A1516位地址信号 这对于一般8位CPU构成的系统来说是比较方便的而在8086 88系统中 系统的寻址范围是1MB 地址线有20条 即A0 A19为了能够在8086 88系统中使用8237来实现DMA 需要用硬件提供一组4位的页寄存器 DMA控制器8237A 8237的时序它具有两种主要的工作状态 或工作周期 即空闲状态和有效状态 每一个状态又是由若干时钟周期所组成的 SI S4 DMA控制器8237A 8237的时序SI状态 空闲状态 当8237A的任一通道都无DMA请求时 则其处于空闲周期或称为SI状态空闲周期由一系列的时钟周期组成 在空闲周期中的每一个时钟周期8237A采样CS片选信号 该信号有效 CPU就要对8237A进行读 写操作8237A还采样通道的请求输入信号DREQ 该信号有效 就进入有效周期 DMA控制器8237A 8237的时序S0状态 请求状态 如果某一通道有DREQ请求 则8237A将驱动HRQ为高电平 向CPU提出DMA请求 8237A进入S0状态 等待CPU交出总线控制权S0状态是DMA服务的第一个状态 在这个状态下 8237已接收了外设的请求 向CPU发出了DMA请求信号HRQ 但尚未收到CPU对DMA请求的应答信号HLDA经过若干个S0状态后 当8237收到来自于CPU的HLDA应答信号后 则进入工作周期 或称为有效周期 8237由S0状态进入了S1状态 开始D

温馨提示

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

评论

0/150

提交评论