数据端口由锁存器实现基本输入输出接口34查询方式的典型课件.ppt
微型计算机系统,Company Logo,2,第六章:基本输入输出接口,教学提示:按照冯诺依曼对计算机的划分,计算机包括运算器、控制器、存储器、输入设备和输出设备五个大的部分。在前面的章节中,我们主要介绍了CPU与存储器之间的数据传送和数据处理。但是,计算机要与外界联系,就必须通过输入设备接收信息、通过输出设备发送信息,在本章中我们主要介绍这部分知识。,教学要求:通过本章学习,需要掌握输入/输出接口的基本概念,掌握 I/O接口的分类和基本功能,掌握CPU与外部设备数据传送的几种基本方式和相关的指令,Company Logo,3,基本内容:,6.1 I/O接口概述 6.1.1 I/O接口的主要功能 6.1.2 I/O接口 6.1.3 I/O端口的编址方法 6.1.4 8088/8086的输入/输出指令6.2 I/O接口的数据传送方式 6.2.1 无条件传送方式及其接口 6.2.2 查询传送方式及其接口 6.2.3 中断传送方式及其接口 6.2.4 DMA传送方式,第六章:基本输入输出接口,Company Logo,4,6.1 I/O接口概述,输入/输出设备的种类十分繁杂,各自有着不同的电平信号、数据格式、传送速度等,通常与CPU的访问信号是不协调的,所以CPU一般不能直接访问这些输入/输出设备,而是要在CPU和输入/输出设备之间安置一个接口电路,通过接口电路的转换,使得来自输入设备的信号能够被CPU读取、CPU的输出信号能够被输出设备接受。,第六章:基本输入输出接口,Company Logo,5,用于连接CPU和外部设备,并进行相应信号转换的电路称为I/O接口电路(或接口电路)。,第六章:基本输入输出接口,Company Logo,6,I/O接口的基本功能是能够根据CPU的要求对I/O设备进行管理与控制,实现信号逻辑及工作时序的转换,保证CPU与外设之间能进行可靠有效的信息交换。,1、对输入/输出的信号进行变换 输入/输出设备的信号与CPU的信号在数据格式、电平高低、传送速度等方面有着很大的差别,所以接口电路就需要把这些信号变换成适合对方的形式。,第六章:基本输入输出接口,Company Logo,7,2、对输入/输出的数据进行缓冲和锁存 通常输入/输出设备的工作速度比CPU都慢很多,而且CPU的工作繁忙,所以要对输入/输出的数据进行缓冲和锁存,有效地提高整个计算机的工作效率。,第六章:基本输入输出接口,Company Logo,8,(1)输出时,数据必须锁存。CPU输出某个数据后,马上就要进行后续的其他工作,而这时输出设备还没取走该数据,这就需要接口电路(通常采用锁存器)把CPU输出的数据锁存下来,供输出设备读取。,第六章:基本输入输出接口,Company Logo,9,(2)输入时,数据必须进行缓冲隔离。当输入设备向CPU送来一个数据时,此时CPU可能正在使用数据总线进行其他相关工作,所以需要接口电路(通常采用三态缓冲器)对数据进行缓冲。待CPU有空来选通接口电路读取这数据。,第六章:基本输入输出接口,Company Logo,10,3、完成设备的选择和寻址 一个计算机系统中,需要通过许多接口电路连接了许多外部设备,当CPU访问到该接口电路中寄存器时,应执行相应的读写操作,而当CPU访问其他接口电路中寄存器时,则这个接口电路不应操作。,第六章:基本输入输出接口,Company Logo,11,6.1.2 I/O接口,1、数据信息、状态信息及控制信息,CPU和外设之间传送 三种信息 数据信息、控制信息和状态信息。,数据信息:有数字量、模拟量和开关量三种类型:数字量:以二进制码形式提供的信息。开关量:用2个状态表示的信息。模拟量:指由传感器等提供的由物理量转换成的相应的连 续变化的电信号。,第六章:基本输入输出接口,Company Logo,12,状态信息表征外设的工作状态对输入接口,外设是否准备好发送数据,“READY”准备好?对输出接口,外设是否准备好接收数据,“BUSY”外设忙吗?,控制信息 CPU控制外设工作的命令 CPU通过接口发出的命令,如A/D转换器的启/停信号,设置外设的工作模式等。,第六章:基本输入输出接口,Company Logo,13,2、接口与端口,接口(Interface)CPU与外设之间传递信息的控制电路,是CPU与外设之间传送信息的一个“界面”、一个连接部件。,端口(Port)接口中可以由CPU进行读或写的寄存器。,第六章:基本输入输出接口,Company Logo,14,按照存放的信息类型进行分类,端口可以分成数据端口、状态端口、控制端口3种:,数据端口:存放外部设备传送来的数据,供CPU读取或存放CPU 输出的数据,并传送给外部设备;状态端口:用于暂存外设的状态信息,供CPU读取;控制端口:用于存放CPU 发送给外设或接口的控制信息,控制 外设或接口的工作方式。,第六章:基本输入输出接口,Company Logo,15,典型的接口电路示意图如图所示:,CPU就是通过访问这些I/O端口,完成控制外部设备、了解外设的工作状态、与外设进行数据传送等操作的。,第六章:基本输入输出接口,Company Logo,16,6.1.3 I/O端口的编址方法(寻址方式),为了区分接口电路的各个寄存器,系统为它们各自分配了一个地址,称为I/O端口地址,以便对它们进行寻址。I/O端口有两种编址方式:存储器映像编址方式、I/O独立编址方式。,1、和存储器统一编址(存储器映象编址)方式,存储器和I/O端口共用统一的地址空间,每一个端口视为一个存储单元;,第六章:基本输入输出接口,Company Logo,17,访问I/O端口同样用MOV指令,所有访问存储器的指令(包括存储器的算术、逻辑运算指令)都可用于I/O端口,系统 编程比较灵活;I/O占用了一部分内存空间;指令的机器码较长,执行时间也长;,第六章:基本输入输出接口,Company Logo,18,采用存储器与I/O接口统一编址的计算机系统的示意图如右图所示。该系统中存储器单元和I/O接口一共有64K(地址是0000HFFFFH),其中地址为3000H37FFH的部分是I/O接口,其余部分是存储器单元,实际存储器有62K个单元。,第六章:基本输入输出接口,Company Logo,19,2、端口独立编址方式,存储器和I/O接口各自使用不同的地址空间。8086/8088系统中,存储器的地址范围是FFFFFH00000H,I/O接口的地址范围是0000HFFFFH;CPU利用专门的输入/输出指令访问I/O接口;I/O接口不占用存储器的空间;I/O端口的地址码较短,译码电路比较简单,程序比较清晰;程序设计灵活性较差,I/O指令的功能一般不如存储器访问指令丰富,程序设计灵活性较差。,第六章:基本输入输出接口,Company Logo,20,8088/8086系统中存储器和I/O接口之间的关系如图所示。存储器和I/O接口的地址是各自独立的,存储器的地址范围是00000HFFFFFH,I/O接口地址范围是0000HFFFFH,相互之间完全独立。,第六章:基本输入输出接口,Company Logo,21,6.1.4 8088/8086的输入/输出指令,在8088/8086为CPU的计算机系统中,I/O接口的编址采用的是独立编址方法,系统中I/O接口的地址范围是FFFFH0000H。8088/8086指令系统中有专门访问I/O接口的输入/输出指令:,1、输入指令 IN,(1)指令格式1:IN AL,n;指令中目的操作数必须是累加器,n为端口号(端口地址)必须 FFH 指令功能:把地址为n的端口的8位信息传送给AL;,第六章:基本输入输出接口,Company Logo,22,例:IN AL,20H 该指令把20H端口的内容送到AL寄存器中。,(2)指令格式2:IN AL,DX;指令功能:用DX间接寻址,把DX表示端口地址的端口的8位信息 传送给AL;DX为0000-FFFFH的值;,例:MOV DX,200H IN AL,DX 实现将200H号端口的内容送入AL,第六章:基本输入输出接口,Company Logo,23,(3)指令格式3:IN AX,n 指令功能:读入n、n+1两个I/O端口的内容,分别送入AL和AH。例:IN AX,20H;一次读入20H、21H两个端口的内容,分别送入AL和AH中,(4)指令格式4:IN AX,DX 指令功能:用DX间接寻址,读取由DX和DX+1表示端口地址的 两个端口的内容,分别送入AL和AH中。例:MOV DX,200H IN AX,DX。用这两条指令,输入200H和201H号端口的内容,分别送入AL 和AH中。,第六章:基本输入输出接口,Company Logo,24,2、输出指令,(1)指令格式1:OUT n,AL 指令功能:把AL的信息传送给地址为 n的端口;例:OUT 20H,AL。该指令把AL寄存器的内容送到20H端口中;,第六章:基本输入输出接口,Company Logo,25,(2)指令格式2:OUT DX,AL 指令功能:把AL中的信息传送给由DX表示端口地址的一个 端口;例:MOV DX,200H OUT DX,AL 利用这两条指令,可以把AL寄存器的内容,送入200H号 端口。,第六章:基本输入输出接口,Company Logo,26,(3)指令格式3:OUT n,AX 指令功能:该指令一次把AL和AH内容,分别送入地址为 n和n+1的两个I/O端口中。例:OUT 20H,AX 把AL和AH的内容,分别送入20H、21H两个端口中。,第六章:基本输入输出接口,Company Logo,27,(4)指令格式:OUT DX,AX 指令功能:该指令一次把AL和AH中的内容,分别送入由DX和 DX+1表示的两个端口。例:MOV DX,200H OUT DX,AX 利用这两条指令,把AL和AH中的内容,分别送入200H和 201H号两个端口。,第六章:基本输入输出接口,Company Logo,28,6.2 I/O接口的数据传送方式 CPU与I/O接口进行数据传送的方式也有多种形式,常见的有:无条件传送方式、查询传送方式、中断传送方式、DMA传送方式。无条件传送方式、查询传送方式又称为程序控制传送方式。,第六章:基本输入输出接口,Company Logo,29,6.2.1 无条件传送方式及其接口,CPU不检查外部设备的状态,直接进行数据传送的传送方 式。简单,适用于慢速外设,CPU认为需要时,可以随时给这种外部设备输出数据或从这种外部设备上输入数据。如:LED(输出),乒乓开关(输入)无条件传送方式的接口只包含数据端口,输入端口时采用三态输入缓冲器实现数据端口,输出端口时采用锁存器实现数据端口;,第六章:基本输入输出接口,Company Logo,30,无条件输入输出传送方式的典型接口电路:,第六章:基本输入输出接口,Company Logo,31,【例6.1】CPU 控制LED发光二极管不同的点亮状态,采用 无条件传送方式,向接口输出数据。,一个简单的发光二极管输出接口电路如图所示:每位触发器控制对应的发光二极管,触发器输出为“1”,发光二极管导通发光;触发器输出为“0”,发光二极管就不能发光;,第六章:基本输入输出接口,Company Logo,32,【例6.2】一个跳线开关输入接口电路如 图所示。,跳线开关是常用于系统的设置的输入装置,一般采用无条件传送方式,访问跳线开关装置。每个三态门对应一个开关。如果某位跳线开关不短接(断开),则CPU读入该位的状态是“1”;如果某位跳线开关短接到地线上,则CPU读入该位的状态是“0”。,第六章:基本输入输出接口,Company Logo,33,6.2.2 查询传送方式及其接口,CPU在进行数据传送之前,先检查状态端口,如果外部设备当前处于“准备好”的状态,就进行数据传送;否则,再次检查状态端口,直至检测到外部设备“准备好”,再进行数据传送。,CPU的工作效率非常低 接口包括数据端口和状态端口,状态端口由三态输入缓冲器实现;输入设备时,数据端口由三态输入缓冲器实现;输出设备时,数据端口由锁存器实现;,第六章:基本输入输出接口,Company Logo,34,查询方式的典型输出接口电路:,数据输出的工作过程:()8088CPU 在输出数据前,先要查询设备的状态,执行读状态端口操作,判断从状态口读入数据的D7位是1还是0,若为1表示设备忙,则等待后再查询;若为0表示设备空闲,CPU 将数据写入数据端口,同时将状态触发器置1。之后重复以上的操作,周而复始。,第六章:基本输入输出接口,Company Logo,35,()输出设备检测STB信号:为0时则等待;为1时,则进行数据处理;待数据处理完毕后,通过ACK 端发出负脉冲将状态触发器清0。,第六章:基本输入输出接口,Company Logo,36,【例6.3】ADC0809是常用的模拟接口芯片,它把模拟电压信号转换成 8位数字信号,供CPU读取。,向端口a写入要转换通道的地址。比如:要转换IN2通道的内容,就写入 02H,0809内部将锁存该地址;启动ADC0809转换;CPU将不断地读取端口b的EOC值,若该位为”0”,表示正在转换,继续查询端口b的EOC值;当该位是“1”时,表示转换已经完成了;这时CPU可以读取端口a,0809就可以把转换好的数据通过数据线送给CPU。,接口电路的工作过程:,a、b表示ADC0809的两个端口地址,Company Logo,37,若端口a的地址是1000H,b端口的地址是1001H,要读取IN2通道的内容,送入KIN2内存单元。以下为实现转换过程的程序:,MOV AL,02H MOV DX,1000H OUT DX,AL;写入通道的地址,并启动转换的过程L0:MOV DX,1001H IN AL,DX;读取状态端口 AND AL,01H(TEST AL,01H)JZ L0;如果EOC为0,则再次查询 MOV DX,1000H IN AL,DX;读取转换好的数据 MOV KIN2,AL,第六章:基本输入输出接口,Company Logo,38,6.2.3 中断传送方式及其接口,CPU在某一时刻启动 一台外设,然后继续执行其主程序,外设完成数据传送的准备后,向CPU发出“中断请求”信号,在CPU允许响应中断的条件下,现行主程序被“中断”,转去执行与I/O接口进行数据传送的“中断服务程序”,传送完成后再返回被中断的主程序,从断点处继续执行。,第六章:基本输入输出接口,Company Logo,39,中断方式下CPU执行程序流程:,CPU和外设大部分时间处在并行工作状态,只在CPU响应外设的中断申请后,进入数据传送的过程。中断传送方式提高了CPU的效率;,虽提高了CPU的效率,但仍然是通过CPU执行程序来实现数据传送。大量的数据在外设与内存间交换需大量的时间,当高速I/O设备时或成组数据交换时,显得速度太慢。,第六章:基本输入输出接口,Company Logo,40,硬件电路和处理过程都比较复杂;硬件电路包括 数据端口、中断请求触发器、中断屏蔽触发器、中断判优电路、中断向量产生电路等。,中断输入方式硬件接口电路如图:,第六章:基本输入输出接口,Company Logo,41,【例6.4】采用中断方式访问ADC0809的部分接口电路如图所示。,实现读取ADC0809数据过程和查询方式区别为:当转换完成后,EOC信号作为中断申请信号,当变成高电平送给CPU后,CPU响应中断后,在中断服务程序中,读取0809转换好的数据。,第六章:基本输入输出接口,Company Logo,42,6.2.4 DMA传送方式,不通过CPU,存储器和I/O接口之间直接进行数据传送的数据传送方式。是一种不需要CPU干预也不需要软件介入的高速数据传送方式。,整个传送过程由称为DMA控制器(DMAC)的硬件完成而不需软件介入。,第六章:基本输入输出接口,Company Logo,43,DMA 传送方式过程:当外部设备需要进行数据传送时,它发出DMA请求信号,该信号首先传给DMA控制器,再由DMA控制器转发给CPU。如果条件允许,CPU会响应,发出 DMA响应信号,同时 CPU将让出总线控制权,由DMA控制器接管,DMA控制器发出存储器地址信号、存储器读/写控制信号、I/O接口读/写控制信号,完成一次数据传送。然后,DMA控制器再把总线控制权交还给CPU。,第六章:基本输入输出接口,Thank You!,