《输入输出接口总论知识分享》由会员分享,可在线阅读,更多相关《输入输出接口总论知识分享(47页珍藏版)》请在金锄头文库上搜索。
1、第 7 章,第7章 基本输入输出接口,教学重点 I/O接口电路的典型结构 端口的地址译码方式 无条件传送方式 查询传送方式 中断工作过程,第7章:7.1 I/O接口概述,什么是I/O接口(电路)? I/O接口是位于系统与外设之间、用来协助完成数据传送和控制任务的中间连接电路 PC机系统板的可编程接口芯片、I/O总线槽的电路板(适配器)都是接口电路,第7章:7.1 I/O接口概述(续1),为什么需要I/O接口(电路)? 微机的外部设备多种多样,各种外设工作原理、驱动方式、信息格式、以及工作速度方面彼此差别很大 它们不能与CPU直接相连,必须经过中间电路再与系统相连,(1) I/O接口的主要功能,
2、(1)根据CPU的命令,对外设进行控制,如设置其工作方式、数据传输等 (2)充当CPU与外设数据交换的中转站与翻译机:对输入输出数据进行缓冲和锁存、对信号的形式和数据的格式进行变换(如进行串、并转换,数模转换等) (3)对I/O端口进行寻址 (4)与CPU和I/O设备进行联络:如采用何种传送方式与CPU交换数据(中断传送等),(2) I/O接口的典型结构,1. 接口电路的外部特性,接口电路的外部特性主要体现在引脚上,分成两侧信号 面向CPU一侧的信号: 用于与CPU连接 主要是数据、地址和控制信号 面向外设一侧的信号: 用于与外设连接 提供的信号五花八门 功能定义、时序及有效电平等差异较大,2
3、. 接口电路芯片的分类,接口电路核心部分往往是一块或数块大规模集成电路芯片(接口芯片): 通用接口芯片 支持通用的数据输入输出和控制的接口芯片 面向外设的专用接口芯片 针对某种外设设计、与该种外设接口,如显卡、声卡等 面向微机系统的智能接口 与CPU和系统配套使用,以增强其总体功能,如DMA控制器等,3. 接口电路的内部结构,CPU与外设主要有数据、状态和控制信息需要相互交换,于是从应用角度看,接口电路的内部结构主要有: 数据寄存器(数据端口) 输入数据寄存器:保存外设给CPU的数据 输出数据寄存器:保存CPU给外设的数据 状态寄存器(状态端口) 保存外设或接口电路的状态 控制寄存器(控制端口
4、) 保存CPU给外设或接口电路的命令,7.2 I/O端口(PORT),端口是接口电路中能被CPU访问的单元,通常对应接口电路的寄存器 一个接口电路可以具有多个I/O端口(寄存器),每个端口用来保存和交换不同的信息 数据寄存器、状态寄存器和控制寄存器占有的I/O地址常依次被称为数据端口、状态端口和控制端口,用于保存数据、状态和控制信息 输入、输出端口可以是同一个I/O地址,第7章:7.1.1 I/O端口的编址,接口电路占用的I/O端口有两类编排形式 I/O端口单独编址方式 I/O地址空间独立于存储地址空间 如8086/8088 与存储器对应的统一编址方式 它们共享一个地址空间 如M6800,第7
5、章: I/O端口单独编址,优点: I/O端口的地址空间独立 控制和地址译码电路相对简单 专门的I/O指令使程序清晰易读 缺点: I/O指令没有存储器指令丰富,80 x86采用I/O端口独立编址, I/O端口与存储器统一编址,优点: 不需要专门的I/O指令 I/O数据存取与存储器数据存取一样灵活 缺点: I/O端口要占去部分存储器地址空间 程序不易阅读(不易区分本次操作是访问内存还访问外设),(2) 8088/8086的输入输出指令,输入指令(IN:将外设数据传送给CPU内的AL/AX) IN AL,i8;字节输入 (端口地址小于256时用此方式) IN AL,DX;字节输入 IN AX,i8;
6、字输入 IN AX,DX;字输入 输出指令(OUT:将CPU内的AL/AX数据传送给外设) OUT i8,AL;字节输出 OUT DX,AL;字节输出 OUT i8,AX;字输出 OUT DX,AX;字输出,第7章:8088/8086的I/O端口,8086只能通过输入输出指令与外设进行数据交换;呈现给程序员的外设是端口(Port),即I/O地址 8086用于寻址外设端口的地址线为16条,端口最多为21665536个,端口号为0000H FFFFH 访问端口时有两种寻址方式 直接寻址:只用于寻址00H FFH前256个端口,操作数i8表示端口号 间接寻址:可用于寻址全部64K个端口,DX寄存器中
7、的值就是端口号 对大于FFH(255)的端口必须采用间接寻址方式,IN、OUT指令实例,(1)从20H端口输入一个字 ;方法1:直接寻址,字量输入 in ax,20h ;方法2:间接寻址,字量输入 mov dx,20h in ax,dx,如果输入输出一个字节,利用AL寄存器 如果输入输出一个字,利用AX寄存器,(2)向300H端口输出一个字节 ;唯一的方法:采用间接寻址 mov al,88H mov dx,300h out dx,al,7.2.3 I/O端口地址译码技术,计算机中的数字电路基础,与、或、非门: 最基本的门电路,将它们适当地连接,可得到任意复杂的逻辑功能,与非、或非、异或门 与非
8、门:是数字集成电路中构成其它器件的基础 异或门:是构成运算器的关键,计算机中的数字电路基础,译码器: n位输入,在2n位输出中只有对应于输入的一位才有有效输出。其典型应用如3-8译码器。,74LS138即三八译码器(三个输入对应8个输出)。 当E1=E2=0,E3=1时,对三个输入A、B、C(C为高位)进行译码。 当CBA=000时,对应输出Y0=0,其它全为1; 当CBA=001时,对应输出Y1=0,其它全为1 ,二、计算机中如何实现译码,CPU为了对某一外设的端口进行读写操作,就需要在众多的I/O端口中选定该端口地址。如何通过CPU发出的地址编码来识别确认这个端口,就是所谓的地址译码。译码
9、是通过译码电路来实现的。,外设,地址总线,最简单的译码电路:门电路译码, ,根据本译码电路,只有当地址线上的译码信号为 1001111000B,即278H 时,在输出端才能得到有效的输出(注:低电平有效),其它则不会!,在上面的基础上,下图进一步说明了计算机是如何在众多的设备中对外设进行寻址的。,IN AL, 21H,OUT 43H, AL,返回,根据本译码电路,只有当地址线上的译码信号为 1011100010B,即2E2H 时,在输出端才能得到有效的输出(注:低电平有效)。,计算机中如何实现译码:门电路译码,在本电路图中,另外还多了两根信号线:IOR和IOW。由此又得到两个有效输出,它表明当
10、我们在地址线上送出一个端口地址时,操作对象可以是两个不同的寄存器!,在本译码电路图中,地址线A9A5直接参加3-8译码器的译码,而A3A0作为芯片内部寄存器的访问地址。因此,对于本图中所确定出的端口地址是一个地址范围,如8259的地址范围是02003FH,8237的地址范围是0001FH等。,计算机中如何实现译码:3-8译码器的例子,在本译码电路图中, 当跳线开关置于J10时,所得的端口地址(范围)为2F82FFH; 当跳线开关置于J12时,所得的端口地址(范围)为3F83FFH;,计算机中如何实现译码:跳线式可选端口译码,补充内容:计算机中如何实现译码:开关式可选端口译码,在本译码电路图中,
11、地址线A9A3作为比较器的输入端,而A2A0作为 三八译码器的输入端。因此,对于本图中所确定出的端口地址为0008H。当改变DIP开关状态,可得到不同的端口地址。,7.3 I/O数据传送方式,7.3 数据传送方式,程序控制下的数据传送通过CPU执行程序中的I/O指令来完成传送,又分为: 无条件传送 查询传送 中断传送 DMA传送,7.3.1 无条件传送方式及其接口,在CPU与一些设备交换数据时,可以认为它们总是处于“就绪”状态,随时可以进行数据传送,这就是无条件传送,或称立即传送、同步传送 适用对象:适合于简单设备,如LED数码管、按键或读取开关的状态等 无条件传送的接口和操作均十分简单 采用
12、此种传送的前提:外设必须随时就绪,无条件传送:输入实例,MOV DX, 160H IN AL, DX,74LS244,+5V,10K x 8,G1 G2,数据总线,CS,RD,160H,无条件传送:输出实例,MOV DX, 160H MOV AL, BX OUT DX, AL,160H,无条件传送:输入输出接口,next:mov dx,8000h;DX指向数据端口 in al,dx;从输入端口读开关状态 not al;反相 out dx,al;送输出端口显示 call delay;调子程序延时 jmp next;重复,7.3.2 查询传送方式及其接口,CPU需要先了解(查询)外设的工作状态,然
13、后在外设可以交换信息的情况下(就绪)实现数据输入或输出 对多个外设的情况,则CPU按一定顺序依次查询(轮询)。先查询的外设将优先进行数据交换 查询传送的特点是:工作可靠,适用面宽,但传送效率低,第7章:查询传送的两个环节, 查询环节 读取状态寄存器的标志位,若不就绪就继续查询,直至就绪 传送环节 若为输入,使用in指令从数据端口读入数据 若为输出,使用out指令向数据端口输出数据,流程,查询传送流程,返回,查询输入接口,mov dx,8000h;DX指向状态端口 status:in al,dx;读状态端口 test al,01h;测试标志位D0 jz status;D00,未就绪,继续查询 i
14、nc dx;D01,就绪,DX指向数据端口 in al,dx;从数据端口输入数据,选通信号,第7章:7.3.2 查询输出接口,mov dx,8000h;DX指向状态端口 status:in al,dx;读取状态端口的状态数据 test al,80h;测试标志位D7 jnz status;D71,未就绪,继续查询 inc dx;D70,就绪,DX指向数据端口 mov al,buf;变量buf送AL out dx,al;将数据输出给数据端口,7.3.3 中断传送方式,CPU在执行程序中,被内部或外部的事件所打断,转去执行一段预先安排好的中断服务程序;服务结束后,又返回原来的断点,继续执行原来的程序
15、,流程,中断传送流程,返回,中断传送与接口,中断传送是一种效率更高的程序传送方式 中断请求是外设随机向CPU提出的,而进行传送的中断服务程序是预先设计好的 CPU对请求的检测是有规律的:一般是在每条指令的最后一个时钟周期采样中断请求输入引脚 中断有着非常广泛的应用,正因为微机采用了中断传送方式,因此才能有今天的成就,7.3.4 DMA传送方式,直接存储器存取(DMA)传送请求由外设向DMA控制器(DMAC)提出,后者向CPU申请总线,最后DMAC利用系统总线来完成外设和存储器间的数据传送 希望克服程序控制传送的不足: 外设CPU存储器 直接存储器存取DMA: 外设存储器 CPU释放总线,由DM
16、A控制器管理,DMA传送流程,返回,第7章:DMA传送的工作过程, DMA向CPU提出DMA请求; (2)如果允许,CPU对DMA控制器进行初始化设置 (3) 外设、DMAC和CPU三者通过应答信号建立联系:CPU将总线交给DMAC控制 (4) DMA传送开始 DMA读存储器:存储器 外设 DMA写存储器:存储器 外设 (5) 自动增减地址和计数,判断传送完成否 (6)DMA控制器释放系统总线,第7章:DMA传送流程,流程,第7章:传送方式的比较,无条件传送:慢速外设需与CPU保持同步 查询传送: 简单实用,效率较低 中断传送:外设主动,可与CPU并行工作,但每次传送需要大量额外时间开销 DMA传送:DMAC控制,外设直接和存储器进行数据传送,适合大量、快速数据传送,第7章:教学要求,1. 了解I/O接口电路的主要功能、内部和外部特点、端口编址方法、I/O地址译码特点 2. 掌握输入输出指令 3. 掌握无条件、查询传送方式 4. 理解中断、中断源、中断工作过程、