微机基本知识基本输入输出接口.ppt
1,第5章-1 基本输入输出接口,教学重点: I/O接口电路的典型结构 无条件传送方式 查询传送方式 中断工作过程 DMA传送,2,5.1 I/O接口概述,为什么需要I/O接口(电路)? 微机的外部设备多种多样; 工作原理、驱动方式、信息格式以及工作速度方面彼此差别很大; 它们不能与CPU直接相连; 必须经过中间电路再与系统相连; 这部分电路被称为I/O接口电路。,多种外设,3,5.1 I/O接口概述(续1),什么是I/O接口(电路)? I/O接口是位于系统与外设间,用来协助完成数据传送和控制任务的逻辑电路 PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路,4,5.1 I/O接口概述(续2),什么是微机接口技术? 处理微机系统与外设间联系的技术; 注意其软硬结合的特点; 根据应用系统的需要,使用和构造相应的接口电路,编制配套的接口程序,支持和连接有关的设备。,5,常见接口插槽,PS2鼠标,PS2键盘,千兆网,10/100M网卡,USB,并行口,MIDI/游戏接口,显示器接口,1394,1394a,音箱/线入接口/麦克风,串行口,6,5.1.2 I/O接口 - I/O接口的主要功能, 对输入输出数据进行缓冲和锁存; 输出接口有锁存、缓冲环节; 输入接口有锁存、缓冲环节; 对信号的形式和数据的格式进行变换 微机直接处理:数字量、开关量、脉冲量; 对I/O端口进行寻址; 与CPU和I/O设备进行联络。,7,5.1.2 I/O接口 - I/O接口的典型结构,1. 接口电路的内部结构 2. 接口电路的外部特性 3. 接口电路芯片的分类 4. 接口电路的可编程性,8,1. 接口电路的内部结构,CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看内部: 数据寄存器 保存外设给CPU和CPU发往外设的数据 状态寄存器 保存外设或接口电路的状态 控制寄存器 保存CPU给外设或接口电路的命令,理解端口,9,2. 接口电路的外部特性,主要体现在引脚上,分成两侧信号 面向CPU一侧的信号: 用于与CPU连接 主要是数据、地址和控制信号 面向外设一侧的信号: 用于与外设连接 提供的信号五花八门 功能定义、时序及有效电平等差异较大,10,3. 接口电路芯片的分类,接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片): 通用接口芯片 支持通用的数据输入输出和控制的接口芯片 面向外设的专用接口芯片 针对某种外设设计、与该种外设接口 面向微机系统的专用接口芯片 与CPU和系统配套使用,以增强其总体功能,11,4. 接口电路的可编程性,许多接口电路具有多种功能和工作方式,可以通过编程的方法选定其中一种; 接口需要进行物理连接,还需要编写接口软件; 接口软件有两类: 初始化程序段设定芯片工作方式等; 数据交换程序段管理、控制、驱动外设,负责外设和系统间信息交换。,12,5.1.3 I/O端口的编址,接口电路占用的I/O端口有两类编排形式 I/O端口单独编址 I/O地址空间独立于存储地址空间; 如8086/8088; I/O端口与存储器统一编址 它们共享一个地址空间; 如M68000。,13,I/O端口单独编址,优点: I/O端口的地址空间独立 控制和地址译码电路相对简单 专门的I/O指令使程序清晰易读 缺点: I/O指令没有存储器指令丰富,80 x86采用I/O端口独立编址,14,I/O端口与存储器统一编址,优点: 不需要专门的I/O指令 I/O数据存取与存储器数据存取一样灵活 缺点: I/O端口要占去部分存储器地址空间 程序不易阅读(不易分清访存和访问外设),15,8088/8086的输入输出指令,输入指令 IN AL, i8/DX;字节输入 IN AX, i8/DX;字输入 输出指令 OUT i8/DX, AL;字节输出 OUT i8/DX, AX;字输出,功能演示,功能演示,16,例:一个输入设备的简单接口电路,该电路在CPU执行指令 MOV DX, 284H IN AL, DX 将输入设备的数据读入 CPU内AL中,图中译码电路的作用: 只当A15A0上出现284H时, (即0000 0010 1000 0100B) 输出0,其他输出1。,IO总线,三 态 缓冲器,开关 状态,DB,IOR,地址 译码,AB,284H,0,0,0,D7 D0,A15 A0,与 非,17,例:一个输入设备的简单接口电路,三 态 缓冲器,开关 输入,数据线,IOR,地址 译码,地址线,284H,0,0,0,D7 D0,A15 A0,与 非,IO总线,D0,D7,K1 : K8,A15A0,IOR,CLK,D7 D0,T4,T1,T2,T3,Tw,0000 0010 1000 0100,执行: MOV DX, 284H IN AL, DX,01101101B=6DH,IN指令时序,问题: P290图5.11 K2,K5,K8闭合时DB=?, (AL)=?,18,例:一个输入设备的简单接口电路,三 态 缓冲器,输入设备,数据线,IOR,地址 译码,地址线,284H,0,0,0,D7 D0,A15 A0,与 非,IO总线,MOV DX, 284H IN AL, DX,输入设备接口电路,即硬件上保证: 只在CPU执行从284H端口输入数据时,三态门处于工作状态,使输入设备的数据送上总线侧,而CPU执行其它指令时,三态门均处于高阻状态,使输入设备的数据线与总线侧断开。,思考:其他的指令为什么不可以?,例:IN AL, 50H; MOV AL, 0284H,19,例:一个输出设备的简单接口电路,该电路在CPU执行指令 MOV AL, 81H MOV DX, 288H OUT DX, AL CPU内AL中的数据81H送至输出设备,IO总线,锁存器,输出 设备,数据线,IOW,地址 译码,地址线,288H,0,0,0,D7 D0,A15 A0,与 非,例:LED指示灯,图中译码电路的作用: 只当A15A0上出现288H时, (即0000 0010 1000 1000B) 输出0,其他输出1。,参见P291图5.12,20,例:一个输出设备的简单接口电路,IO总线,锁存器,输出 设备,数据线,IOW,地址 译码,地址线,288H,0,0,0,D7 D0,A15 A0,与 非,例:LED指示灯,OUT指令时序,A15A0,CLK,IOW,D7D0,T4,T1,T2,T3,Tw,0000 0010 1000 1000,执行: MOV AL, 81H MOV DX, 288H OUT DX, AL,21,例:一个输出设备的简单接口电路,PC总线,锁存器,输出 设备,数据线,IOW,地址 译码,地址线,288H,0,0,0,D7 D0,A15 A0,与 非,例:LED指示灯,MOV DX, 288H OUT DX, AL,输出设备接口电路,即硬件上保证: 只在CPU执行从288H端口输出数据时,锁存器处于触发状态,其输出随输入变化,而CPU执行其它指令时,锁存器均处于锁存状态, 其输出不随输入变化,,思考:其他的指令为什么不可以? 例:OUT 50H,AL; MOV 0288H,AL,问题:对本电路 MOV DX,288H IN AL,DX 结果如何?,22,I/O端口的译码,译码电路的作用 译码电路的构成(与存储器译码相似) 设计译码电路的方法 片内译码和片选译码,23,I/O译码电路的作用,将CPU执行IN/OUT指令发出的信号,“翻译”成欲操作端口的选通信号,此信号常作为接口内三态门或锁存器的控制信号,接通或断开接口数据线与系统的连接。,A15A0,IOR,CLK,D7 D0,T4,T1,T2,T3,Tw,A15A0,CLK,IOW,D7D0,T4,T1,T2,T3,Tw,IN指令时序,OUT指令时序,24,设计译码电路的方法,根据端口地址确定地址信号A15A0的条件取值,用门电路、译码器及组合、PLD/GAL实现满足条件情况的电路 设计I/O译码电路时: 端口的选通信号通常为低电平有效, 除端口的地址信号参加译码外,控制信号IOW、IOR (IO/M、 AEN也可参加译码),译 码 电 路,A0 A1 A14 A15 IOR IOW AEN,25,例:设计端口地址为218H的译码电路,分析 CPU执行IN/OUT指令时,发出端口的地址信号 MOV DX, 218H IN AL, DX 或 OUT DX, AL 对应218H端口的地址信号为(只取A9A0): A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 (地址信号) 1 0 0 0 0 1 1 0 0 0 B 2 1 8 H 只要满足此地址取值的译码电路均可,26,方法一、用门电路实现218H的地址译码,数 据 线 DB,RD,WR,CS,端口 译码 电路,0,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 AEN IOR IOW,I/O接口,IO总线,D0 D7,D0 D7,1 0 0 0 0 1 1 0 0 0 0,译码电路部分满足: 只当地址信号A9 A0为: A9A8A7A6A5A4A3A2A1A0 1 0 0 0 0 1 1 0 0 0 即218H时,输出“0 ” , 使I/O接口的/CS有效, 否则输出“1 ”,使I/O接口的/CS无效,27,地址重叠现象,数 据 线 DB,RD,WR,CS,端口 译码 电路,0,A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 AEN IOR IOW,I/O接口,IO总线,D0 D7,D0 D7,1 0 0 0 0 1 1 0 0 0 0,注意译码电路中: 由于高位地址线A15A10 未参与译码, 即: 地址A15A0为: 10 0001 1000 均能输出“0 ”低电平, 所以该电路使: 一个端口对应多个地址 共26=64个 218,618, A18,E18,等等,28,方法二、用译码器、门电路组合实现地址译码,【问1】 Y1 Y7 译出的端口地址各是多少? 【问2】将A0与A2位置互换Y0Y7 译出的端口地址各是多少?,29,【答1】Y0Y7译出的端口地址分别是219H21FH。 【答2】将A0与A2位置互换Y1 Y7译出的端口地址分别是218H、21CH、21AH、21EH、219H、21DH、21BH和21FH。,30,I/O地址的译码小结,I/O地址的译码方法与存储器地址的译码方法一样,但有它的特点: 每个接口电路通常只占用几个I/O地址,这时可以利用基本逻辑门电路进行地址译码 除采用译码器、门电路进行译码外,I/O地址译码还经常采用可编程逻辑器件PLD,31,IBM PC/XT主机板的I/O译码电路,32,5.1.4 数据传送方式,程序控制下的数据传送通过CPU执行程序中的I/O指令来完成传送,又分为:无条件传送、查询传送、中断传送 直接存储器存取(DMA)传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送 I/O处理机CPU委托专门的I/O处理机来管理外设,完成传送和相应的数据处理,33,1、无条件传送方式及其接口,在CPU与慢速变化的设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送 适合于简单设备,如LED数码管、按键或按纽等 无条件传送的接口和操作均十分简单 这种传送有前提:外设必须随时就绪,传送流程,34,无条件传送:输入示例,35,无条件传送:输出示例,36,简单输入接口举例,MOVDX,218H INAL,DX,37,简单输出接口举例,MOVDX,219H OUTDX,AL,38,2、查询传送方式及其接口,CPU需要先了解(查询)外设的工作状态,然后在外设可以交换信息的情况下(就绪)实现数据输入或输出 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换 查询传送的特点是:工作可靠,适用面宽,但传送效率低,就绪?,39,查询传送的两个环节, 查询环节 寻址状态口 读取状态寄存器的标志位 若不就绪就继续查询,直至就绪 传送环节 寻址数据口 是输入,通过输入指令从数据端口读入数据 是输出,通过输出指令向数据端口输出数据,传送流程,接口实例,40,查询输入接口电路,MOV DX, 8000H ;DX指向状态端口 status:IN AL, DX ;读状态端口 TEST AL,01H ;测试标志位D0 JNZ status ;D00,未就绪,继续查询 INC DX ;D01,就绪,DX指向数据端口 IN AL, DX ;从数据端口输入数据,41,查询输出接口电路,MOV DX, 8000H ;DX指向状态端口 status:IN AL, DX ;读取状态端口的状态数据 TEST AL, 80H ;测试标志位D7, 80H=10000000B JZ status ;D71, 未就绪,继续查询 INC DX ;D70, 就绪, DX指向数据端口 MOV AL, BUF ;变量buf送AL OUT DX, AL ;将数据输出给数据端口,42,3、中断传送方式,CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序,传送流程,43,中断传送与接口,中断传送是一种效率更高的程序传送方式; 进行传送的中断服务程序是预先设计好的; 中断请求是外设随机向CPU提出的; CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚; 下面讨论中断在输入和输出方面的应用; 中断还有着非常广泛的应用,以后将详细介绍。,44,中断传送与接口,45,中断工作过程,中断请求,中断响应,关中断,断点保护,中断识别,现场保护,中断服务,恢复现场,开中断,中断返回,中断服务是进行数据交换的实质性环节,46,中断源的识别,中断优先权,问题1:系统有多个中断请求, CPU如何识别中断源?,解答:中断查询,47,中断查询接口,48,中断优先权排队,中断优先权(续1),问题2:有多个中断同时请求, CPU如何应对?,解答:链式优先权排队电路,49,链式中断优先权排队电路,50,中断嵌套,中断优先权(续2),问题3:中断处理过程中, 又有中断提出请求,怎么办?,解答:链式优先权排队电路,51,希望克服程序控制传送的不足: 外设CPU存储器 外设CPU存储器 直接存储器存取DMA: 外设存储器 外设存储器 CPU释放总线,由DMA控制器管理。,4、DMA传送方式,52,DMA传送的工作过程, CPU对DMA控制器进行初始化设置 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制 DMA传送 DMA读存储器:存储器 外设 DMA写存储器:存储器 外设 自动增减地址和计数,判断传送完成否,传送流程,53,DMA传送流程,54,小结传送方式的比较,无条件传送:慢速外设需与CPU保持同步; 查询传送: 简单实用,效率较低; 中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销 ; DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送。,55,多种多样的外设,工作原理不同 机械、电子、机电、电磁 传送信息类型多样 数字量、模拟量、开关量 传送速度差别极大 传送方式不尽相同 串行、并行 编码方式不同 二进制、BCD码、ASCII码,56,输出接口的锁存、缓冲环节,57,输入接口的锁存、缓冲环节,58,端口(PORT),端口泛指I/O地址,通常对应寄存器; 一个接口电路可以具有多个I/O端口,每个端口用来保存和交换不同的信息; 数据寄存器、状态寄存器和控制寄存器占有的I/O地址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息; 输入、输出端口可以是同一个I/O地址。,一定要理解,59,IN AL, 21H,60,OUT 43H, AL,61,无条件传送流程,62,就绪(Ready),在输入场合 “就绪”说明输入接口已准备好送往CPU的数据,正等着CPU来读取 该状态也可用接口中数据缓冲器已“满”来描述 在输出场合 “就绪”说明输出接口已做好准备,等待接收CPU要输出的数据 该状态也可用接口数据缓冲器已“空”、或者用接口(外设)“闲”或不“忙(Busy)”来描述,就绪:满,空、闲、不忙,63,查询传送流程,64,中断传送流程,65,DMA传送流程,