您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第六章微型计算机的输入与输出
第1页共9页第6章微型计算机的输入/输出CPU与外设通讯的特点输入/输出方式CPU与外设通信的接口8086CPU的输入/输出一、CPU与外设通信特点1、通信特点需要有接口作为CPU与外设通讯的桥梁;需要有数据信息传送之前的“联络”;要传递的信息有三方面内容:状态、数据及控制信息。CPUI\O接口外设接口电路通常包含一组能够与处理器交换信息的、并编过地址的寄存器或缓冲器,称为I/O端口数据端口——存放数据信息状态端口——存放状态信息,即反映外设当前工作状态的信息控制端口——存放控制信息2、接口的用途进行地址译码或设备选择,以便使CPU能与某一指定的外部设备通讯;状态信息的应答,以协调数据传送之前的准备工作;进行中断管理,提供中断信号;进行数据格式转换,如正负逻辑的转换,串行与并行数据转换等;进行电平转换,如TTL电平与RS232电平间的转换;协调速度,如采用锁存、缓冲、驱动等;时序控制,提供实时时钟信号。简而言之:4大功能:速度协调、输入三态缓冲、输出数据锁存、数据转换缓冲器与锁存器区别:可编程接口芯片的缓冲器是由多个三态门构成的部件,当控制端有效时,输入端的信号直接送到输出端,只起到缓冲功能;当控制端无效时,输出端处于高阻浮空状态。第2页共9页锁存器是由多个D触发器构成的部件,当时钟控制端有效时,输出端Q等于输入端D,直到下一时钟触发为止,有锁存功能。I/O寻址方式有两种:2)I/O口映像的I/O口寻址(独立编址)特点:I/O口编址与内存完全独立。优点:直接用IN、OUT指令,不占用内存空间。缺点:增加硬件开支。硬件连接方法:可用A7~A0(8位)或A15~A0(16位)编址。如图6.2所示。用8位地址:1#I/O口地址为80H~87H(A2~A0可假设均为0或1)。2#I/O口地址为88H~8FH(A2~A0可假设均为0或1)。当CP=0时,触发器不工作,处于维持状态。当CP=1时,它的功能特征方程:Qn+1=D由此可见,当触发器工作时它的次态由输入控制函数D来确定。(CP为时钟脉冲,它使触发器有节奏的工作)第3页共9页接口中硬件和软件分别称为接口硬件和接口软件。1).接口硬件接口电路通常做在一块大规模或超大规模集成电路芯片上,因而常被称为接口芯片。当然,有时也有根据需要而用中、小规模集成电路。不同功能的接口电路,其结构虽各有不同,但都是由寄存器和控制逻辑两大部分组成,每部分又都包含几个基本组成部分,如图5-2所示。内存空间FFFFFH供I/O接口使用00000HI/O端口NI/O端口2I/O端口0I/O端口1系统各I/O端口配置地址64KBI/O端口NI/O端口2I/O端口0I/O端口1系统各I/O端口配置地址64KB内存空间FFFFFH00000HI/O空间(a)统一编址1MBFFFFHI/O空间……第4页共9页(1)数据缓冲寄存器。数据缓冲寄存器有时也简称缓存器,它分为输入缓存器和输出缓存器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。(2)控制寄存器。控制寄存器用于存放处理器发来的控制命令和其他信息,以确定接口电路的工作方式和功能。控制寄存器是写寄存器,其内容只能由处理器写入,而不能读出。(3)状态寄存器。状态寄存器用于保存外设现行各种状态信息。它的内容可以被处理器读出,从而使处理器了解外设状况及数据传送过程中正在发生或最近已经发生的事情,供处理器做出正确的判断,使它能安全可靠地与接口完成交换数据的各种操作。以上3种寄存器是接口电路中的核心部分。为了保证在处理器和外设之间通过接口正确地传送数据,接口电路还必须包括下面几种控制逻辑电路:(1)数据总线和地址总线缓冲器。(2)端口地址译码器。(3)内部控制逻辑。(4)对外联络控制逻辑。2).接口软件接口软件又称为设备驱动程序。从实现接口的功能来看,一个完整的设备驱动程序大约包括如下一些程序段。(1)初始化程序段。(2)传送方式处理程序段。(3)主控程序段。(4)程序终止与退出程序段。(5)辅助程序段。该程序段主要解决人—机对话等内容。二、输入/输出方式控制寄存器输出缓冲寄存器状态寄存器输入缓冲寄存器联络控制逻辑端口地址译码地址总线缓冲数据总线地址总线数据总线缓冲内部控制逻辑控制总线CPU外设第5页共9页1、程序控制传送方式(1)同步传送方式:外设与CPU速度匹配时用。如:慢速的开关和快速的D/A转换器及多种常用的数据缓冲器等。(2)异步查询方式:慢速的外设和快速的CPU之间的速度协调,CPU需等待。(3)中断方式:异步查询方式占用CPU时间较多,可用硬件中断方式。2、DMA传送方式:借用CPU总线直接实现内存与I/O口之间信息传送,不需要通过CPU。程序控制传送方式同步传送方式CPU直接与外设传送数据并不需要了解外设状态,认为外设已经准备就绪,直接与外设传送数据由于不查询外设状态,接口电路不需要状态寄存器异步查询方式1.在执行输入输出前,要先查询接口中状态寄存器的状态。2.输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;3.输出时,状态寄存器的状态指示输出设备是否空闲。中断方式4.当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。5.在中断未发生时,CPU可以执行其他程序,这样可以提高CPU的利用率。(1)提高了CPU的工作效率;(2)CPU具有控制外围设备服务的主动权;(3)CPU可以和外设并行工作;(4)可适合实时系统对I/O处理的要求。直接存储器存取方式(DMA)(DirectMemoryAccess)。在高速的外设或成块交换数据的情况,采用程序控制方式进行数据的传输,是无法满足要求的。在这种情况下,采用DMA方式。DMA方式是在外设与内存间建立起直接的通道,CPU不再直接参加外设和内存间的数据传输。但系统需要进行DMA传输时,将CPU对地址和数据及控制线的管理权交由DMA控制器进行控制,当完成了一次DMA数据传输后,再将这个控制权还给CPU,这些工作都是由硬件自动实现的,并不需要程序进行控制。三、CPU与外设通信的接口1、同步传送方式与接口不查询外设状态,认为外设已经准备就绪,直接与外设传送数据。输入:缓冲器(如:74LS244/245)输出:锁存器(如:74LS273/373)第6页共9页NEXT:MOVDX,8000H;DX指向接口地址INAL,DX;从输入口读开关状态进入CPUNOTAL;反相OUTDX,AL;CPU输出送输出口显示CALLDELAY;调子程序延时10MSJMPNEXT;重复74LS244G8000H-5V+5V300×8LED0三态缓冲器74LS2738D锁存器CLKD7~D074LS06反相驱动器K0K1K7LED1LED7……10K×8A15IORIOW第7页共9页2、异步传送方式与接口必须查询外设状态,然后再决定是否与外设传送数据。查询方式的输入接口电路:输入时,状态寄存器的状态指示要输入的数据是否已经准备就绪;1、STB有效,(1)、输入设备数据进入锁存器;(2)、IBF有效2、CPU读状态端口3、CPU读数据端口,同时清IBF准备好?读取状态信息输入数据是否第8页共9页查询方式的输出接口电路举例忙?读取状态信息输出数据否是第9页共9页四、8086CPU的输入/输出1、8086CPU的I/O指令(1)直接寻址输入/输出指令(八位端口地址)INAL,n(字节输入)INAX,n(字输入)OUTn,AL(字节输出)OUTn,AX(字输出)(2)DX寄存器间接寻址输入(十六位端口地址)INAL,DX(字节输入)INAX,DX(字输入)OUTDX,AL(字节输出)OUTDX,AX(字输出)2、有关端口地址问题8086CPU与外设交换数据可以字或字节进行,当以字节进行时,偶地址端口的字节数据由低8位数据线D7~D0位传送,奇地址端口的字节数据由高8位数据线D15~D8传送。当用户在安排外设的端口地址时,如果外设是以8位地址的方式与CPU连接,就只能将其数据线或者与CPU的低八位或者与高八位连接。因此同一台外设的所有寄存器端口地址都只能是偶地址或是奇地址,这时设备的端口地址就会是不连续的。读入设备状态读入设备状态准备好?NY配合前面打印机示意图工作的相应程序段为:MOVDX,8000H;DX指向状态口ST:INAL,DX;读状态口TESTAL,40H;测试标志位D6JNZST;D6=1,继续查询INCDX;D6=0,就绪,DX指向数据口INAL,DX;数据输入程序中假设:8000H为程序状态口8001H为数据输入口D6为查询状态位
本文标题:第六章微型计算机的输入与输出
链接地址:https://www.777doc.com/doc-2159020 .html