微型计算机原理:第7章 微机原理接口_第1页
微型计算机原理:第7章 微机原理接口_第2页
微型计算机原理:第7章 微机原理接口_第3页
微型计算机原理:第7章 微机原理接口_第4页
微型计算机原理:第7章 微机原理接口_第5页
已阅读5页,还剩252页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章输入输出接口内容提要 输入输出接口基础 并行接口和并行接口芯片8255A 中断系统和中断控制芯片8259A DMA和DMA控制器8237 定时/计数器8254/8253的功能和编程微型计算机系统硬件组成7.1 输入输出接口基础接口指CPU和外设之间通过系统总线进行连接的电路部分,是CPU与外界进行信息交换的中转站。原始数据通过接口由输入设备送进去运算结果通过接口由输出设备送出来控制命令通过接口发出去现场数据通过接口从输入设备送进去接口和接口技术接口技术是研究CPU如何与外部世界进行最佳耦合与匹配,实现双方高效、可靠地交换信息的一门技术,是软件、硬件结合的体现,是微机应用的关键。为什么要用

2、接口电路?外设是用来实现人机交互的一些机电设备。外设处理信息的类型、速度、通信方式与CPU不匹配, 不能直接挂在总线上,必须通过接口和系统相连。接口和接口技术接口电路的作用数据总线控制总线地址总线接口电路外部设备数据线控制线状态线外设必须通过接口电路与CPU相连接,输入输出操作是由复杂的I/O接口控制实现的。接口电路的作用是把计算机输出的信息变成外设能够识别的信息,把外设输入的信息转化成计算机所能接受的信息。接口电路的典型结构数据缓冲器状态寄存器控制寄存器接外设一侧 主机外设 总线驱动地址译码控制逻辑接CPU一侧DBABCB数据信息控制信息状态信息端口接口实现对CPU数据总线速度和驱动能力的匹

3、配实现各寄存器端口寻址操作 实现接口电路中的各寄存器端口的读/写操作和时序控制接口电路的典型结构从编程角度看,接口内部主要包括一个或多个CPU可以进行读/写操作的寄存器,又称为I/O端口。各I/O端口由端口地址区分。接口电路的典型结构按存放信息的不同,I/O端口可分为三种类型数据端口:用于存放CPU与外设间传送的数据信息状态端口:用于暂存外设的状态信息控制端口:用于存放CPU对外设或接口的控制信息,控制外设或接口的工作方式。CPU对外设输入/输出的控制,是通过对接口电路中各I/O端口的读/写操作完成。 (读操作用IN指令,写操作用OUT指令)接口电路的典型结构数据传送方式:并行接口串行接口功能

4、选择的灵活性:可编程接口,其芯片功能可以由指令来控制不可编程接口,即硬步线逻辑接口芯片通用性:通用接口(8253 定时/计数器、8259 中断控制器、8237 DMA、8250 8251 串行接口、 8255 并行接口)专用接口(软盘控制器 8271 8272、CRT 8275、键盘显示 8279)I/O接口电路分类接口电路按通用性分为两类:通用接口和专用接口通用接口:可供多种外部设备使用的标准接口,目的是使微机正常工作通用接口通常制造成集成电路芯片,称为接口芯片。最初的IBM-PC使用了6块接口芯片:8284、8288、8255、8259、8237、8253后来的微机将这些芯片集成为大规模集

5、成电路芯片,称为芯片组。如82430TX芯片组,由两片芯片组成:北桥:82439TX南桥:82371AB专用接口:为某种用途或某类外设而专门设计的接口电路,目的在于扩充微机系统的功能。专用接口通常制造成专用接口卡,插在主板总线插槽上使用。通用接口和专用接口的界限并不严格。I/O接口电路分类输入输出的基本方式输入输出指令微机系统中存在着存储器地址空间和输入输出空间。存储器的每个字节单元都占存储器地址空间的一个地址。与此相类似,在输入输出地址空间中,占据一个输入输出地址的称为一个输入输出端口或简称端口(PORT)。CPU可以从端口读入数据,也可以向端口输出数据。对8086微处理器,CPU从端口读入

6、数据的指令称为输入指令,助记符为IN;CPU向端口输出数据的指令称为输出指令,助记符为OUT。接口(interface)与端口(port)传送这三种信息(数据、状态、控制)的接口电路中的寄存器称为数据、状态和控制端口。不同的寄存器有不同的端口地址,即用地址来访问。端口由一个或多个寄存器组成。接口由若干个端口加上相应的控制逻辑组成,地址不是对接口而言。I/O端口的编址方式端口与存储器分别独立编址端口与存储器统一编址端口与存储器分别独立编址例Intel的80X86系列、Z80系列特点:不占用内存空间设有专门的I/O指令对端口进行读写, 对内存操作的指令不能用于I/O端口操作I/O端口的编址方式例:

7、 对内存操作 MOV 00000H , AL MOV DL , BX对端口操作 OUT 0000H, AL IN AL,0010HI/O端口的编址方式端口与存储器统一编址例Motorola的M6800系列、Intel 51单片机系列特点:I/O端口相当于内存的一部分,使内存容量减小;对I/O端口的读/写与对存储器的读/写相同,所有可对内存操作的指令对I/O端口均可使用;指令系统中不专设I/O指令。I/O端口的编址方式端口与存储器统一编址I/O端口的编址方式8088/8086输入/输出指令8088/8086CPU采用I/O端口与存储器分别独立编址。可寻址220= 1M个内存单元内存范围00000

8、 FFFFFH内存单元的地址有5种寻址可寻址216= 64 K个I/O端口I/O端口范围0000 FFFFHI/O端口的地址由一8位二进制数 直接寻址或DX寄存器间接寻址存储器I/O端口指令的一般格式:名称助记符和格式操作功能输入IN AL, PORTIN AX, PORTIN AL, DXIN AX, DX(AL)(PORT)(AX)(PORT+1:PORT)(AL)(DX)(AX)(DX)+1:(DX)输出OUT PORT, ALOUT PORT, AXOUT DX, ALOUT DX, AX(PORT)(AL) (PORT+1:PORT)(AX) (DX)(AL) (DX)+1:(DX)

9、(AX) port 为端口地址(直接寻址), 大小为0255 或0FFH对于IN指令,目的地址DST的寻址方式为寄存器方式,字节输入时为AL,字输入时为AX。源操作数的寻址方式有两种: 直接寻址方式,即在SRC的位置上直接写上代表端口地址的数或能求出值的表达式。其端口地址不能大于255。 寄存器间接寻址方式。间址寄存器为DX。这种方式需要在IN指令之前,把输入端口地址传送至DX寄存器,端口地址的大小没有限制。对于OUT指令,源操作数的寻址方式和IN指令的目的操作数的寻址方式相同。输入输出指令的执行不影响任何标志位的状态。8088/8086输入/输出指令输入/输出指令举例(1)IN AL,28H

10、 若(28H端口) = 1010 1111B 执行后(AL) = (28H端口)= 0AFH(2)IN AX,28H若(28H端口)= 1010 1111B (29H端口)= 0101 0000B执行后(AL) = (28H端口)= 0AFH (AH) = (29H端口)= 50H(3)MOV DX,300H IN AL,DX 若(300H端口)= 69H执行后(AL) = (300H端口)= 69H(1)OUT 21H, AL若(AL)= 1100 1100B执行后(21H端口)= 0CCH(2)MOV DX ,21BH OUT DX,AL若(AL)= 1010 0110B执行后(21BH端

11、口)= (AL) = 0A6H输入/输出指令举例输入/输出指令(IN、OUT)特点(1) 累加器AL、AX的专用指令对输入指令IN ,目的操作数只能为AL, 或AXIN AL, 21H IN AX, DX IN BX, 21H 对输出指令OUT ,源操作数只能为AL, 或AXOUT 20H, ALOUT DX, AXOUT DX, CX 输入/输出指令(IN、OUT)特点(2)端口地址可为直接寻址方式或间接间接方式当端口号在0FFH,即0255时,可在指令中直接指定端口号例IN AL, 21HOUT 20H, AL当端口号FFH,即255时,需把端口号放在DX寄存器中,DX是一个16位寄存器,

12、范围在0FFFFH之间。当端口号在0FFH,即0255时,可在指令中直接指定端口号,称双字节指令。当端口号FFH,即255时, 需把端口号放在DX寄存器中,称单字节指令。例:指令 机器码 IN AL, 21H E421 ;两个字节 OUT 20H, AL E620 IN AL, DX EC ;一个字节 OUT DX, AL EE输入/输出指令(IN、OUT)特点(3)可进行字节或字传送由指令中AL或AX的类型决定 IN AL, 20H ;字节传送 IN AX, 20H ;字传送 IN AL, DX ;字节传送 IN AX, DX ;字传送 OUT 20H, AL;字节传送 OUT 20H, A

13、X;字传送 OUT DX, AL;字节传送 OUT DX, AX;字传送(4)输入输出指令的执行不影响任何状态标志。输入/输出指令(IN、OUT)特点在实际数据传输过程中,有一个突出要解决的问题,就是主机与外部设备之间时间同步的问题,具体表现在:外部设备工作时有自己的定时机构,主机在运行程序、执行指令时也有自己的定时系统,它们在时间上是不同步的。输入数据时,CPU如何确定输入设备已经准备好数据,输出数据时,CPU如何确定输出设备已经准备好接收数据。一个微机系统中,如果有多个外部设备存在,也就存在这种可能性:两个或多个设备同时要求与主机交换信息。出现这种情况,CPU如何确定先响应哪个设备的请求,

14、再响应哪个设备的请求。输入输出同步问题 无条件传送:传送之前不查询外设状态 程序控制方式 查询传送:传送之前查询外设状态 中断方式:外设准备好后向CPU申请中断, CPU响应中断完成数据传送。 DMA(直接存储器存取)方式:由专用硬件“DMA控制器” 控制内存和外设之间直接传送数据。 (不需要CPU干预)数据输入输出的基本方式程序直接控制传送方式 程序直接控制输入输出方式就是完全通过执行程序实现主机与外部设备之间的数据交换。无条件传送方式:又称同步方式,是最简单的一种I/O控制方式外设已准备好,不查询外设的状态输入时,外设的数据已送到三态缓冲器。输出时,CPU的输出信息已送到输出锁存器的输入端

15、多用于CPU与低速口之间的信息交换。如开关,LED显示器,它们总是被认为处于“待命”状态。条件(查询)传送方式程序测试外设的状态,若满足,传送, 不满足,等待。多用于CPU与中速口之间的信息交换。数据传送过程:CPU从接口读取状态字;CPU检测状态字的对应位是否满足“就绪” 条件,如果不满足,回到第一步读取状态字;如状态字表明外设已处于“就绪”状态,则传送数据。程序直接控制I/O的程序结构其他功能其他功能I/O指令传输数据从状态端口读入信息传输准备好?YN 数据的传输靠执行指令来实现。这就是说,程序直接控制输入输出每个数据,必须执行I/O指令,必须经过微处理器中的寄存器AL和AX。 外部设备的

16、状态信息用IN指令输入,然后测试;主机用OUT指令向外设提供状态信息,从而达到连络的目的。这种输入输出方式的优点是简单、实现容易。但存在明显的缺点:第一,为了测试和等待外部设备作好传输数据的准备常常花费大量的时间。在这段时间内,程序不能完成其他任务,所以使系统的时间利用率大大降低。第二,CPU在一段时间里只能和一个外部设备之间传输数据,其它设备只能等待。第三,不能发现和处理预先无法估计的错误和异常现象。所以这种输入输出方式只适用于CPU数据处理任务不烦忙,而且外部设备数较少的情况。程序直接控制传送方式特点使用查询方式,CPU必须检测接口电路的状态寄存器,如果设备未准备好,CPU就要不断地查询,

17、降低了CPU运行效率中断方式:CPU对一个随机的请求进行处理的过程。当外设作好传送准备后,主动向CPU请求中断,CPU响应中断后在中断处理程序中与外设交换数据。若外设未准备好,CPU可以执行其他程序,提高了CPU的利用率每条指令完成后,CPU均可响应中断,因此当设备准备好时,可及时与CPU交换数据,实现了对信息的实时处理,提高了计算机的使用效率。程序中断控制方式程序中断控制方式硬件实现框图程序中断控制方式特点 虽然程序中断功能参与了控制,但数据的传输仍然要靠在程序中排入I/O指令完成。外部设备要求与CPU传输数据的状态信息,不是用指令输入和测试的,而是从CPU的中断请求输入端直接加入的。中断控

18、制输入输出是靠硬件和软件相配合实现的。 DMA (Direct Memory Access)方式,即直接存储器存取方式,是一种不需要CPU干预也不需要软件介入的高速数据传送方式。 这种传送方式中,CPU只是启动DMA过程,但是不干预这一过程,这个DMA过程是由硬件自动完成的,也不需要软件的介入。 在DMA控制器(DMAC)的控制下,外设和存储器利用数据总线直接进行数据交换。存储器直接存取方式首先,微处理器本身在设计时就能实现这种功能。8086的HOLD和HLDA这两个引脚就是为这种I/O方式服务的。CPU将总线的控制权交给DMA控制器,使外部设备与存储器之间有直接通路连通,并控制传输一个或多个

19、字节。其次,组成微机系统时,还必须配有DMA控制器,共同组成DMA控制机构,实现DMA传输所需要的全部功能。优点:由于在数据传输时没有程序和指令介入,CPU只是暂停一个或几个总线周期的时间,CPU内各寄存器的内容没有任何改变,所以CPU的时间利用率比前两种I/O方式大大提高。这种I/O方式最适用于高速外部设备与存储器之间交换成批数据的情况。缺点:说没有程序和指令介入仅仅是指数据传输期间,并不意味着DMA输入输出的全过程都没有程序介入。恰恰相反,数据传输前的准备工作,都是用程序预置于DMA控制器中的。存储器直接存取方式接口和接口技术接口(Interface)的基本意思是交接界面,所以任何相关的异

20、体之间总存在着接口。两个微机系统,如果它们之间有数据往来,它们之间就存在接口;在一个微机系统内,由于各部分之间要交换信息,各部分之间也存在接口;就是微处理器内部,各部分之间也存在接口。输入输出接口即输入输出界面,狭义地说,在IBM PC系列微机中,就是在主机的扩充插槽上的系统级总线。因为任何设备,无论要增加什么辅助逻辑,最终都要通过系统总线与主板相连。I/O接口的组成框图部分存储器和控制逻辑并行打印机接口CRT显示器接口RS232C串行接口磁盘机接口其他设备接口系统总线部分存储器和控制逻辑I/O指令控制逻辑中断控制机构DMA控制机构其 它I/O逻辑微处理器主板其他设备磁盘机显示器打印机外设接口

21、在主机板与输入输出有关的逻辑包括微处理器支持访问扩充板上存储器操作的逻辑,支持执行输入输出指令的逻辑,支持外部中断方式的以8259芯片为核心组成的中断控制逻辑和支持存储器直接读写(DMA)操作的以8237为核心组成的DMA控制逻辑。这些逻辑,一侧与微处理器相连,受微处理器控制和管理,另一侧则形成系统总线接到扩充插槽的接点上,成为与输入输出接口板的物理连接点。此外主板上还有CMOS和8254组成的系统计时系统和键盘接口逻辑,它们不接入系统总线。I/O接口I/O控制逻辑从功能上总结如下:为执行I/O指令服务的逻辑;实现中断控制功能的逻辑;实现DMA控制的逻辑;某些外设的接口逻辑。接口一词也与软件有

22、关。接口与软件的关系有两方面的含义。一方面的含义是接口的软件。接口的功能的实现常常包括软件,输入输出接口一般都是由硬件和软件共同支持完成的,接口的开发自然包括必要的软件开发。另一方面含义是软件的接口。许多系统软件包含许多子程序。为减轻应用软件开发的负担,允许应用软件调用系统软件中的子程序完成应用软件中某些要求的功能。接口与软件IBM PC系统提供的接口资源基本配置的系统为I/O接口既提供了硬件资源又提供了软件资源。 提供硬件资源包括:在扩充插槽上提供了系统级总线;主板上有键盘接口逻辑和扬声器接口逻辑;主板上有以两片8259中断控制器为核心组成的中断控制逻辑;主板上有以两片8237DMA控制器为

23、核心组成的DMA传送控制逻辑,共有8个数据通道,用于实现内存与外设之间和内存存储区之间直接、快速、成批数据的传送。主板上有一片8254定时计数器,有3个功能:第1个功能是用于当日计时,和CMOS共同组成定时计时系统;第2个功能是为动态存储器刷新提供定时信号;第3个功能是通过编程向扬声器提供声音信号。基本配置的系统微机包含的I/O接口卡可能有不同的组合,但在功能上和编程上是兼容的。通常包含以下接口逻辑:显示器接口;两个标准(Centronics)的并行打印机接口;两个标准(RS232)串行异步通信接口;磁盘驱动器接口,通常能连接两个软盘驱动器和两个硬盘驱动器。此外,系统总线中还提供了相当容量的5

24、V、5V、12V和12V直流电源。IBM PC系统提供的接口资源主要包括DOS的功能调用和BIOS(Basic Input/Output System)调用。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检、引导装入、主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大的方便。程序员不必了解硬件操作的具体细节,直接使用指令设置参数,并利用INT指令,中断调用BIOS,所以利用BIOS功能编写的程序简洁,可读性好。系统为I/O接口提供的软件资源I/O指令所需的接口逻辑 IBM PC/XT系列微机I/O地址线可有16

25、根,最大可寻址I/O端口地址空间为64 K。由于IBM公司最初设计微机主板及规划接口卡时,采用了非完全译码方式,只将低10位地址线A0A9进行译码,而不考虑高6位地址线A10A15,因此其I/O端口地址范围是0000H03FFH,总共只有1024个端口,并且把前512个端口分配给了主板,后512个端口分配给了扩展槽上的常规外设。后来在PC/AT系统中,又作了一些调整,其中前256个端口(000H0FFH)供系统板上的I/O接口芯片使用,后768个端口(100H3FFH)供扩展槽上的I/O接口控制卡使用。I/O指令所需的接口逻辑无论哪种输入输出方式,I/O指令是实现输入输出控制的基础。在外部设备

26、的接口逻辑中,必须有一部分逻辑能使I/O指令得以执行。I/O指令执行时,都必须有I/O端口地址的选择。端口地址的选择与访问存储器时对存储单元的地址选择很相似,也是用译码器逻辑对系统总线中的地址总线进行译码实现的。对于接口设计者来说,系统I/O端口地址分配十分重要。哪些地址已分配给了别的设备,哪些是计算机制造商为今后开发而保留的,哪些地址是空闲的,了解这些信息是计算机系统接口设计的首要工作。在开发一个I/O端口时,必须先为它指定一个端口地址,并要设计一个地址译码器。在输入端的地址状态与指定的端口地址一致时,译码器恰好输出有效信号,作为端口选择信号。A9A2A1A0AENIORIOW74LS307

27、4LS2074LS3274LS3274LS32读300H写300H000110000000000000单端口地址译码电路应该特别注意的是,系统总线中的AEN信号必须(经过反相)参加译码。这是因为AEN信号在DMA传输时为高电平,此时A9A0地址总线上将有存储器地址选择码,有可能与指定的I/O端口地址相符,就可能发生这样的错误:在其它设备与存储器之间进行DMA传输,或利用DMA机构进行动态存储器刷新时,I/O端口地址译码器的输出端可能输出不应有的有效选择信号。为了避免这种错误发生,将AEN信号反相加入译码器与非门的输入端,在DMA传输时就会封闭译码器的输出。有些外部设备,一个设备就占用多个I/O

28、端口地址。例如一部简单的并行打印机接口就占用3个端口,一个输出打印字符码,一个用于输入打印机状态,一个输出控制信号。这就需要选择合适的端口地址译码电路。单端口地址译码电路多端口地址译码电路IBM PC/AT机的I/O端口地址分配用户可以使用的I/O地址有: 1001EF 22026F 2802AF 30035F并行通信和串行通信通信指计算机与外设,计算机与计算机之间的信息交换。通信的基本方法:串行通信和并行通信并行通信:8位或16位或32位数据同时传输, 速度快,信息率高,成本高串行通信:一位一位数据传送(在一条线上顺序传送),成本低。实现并行通信的接口就是并行接口。一个并行接口可以设计为只用

29、来作为输出接口,也可以只用来作为输入接口,此外,还可以将它设计成既作为输入又作为输出的接口并行通信和串行通信串行通信:数据的各位依次由发送方到达目的地优点:远程,费用低缺点:通信速度慢应用:长距离、中低速通信TDRD发送接收0110 1010并行通信和并行接口并行通信:数据的各位同时由发送方到达接收方优点:通信速度快缺点:距离短,通信费用高应用:短距离、高速通信D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D7发送接收并行通信和并行接口并行接口连接CPU与并行外设,实现两者间的并行通信,在信息传送过程中,起到输出锁存和输入缓冲的作用。并行接口的典型硬件结构包括:一个或一个以上具有

30、锁存或缓冲的数据端口与CPU进行数据交换所必须的控制和状态信号与外设进行数据交换所必须的控制和状态信号端口译码电路控制电路 一个控制寄存器 ,用来接收CPU对它的控制命令 一个状态寄存器,提供各种状态位供CPU查询 输入缓冲寄存器和输出寄存器,实现数据输入和输出并行接口输入设备CPU控制寄存器输入缓冲寄存器输出锁存器状态寄存器片选A0A1地址译码数据总线数据输入数据输入准备好数据输入响应读信号写信号复位准备好中断请求并行接口的基本概念并行接口的输出过程并行接口向CPU发出“准备就绪”信号或者发出中断请求信号,表示端口寄存器(输出锁存器)中已经作好接收数据的准备,CPU可以发来数据了。CPU将数

31、据写入输出端口(锁存器),并发送“回执”信号;接口收到“回执”信号后,撤销“准备就绪”信号。并行接口向外设发出“数据准备好”信号。外设取走数据,并向接口发出“数据输入响应”信号,表示外设已取走数据。并行接口撤销“数据输出准备好”信号,同时再次向CPU发出“准备就绪”信号或者发出中断请求信号。8255可编程并行通信接口8255A是Intel系列的8位并行接口芯片,通用性强,使用灵活,可用程序设置改变芯片的工作方式,是一种常用的可编程并行接口芯片。具有两个8位(A口和B口)和两个4位(C口高/低4位)并行I/O端口的接口芯片。能适应CPU与I/O接口之间的多种数据传送方式的要求。可执行功能很强,内

32、容丰富的命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,组成微机应用系统提供了灵活方便的编程环境。8255芯片内部主要由控制寄存器、状态寄存器和数据寄器组成。8255A内部结构框图8255A内部结构由以下四部分组成: 数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。 端口A: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器,可作为数据输入或输出端口, 并工作于三种方式中的任何一种。端口B: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器,可作为数据

33、输入或输出端口, 但不能工作于方式2。 8255A内部结构端口C: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器, 可在方式字控制下分为两个4位的端口(C端口上和下),每个4位端口都有4位的锁存器, 用来配合端口A与端口B锁存输出控制信号和输入状态信号,不能工作于方式1或2。A组和B组控制的作用如下: A组控制逻辑控制端口A及端口C的上半部; B组控制逻辑控制端口B及端口C的下半部。8255A内部结构8255A外部特性8255A芯片引脚信号1234567891011121314151617181920212223242526272829303132333435363738

34、39408255APA3PA2PA1PA0PA4PA5PA6PA7PB7PB6PB5PB4PB3PB2PB1PB0PC7PC6PC5PC4PC0PC1PC2PC3WRRESETD0D1D2D3D4D5D6D7VCCRDCSGNDA0A1 8255A是一个40引脚双列直插的集成芯片其引脚分为五类:1、数据线2、地址线 3、控制线 4、I/O端口线5、电源与地线芯片引脚信号介绍和外设相连PA7PA0:A组数据信号;PB7PB0:B组数据信号;PC7PC0:C组数据信号。和CPU相连RESET:复位信号,高电平有效。当RESET信号来到时,所有内部寄存器都被清除,同时3个数据端口被自动设为输入端口。

35、D7D0:8255A的数据线,与系统总线相连。CS:芯片选择信号,低电平有效。只有CS有效时,8255A被选中。RD:芯片读出信号,低电平有效。当RD有效时,CPU可以从8255A读取输入数据。WR:芯片写入信号,低电平有效。当WR有效时,CPU可以往8255中写入控制字或数据。A1、A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,共4个端口。规定当A1A0的组合为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制端口。芯片引脚信号介绍在8086系统中,采用16位数据总线,在进行数据传输时,CPU总是将低8位数据送往偶地址端口,而将高8位数据送往

36、奇地址端口;反过来,从偶地址端口取得的数据总是通过低8位数据线传送给CPU。 8255A的D7D0接到系统总线的低8位时,从CPU一边看来,要求8255A的4个端口地址必须全为偶地址。为了满足这个要求,在8086系统中,将8255A的A1端和地址总线的A2相连,而将8255A的A0端和地址总线的A1相连,并且CPU在对8255A的端口进行访问时,将地址的A0位总是设置为0。芯片引脚信号介绍8255具有3个独立的8位I/O并行数据端口(PA口、PB口和PC口),PC口也可作为2个独立的4位I/O数据端口(C口上半部和C口下半部)。其中,PA口和PC口上半部为A组,PB口和PC口下半部为B组。作为

37、输入时提供三态缓冲器功能,作为输出时提供数据锁存功能。8255有3种工作方式,方式0、方式1和方式2,能使用多种数据传送方式完成CPU与I/O设备之间的数据交换,如无条件方式、查询方式和中断方式。8255A的基本功能8255A的基本功能方式0为基本的输入输出方式(无条件方式)PA口、PB口和PC口均可以工作在方式0。方式1为有联络信号的输入输出方式(查询方式/中断方式)PA口和PB口均可以工作在方式1。方式2为有联络信号的双向输入输出方式(查询方式/中断方式)只有PA口可以工作在方式2。C口除用作数据端口外,当8255工作在方式1(PA口和PB口)和方式2 (PA口)时,C口的部分引脚作为固定

38、的联络信号线。PA口、PB口和PC口的工作方式是由CPU执行OUT指令向8255A内部的工作方式控制寄存器端口写命令实现的。所以,一片8255A接口芯片内部包含了PA口、PB口、PC口和方式控制寄存器端口四个I/O端口。8255A的基本功能8255A结构与连接resetD7D0A9A2A1A0IORIOW片选译码数据缓冲器读写控制片内译码CSRESETA1A0RDWRPC7PC0PB7PB0PA7PA0控制口D端口A端口C端口B +5VGNDD7D0外设8255A总线8255A端口的识别8255A的控制信号和传输动作的对应关系CSA1A0RDWR传输说明00001数据从端口A送数据总线0010

39、1数据从端口B送数据总线01001数据从端口C送数据总线00010数据从数据总线送端口A00110数据从数据总线送端口B01010数据从数据总线送端口C01110写控制字1D7D0进入高阻态01101非法的信号组合011D7D0进入高阻态输入输出断开3. 8255A的编程 在使用Intel 8255A时,首先应根据需要对它进行初始化编程,在工作过程中若需改变工作方式或数据传送方向等,也必须对其编程。实际上对8255A的编程十分简单,就是通过CPU向其控制端口写入相应控制字实现。 工作方式选择控制字 端口C置位/复位控制字 8255A的控制字 :8255A的编程8255A的控制字工作方式选择控制

40、字 是芯片各端口的方式选择控制字,它可以使8255A的3个数据端口工作在不同的工作方式。方式选择控制字总是将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低4位作为一组。端口C置位/复位控制字 是C端口按位置1置0控制字,它可以使C端口中的任何一位进行置位和复位。方式选择控制字 若要求使用8255的A口工作于方式1作为输入,B口工作于方式0作为输出,C口上半部输入、下半部输出。8255的端口地址为60H63H.控制字为 10111000B=0B8H初始化程序为 MOV AL,0B8HOUT 63H,ALC端口置1/置0控制字 需要特别指出的是,C端口置1

41、/置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。接上例,若A口工作于方式1作为输入,要使用中断传送方式,则应当写PC4的按位置位字: MOV AL,00001001B OUT 63H,AL0 D7 D6 D5 D4 D3 D2 D1 D01=置10=置0端口C置1/0控制字0 0 0 PC00 0 1 PC10 1 0 PC20 1 1 PC31 0 0 PC41 0 1 PC51 1 0 PC61 1 1 PC7两个控制字的差别:工作方式控制字放在程序的开始部分;按位置位/复位控制字可放在初始化程序以后的任何地方。C端口置1/置0控制字 8255A的工作方式方

42、式0是一种基本输入或输出方式,它适用于无需握手信号的简单输入输出应用场合, 端口A、B、C都可作为输入或输出数据使用,输出有锁存而输入无锁存。 方式0的基本特点如下:任何一个端口可作为输入口,也可作为输出口,各端口之间没有规定必然的关系。各个端口的输入或输出,可以有16种不同的组合,所以可以适用于多种场合。简单的输入/输出方式,提供两个八位口(A和B)和两个四位口(PC7PC4,PC3PC0)。单向传送,即一次初始化只能设置在一个方向上传送数据。可用于无条件传送,也可用于查询式传送。在查询方式时,通常A口和B口作为数据口,C口的四位(高四位或低四位)做输出口,输出一些控制信号,另四位规定为输入

43、口,用来读入外设的状态。方式0也称选通的输入/输出方式。在这种方式下,无论是输入还是输出都通过应答关系实现, 这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。 方式1的基本特点如下:端口A和端口B可分别作为两个数据口工作在方式1,并且任何一个端口可作为输入口或输出口。如果端口A和端口B只有一个端口工作于方式1,那么端口中就有3位被规定为配合方式1工作的信号,此时另一个端口可以工作在方式0,端口C中的其他数据位也可以工作在方式0。方式1方式1当端口A工作在方式1并作为输入端口时: PC4-选通信号 输入端 PC5-输入缓冲区满信号输出端IBFA PC3 -中断请求信号输出

44、端INTRA当端口B工作在方式1并作为输入端口时: PC2-选通信号 输入端 PC1-输入缓冲区满信号输出端IBFB PC0 -中断请求信号输出端INTRB 当端口A工作在方式1并作为输出端口时PC7-输出缓冲器满信号 输出端PC6-外设接收数据后的响应信号 输入端PC3 -中断请求信号INTRA输出端当端口B工作在方式1并作为输出端口时PC1 -输出缓冲器满信号 输出端PC2 -外设接收数据后的响应信号 输入端PC0 -中断请求信号INTRB输出端。 方式1端口A和端口B都工作在方式1,那么端口C中就有6位被规定为配合方式1工作的信号,剩下的2位,仍可作为输入或输出。方式1也称选通的双向I/

45、O方式,仅适用于端口A, 这时A口的PA7PA0作为双向的数据总线, 端口C有5条引脚用作端口A的握手信号线和中断请求线,而B口和C口余下的3位仍可工作于方式0或1。方式28255A的初始化例. 设分配给8255A的端口地址为280H283H。将8255A的PA口设置成方式0输出,PB口设置成方式1输入,PC口设置成方式0输出。试编写8255A的初始化程序。地址分析对应280H端口的地址信号为(取A9A0):初始化程序MOV DX,283HMOV AL,10000110B ; 86HOUT DX,AL ;若欲将PC2置1,PC口位管理方法如下MOV AL,0XXX0101BOUT DX,AL8

46、255应用举例要求使用程序直接控制I/O方式来输出存储器BUF缓冲区的10个字符,8255工作于方式0,打印机的STB信号的有效形式为上升沿,8255地址分配如下:A口地址80H,B口地址82H,C口地址84H,控制端口地址86H。工作方式设置10000001 DATA SEGMENT BUF DB 10 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, 10000001B ;设置工作方式 OUT 86H, AL LEA SI, BUF MOV CX, 10

47、WAITP: IN AL, 84H;读打印机的状态(PC2) TEST AL, 04H JNZ WAITP MOV AL, SI INC SI8255应用举例 OUT 80H, AL;将数据写入端口A MOV AL, 00001100B;STB的上升沿数据输出到打印机 OUT 86H, AL INC AL OUT 86H, AL LOOP WAITP MOV AH, 4CH INT 21H CODE ENDS END START8255应用举例7.2中断系统在微机系统中,中断功能是靠微处理器本身的功能和与之配合的外部逻辑共同实现的。这种外部逻辑通常是以中断控制器为核心组成的。中断是指CPU暂停

48、正在执行的程序,转去执行处理中断事件的中断服务程序,待执行完中断服务程序再返回到原被中断的程序继续执行。通常引起中断的事件称为中断源。中断的种类中断外部硬中断可屏蔽中断(INTR)非可屏蔽中断(NMI)内部中断软中断(INT指令)异常中断陷阱中断故障中断终止 中断最初是作为处理器与外部设备交换信息的一种控制方式提出的。由此,最初的中断全部是对外部设备而言的,称为外部中断或硬件中断。 随着计算机技术的发展,中断的范围也随之扩大,出现了内部软件中断的概念,它是为解决机器内部运行时出现的异常以及为编程方便而提出的。外部硬中断外部硬中断:是微处理器外部事件发生,产生中断请求信号,中断请求信号再通过微处

49、理器芯片上的接受中断请求信号的引脚,加入微处理器而出现的中断。CPU芯片上有两个引脚用于接受外部中断请求信号: INTR 和NMI ,分别接受可屏蔽中断请求和非可屏蔽中断请求。“可屏蔽”和“非可屏蔽”是指CPU的PSW寄存器(标志寄存器)中的IF控制位对中断响应是否存在控制作用。可屏蔽外部中断可屏蔽中断的中断请求信号通过CPU的INTR引脚产生。可屏蔽中断是受IF位控制的中断:若IF位为1,CPU将能响应可屏蔽中断的中断请求,称为开中断状态,置IF为1的指令STI称为开中断指令;若IF为0,就关闭CPU响应可屏蔽中断的中断请求,称为关中断状态,清除IF的指令CLI称为关中断指令。处理器只有一个

50、INTR引脚可以接受外部可屏蔽中断请求,为了管理众多的外部中断源,微机系统中采用可编程中断控制器8259。PC系列机通过两片8259级连可以响应15个外部中断源。常规外部设备(键盘、打印机、串行异步通信接口,自行开发的接口设备或专用接口等),利用中断机制和CPU交换信息,都利用可屏蔽中断。非可屏蔽外部中断为外部紧急请求提供服务的中断,通过CPU的NMI引脚产生。NMI输入是上升沿触发的,只要NMI输入端上出现由0到1的跳变,一个中断服务请求就被锁存在CPU中,与IF标志的状态无关。使用非屏蔽中断的典型例子是电源故障中断。内部中断内部中断:中断源在CPU内部。由于CPU主要的工作就是执行程序中的

51、指令,因此内部中断都将涉及到指令的执行。内部中断分为:软中断和异常中断两类。软中断:是中断指令INT执行时所产生的中断,同其它中断一样,将转去执行中断服务子程序。软件中断进一步分为BIOS中断(BIOS功能调用)和DOS中断(DOS功能调用)软中断问题: INT指令是作为指令排入程序中的,那么INT的位置是编程者设定的,执行INT就是要调用一个子程序。为什么不把这个子程序直接排在INT指令的位置上或者用CALL指令调用这个子程序呢?用软中断到底干什么?软中断回答:软中断是用汇编语言编程时,用户的应用程序调用系统软件中的子程序的主要方法。系统软件特别在ROM BIOS和常驻内存的操作系统中,有设

52、计好的子程序可作为系统资源供用户使用。在高级语言编程时,这些系统子程序常以应用程序接口函数的形式被调用。在汇编语言编程时,INT指令的作用同应用接口函数的作用一样,用于调用系统资源。INT 21H指令的功能就是用软中断来实现应用程序调用系统程序。异常中断异常中断:分为故障中断、陷阱中断(或自陷中断)和终止三种。故障中断:在指令执行之前已经检测出不具备正确执行指令的条件,从而引起的中断。例如,除法指令执行前已经检测出除数为零或由于除数太小不能得到合理的商值时,将产生故障中断,通知用户出现了除法错误(divide error)。特点:中断服务程序返回后重新执行被中断的指令。陷阱中断:在指令执行时,

53、由于满足了陷阱条件引起中断,即本条指令已经执行结束,在中断返回时,不重新执行本条指令而是执行下一条指令。例如,当将PSW中的TF控制标志位置1后(设置了陷阱条件),CPU每执行完一条指令都将产生一次中断。用DEBUG程序调试程序时,执行有断点的G命令就利用了这种中断。异常中断终止:不能准确确定引起异常条件的指令位置。终止将造成停机。例如,在进入某种异常中断处理程序后又出现另一种异常条件,引发双重异常中断,若再发生第3次异常中断条件,再继续操作无意义,进入停机状态。在微处理器中,不同的中断是以中断类型号来区别的。每种中断配以固定的中断类型号。在中断发生时,借助中断类型号,能使程序转入相对应的中断

54、服务程序。中断类型号的范围为0255,即最多256个。其中,由中断指令产生的软中断,其中断类型号由指令本身给出,INT n指令中的n即是中断类型号。中断类型号中断向量表和中断描述符如何获得中断服务程序的入口地址?一是依据每种中断有自己的中断类型号;再者与中断类型号相适应,在实模式下有中断向量表,在保护模式下有中断描述符表IDT。中断向量表 中断类型号通过一个地址指针表与中断服务程序的入 口地址相联,在实模式下,该表称为中断向量表。 中断向量表包含256个中断向量。每个中断向量包含两个字(4个字节),高地址字为中断服务程序所在代码段的段基址,低地址字为代码段中中断服务程序第一条指令的偏移量。中断

55、类型号与中断向量地址的对应关系类型0时置入IP类型0时置入CS类型N时置入IP类型1时置入IP类型1时置入CS类型N时置入CS类型255时置入IP类型255时置入CS类型0指针类型1指针类型2指针类型N指针类型255指针0000000004000084N003FC00400保留用于除出错保留用于单步陷阱(TF为1时)保留用于非可屏蔽中断中断向量和中断向量表在实模式下,存储器地址最低的1024单元,即地址0000H03FFH,专用于存储各种中断服务程序的入口地址。每4个单元存放一个中断服务程序入口,其中前两个单元的16位是入口地址的段内偏移地址,后两个单元的16位是入口地址的段地址。程序运行转入

56、中断服务程序时,入口地址的段内偏移地址部分将装入IP中,入口地址的段地址部分装入CS。中断服务程序的32位以逻辑地址形式表示的入口地址称为中断向量或中断指针。存储器地址最低的1024个单元可存放256种中断向量,这个专用于存储向量的存储区称为中断向量表。中断类型号与中断向量表的关系中断类型号是访问中断向量表的索引号,中断向量在中断向量表中的存储顺序是以中断类型号为索引的。中断类型号乘以4就是该种中断向量在中断向量表的开始地址。中断类型号为0,其中断向量在向量表的00000H00003H地址。中断类型号为1,其中断向量在00004H00007H中断类型号为255时,其中断向量应在003FCH00

57、3FFH地址。 IBM PCXT机的中断类型号的安排(一) IBM PCXT机的中断类型号的安排(二)中断类型号地址(H)中断功能中断类型号地址(H)中断功能2080-83程序结束2698-9B绝对磁盘写2184-87DOS系统调用279C-9F程序结束,驻留内存2288-8B结束地址28A0-A3DOS内部使用238C-8F中止处理292EA4-BBDOS保留2490-93错误处理2FBC-BFDOS内部使用2594-97绝对磁盘读303FC0-FFDOS保留中断优先权与中断嵌套通常一个系统有多个中断源,而CPU同一时刻只能响应一个中断源的请求,那么当多个中断源同时请求中断服务时,应该先响应

58、哪一个,有一个次序安排的问题。按中断源的轻重缓急程度确定的优先级别,称为优先级。除单步中断外的内部所有中断的优先权外部中断对于外部中断NMIINTR单步中断内部中断和异常软件中断外部非屏蔽中断(NMI)外部可屏蔽中断(INTR)单步中断优先级递增中断嵌套当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时,如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被中止的中断服务程序,这一过程称为中断嵌套。中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。1#中断请求响应返回1#中断服务程序2#中断请求响应

59、返回2#中断服务程序3#中断请求响应返回3#中断服务程序原主程序中断优先级3#2#1#中断优先级与中断嵌套中断响应和返回操作过程中断响应的操作过程,对于可屏蔽中断、非可屏蔽中断和内部中断,是不尽相同的。可屏蔽中断的响应操作在IF位为1(开中断)情况下,从INTR端加入中断请求信号开始,到进入中断服务程序为止所经过的一系列操作,称为可屏蔽中断的响应过程。该过程包括如下操作:等待当前指令结束,然后进入中断响应周期。有几种特殊情况需要说明。首先是带有指令的前缀,不允许在前缀码和指令码之间响应中断。其次,对于目的地址是段寄存器的MOV和POP指令,本条指令之后不允许响应中断,还要执行一条指令结束后才能

60、响应中断。从微处理器外部的中断控制逻辑获得中断类型号。当前的PSW、CS和IP的内容依次压入堆栈。清除PSW中的IF位和TF位为0。把中断服务程序的入口地址置入IP和CS,即把地址为4n和4n1两个单元的16位数作为中断服务程序入口的偏移地址置入IP,把地址为4n2和4n3两个单元的16位数作为中断服务程序的段地址置入CS。可屏蔽中断的响应操作非可屏蔽的中断请求在NMI端加入。CPU对它的响应不受IF位的控制。与可屏蔽中断一样,非可屏蔽中断也要等待当前指令执行完毕。因为非可屏蔽中断的中断类型号为2,是微处理器硬件决定的,所以不需要从外部取回一个字节的中断类型号操作。非可屏蔽中断的响应过程所有的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论