微型计算机原理与应用:第七章 输入输出接口_第1页
微型计算机原理与应用:第七章 输入输出接口_第2页
微型计算机原理与应用:第七章 输入输出接口_第3页
微型计算机原理与应用:第七章 输入输出接口_第4页
微型计算机原理与应用:第七章 输入输出接口_第5页
已阅读5页,还剩199页未读 继续免费阅读

下载本文档

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

文档简介

1、第 七 章输入输出接口本章学习目标了解接口的概念以及接口的基本结构;掌握几个典型接口芯片逻辑及其结构;在熟练汇编语言的基础上,掌握具体接口芯片的编程;熟悉关于接口的程序编写方法和BIOS功能调用,能够编写出实用的IO程序。Pentium微机的主板与IBM PC/XT有发展:第一:pentium机主板支持更广泛的应用领域。如多媒体和网络技术。第二:集成技术的发展,使原来多种功能独立的IO控制集成在南桥芯片中。参考教材146页图6.4 ICH5G结构原理图。 从学习的角度和编程应用的角度,仍然遵从IBM PC/XT的输入输出接口方式。I/O接口的基本功能: (为什么要用I/O接口电路)总的来说,I

2、/O接口具有下述三方面功能: (1)速度的匹配 (2)信息格式的变换:包括串并转换, A/D,D/A转换,电平转换等。(3)提供主机和外设间传送数据所必须的状 态和控制信息。主机(CPU)和I/O设备之间传送的信息格式1.数据信息:(1)数字量(计算机可以直接接收和处理的数据)(2)模拟量2.状态信息例如:输入设备的“Ready”和输出设备的“Busy”特点:CPU外设接口 可读(不可写)3.控制信息:特点:CPU外设接口 可写(不可读)控制对象传感器执行部件运放功放A/DD/A微型计算机数字量模拟量内容分布7.1 输入输出接口基础(重点)7.2 并行数据接口(重点)7.3 中断系统(重点)7

3、.4 DMA传送和DMA控制器82377.5 主机板上的计时计数逻辑(重点)7.6 串行异步通信接口7.7 总线概述7.1输入输出接口基础一、输入输出的基本方式微机系统中存在着存储器地址空间和I/O端口地址空间。 与存储器类似,在I/O端口地址空间中,占据一个输入输出地址的称为一个端口(PORT)。 对8086微处理器从端口读入数据的指令称为输入指令,助记符为IN; 向端口输出数据的指令称为输出指令,助记符为OUT。指令的一般格式:名称助记符和格式操作功能输入IN AL, PORTIN AX, PORTIN AL, DXIN AX, DX(AL)(PORT)(AX)(PORT+1:PORT)(

4、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)(AX) 对于IN(或OUT )指令,目的地址DST的寻址方式为寄存器方式,字节输入时为AL,字输入时为AX。源操作数的寻址方式有两种: 直接寻址方式(端口地址小于255) IN AL, 0FFH OUT 21H, AL 寄存器间接寻址方式(端口地址大于255) MOV DX,200H IN AL,DX OUT DX,AL输入输出指令的执行不影响任何标志位的状态。

5、二、输入输出同步问题在实际数据传输过程中,有一个突出要解决的问题,就是主机与外部设备之间时间同步的问题,具体表现在:外部设备工作时有自己的定时机构,主机在运行程序、执行指令时也有自己的定时系统,它们在时间上是不同步的。一个微机系统中,如果有多个外部设备存在,也就存在这种可能性:两个或多个设备同时要求与主机交换信息,主机如何优先响应。三、输入输出的基本工作方式主机与外设之间的输入输出共有三大类四小种方式。它们分别是: 程序直接控制传送 (无条件传送方式自设计小系统 查询方式微机系统) 中断方式 微机系统 存储器直接访问 (DMA)方式微机系统程序直接控制传送方式无条件适用条件:外设的定时已知或固

6、定。 特点:输入输出完全由IN/OUT指令实现,用延时子程序实现定时。 MOV CX, 8 MOV AL, 1A1:MOV DX, 201H OUT DX, AL SHL AL, 1 CALL DELAY LOOP A1延时子程序程序直接控制传送方式查询方式适用条件:外设的定时未知或不固定。 特点:输入输出完全由IN/OUT指令实现。外部设备的状态信息用IN指令输入,然后查询外设是否就绪?为就绪则继续查询;就绪则完成输入输出。程序直接控制I/O的程序结构其他功能其他功能I/O指令传输数据从状态端口读入信息传输准备好?YN查询方式举例: LEA SI, DATA1A1:IN AL, 40H TE

7、ST AL, 80H JNZ A1 MOV AL, SI MOV DX, 201H OUT DX, AL 设备状态端口程序直接控制输入输出方式的特点: 数据的传输靠执行指令来实现。每个要输入输出的数据必须经过微处理器中的寄存器AL和AX。 这种输入输出方式的优点是简单、实现容易。但存在明显的缺点:第一,为了测试和等待外部设备作好传输数据的准备常常花费大量的时间。在这段时间内,程序不能完成其他任务,所以使系统的时间利用率大大降低。第二,CPU在一段时间里只能和一个外部设备之间传输数据,其它设备只能等待。第三,不能发现和处理预先无法估计的错误和异常现象。所以这种输入输出方式只适用于CPU数据处理任

8、务不烦忙,而且外部设备数较少的情况。中断机制:程序中断就是主机在运行程序时出现了特殊情况,暂时停止执行正在运行的程序,转到另一段处理特殊情况的程序,待特殊情况处理程序执行完毕后,返回到被暂时停止的程序接着运行。由于CPU内部操作或执行某些指令时引起的程序中断,称为内部中断;由于CPU外部信号引起的程序中断,称为外中断。利用程序中断机制,可以实现多种功能。借助于CPU响应外中断请求的能力,实现输入输出的控制,称为程序中断方式输入输出。中断控制方式程序中断输入输出方式可以概括出如下重点: 虽然中断机制参与了输入输出控制,但数据的传输仍然要靠在程序中排入I/O指令完成。 数据的输入输出由外部设备发起

9、。当外部设备就绪(或有需求时),就向CPU的INTR端发送一个中断请求信号。否则不发送中断请求信号。CPU不主动查询外设状态,被动响应外设请求。 中断控制输入输出是靠硬件和软件相配合实现的。存储器直接访问DMA(Direct Memory Access)方式的基本思想是在外部设备和存储器之间开辟直接的数据传输通路,数据传输不是靠执行I/O指令,数据不经过CPU内的任何寄存器,也就不破坏任何寄存器原来存的内容,而是在存储器和外部设备之间的通路上直接传输数据。 这种I/O方式的实现主要靠硬件的功能。 在数据传输时没有程序和指令介入。 高速外部设备与存储器之间交换成批数据的情况。存储器直接存取方式首

10、先,微处理器本身在设计时就能实现这种功能。8086的HOLD和HLDA这两个引脚就是为这种I/O方式服务的。CPU将总线的控制权交给DMA控制器,使外部设备与存储器之间有直接通路连通,并控制传输一个或多个字节。其次,组成微机系统时,还必须配有DMA控制器,共同组成DMA控制机构,实现DMA传输所需要的全部功能。在数据传输时,CPU只是暂停一个或几个总线周期的时间,CPU内各寄存器的内容没有任何改变,所以CPU的时间利用率比前两种I/O方式大大提高。返回本章首页三、输入输出接口的基本结构接口(Interface)的基本意思是交接界面,所以任何相关的异体之间总存在这接口。 两个系统之间有数据往来,

11、它们之间就存在接口; 一个微机系统内,由于各部分之间要交换信息,各部分之间也存在接口。 I/O接口的组成框图部分存储器和控制逻辑并行打印机接口CRT显示器接口RS232C串行接口磁盘机接口其他设备接口系统总线部分存储器和控制逻辑I/O指令控制逻辑中断控制机构DMA控制机构其 它I/O逻辑微处理器主板其他设备磁盘机显示器打印机外设接口硬件接口的控制在主板,连线用扩展插槽最早是IBM PC/ XT系统总线62脚,由于PC/XT的微处理器是8088/8086,所以总线的地址为20位,数据线为8位,称其为8位总线。在80286微处理器组成的IBM PC/AT系统总线出现以后,直至目前,使用最多的称为I

12、SA(Industry Standard Architecture)总线,又称PC/AT总线。它在8位的PC/AX总线基础上扩展成为16位总线。增加了36脚。后来又出现了EISA(Extended ISA)和MCA(Micro Channel Architecture)等32位总线。现在pentium机上常用的是PCI总线。接口一词也与软件有关。接口与软件的关系有两方面的含义。一方面的含义是接口的软件。接口的功能的实现常常包括软件,输入输出接口一般都是由硬件和软件共同支持完成的,接口的开发自然包括必要的软件开发。另一方面含义是软件的接口。许多系统软件包含许多子程序。为减轻应用软件开发的负担,允

13、许应用软件调用系统软件中的子程序完成应用软件中某些要求的功能。IBM PC系统提供的接口资源基本配置的系统为I/O接口既提供了硬件资源又提供了软件资源。提供硬件资源包括:在扩充插槽上提供了系统级总线;主板上有键盘接口逻辑和扬声器接口逻辑;主板上有以两片8259中断控制器为核心组成的中断控制逻辑;主板上有以两片8237DMA控制器为核心组成的DMA传送控制逻辑,共有8个数据通道,用于实现内存与外设之间和内存存储区之间直接、快速、成批数据的传送。主板上有一片8254定时计数器,有3个功能:第1个功能是用于当日计时,和CMOS共同组成定时计时系统;第2个功能是为动态存储器刷新提供定时信号;第3个功能

14、是通过编程向扬声器提供声音信号。基本配置的系统微机包含的I/O接口卡可能有不同的组合,但在功能上和编程上是兼容的。通常包含以下接口逻辑: 显示器接口; 两个标准(Centronics)的并行打印机接口; 两个标准(RS232)串行异步通信接口; 磁盘驱动器接口,通常能连接两个软盘驱动器和两个硬盘驱动器。此外,系统总线中还提供了相当容量的5V、5V、12V和12V直流电源。系统为I/O接口提供的软件资源 主要包括DOS的功能调用和BIOS(Basic Input/Output System)调用。BIOS本来是指固化在ROM中的程序,这些程序支持系统刚刚加电时的一系列初始功能,这些程序中还包含很

15、多输入输出子程序,用户在编写汇编语言程序时也可以调用它们。三、I/O指令所需的接口逻辑和端口地址分配 系统IO端口地址的分配十分重要。 I/O指令执行时,都必须有I/O端口地址的选择。 端口地址的选择与访问存储器时对存储单元的地址选择很相似,也是用译码器逻辑对系统总线中的地址总线进行译码实现的。 微机系统中端口地址范围为1024个端口,用低10条地址线进行部分译码。在286的系统中,前256个端口(000H0FFH)提供主板上的接口芯片使用;后768的个端口(100H3FFH)供扩展槽上的接口控制卡使用。返回本章首页IO芯片DMAC1DMAC2DMA页码寄存器中断控制器1中断控制器2定时器并行

16、接口芯片RT/CMOS端口地址094H09FH0C0H0DFH080H090H020H021H0A0H0A1H040H043H060H063H070H073H 7.2 8255并行数据接口 Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称 PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。 8255A具有三个相互独立的

17、输入/输出通道:通道A、通道B、通道C。A,B,C三通道可以联合使用,构成单线、双线或三线联络信号的并行接口。此时C口完全服务于A、B口。A口有三种工作方式:方式0、方式1、方式2。B口有两种工作方式:方式0、方式1。8255A内部结构框图8255A内部结构8255A内部结构由以下四部分组成: 数据端口A、B、C;A组控制和B组控制;读/写控制逻辑电路;数据总线缓冲器。 端口A: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入锁存器,可作为数据输入或输出端口, 并工作于三种方式中的任何一种。端口B: 包括一个 8 位的数据输出锁存/缓冲器和一个 8位的数据输入缓冲器,可作为数据输

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

19、6PA7PB7PB6PB5PB4PB3PB2PB1PB0PC7PC6PC5PC4PC0PC1PC2PC3WRRESETD0D1D2D3D4D5D6D7VCCRDCSGNDA0A1芯片引脚信号介绍和外设相连PA7PA0:A组数据信号;PB7PB0:B组数据信号;PC7PC0:C组数据信号。和CPU相连RESET:复位信号,低电平有效。当RESET信号来到时,所有内部寄存器都被清除,同时3个数据端口被自动设为输入端口。D7D0:8255A的数据线,与系统总线相连。CS:芯片选择信号,低电平有效。只有CS有效时,8255A被选中。RD:芯片读出信号,低电平有效。当RD有效时,CPU可以从8255A读

20、取输入数据。WR:芯片写入信号,低电平有效。当WR有效时,CPU可以往8255中写入控制字或数据。A1、A0:端口选择信号。8255A内部有3个数据端口和1个控制端口,共4个端口。规定当A1A0的组合为00时,选中A端口;为01时,选中B端口;为10时,选中C端口;为11时,选中控制端口。8255A的控制信号和传输动作的对应关系CSA1A0RDWR传输说明00001数据从端口A送数据总线00101数据从端口B送数据总线01001数据从端口C送数据总线00010数据从数据总线送端口A00110数据从数据总线送端口B01010数据从数据总线送端口C01110写控制字1D7D0进入高阻态01101非

21、法的信号组合011D7D0进入高阻态8255A的控制字8255A可以通过指令在控制端口中设备控制字来决定它的工作。控制字分为两类:一类是芯片各端口的方式选择控制字,它可以使8255A的3个数据端口工作在不同的工作方式。方式选择控制字总是将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低4位作为一组。另一类是C端口按位置1置0控制字,它可以使C端口中的任何一位进行置位和复位。方式选择控制字C端口置1置0控制字 需要特别指出的是,C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写入控制口,而不是写入C端口。8255A的工作方式方式0是一种基本输入或

22、输出方式,它适用于无需握手信号的简单输入输出应用场合, 端口A、B、C都可作为输入或输出数据使用,输出有锁存而输入无锁存。 方式0的基本特点如下:任何一个端口可作为输入口,也可作为输出口,个端口之间没有规定必然的关系。各个端口的输入或输出,可以有16种不同的组合,所以可以适用于多种场合。方式1也称选通的输入/输出方式。在这种方式下,无论是输入还是输出都通过应答关系实现, 这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。 方式1的基本特点如下:端口A和端口B可分别作为两个数据口工作在方式1,并且任何一个端口可作为输入口或输出口。如果端口A和端口B只有一个端口工作于方式1,

23、那么端口中就有3位被规定为配合方式1工作的信号,此时另一个端口可以工作在方式0,端口C中的其他数据位也可以工作在方式0。端口A和端口B都工作在方式1,那么端口C中就有6位被规定为配合方式1工作的信号,剩下的2位,仍可作为输入或输出。PC3INTRPC5PC4IBFSTBA口输入PC3INTRPC7PC6OBFACKA口输出PC0INTRPC1PC2IBFSTBB口输入PC0INTRPC1PC2OBFACKB口输出方式2也称选通的双向I/O方式,仅适用于端口A, 这时A口的PA7PA0作为双向的数据总线, 端口C有5条引脚用作端口A的握手信号线和中断请求线,而B口和C口余下的3位仍可工作于方式0

24、或1。PC3INTRPC5PC4IBFSTBPC7PC6OBFACKA口 8255应用举例:下图为一个通过并行接口8255控制LED发光的接口电路。已知8255的端口地址为218H21BH。试写出使8个LED管自右至左依次发亮1秒的完整的汇编语言源程序。 8255应用举例要求使用程序直接控制I/O方式来输出存储器BUF缓冲区的10个字符,8255工作于方式0,打印机的STB信号的有效形式为上升沿,8255地址分配如下:A口地址80H,B口地址82H,C口地址84H,控制端口地址86H。 DATA SEGMENT BUF DB 10 DUP(?) DATA ENDS CODE SEGMENT A

25、SSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, 10000001B OUT 86H, AL LEA SI, BUF MOV CX, 10 WAITP: IN AL, 84H TEST AL, 04H JNZ WAITP MOV AL, SI INC SI OUT 80H, AL MOV AL, 00001100B OUT 86H, AL INC AL OUT 86H, AL LOOP WAITP MOV AH, 4CH INT 21H CODE ENDS END START返回本章首页7.3中断系统中断是指CPU暂停正

26、在执行的程序,转去执行处理中断事件的中断服务程序,待执行完中断服务程序再返回到原被中断的程序继续执行。 在微机系统中,中断的实现是靠微处理器本身的中断功能(INTR和INTA引脚)和与之配合的外部中断逻辑(中断控制器为核心组成的)共同实现的。通常引起中断的事件称为中断源。中断的种类中断外部硬中断可屏蔽中断(INTR)非可屏蔽中断(NMI)内部中断软中断(INT指令)异常中断陷阱中断故障中断终止如何区分不同中断源? 在微处理器中,不同的中断是以中断类型号(字节)来区别的。中断类型号的范围为0255,即最多可以有256个中断源。 由中断指令产生的软中断,其中断类型号由指令本身给出,INT n指令中

27、的n即是中断类型号。 中断类型号如何确定? 中断类型号有中断控制器来分配及确定。以8259为例: 中断类型号由硬件连接和软件编程 共同确定。 每种中断配以固定的中断类型号。在中断发生时,借助中断类型号,能使程序转入相对应的中断服务程序。8259IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7由中断类型号如何转入中断服务子程序? 所有中断服务子程序的入口地址(又称为中断向量段地址:偏移地址)都存储在内存的中断向量表中。 中断类型号是查找中断向量表的索引,中断类型号4即为中断向量地址。 找到中断源所对应的中断向量,即能使CPU转入相对应的中断服务程序的执行中。中断向量表如何构成和使

28、用?在实模式下,存储器地址最低的1024单元,即段地址(0000H):偏移地址(0000H03FFH),专用于存储各种中断服务程序的入口地址。 每4个单元存放一个中断服务程序入口,其中前两个单元的16位是入口地址的段内偏移地址,后两个单元的16位是入口地址的段地址。程序运行转入中断服务程序时,入口地址的段内偏移地址部分将装入IP中,入口地址的段地址部分装入CS。 中断服务程序的32位以逻辑地址形式表示的入口地址称为中断向量或中断指针。 存储器地址最低的1024个单元可存放256种中断向量,这个专用于存储中断向量的存储区称为中断向量表。中断类型号与中断向量表的关系?中断类型号是访问中断向量表的索

29、引号,中断向量在中断向量表中的存储顺序是以中断类型号为索引的。中断类型号乘以4就是该种中断向量在中断向量表的开始地址。中断类型号为0,其中断向量在向量表的00000H00003H地址。中断类型号为1,其中断向量在00004H00007H中断类型号为255时,其中断向量应在003FCH003FFH地址。中断类型号与中断向量地址的对应关系类型0时置入IP类型0时置入CS类型N时置入IP类型1时置入IP类型1时置入CS类型N时置入CS类型255时置入IP类型255时置入CS类型0指针类型1指针类型2指针类型N指针类型255指针0000000004000084N003FC00400保留用于除出错保留用

30、于单步陷阱(TF为1时)保留用于非可屏蔽中断表5-1 IBM PCXT机的中断类型号的安排(一)表5-2 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保留中断响应和返回操作过程8259中断控制器外设的中断请求外设的中断请求外设的中断请求CPU

31、INTRINTADB中断向量表0000H1023H为外设生成中断类型码NN4*N查表中断向量中断响应和返回操作过程中断响应的操作过程是不尽相同的。可屏蔽中断(INTR)非可屏蔽中断和(NMI)内部中断在IF位为1(开中断)情况下,从INTR端加入中断请求信号开始,到进入中断服务程序为止所经过的一系列操作,称为可屏蔽中断的响应过程(系统自动完成)。可屏蔽中断的响应操作该过程包括如下操作:等待当前指令结束,然后进入中断响应周期。 特殊情况:是带有指令的前缀,不允许在前缀码和指令码之间响应中断。对于目的地址是段寄存器的MOV和POP指令,本条指令之后不允许响应中断,还要执行一条指令结束后才能响应中断

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

33、作有如下特点:中断类型号要么是指令码给定的,要么是处理器硬件决定的,都不需要从外部逻辑输入。没有包括INTA信号的响应周期。不受IF位的控制,但单步中断受TF位控制。除单步中断之外,其他内部中断都比外部中断优先响应。CPU对中断响应的优先次序是:除数为0中断、INT n和INTO指令的优先级最高,NMI次之、INTR再次、单步中断优先级最低。内部中断的响应操作中断的返回过程中断的返回,无论是内部中断或外部中断,都是由中断服务程序的末尾设置IRET指令实现的。IRET指令的操作是恢复断点处的地址和PSW的内容,即依次从堆栈中弹出保存的IP、CS和PSW值,使被中断了的程序继续执行。中断控制器82

34、59A中断控制器的功能就是在有多个中断源的系统中,接收外部的中断请求,并为其分配中断类型号;优先级判断,选中当前优先级最高的中断请求,再将此请求送到CPU的INTR端;当CPU响应中断后,为CPU提供中断类型号;CPU进入中断服务程序的处理过程后,中断控制器仍负责对外部中断请求的管理。归纳起来,8259有如下工作特点: 1)可以单片工作,也可以级联使用。最多可用9片8259A来构成64级的主从式中断控制系统。 2)控制器内部通过屏蔽字可以对每一级中断进行屏蔽或允许。 3)8259A可提供8个中断类型号,从而能使CPU迅速地转至中断服务程序。 4)通过编程使8259A工作在多种不同的工作方式。

35、5)工作时只需要一组+5V电源。8259A外部引脚信号定义 VCC A0 INTA IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 INT SP/EN CAS2 CS WR RD D7 D6 D5 D4 D3 D2 D1 D0 CAS0 CAS1 GND 1 288259A 2 27 3 26 4 25 5 24 6 23 7 22 8 21 9 20 10 19 11 18 12 17 13 16 14 15 8259A引脚信号的含义D7D0:8条数据引线,在系统中,它们与系统总线的数据线相连,实现和CPU的数据交换。INT:和CPU的INTR信号相连,用来向CPU发送中断请

36、求。INTA:接收来自CPU的中断应答信号。8259A要求中断应答信号由两个负脉冲组成。RD:读控制信号。WR:写控制信号。CS:芯片选通信号,它通过地址译码逻辑电路与高位地址总线相连。A0:8259A的端口选择。8259A有两个端口地址,一个为奇地址,一个为偶地址。IR7IR0:用来从I/O设备接收中断请求。CAS2CAS0:在级联方式下,用于主从片之间的联络。SP/EN:当8259A工作在非缓冲方式时,它作为输入引脚,用来决定本片8259A是主片还是从片;当8259A工作在缓冲方式时,它作为输出引脚时,启动数据总线驱动器。8259A内部逻辑框图IR0IR7中断服务寄存器ISR优先级分析器中

37、断请求寄存器IRR中断屏蔽寄存器IMROCW1OCW2OCW3ICW4ICW1ICW2ICW3CSA0D0 D7RDWRINTINTA地址译码地址线CAS0CAS1CAS2SP/EN屏蔽逻辑8259A的编程8259A的编程分为两个阶段:初始化阶段和操作阶段。初始化阶段应该在系统加电或复位后由系统初始化程序完成。这一阶段要用输出指令向8259置入初始化命令字。在操作阶段,要用输出指令向8259发适当的操作命令字,实现对8259的状态、中断方式和过程的控制。在这一阶段一般不再发初始化命令字。初始化编程的任务设定中断请求信号的有效形式,即高电平有效还是上升沿有效;设定8259是单片工作方式还是级联工

38、作方式;设定8259管理的中断类型号基值,即IR0对应的中断类型号。设定各级的优先排序规则;设定一次中断处理结束时的结束操作规则。初始化命令字的格式ICW1(A00)LTIM:用来设定有效的中断请求信号形式。为1时,为高电平有效;为0时,为上升沿有效。SNGL:设定8259是否是单片工作方式。为1时,表示是单片工作方式;为0时,表示是多片级联方式。IC4:是否需要确认初始化命令字ICW4。为1时,需要在后面设定ICW4;否则就不设定。IC4SNGL0LTIM1D0D1D2D3D4D5D6D7 ICW2(A01) ICW2用于设置中断类型号基值。微处理器在响应外中断时,依据中断类型号获得中断向量

39、在中断向量表内的地址,即保存中断服务子程序入口地址的地址。外中断的中断类型号是在中断响应期间由8259提供的。IRQ0对应的中断类型号称为中断类型号基值,它一定是可以被8整除的正整数。0T7D0D1D2D3D4D5D6D700T6T5T4T3ICW3(A01)如果外中断控制逻辑只由一片8259组成(设置ICW1时D1位SNCL位为1),则不设置ICW3。只有在多片级联方式下,才设置ICW3。对于主片和从片设置的ICW3是不同的,意义也是不同的。主片的ICW3的格式:每一位对应一个IR输入端那些接有从片的输入端对应的位设置为1,否则为0。S0S1S2S3S4S5S6S7D0D1D2D3D4D5D

40、6D7从片的ICW3格式为:CAS0CAS2的组合来指明,这片作为从片的8259连接到主片的哪个IR输入端。000对应IR0,001对应IR1,111对应IR7。CAS0CAS1CAS200000D0D1D2D3D4D5D6D7ICW4(A01)只有ICW1中的IC4位为1才能设置ICW4。SFNM:设置该位为1,将工作于特殊的全嵌套方式;该位为0,工作于正常的全嵌套方式。IBM PC系统设置该位为0。BUF:该位设置为1,表明缓冲方式。这时芯片的SP/EN信号为输出引脚,可以作为数据收发缓冲器的控制信号。这位设置为0,表示是非缓冲方式。M/S:在BUF位为1时有效。该位为1则表示该片为主片;

41、该位为0时则表示为从片。PMAEOIM/SBUF0SFNM00D0D1D2D3D4D5D6D7AEOI:规定中断结束方式。该位为1,自动结束。这样当服务子程序结束后,不需其它任何操作;该位为0,为非自动结束方式。必须在中断服务子程序中发出中断结束操作命令。PM:该位为1,表示与80X86微处理器配合工作;该位为0,表示与8080或8085微处理器配合工作。在IBM PC系统中,该位应设定为1。8259初始化命令字设置次序ICW1ICW2SNGL=1?ICW3IC4=1?ICW4地址A0=0地址A0=1地址A0=1地址A0=1YYNN8259A级联结构图IRQ8IRQ9IRQ10IRQ11IRQ

42、12IRQ13IRQ14IRQ15IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7IR0IR1IR2IR3IR4IR5IR6IR7IR8IR1IR2IR3IR4IR5IR6IR708090A0B0C0D0E0F7071727374757677INTINTAINTRINTAINTINTACAS0CAS1CAS2CAS0CAS1CAS2端口地址:端口地址:20H21HA0HA1H中断号中断号T/C计时中断键盘控制器中断级联中断串行口2串行口1并行口2软盘控制器并行口1实时时钟中断改向保留保留保留协处理器硬盘控制器保留根据上图,对两片8259A设置初始化命令字如下:主片:ICW100

43、010001,边沿触发,有ICW4,级联方式ICW200001000,中断类型号基值为08HICW300000100,在IR2端接有从片ICW400000001,非数据总线缓冲方式,中断非自动结束,正常全嵌套方式从片: ICW100010001,边沿触发,有ICW4,级联方式 ICW210000000,中断类型号基值为80H ICW300000010,该片的识别标志,对应主片的IR2端 ICW400000001,非数据总线缓冲方式,中断非自动结束,正常全嵌套方式操作命令字OCW1(A01)OCW1用于设置屏蔽状态。命令字的各位与8259中的中断屏蔽寄存器IMR的各位相对应,用输出指令将OCW1

44、发送到IMR。IN AL , 21HPUSH AXAND AL, ;1为屏蔽OUT 21H , AL操作命令字OCW2(A00)R:该位为1指明中断级的优先次序是循环的。标准的循环方式,是按循环的顺序每个中断级轮流成为最高优先级。如果当前级为最高级,它被服务完就变为最低级,与它相邻的高序号的级变成最高级。SL:该位指明是否要指定一个中断级。该位为1,本控制字的L2L03位组合将指明一个中断级。如果设定SL位为0,则L2L0无意义。L0L1L200EOISLRD0D1D2D3D4D5D6D7EOI:该位为1,说明这个操作控制字的任务之一是执行结束中断的操作,用作结束中断命令;否则,该位为0,则不

45、执行结束中断操作。中断结束操作意味着撤销正在服务的中断请求和服务标志。如果初始化时ICW4的AEOI位为1,说明设定的是自动结束中断方式,设置OCW2时EOI位自然应为0。有三种EOI方式:正常EOI,自动EOI,特殊EOIMOV AL , 20HOUT 21H , ALOCW2的各种格式和应用R、SL、EOIL2、L1、L0是否有意义意义和应用000无全嵌套,用于方式设置001无结束命令010无无意义011有结束命令字,完全嵌套,清除ISR中指定位100无自动循环排序101无结束命令,用于结束自动循环方式,优先级次序移动级110有指定最低优先级循环111有指定最低优先级操作命令字OCW3(A

46、00)OCW3用于管理特殊的屏蔽方式和查询方式。ESMM:特殊屏蔽方式控制位。该位为1则允许特殊屏蔽方式。SMM:特殊屏蔽方式标志位。该位为1,表示特殊屏蔽方式;该位为0,表示非特殊屏蔽方式。只有ESMM位为1,SMM位的意义才有效。如果ESMM位为0,SMM位无任何意义。RISRRP10SMMESMM0D0D1D2D3D4D5D6D7P:用于管理查询方式。该位为1,指明用查询方式,即查询决定优先级次序;该位为0,为非查询方式。P位为1的OCW可用作查询命令。下一条对同一地址的读命令起中断识别作用。其操作时,如当时有中断请求,将识别出优先级最高的中断请求,把ISR的相应位置置1,同时输入一个字

47、节的信息道CPU。I:表示有无中断请求。I为1时,表示有中断请求,否则,I为0时,表示没有请求。W0W1W2ID0D1D2D3D4D5D6D7W2W0:只有在I为1时,是有意义的。它们的组合指明请求服务的各中断中的最高优先级。RR、RIS:用于控制读出8259内部寄存器IRR和ISR的内容。发送RR、RIS的组合为10的OCW3后,对同一地址的输入命令将读回中断请求寄存器IRR的内容到CPU;发送RR和RIS的组合为11的OCW3后,对同一地址的输入命令将读回中断请求寄存器ISR的内容到CPU。RR和RIS位组合为00和01时无意义。8259A的工作方式8259A有多种工作方式,这些工作方式都

48、可以通过编程来设置,所以使用起来很灵活。下面对8259A的工作方式分类介绍。设置优先级的方式按照优先级设置方法来分,8259有如下方式:全嵌套方式全嵌套方式是8259A最常用的工作方式,如果对8259A进行初始化以后没有设置其他优先级方式,则8259A就按全嵌套方式工作。在全嵌套方式中,中断请求按优先级07级进行处理,0级中断的优先级最高。只有高级的中断请求才能嵌套。特殊全嵌套方式特殊全嵌套方式和全嵌套方式基本相同,只有一点不同,就是在特殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,也会给与响应,从而实现一种对同级中断请求的特殊嵌套。优先级自动循环方式优先级自动循环方式一般用来系统

49、中多个中断源优先级相等的场合。在这种方式下,优先级队列是在变化的,一个设备受到中断服务后,它的优先级自动降为最低。系统中是否采用自动循环优先级,由8259A的操作命令字OCW2决定。优先级特殊循环方式优先级特殊循环方式和优先级自动循环方式相比,只有一点不同,就是在优先级特殊循环方式中,一开始的最低优先级是由编程确定的,从而最高优先级也由此而定。优先级特殊循环方式也是由8259A的操作命令字OCW2来设定的。屏蔽中断源的方式按照对中断源的屏蔽方式来分,8259A有如下方式:普通屏蔽方式在普通屏蔽方式中,8259A的每个中断请求输入端都可以通过对应屏蔽位的设置被屏蔽,从而使这个中断请求不能从825

50、9A送到CPU。8259A内部有一个屏蔽寄存器,它的每一位对应了一个中断请求输入,程序设计时,可以通过设置操作命令字OCW1使屏蔽寄存器中任一位或几位置1。当某一位为1时,对应的某一级中断就受到屏蔽。特殊屏蔽方式设置屏蔽方式后,用OCW1对屏蔽寄存器中某一位进行置位时,就会同时使当前中断服务寄存器中的对应位自动清0,这样就不只屏蔽了当前正在处理的这级中断,而且真正开放了其他级别低的中断。特殊屏蔽方式总是在中断处理程序中使用的。结束中断处理的方式中断自动结束方式这种方式只能用在系统中只有一片8259A,并且多个中断不会嵌套的情况。在中断自动结束方式中,系统一进入中断过程,8259A就自动将当前中

51、断服务寄存器中的对应位ISRn清除,这样系统正在为某个设备进行中断服务,当前中断服务寄存器中却没有对应位作指示,就好像已经结束了中断服务一样。这是最简单的中断结束方式,主要是怕没有经验的程序忘记在中断服务程序中给出中断结束命令而设立的。一般的中断结束方式一般中断结束方式用在全嵌套情况下。当CPU用输出指令往8259A发出一般中断结束命令时,8259A就会把当前中断服务寄存器中的最高的非零ISRn位复位,也就相当于结束了当前正在处理的中断。发送一般的中断结束命令是很简单的,只要在偶地址端口输出一个操作命令字OCW2,并使得OCW2中的EOI1。特殊的中断结束方式在非全嵌套方式下,用当前的中断服务

52、寄存器是无法确定哪一级中断为最后响应和处理的,即无法确定当前正在处理的哪级中断,这时就要采用特殊的中断处理结束方式。特殊中断结束命令是通过往8259A偶地址输出操作命令字OCW2来发送的,当OCW2中的EOI1,SL1,R0时,就是一个特殊中断结束命令。L2、L1、L0这3位指出了到底要对哪一个ISRn位进行复位。不管是用一般的中断结束方式,还是用特殊的中断结束方式,一个中断处理程序结束时,都必须用两次中断结束命令,一次是对主片发的,另一次是对从片发的。连接系统总线的方式按照8259A和系统总线的连接来分,有下列两种方式:缓冲方式在多片8259A级联的大系统中,8259A通过总线驱动器和数据总

53、线相连。SP/EN输出一个低电平,可作为总线驱动器的启动信号。缓冲方式是用8259A的初始化命令字ICW4来设置的。非缓冲方式当系统中只有单片8259A时,一般将它直接与数据总线相连,它也是通过8259A的初始化命令字ICW4来设置的。在非缓冲方式下,8259A的SP/EN端作为输入端,来选择主片或从片。引入中断请求的方式边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号,可以通过初始化命令字ICW1来设置的。电平触发方式8259A将中断请求输入端出现的高电平作为中断请求信号,可以通过初始化命令字ICW1来设置的。需要注意的是,要及时撤销高电平,否则可能引起不应该有的第二次中断

54、。在应用中断控制机构时都要完成如下工作:分配合适的中断优先级。分配IRQ端的规则是:首先,只能利用没有被系统已有设备占用的IRQ端。其次,分配时参照接口完成的任务紧急程度。任务越紧急,应分配优先级较高的IRQ端。设计或选择中断请求信号产生逻辑。为中断服务子程序分配合理的存储空间并把服务程序的入口地址置入中断向量表。为服务程序分配空间的原则是不被其他程序冲掉。利用DOS功能调用设置中断向量入口参数应这样设置:AH中置入功能号25H;AL中置入要设置的中断类型号n;DS:DX中置入中断服务程序的入口地址; MOV DX, OFFSET INTSUB PUSH DS MOV AX, SEG INTS

55、UB MOV DS, AX MOV AL, 0AH MOV AH, 25H INT 21H POP DS利用DOS功能调用保护中断向量入口参数应这样设置:AH中置入功能号35H;AL中置入要设置的中断类型号n;ES:BX中置入中断服务程序的入口地址; MOV AL, 0AH MOV AH, 35H INT 21H PUSH ES PUSH BX利用传送指令设置中断向量 VECTABSEGMENTAT0ORG4*NVSUBDW 2DUP(?) VECTAB ENDS CODE SEGMENT PUSH DS MOV AX, VECTAB MOV DS, AX CLI MOV WORD PTR V

56、SUB, OFFEST INTSUB MOV WORD PTR VSUB+2, SEG INTSUB STI POP DS CODE ENDS 中断向量表4*nCODE SEGMENT ASSUME CS:CODE ORG 1000HMAIN: JMP init8259ZXK EQU 0FFDCHZWK EQU 0FFDDHLED DB 0C0H,0F9HPort0 EQU 0FFE0H ;取决地址译码 Port1 EQU 0FFE1H init8259:CLI 设置中断向量 ;9259初始化 MOV AL,13H ;ICW1 MOV DX,Port0 OUT DX,AL MOV AL,08H

57、 ;ICW2 MOV DX,Port1 OUT DX,AL MOV AL,09H ;ICW4 OUT DX,AL MOV AL,7FH ;中断屏蔽字IRQ7 STI LED:循环显示字符串 ; 利用实验2的程序 JMP LED INT8259 PROC CLI 显示特殊字符 MOV AL, 20H ;EOI命令 MOV DX, Port0 OUT DX, AL STI IRETINT8259 ENDPCODE ENDS END MAIN返回本章首页7.4DMA传送和DMA控制器微处理器CPU外围控制逻辑的另一重要部分是DMA传送控制逻辑,它一侧与微处理器相连,其中重要的两条信号线是HOLD(总

58、线控制权请求)和HLDA(总线控制权应答)。它所形成的接受DMA请求信号DRQ和DMA请求确认信号线DACK作为系统总线的一部分,出现在扩充插槽的接点上供外设接口使用。DMA传送的基本原理图回答请求CPU8086主机板总线逻辑DMA控制器8237I/O接口I/O设备存储器系统总线DMA传送的特点不经过CPU,不破坏CPU内各寄存器的内容,直接实现存储器与I/O设备之间的数据传送。在IBM PC系统中,DMA方式传送一个字节的时间通常是一个总线周期,即5个时钟周期时间。CPU内部的指令操作在这个总线周期只是暂停,然后继续操作,指令的操作次序不会被破坏。所以DMA传送特别适用于外部设备与存储器之间

59、高速成批的数据传送。DMA传送阶段第一阶段:准备阶段。这是程序工作阶段,它包括对DMA控制器的初始化,工作方式和基本参数的设置,对I/O设备及其接口的初始化等。第二阶段:DMA传送操作阶段。DMA传送操作过程是这样的:I/O设备通过I/O接口向系统总线的某个DRQ段发出DMA传送请求,DMA控制器接受请求,在自己的HRQ输出端输出有效信号,作为向CPU发出的DMA传送请求信号。HRQ与CPU的DMA请求输入端HOLD相连,使CPU接收请求。CPU结束当前的总线周期(不一定是一条指令的结束),即响应DMA传送请求,在自己的HLDA 端输出响应信号,微处理器的HLDA连接到DMA控制器的HLDA端

60、,并把系统总线控制权转交给DMA控制器,CPU与系统总线中的地址线、数据总线和某些控制线之间进入高阻态。DMA控制器把CPU的响应信号转加到系统总线的DACK端,进而加到提出请求的I/O设备接口。DMA控制器向地址总线发出将要传送数据的存储器地址信息,以备访问相应的存储单元。DMA控制器向系统总线发出控制存储器和I/O设备操作需要的读、写信号。修改DMA控制器中提供存储器地址的地址寄存器,指向存储器下一单元;记录字节数;为下一个字节传送做好准备。 如果在第一阶段设置方式时设置的是单字节方式,DMA控制器就会把总线控制权交回给CPU,使CPU继续执行被中断的指令。如果设置的是多字节的数据块传送方

温馨提示

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

评论

0/150

提交评论