第7章(输入输出)INOUT.ppt

  1. 1、本文档共44页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章(输入输出)INOUT

CPU对外设的访问实际上是CPU对I/O接口电路中的相应端口(寄存器)进行访问。两种编址方式: 独立编址:相对存储器而言,将存储器地址空间和I/O接口寄存器地址空间分开设置,互不影响。Intel系列。 独立编址方式的特点: 统一编址方式的特点: 统一编址:完全相同。 独立编址:方法相同,通常I/O端口地址比存储器单元地址短,因此参与译码的地址线较少。 8位端口(静态地址):地址线A7~A0(8根线,其余忽略),00H~FFH,可直接在IN/OUT指令中出现。 16位端口(动态地址):地址线A15~A0(16根线,其余忽略),0000H~FFFFH,端口地址必须先放在DX寄存器中,才能使用IN/OUT指令。 74LS373锁存器 74LS244缓冲器 74LS245收发器 74LS373真值表 课后作业 7.2,7.4,7.5,7.6,7.9,7.10 直接存储器存取方式(DMA) —— Direct Memory Access,DMA 需要DMAC(DMA Controller) 不受CPU干预 纯硬件方式进行 高速传送,取决于存储器存取速度和I/O接口的工作速率 DMA传送的请求与工作过程: ① 外设向DMAC发出DMA传送请求信号(DREQ) ② DMAC向CPU发出总线请求保持信号HOLD,申请占用总线 ③ CPU向DMAC发出总线响应信号HLDA,同时使CPU三总线处于高阻态,放弃总线控制权 ④ DMAC获得总线控制权,并向外设发出DMA响应信号DACK,进入DMA工作方式 ⑤ DMAC送出地址/控制信号,实现“内存?外设”或“内存?内存”之间的直接数据传送 ⑥ DMAC自动修改地址和字节计数器,判断是否需要重复传送。规定的数据传送完后,DMAC就撤销HOLD信号。CPU检测到HOLD失效后,紧接着撤销HLDA信号,并在下一时钟周期开始重新控制总线,继续执行原来的程序 DMAC初始化: 给DMAC中的地址寄存器及计数寄存器设置数据传输所用的源、目标内存首地址及传送数据的字节长度 对DMAC送入适当的控制字,以指出数据传送方向及如何启动DMA操作 可编程DMA控制器8237A 8237A的基本结构和功能 有4个独立的DMA通道,每个通道的DMA请求可分别被允许或禁止; 每个DMA通道一次最大可传送64KB的数据,可在存储器与外设、存储器与存储器之间传送数据; DMA有4种传送方式:单字节、数据块、请求传送和级连传送; 允许外部用EOP信号结束DMA传送或重新初始化; 每一个通道的DMA请求有不同的优先级,优先级可以是固定的,也可以由程序设定成可变的(循环优先级); 多个DMA芯片可以级连,任意扩展DMA通道。 8237A的工作方式 4种工作方式 4个阶段 DMA请求阶段 DMA响应阶段 DMA传送阶段 DMA结束阶段 单字节传送方式 数据块传送方式 请求传送方式 级联方式 单字节传送方式 允许 DMA DMA 请求? DMAC发BUS请求 CPU响应DMA 放弃BUS DMAC控制 传一个字节 块结束否? 放弃总线结束请求 N DMA 请 求 总 线 N Y Y 数据块传送方式 允许 DMA DMAC发BUS请求 CPU 响应 DMA 放弃 BUS DMAC控制 传一个字节 块结束否? 放弃总线结束请求 Y N 一次传送一个字节 一次传送一组数据, 传送过程不能停止 请求传送方式 允许 DMA DMA请求? DMAC发出BUS请求 CPU响应DMA放弃总线 DMAC 控制传一个字节 块结束否? 放弃总线结束请求 Y DMA请求? Y 放弃总线 N N Y 是一种成组传送, 但每传一个字节都查询DREQ 传送过程中可以强制停止 级联方式 类型 DMA读 DMA写 DMA校验 空操作,对8237A内部 读/写功能进行校验 MEM?I/O I/O?MEM 功能 MEM?I/O MEM?MEM I/O?MEM 8237A的初始化编程 A3 A2 A1 A0 端口地址 通道 读操作 写操作 0 0 0 0 DMA+0 0 读当前地址寄存器 写基/当前地址寄存器 0 0 0 1 DMA+1 读当前字节计数器 写基/当前字节计数器 0 0 1 0 DMA+2 1 读当前地址寄存器 写基/当前地址寄存器 0 0 1 1 DMA+3 读当前字节计数器 写基/当前字节计数器 0 1 0 0 DMA+4 2 读当前地址寄存器 写基/当前地址寄存器 0 1 0 1 DMA+5 读当前字节计数器 写基/当前字节计数器 0 1 1 0 DMA+6 3 读当前地址寄存器 写基/当前地址寄存器 0 1 1 1 DMA+7 读当前字节计数器 写基/当前字节计数器 1 0 0 0 D

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档