微机原理与接口技术课件,06,基本输入输出接口

第6章 输入输出及接口 第6章输入输出及接口 教学重点I O接口电路的典型结构无条件传送方式查询传送方式中断工作过程 6 1I O接口概述 为什么需要I O接口 电路 微机的外部设备多种多样工作原理 驱动方式 信息格式 以及工作速度方面彼此差别很大它们不能与CPU直接相连必须经过中间电路再与系统相连这部分电路被称为I O接口电路 多种外设 6 1I O接口概述 续1 什么是I O接口 电路 I O接口是位于系统与外设间 用来协助完成数据传送和控制任务的逻辑电路PC机系统板的可编程接口芯片 I O总线槽的电路板 适配器 都是接口电路 6 1I O接口概述 续2 什么是微机接口技术 处理微机系统与外设间联系的技术注意其软硬结合的特点根据应用系统的需要 使用和构造相应的接口电路 编制配套的接口程序 支持和连接有关的设备 6 1 1I O接口的主要功能 对输入输出数据进行缓冲和锁存输出接口有锁存环节 输入接口有缓冲环节实际的电路常用 输出锁存缓冲环节 输入锁存缓冲环节 对信号的形式和数据的格式进行变换微机直接处理 数字量 开关量 脉冲量 对I O端口进行寻址 与CPU和I O设备进行联络 6 1 2I O接口的典型结构 1 接口电路的内部结构2 接口电路的外部特性3 接口电路芯片的分类4 接口电路的可编程性 1 接口电路的内部结构 CPU与外设主要有数据 状态和控制信息需要相互交换 于是从应用角度看内部 数据寄存器保存外设给CPU和CPU发往外设的数据 状态寄存器保存外设或接口电路的状态 控制寄存器保存CPU给外设或接口电路的命令 2 接口电路的外部特性 主要体现在引脚上 分成两侧信号面向CPU一侧的信号 用于与CPU连接主要是数据 地址和控制信号面向外设一侧的信号 用于与外设连接提供的信号五花八门功能定义 时序及有效电平等差异较大 3 接口电路芯片的分类 接口电路核心部分往往是一块或数块大规模集成电路芯片 接口芯片 通用接口芯片支持通用的数据输入输出和控制的接口芯片面向外设的专用接口芯片针对某种外设设计 与该种外设接口面向微机系统的专用接口芯片与CPU和系统配套使用 以增强其总体功能 4 接口电路的可编程性 许多接口电路具有多种功能和工作方式 可以通过编程的方法选定其中一种接口需要进行物理连接 还需要编写接口软件接口软件有两类 初始化程序段 设定芯片工作方式等数据交换程序段 管理 控制 驱动外设 负责外设和系统间信息交换 6 1 3I O端口的编址 接口电路占用的I O端口有两类编排形式I O端口单独编址I O地址空间独立于存储地址空间如8086 8088I O端口与存储器统一编址它们共享一个地址空间如M6800 理解端口 I O端口单独编址 优点 I O端口的地址空间独立控制和地址译码电路相对简单专门的I O指令使程序清晰易读缺点 I O指令没有存储器指令丰富 80 x86采用I O端口独立编址 I O端口与存储器统一编址 优点 不需要专门的I O指令I O数据存取与存储器数据存取一样灵活缺点 I O端口要占去部分存储器地址空间程序不易阅读 不易分清访存和访问外设 6 1 48088 8086的输入输出指令 输入指令INAL i8 字节输入 直接寻址INAL DX 字节输入 间接寻址INAX i8 字输入 直接寻址INAX DX 字输入 间接寻址输出指令OUTi8 AL 字节输出 直接寻址OUTDX AL 字节输出 间接寻址OUTi8 AL 字输出 直接寻址OUTDX AL 字输出 间接寻址 演示 演示 8088 8086的I O端口 8088只能通过输入输出指令与外设进行数据交换 呈现给程序员的外设是端口 Port 即I O地址8086用于寻址外设端口的地址线为16条 端口最多为216 65536 64K 个 端口号为0000H FFFFH每个端口用于传送一个字节的外设数据 I O寻址方式 8088 8086的端口有64K个 无需分段 设计有两种寻址方式直接寻址 只用于寻址00H FFH前256个端口 操作数i8表示端口号间接寻址 可用于寻址全部64K个端口 DX寄存器的值就是端口号对大于FFH的端口只能采用间接寻址方式 数据交换方式 如果输入输出一个字节 利用AL寄存器如果输入输出一个字 利用AX寄存器输入一个字 实际上是从连续两个端口输入两个字节 分别送AL 对应低地址端口 和AH 对应高地址端口 输出一个字 实际上是将AL 对应低地址端口 和AH 对应高地址端口 两个字节的内容输出给连续两个端口 IN指令 从20H端口输入一个字 方法1 字量输入 直接寻址inax 20h 方法2 字量输入 间接寻址movdx 20hinax dx 方法3 字节输入 直接寻址inal 21hmovah alinal 20h 方法4 字节输入 间接寻址movdx 21hinal dxmovah aldecdxinal dx OUT指令 向300H端口输出一个字节 唯一的方法 间接寻址 字节量输出moval bvar bvar是字节变量movdx 300houtdx al 6 1 5I O地址的译码 I O地址的译码方法与存储器地址的译码方法一样 但有它的特点 常采用部分译码方式 可以是中间地址线不连接 也有最低地址线不连接的情况为了给系统一定的选择余地 有些接口电路利用比较器 开关或跨接器等进行多组I O地址的译码除采用译码器 门电路进行译码外 I O地址译码还经常采用可编程逻辑器件PLD IBMPC AT主机板的I O译码电路 IBMPC XT主机板的I O译码电路 逻辑门电路进行I O地址译码 6 1 7数据传送方式 程序控制下的数据传送 通过CPU执行程序中的I O指令来完成传送 又分为 无条件传送 查询传送 中断传送直接存储器存取 DMA 传送请求由外设向DMA控制器 DMAC 提出 后者向CPU申请总线 最后DMAC利用系统总线来完成外设和存储器间的数据传送I O处理机 CPU委托专门的I O处理机来管理外设 完成传送和相应的数据处理 6 2无条件传送方式及其接口 在CPU与慢速变化的设备交换数据时 可以认为它们总是处于 就绪 状态 随时可以进行数据传送 这就是无条件传送 或称立即传送 同步传送适合于简单设备 如LED数码管 按键或按纽等无条件传送的接口和操作均十分简单这种传送有前提 外设必须随时就绪 流程 无条件传送 输入示例 MOVDX 160HINAL DX 无条件传送 输入实例 MOVDX 160HINAL DX 无条件传送 输出示例 MOVDX 160HMOVAL BX OUTDX AL 无条件传送 输出实例 MOVDX 160HMOVAL BX OUTDX AL 无条件传送 输入输出接口 next movdx 8000h DX指向数据端口inal dx 从输入端口读开关状态notal 反相outdx al 送输出端口显示calldelay 调子程序延时jmpnext 重复 6 3查询传送方式及其接口 CPU需要先了解 查询 外设的工作状态 然后在外设可以交换信息的情况下 就绪 实现数据输入或输出对多个外设的情况 则CPU按一定顺序依次查询 轮询 先查询的外设将优先进行数据交换查询传送的特点是 工作可靠 适用面宽 但传送效率低 查询传送的两个环节 查询环节寻址状态口读取状态寄存器的标志位若不就绪就继续查询 直至就绪 传送环节寻址数据口是输入 通过输入指令从数据端口读入数据是输出 通过输出指令向数据端口输出数据 流程 6 3 1查询输入接口 movdx 8000h DX指向状态端口status inal dx 读状态端口testal 01h 测试标志位D0jzstatus D0 0 未就绪 继续查询incdx D0 1 就绪 DX指向数据端口inal dx 从数据端口输入数据 6 3 2查询输出接口 movdx 8000h DX指向状态端口status inal dx 读取状态端口的状态数据testal 80h 测试标志位D7jnzstatus D7 1 未就绪 继续查询incdx D7 0 就绪 DX指向数据端口moval buf 变量buf送ALoutdx al 将数据输出给数据端口 6 3 3查询方式的EEPROM编程 next moval 55h 写入内容 55Hmov bx al 写入存储单元nop 空操作指令 起延时作用nopnext1 inal dx 查询状态口testal 01h 测试D0jznext1 D0 0 芯片还在写入incbx D0 1 写毕 指针移动loopnext 循环至全部字节写完 6 4中断传送方式 CPU在执行程序中 被内部或外部的事件所打断 转去执行一段预先安排好的中断服务程序 服务结束后 又返回原来的断点 继续执行原来的程序 流程 6 4 1中断传送与接口 中断传送是一种效率更高的程序传送方式进行传送的中断服务程序是预先设计好的中断请求是外设随机向CPU提出的CPU对请求的检测是有规律的 一般是在每条指令的最后一个时钟周期采样中断请求输入引脚本书主要论述中断在输入和输出方面的应用中断还有着非常广泛的应用 中断输入接口 6 4 2中断工作过程 中断请求 中断响应 关中断 断点保护 中断识别 现场保护 中断服务 恢复现场 开中断 中断返回 中断服务是进行数据交换的实质性环节 中断源的识别 6 4 3中断优先权 问题1 系统有多个中断请求 CPU如何识别中断源 解答1 向量中断 图6 10 解答2 中断查询 图6 12 中断查询接口 图6 12 中断优先权排队 6 4 3中断优先权 续1 问题2 有多个中断同时请求 CPU如何应对 解答1 链式优先权排队电路 图6 13 解答2 优先权编码电路 图6 14 链式中断优先权排队电路 图6 13 中断优先权编码电路 图6 14 比较器失效信号 中断嵌套 6 4 3中断优先权 续2 问题3 中断处理过程中 又有中断提出请求 怎么办 解答1 链式优先权排队电路 图6 13 解答2 优先权编码电路 图6 14 除了硬件上能够识别更高级中断请求外 软件上在中断服务程序中需要开放中断 才能实现中断嵌套 6 5DMA传送方式 希望克服程序控制传送的不足 外设 CPU 存储器外设 CPU 存储器直接存储器存取DMA 外设 存储器外设 存储器CPU释放总线 由DMA控制器管理 DMA传送的工作过程 CPU对DMA控制器进行初始化设置 外设 DMAC和CPU三者通过应答信号建立联系 CPU将总线交给DMAC控制 DMA传送DMA读存储器 存储器 外设DMA写存储器 存储器 外设 自动增减地址和计数 判断传送完成否 DMA传送流程 流程 传送方式的比较 无条件传送 慢速外设需与CPU保持同步查询传送 简单实用 效率较低中断传送 外设主动 可与CPU并行工作 但每次传送需要大量额外时间开销DMA传送 DMAC控制 外设直接和存储器进行数据传送 适合大量 快速数据传送 第6章教学要求 1 了解I O接口电路的主要功能 内部和外部特点 端口编址方法 I O地址译码特点2 掌握输入输出指令3 掌握无条件 查询传送方式 第6章教学要求 续 4 理解中断 中断源 中断工作过程 中断源识别 优先权排队和中断嵌套5 理解DMA传送的工作过程习题6 第171页 6 26 46 56 96 10 多种多样的外设 工作原理不同机械 电子 机电 电磁 传送信息类型多样数字量 模拟量 开关量传送速度差别极大传送方式不尽相同串行 并行编码方式不同二进制 BCD码 ASCII码 返回 输出接口的锁存环节 返回 输出接口的锁存 缓冲环节 返回 输入接口的缓冲环节 返回 输入接口的锁存 缓冲环节 返回 端口 PORT 端口泛指I O地址 通常对应寄存器一个接口电路可以具有多个I O端口 每个端口用来保存和交换不同的信息数据寄存器 状态寄存器和控制寄存器占有的I O地址常依次被称为数据端口 状态端口和控制端口 用于保存数据 状态和控制信息输入 输出端口可以是同一个I O地址 一定要理