《微机原理与接口技术(80386-Pentium)》-第7章 IO控制

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第7章输入/输出控制•在微处理机系统中,外围设备越来越多,其功能也越来越强,控制起来也就更加复杂,输入/输出控制技术通常也就采用硬件技术与软件相结合的方法来实现,所以,输入/输出控制技术是硬件和软件结合在一起的一项综合技术。•输入/输出设备种类众多,其工作原理和结构构成也各不相同,它们的操作速度与CPU相比相对较低,且在进行数据处理时,不论是在数据格式上、在处理数据速度上、还是在逻辑时序上与CPU均不能直接进行操作。所以,微处理机与输入/输出设备之间即不能直接相连也不能直接进行信息交换,而必须是通过接口设备来实现。•常见的输入设备有:键盘、鼠标、扫描仪、软/硬盘存储器驱动器、光盘驱动器。而打印机、显示器、绘图仪、光盘刻录机、音频输出等设备则是常见的输出设备。•1.接口的主要功能•(1)信号转换:由于微处理机的总线信号与输入/输出设备的控制信号之间存在着差异,无法进行相匹配的操作,需要在两种信号之间进行转换。像CPU的信号与输入/输出设备信号之间的逻辑关系、时序关系以及电平之间的关系均需转换。否则高速的CPU系统与低速的输入/输出设备之间是无法沟通的。•(2)数据缓冲:由于微处理机与输入/输出设备处理数据的速度不同,定时的标准也不同,二者又需进行信息交换,所以在接口上尚需设置对所传送的数据提供缓冲、隔离以及寄存的功能。具体说来,就是在输出接口中设置寄存器或锁存器,用以暂时存放CPU欲输出的数据,然后再由输出设备根据自身的情况,将暂时存放的欲输出的数据进行适时输出处理。•(3)地址译码:在微处理机系统通常都配备有多个或多种外围设备,这样就会有多个输入/输出接口,像为键盘、鼠标、打印机、显示器、磁盘等诸输入/输出设备均配备有各自接口,且为它们分配了各自的地址码。通过接口中的地址译码电路对外围设备输入/输出地址寻址。•(4)控制和状态:由于微处理机的操作速度与输入/输出设备的运行速度不在一个数量级上,所以随时需要知道输入/输出设备的状态。常用的状态信号有正忙和准备就绪。•(5)校验和检查:在微处理机系统中,通常为输入/输出接口配备有校验功能,并且可以将出错信息报告给微处理机。像外围设备机构中的机械和电路故障,就要向微处理机报告故障的类型和位置。若数据在传送中的错误就用奇偶校验码进行校验。如若USB在传送过程中出现错误则要用到容错功能,发送设备会重复发送数据直至正确为止。•2.接口上的信息交换•通常,输入/输出设备接收或发送信息的速度与CPU的操作速度相比相差甚远。所以对输入/输出设备的控制可以采用信号交换(或查询)的方法。下图示出输入/输出接口的逻辑原理框图。CPU外围设备数据端口状态端口控制端口数据总线地址总线控制总线数据状态控制输入/输出接口电路•由图可以看出,输入/输出接口好像是CPU与外围设备之间进行信息传送的一个“连接部件”。输入/输出接口通过CPU的数据总线、地址总线和控制总线与CPU相连接,数据信息通过数据端口、控制信息通过控制端口和状态端口与外围设备连接,外围设备与CPU交换的信息就是数据信息、状态信息和控制信息。•数据端口的作用是,在外围设备与CPU之间进行信息交换时,用来存放欲交换数据的一种缓冲寄存器,当程序执行到需要CPU加工处理来自外围设备的数据时,数据端口中存放的就是外围设备发给CPU的数据。而当程序执行到需要CPU将加工处理后的数据发送给外围设备时,数据端口中存放的就是欲通过外围设备输出的数据。•状态信息指的是外围设备当前的工作状态,像正忙(BUSY)信号,准备就绪(READY)信号等。•控制信息是指用于控制外围设备接口工作方式和外围设备启动或停止信息,通常是由CPU发出各种控制信息。•在输入/输出接口中,可以通过CPU进行读/写的寄存器又叫端口(Port)。存放数据的叫数据端口,存放状态信息的叫状态端口,而把存放控制信息的叫控制端口。CPU就是通过访问这些端口以确认外围设备的目前状态,去控制外围设备的运行,和外围设备进行数据交换操作。•基本的I/O操作技术有三种,它们分别是:•(1)利用程序设计技术进行I/O操作:它是在程序的直接、连续地控制之下所进行的I/O操作。•(2)利用中断驱动实施I/O操作:在程序发出了I/O命令之后,继续进行I/O操作,只有当遇到I/O硬件中断,才被告之I/O操作已经结束。•(3)直接存储器存取DMA技术:这一技术是用一个指定的I/O处理器来替代I/O操作控制,在I/O设备和存储器之间可以进行直接的大批量的数据传送操作。7.1I/O编址方式及I/O端口地址•7.1.1PC机I/O编址方式•微处理机的I/O端口编址方式有两种,即统一编址和独立编址。•1.统一编址•统一编址方式是把每一个I/O端口地址看成是一个存储器单元地址,CPU可以像访问存储器那样,使用访问存储器的指令去访问I/O端口。•统一编址的优点是不需要专门的I/O指令,简化了指令系统,用存储器指令就可以直接对各种I/O端口数据传送。其不足之处是占用主存储器地址,而且程序中的I/O操作不够清晰,程序中难以区分哪一个是I/O操作,哪一个是存储器操作。早期微机常采用这种方式。•2.独立编址•独立编址方式是微机系统中的所有I/O端口与存储器空间一种,都有各自独立的I/O空间,每个I/O端口都配备有一个地址,CPU需用专门的I/O指令对其进行访问操作。这类指令就是I/O指令。用来对存储器进行访问的指令与对I/O端口进行读取操作的指令也易于辨认。Intel系列32位微处理机就采用了这种方式。•使用专门的I/O指令,按独立的I/O端口寻址方式进行I/O操作。用INS和OUTS指令在存储器和I/O外围设备之间进行数据串的传送操作,用IN和OUT指令在微处理机的累加寄存器(AL、AX或EAX)和I/O设备之间进行数据的传送操作。参阅表7.1中列出了各种I/O指令形式。•7.1.2I/O端口地址•计算机的I/O操作是通过各种外围设备来完成的,外围设备提供了外部环境与计算机之间交换信息的一种手段。外围设备通过连接到I/O接口部件的连线与计算机系统进行了连接,这些连线在I/O接口部件和外围设备之间进行控制、状态和数据信息的传送操作。与I/O接口部件相连的外围设备也称外部设备。•实际上,I/O接口部件在复杂程度以及所控制的外围设备的数目上差别很大。下图中所示的是常用的I/O接口部件的框图。•常用的I/O接口部件的框图数据寄存器状态/控制寄存器I/O逻辑外围设备接口逻辑外围设备接口逻辑数据状态控制数据状态控制控制线地址线数据线系统总线接口外围设备接口┇•从图可以看出,I/O接口部件是通过一组信号线与计算机相连。传送进I/O接口部件的数据和传送出I/O接口部件的数据,都被暂时存放在数据寄存器中。状态寄存器不仅能提供当前的状态信息,而且也能当成控制寄存器接收来自CPU的控制信息。I/O接口部件通过一组控制线与CPU相连,CPU就是通过这些控制线给I/O接口部件发送操作命令。•PC机主板和多功能高集成的芯片组使用I/O端口地址对外围设备实施访问操作,使用IN、OUT指令进行传送,而在进行I/O操作时所使用的状态信息、控制信息和数据信息是属于不同性质的信息,必须采用分别传送方式。•必须为它们设置不同的端口地址,用数据寄存器来存放数据、用状态寄存器存放状态信息、而用控制命令寄存器存放控制信息。所用的这些寄存器就被称之为I/O端口。且为每个端口都配备有一个端口地址。这样,一个外围设备往往会有几个端口地址,所以CPU的寻址操作是对某一端口进行的,而不是笼统地对某一外围设备。7.2程序控制I/O方式•在基本的I/O操作技术中,利用程序设计技术进行I/O操作,是在程序的直接地连续地控制之下所进行的I/O操作,是微处理机CPU与外围设备之间交换信息最简单的一种方式。CPU执行的是一段它直接实施控制而进行I/O操作的程序。程序段的功能包括有:检测外围设备的状态、发送读/写命令以及对数据的传送操作等。•当微处理机在执行程序的过程中,遇到一条I/O指令时,CPU就会发出一条指定某个I/O端口和外围设备的地址,并发出一条I/O命令。I/O命令有4类:它们分别是控制、测试、读和写。•控制命令用于激活某个外围设备,并告之它进行什么操作。•测试命令用来测试与I/O端口以及与外围设备有关的各种状态。•读命令是使I/O端口从外围设备那里得到一个数据,并把这个数据存放在自己的缓冲器内。•而写命令是I/O端口从数据总线上得到一个数据,并把得到的这个数据传送给外围设备。•图7.3展示出了用•程序设计技术,•从外围设备读取•一块数据,并将•其存放到主存储•器的程序流程。未就绪就绪向I/O端口发出读命令读I/O端口状态检查状态由I/O端口读取字向存储器写入字结束?出错I/O→CPUCPU→存储器I/O→CPUCPU→I/OYN•7.2.1可编程外围设备接口82C55A•作为可编程控制的I/O外围设备接口,Intel82C55A芯片是一个流行的、成本低且与Intel系列32位微处理机一起使用的通用I/O接口。•1.82C55A体系结构•图7.4中示出82C55A的逻辑框图。•82C55A的逻辑框图A组控制寄存器B组控制寄存器A组端口A[8]位A组端口C[高4位]B组端口C[低4位]B组端口B[8]位数据总线缓冲器读/写控制逻辑I/OPA7~PA0I/OPC7~PC4I/OPC3~PC0I/OPB7~PB0D0-D7双向数据总线8位内部数据总线RD#WR#A1A0RESETCS#•对82C55A内部的源寄存器或目标寄存器的访问,是通过大小为2位的寄存器选择码进行选择。•微处理机必须向82C55A的寄存器选择输入端A0和A1提供这样的选择码。•端口A(portA)、端口B(portB)及•端口C(portC)中的寄存器分别与选择码A1A0=00、A1A0=01和A1A0=10相对应。也就是说,要用A1和A0来选择其中的一个内部寄存器进行读/写操作或编写程序。•图7.5中示出82C55A的各管脚上信号。此逻辑图的左边表示与微处理机的接口。它包括一个8位双向数据总线D0~D7。通过这些数据信号线,可使命令、状态信息及数据,在微处理机和82C55A之间进行传送。一旦形成了对于该接口电路内部寄存器地址的输入/输出总线周期,将传送这些数据信息。对82C55A数据传送的定时是由读/写控制信号(RD#和WR#)来控制的。PA3PA2PA1PA0RD#CS#GNDA1A0PC7PC6PC5PC4PC0PC1PC2PC3PB0PB1PB2PA4PA5PA6PA7WR#RESETD0D1D2D3D4D5D6D7VccPB7PB6PB5PB4PB314023933843753663573483393210311182C55A30122913281427152616251724182319222021•在82C55A逻辑框图的微处理器接口一边还有另外两个信号。它们是复位信号(RESET)和片选(CS#)输入信号。82C55A由片选(CS#)信号选择,然后对端口进行程序设计以及读/写操作。•在所有对82C55A的读或写操作期间CS#必须为0。它允许82C55A的微处理机接口电路进行输入或输出操作。•信号RESET的作用是对该电路进行初始化处理。在加电时信号RESET输入变为0,从而导致对82C55A内部寄存器的清除。经初始化处理后将使全部I/O端口配置成为输入操作方式。•逻辑框图的右边对应于3个字节宽度的I/O端口。•它们分别是端口A,端口B和端口C,以及相关的I/O信号线PA0~PA7,PB0~PB7和PC0~PC7。这些端口可以配置成输入或输出操作。因此总共可提供24位的I/O信号线。•82C55A的操作需在软件的控制下进行。为此,它配备有一个8位的内部控制寄存器。通过将0或1写入该寄存器的每一位,从而将各个端口配置成输入或输出操作,并从它们的三种操作方式中选择出其中的一种。该控制寄存器只能被写入,并且其内容可用指令进行修改。若82C55A拥有寄存器选择码A1A0=11及控制字的一个适当的写总线周期,即

1 / 85
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功