




已阅读5页,还剩45页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
可编程DMA控制器 DMA DirectMemoryAccess 传送是微型计算机中一种十分重要的工作方式 它主要用于需要大批量 高速度的数据传送系统中 如软硬盘 光盘的存取 高速数据采集系统 图象处理以及高速通信系统等 而采用DMA传送方式时 存储器与外设直接传送数据 不需要CPU的干预 减少了中间环节 并且修改地址指针和控制数据块传送长度等工作 均由硬件完成 因此大大提高了传送速度 在DMA传送方式时 CPU将系统的控制权交给DMA控制器 DMAC 由DMAC负责完成数据传送的全过程 8237工作过程 DMA方式传送的一般过程 分四个阶段 1 请求 I ODMACCPU2 响应 CPUDMACI O HRQ DREQ HLDA DACK CPU交出AB DB CB 3 传送 4 结束 DMAC 存储器 I O 发AB MEMW MEMR 发IOR IOW DMAC I O CPU DMAC 发EOP 并撤DACK 撤HRQ 撤HLDA DB 并收回AB DB CB DMAC在系统中具有两种工作状态 主动态和被动态 也就是在系统中处于主控器和被控器两种不同地位 在主动态时 DMAC控制系统总线 AB DB CB 向存储器和外设发送地址信息和读写信息 控制数据传送 DMA写操作时 它发出IOR和MEMW信号 数据由外设传到存储器 DMA读操作时 它发出MEMR和IOW信号 数据从存储器传到外设 在被动态时 DMAC与系统中其他部件一样 接受CPU的访问和初始化编程 可编程DMA控制器8237A 5 1 8237A 5DMA控制器的特点 1 有四个独立的通道 可控制四个I O设备进行DMA传送 2 每个通道均有64KB寻址与计数能力 即地址线16根 计数器为16位 3 可以用级联方式扩充更多的通道 4 能进行I O设备与系统存储器以及系统存储器与存储器之间直接传送数据 5 数据传送率可达1 6MB s 时钟频率为5MHZ时 6 具有三种传送模式 单一 成组和查询 四种传送类型 DMA读 DMA写 存储器传存储器 校验 7 40脚双列直插式 5V供电 8237A 5的外部特性 8237引脚 8237A内部寄存器及编程命令 表10 5PC XT的8237A寄存器口地址 1 工作方式寄存器 DMA 11 l D7D6决定DMA操作模式 在主动态 即DMA有效周期时 DMA控制器共有四种操作模式 单一传送模式 在这种模式下 通道启动一次只传送一个数据 传送之后就释放系统总线并交还给CPU 这种方式又称为总线周期窃取方式 每次总是窃取一个总线周期完成一个字节的传送之后立即归还总线 成组传送模式 在这种方式下 通道启动一次可把整个数据块传送完 当外设准备好时 向DMAC发DREQ DMAC则向CPU发出HRQ请求占用总线 CPU同意HRQ请求 则向DMAC发回HLDA信号 这时 DMAC向外设发DACK 开始传送数据 直到整个数据块传送完为止 这种模式下 进行传送期间 CPU失去总线控制权 因而别的DMA请求也就被禁止 注意 DMA无嵌套 询问传送模式 这种方式与成组传送模式类似 其不同点在于每传送一个字节之后要检测 询问 DREQ引脚是否有效 若无效 则立即 挂起 但并不释放总线 若变成有效 则继续传送 级联模式 这种方式不是数据传送模式 而是表示8237A用于多片连接方式 第一级为主片 第二级为从片 2 D3D2位决定DMA传送类型 在上述三种数据传送模式中 如何表示数据的传送方向呢 8237A对每种模式提供了四种类型 表示数据传送的方向 DMA读 数据从内存读出 写到I O设备 DMA写 数据从I 0设备读入 写到内存 校验 是一种伪传送 仅对芯片内部读写功能进行校验 而对存储器与I O接口的控制信号均被禁止 即处于无效 但是在每一DMA周期后 地址增1或减1 字节计数器减1 直至产生EOP 作为进行某种校验过程 存储器一存储器 为数据块传送而设置 PC系列未用 这种传送占用通道0与通道1 通道0作为源 通道1作为目的 从以通道0的当前地址寄存器的内容指定的内存单元中读出数据 先存入8237A的暂存寄存器中 然后 从暂存寄存器取出数据 写到以通道1的当前地址寄存器的内容指定的内存单元中去 每传送一个字节 双方内存地址加1或减1 通道1的当前字节计数器减1 直到为0时 产生EOP信号而终止传送 这种方式是采用软件请求的方法来启动DMA服务的 3 D4位决定所谓 自动预置 是当出现EOP负脉冲时 把基值 地址 字节计数 寄存器的内容装入当前 地址 字节计数 寄存器中去 又从头开始同一操作 4 D5位决定每传送一个字节后存储器地址是 1还是 l D5 0 地址 1 D5 1 地址 1 5 D1D0通道选择 选择对哪个通道写入DMA 11 示例PC系列软盘读写操作选择DMA通道2 单字节传送 地址增1 不用自动预置 其读 写操作的方式字如下 读盘 DMA写 01000110B 46H写盘 DMA读 01001010B 4AH校验盘 DMA校验 01000010B 42H因此 若采用上述方式从软盘上读一个扇区的数据存放到内存区 则方式字为 01000110 B 46H 如果采用同样的方式从内存写一个扇区的数据到软盘上 则方式字为 01001010 B 4AH 2 基值地址寄存器 DMA 0 2 4 6 它们是16位地址寄存器 存放DMA传送的内存首址 在初始化时 由CPU以先低字节后高字节顺序写入 传送过程中基值地址寄存器的内容不变 只能写 不能读 3 当前地址寄存器 DMA 0 2 4 6 它们是16位地址寄存器 存放DMA传送过程中的内存地址 在每次传送后地址自动增1 或减1 它的初值与基值地址寄存器的内容相同 并且是两者由CPU同时写入的 在自动预置条件下 EOP信号使其内容重新置为入基地址值 可读可写 4 基值字节计数器 DMA 1 3 5 7 它们是16位寄存器 存放DMA传送的总字节数 在初始化时 由CPU以先低字节后高字节顺序写入 传送过程中基值字节计数器内容不变 只能写不能读 5 当前字节计数器 DMA l 3 5 7 它是16位寄存器 存放DMA传送过程中没有传送完的字节数 在每次传送之后 字节计数器减1 当它的值减为零时 便产生EOP 表示字节数传送完毕 它的初值与基值字节计数器的内容相同 并且两者由CPU同时写入的 可读可写 6 屏蔽寄存器 DMA 10 15 用来禁止或允许通道的DMA请求 当屏蔽位置位时 禁止本通道的DREQ进入 若通道编程为不自动预置 则当该通道遇到EOP信号时 它所对应的屏蔽位置位 屏蔽字有两种格式 即写一个屏蔽位的屏蔽字和写四个屏蔽位的屏蔽字 1 单一屏蔽寄存器 DMA 10 单一屏蔽寄存器 每次只能屏蔽一个通道 通道号由D1D0位决定 通道号选定后 若D2置1 则禁止该通道请求DREQ 若D2置0 则允许请求DREQ 该寄存器只能写 不能读 其格式 单一屏蔽寄存器 DMA 10 2 四位屏蔽位寄存器 DMA 15 1 屏蔽 0 不屏蔽 示例为了在每次软盘读写操作时 进行DMA初始化 都必须开放通道2 以便响应软盘的DMA请求 可采用下述两种方法之一来实现 使用单一屏蔽寄存器 DMA 10 MOVAL 00000010B 最低3位 010 开放通道2OUTDMA 10 AL 写单一屏蔽寄存器 使用四位屏蔽寄存器 DMA 15 MOVAL 00001011B 最低4位 1011 仅开放通道2OUTDMA 15 AL 写四位屏蔽寄存器另外 8237A还设有一个开放四个通道的命令 其端口地址是DMA 14 属于软命令 在后面介绍 7 请求寄存器 DMA 9 8 命令寄存器 DMA 8 D0 0禁止存储器间传送D4 0固定优先权1允许存储器间传送1循环优先权D1 0通道0地址不保持D5 0滞后写 写周期滞后读 1通道0地址保持不变1扩展写 与读同时 D2 0允许8237A工作D6 0DREQ高电平有效1禁止8237A工作1DREQ低电平有效D3 0正常 标准 时序D7 0DACK低电平有效1压缩时序1DACK高电平有效 D0位控制存储器到存储器传送 D0 0时 禁止存储器到存储器传送 D0 1时 首先由通道0发软件DMA清求 并从以通道0的当前地址寄存器的内容指定的源地址存储单元读入数据 读入的数据字节存放在暂存寄存器中 再把暂存寄存器的数据写到以通道1的当前地址寄存器的内容指定的目标地址存储单元 然后两通道地址各自加1或减1 直到通道1的字节计数器为零时 产生EOP信号而结束DMA传送 D1位控制通道0地址在存储器到存储器整个传送过程中保持不变 这样可把同一个源地址存储单元的数据写到一组目标存储单元中去 D1 1 保持通道0地址不变 D1 0 不保持通道0地址不变 若D0 0 则D1位无意义 D2位DMA控制器工作允许 D2 0 允许8237A工作 D2 1 禁止8237A工作 D3位选择工作时序 D3 0 采用标准 正常 时序 保持S3状态 D3 1 为压缩时序 去掉S3状态 D4位控制通道的优先权 D4 0 采用固定优先权 即DREQ0优先权最高 DREQ3优先权最低 D4 l 为循环优先权 即通道的优先权随着DMA服务的结束而发生变化 请注意 任何一个通道开始DMA服务后 其他通道不能打断该服务的进行 这一点和中断嵌套处理是不相同的 D5位控制写入的时刻 D5 0 采用滞后写 写入周期滞后读 D5 1 为扩展写 与读同时 D6和D7位决定DREQ和DACK信号的有效电平 D6 0 DREQ高电平有效 D6 1 DREQ低电平有效 D7 0 DACK低电平有效 D7 1 DACK高电平有效 例 PC系列中的8237A 按如下要求工作 禁止存储器到存储器传送 按正常时序 滞后写入 固定优先级 允许8237A工作 DREQ信号高电平有效 DACK信号低电平有效 则命令字为00000000B 00H MOVAL 00H 命令字OUTDMA 8 AL 写入命令寄存器 9 状态寄存器 DMA 8 10 暂存寄存器 DMA 13 用于存储器对存储器传送时 暂时保存从源地址读出的数据 RESET信号清除暂存寄存器的内容 11 软命令8237A有三条特殊的 软命令 所谓软命令就是只要对特定的地址进行一次写操作 即CS和内部寄存器地址与IOW同时有效 命令就生效 而与写入的具体数据无关 三条特殊软命令是 l 清先 后触发器 DMA 12 命令前面已提到 在向16位地址和字节计数器进行写操作时 要分两次写入 先 后触发器就是用来控制写入次序的 当先 后触发器为0态时 写入低8位后它自动置为1 再写入高8位后它又自动清为0 在程序中 只需向端口 DMA 12 写入任意数即可使先 后触发器清为0态 其命令程序段为 MOVAL 0AAH AL为任意值OUTDMA 12 AL 清先 后触发器端口 2 总清除 DMA 13 命令它与硬件RESET信号作用相同 即执行本软命令的结果会使 命令 状态 请求 暂存 寄存器以及 先后触发器 清除 系统进入空闲状态 而屏蔽寄存器置位 屏蔽所有外部DMA请求 其命令程序段为 MOVAL 0BBH AL为任意值OUTDMA 13 AL 总清命令端口 3 清屏蔽寄存器 DMA 14 命令该命令使四个屏蔽位均清为0 这样 四个通道均允许接受DMA请求 其命令程序段为 MOVAL 0CCH AL为任意值OUTDMA 14 AL 清屏蔽寄存器命令端口 四 DMA控制器的工作时序 1 DMA空闲周期SI 2 过渡状态S0 3 DMA有效周期1 S1 更新高8位地址 2 S2 在S2状态周期中 要完成两件事 一是输出16位地址列RAM 其中高8位地址由数据线DB0 DB7输出 用ADSTB下降沿锁存 低8位地址由地址线A0 A7输出 二是S2状态周期还向申请DMA传送的外设发出请求回答信号DACK 代替对I O设备的寻址 因地址线已被访问RAM占用 数据传送即将开始 随后发读命令 3 S3 读周期4 S4 写周期 PC机的DMA电路简介 从 主 表10 6DMA控制器的I 0地址 3 8237A的初始化编程 1 初始化编程应注意的事项CPU对8237A的编程方法与一般的I O接口芯片基本相同 但有几点要注意 l 为确保软件编程时不受外界硬件信号的影响 在编程开始时要通过命令寄存器发送命令禁止8237A工作或向屏蔽寄存器发送屏蔽命令 将要编程的通道加以屏蔽 在编程完成后再允许芯片工作或清除屏蔽位 2 所有通道的方式字寄存器都要加载 当系统上电时 用硬件复位信号RES或软件复位 总清 命令 使所有内部寄存器 除屏蔽寄存器各通道屏蔽位置位外 其余均被清除 为使各通道在所有可能的情况下都正确操作 应保证各通道的方式字寄存器用有效值加载 即使某些目前不使用的通道也要这样做 一般 对不使用的通道可用40H 41H 42H和43H写入通道0 3的方式字寄存器 表示按单字节方式进行DMA校验操作 3 8237A芯片的检测 通常 在系统上电期间 要对DMA芯片进行检测 只有在芯片检测通过后 方可继续DMA初始化 实现DMA传送 检测内容是对所有通道的16位寄存器进行读 写测试 当写入和读出结果相等 则判断芯片正确可用 否则 视为致命性错误 芯片不可用 令系统停机 2 初始化编程 下面的程序段就是对PC系列的DMA控制器8237A 5进行检测用的 程序中的变量DMA地址是00H 测试程序对4个通道的8个16位寄存器先后写入全 l 全 0 再读出比较 看是否一致 若不一致 则出错 停机 检测前 禁止DMA控制器工作MOVAL 04 命令字 禁止8237A工作OUTDMA 08AL 命令字送命令寄存器OUTDMA ODH AL 总清命令 使8237A 进入空闲周期 包括清先 后触发器 作全 1 检测MOVAL 0FFH 0FF
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 离婚财产公正协议书范本
- 注塑机设备租赁协议合同
- 永嘉专业会计代理协议书
- 汽车挂靠合同解除协议书
- 艺人签约合同之终止协议
- 电动摩托车租赁合同协议
- 混凝土浇灌施工合同范本
- 渡资产使用权合同或协议
- 腾讯产品包销合同协议书
- 汕尾打印机租赁协议合同
- 北京联合大学微观经济学期末试卷
- 2024版《供电营业规则》学习考试题库500题(含答案)
- 物业电梯困人应急处理
- 广东省初级中学学生学籍表
- 液压滑模施工资料
- 2024-2029全球及中国苯丙酮尿症(PKU)行业市场发展分析及前景趋势与投资发展研究报告
- 学术期刊推广方案
- 2023年保定市蠡县教师招聘考试真题
- T-SZHW 001-2024 深圳市城市管家服务管理规范(试行)
- 三废环保管理培训
- 《分娩方式的选择》课件
评论
0/150
提交评论