【教学课件】第2章输入输出技术.ppt

上传人:牧羊曲112 文档编号:5658399 上传时间:2023-08-06 格式:PPT 页数:61 大小:372KB
返回 下载 相关 举报
【教学课件】第2章输入输出技术.ppt_第1页
第1页 / 共61页
【教学课件】第2章输入输出技术.ppt_第2页
第2页 / 共61页
【教学课件】第2章输入输出技术.ppt_第3页
第3页 / 共61页
【教学课件】第2章输入输出技术.ppt_第4页
第4页 / 共61页
【教学课件】第2章输入输出技术.ppt_第5页
第5页 / 共61页
点击查看更多>>
资源描述

《【教学课件】第2章输入输出技术.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第2章输入输出技术.ppt(61页珍藏版)》请在三一办公上搜索。

1、第2章 输入输出技术,2.1 概述 在微型计算机系统的应用中,CPU除与内存交换信息外,还必然要经常与各种外部设备交换信息。主机与外设进行信息交换过程主要是完成数据输入或输出的传送操作。输入或输出操作的确切含义是有选择地启动被微处理器选中的外部设备,以便使其接收来自CPU的数据或向CPU送入数据。数据传送的方向标准通常以微处理器为中心,当数据是由外部设备,如键盘、纸带读入机、光笔等设备向CPU送入时,称为输入传送;而当数据自CPU送到如发光二极管、七段显示器、CRT显示器、点阵打印机、绘图仪等设备时,称为输出传送。当实现一个数据的输入输出操作时,CPU必须在众多的外部设备中寻找一个确定的设备,

2、而如何寻找这一特定的外部设备就是输入输出寻址方式所解决的问题。当找到一个确定的外部设备以后,接下来的问题就是如何同它进行信息交换,这就是输入输出控制方式所解决的问题。,2.2 输入输出的寻址方式,1 存储器映象寻址方式 存储器映象寻址方式的主要优点是:(1)指令丰富。所有存储器访问指令都可以用来处理I/O操作,而不使用专用的I/0指令。在微型机的指令系统中,存储器操作指令数量多,功能强,寻址方式灵活,这给程序设计带来了方便,同时也大大增强了系统的I/0功能,使I/0端口不仅能完成数据的传送,还能对端口的内容进行算术逻辑运算或移位等。(2)I/O端口空间大。由于在存储器空间中划出一个区域作为I/

3、O端口地址空间,所以系统中的I/O端口数目几乎不受限制,其最大数目只受系统的存储容量的限制。这对大型控制或数据通讯系统等一些特殊场合是很有用处的。(3)寻址的控制逻辑比较简单。这种寻址方式的主要缺点是:(1)I/O端口占用了一部分存储器地址空间,使可用的内存空间相对减少。另外,当所有地址都必须做为存储器单元使用时,则不能采用这种方法。(2)对外设的访问和对存储器的访问一样,必须对全部地址线译码,因而地址译码电路比较复杂。(3)存储器操作指令字节长,需要较长的执行时间,降低了I/O操作速度。(4)用存储器指令来处理输入/输出,在程序清单中不易区别,给程序的设计,分析和调试带来一定的困难。,输入输

4、出的寻址方式,2 I/O映象寻址方式 I/O映象寻址方式的主要优点是:(1)I/O空间与存储器空间各自独立,可分开设计。(2)由于采用单独的I/O指令,其助记符与存储器指令明显不同,因而使程序编制清晰,易于理解。(3)I/O地址线较少,所以译码电路简单。(4)I/O指令格式短,执行时间快。这种寻址方式的主要缺点是:(1)需要专门的I/O指令,且这些指令一般不如存储器访问指令丰富,程序设计灵活性较差。(2)参加译码的地址线较少,使外设端口数目受到限制。(3)采用专用的I/O周期和专用的I/O控制线,这不仅使微处理器有限的引脚更加紧张,而且也增加了控制逻辑的复杂性。最小模式下的8088则用M/IO

5、信号来区分存储器或I/O端口的访问。最大模式下的8088与协处理器8087连接,引脚更为紧张,只有通过输出三个总线周期信号,再由8288总线控制器解读后生成存储器读/写、I/O读/写的控制信号。,8088专用I/O指令,对于采用直接寻址方式,其指令格式为:输入指令:IN AL,n和IN AX,n输出指令:OUT n,AL和OUT n,AX 对于采用间接寻址方式,其指令格式为:输入指令:IN AL,DX和IN AX,DX输出指令:0UT DX,AL和OUT DX,AX,门电路组合法,常见的端口地址选择方法有三种:门电路组合法、译码器译码法、比较器比较法。门电路组合法是最简单的一种端口地址选择方法

6、,它采用常见的逻辑门电路,比如与门、或门、非门等作为基本的组合元件。一般端口都是指寄存器、锁存器或缓冲器,这些器件都有一个芯片选择信号,简称片选信号,多数是低电平有效,当然,也有一些芯片没有片选信号,而是有使能端,或脉冲控制端,总之是使器件产生动作的控制端。端口地址选择的目的,是当地址线上出现某种信息组合时,在电路的输出端会产生一个有效信号(有效信号有四种状态,即高电平、低电平、上跳沿、下降沿,具体使用哪种状态,视所使用器件而定),该信号连到器件的控制端,使器件产生动作,从而完成I/O端口的读/写操作。这种方法简单、直观,适合于单个端口,常用的基本门电路有7400(2输入4与非门)、7408(

7、2输入4与门)、7420(4输入双与非门)、7430(8输入与非门)、7402(2输入4或非门)、7432(2输入4或门)、7404(六反相器)等等。,译码器译码法,这是最常用的一种方法,就是利用译码器芯片对地址进行译码。PC/XT微型机系统板上接口芯片的端口地址译码采样了一个74LS138译码电路。这些芯片也都有片选信号,74LSl38译码器的输出与这些芯片的片选信号连接。各接口芯片内部有多个寄存器,因而应有多个端口地址。译码器只直接使用A9A5,其余的低5位地址A4A0末接,留给各接口芯片自行内部译码,以便寻址多个寄存器。显然,由于A4A0未接到译码器,所以每个译码器的输出端对应25=32

8、个端口地址,其地址范围依次是:8237 000H 01FH8259 020H 03FH8253 040H 05FH8255 060H 07FHDMA页面寄存器 080H 09FHNMI屏蔽寄存器 0A0H 0BFH保留的 0C0H 0DFH保留的 0E0H 0FFH系统为每个接口芯片预留出32个端口地址,至于每个接口芯片用多少,则视接口芯片内部寄存器的数目而定。译码器译码法可以方便地对多个地址进行译码,适合于多个端口的电路。常用的译码器有74139/74155(双2线-4线译码器)、74138(3线-8线译码器)、74154(4线-16线译码器)。,比较器比较法,这是比较灵活的一种方法,就是利

9、用数码比较器把地址线上的地址同预定的地址相比较,进而确定地址是否相符。如果比较后两个地址相等,则表示地址总线送来的端口地址就是该端口的地址。用比较器比较法进行端口地址译码不仅原理直观,方法简便,更主要的是通过改变预设置,就能够很容易地改变接口电路中端口的地址,而不需要改变线路,使用非常灵活。在一些通用接口模板中,这一方法已得到广泛的应用。常用的比较器有7485(4位数字比较器)、74688(8位数字比较器)。,2.3 输入输出控制方式,I/O设备与存储器区别:1存储器的工作速度几乎和中央处理机一样,而大多数I/O设备工作较慢,且不同的I/O设备又有不同的工作速度。2存储器的字长一般是以字节为单

10、位或等于机器字长,而I/O设备传送的过程中可能是8位数据,也可能是1位,2位不等的状态或控制信息。3存储器中的信号形式与CPU相同,而I/O设备可能是数字信号也可能是模拟信号,可能是电压信号也可能是电流信号,可能是并行的也可能是串行的等等。4存储器的控制信号主要是读/写信号,而I/O设备一般有多种控制信号,如设备工作,空闲等状态信号,设备的启动,清除等控制信号。这些差异都使得I/O数据传送过程较为复杂,随之而来的就是根据不同设备需采用不同的传送方式,相应的也就要采用不同的控制方式。,I/O控制方式,CPU对I/O控制方式,就微机系统而言有四种基本方式,即无条件传送控制方式,程序查询传送控制方式

11、,中断传送控制方式和DMA控制方式。无条件传送方式,CPU可在任何时刻与I/O设备交换数据,对CPU而言,I/O设备总是处于准备就绪状态。程序查询方式,CPU通过查询I/O设备的状态,断定哪个设备需要服务,然后转入相应的服务程序。中断方式,当I/O设备需要CPU为其服务时,可以发生中断请求信号INTR,CPU接到请求信号后,中断正在执行的程序,转去为该设备服务,服务完毕,返回原来被中断的程序并继续执行。直接存储器存取(DMA)方式,采用这种方式时,在DMA控制器的管理下,I/O设备和存储器直接交换信息,而不需要CPU介入。,无条件传送控制方式,无条件传送方式又称同步方式,是最简单的一种I/O控

12、制方式,多用于CPU与低速接口之间的信息交换。如开关、继电器、LED显示器,它们总是被认为处于“待命”状态(即总是处于准备就绪或闲置状态),CPU可在任何时候执行I/O指令,无条件地与外部设备进行信息交换,而不必考虑外部设备的状态。,程序查询传送控制方式,程序查询方式是有条件的传送控制方式,在这种方式中,CPU对I/O设备的控制(调度)全部由程序来实现,所有的输入输出操作都处于正在被执行的程序的控制下,I/O设备完全处于被动地位。所谓查询,就是询问外部设备的工作状态,通过这一状态来判定外设是否已具备了与CPU交换数据的条件,即外设是否已准备好与CPU交换数据。对输入设备而言,这个状态指示输入设

13、备的数据是否已经准备就绪,CPU是否可以随时来读取这个数据。对输出设备而言,这个状态指示输出设备的数据接收寄存器是否已空,是否可以随时接受CPU送来的数据。程序查询是最常用的I/O控制方式,其特点是I/O操作由CPU启动,即CPU是主动的而I/O是被动的,所有的传送都是与程序的执行同步的。它的优点是能较好地协调外设与CPU之间定时的差别,并且用于接口的硬件较少,也不需要专门的硬件。它的主要缺点有两个:一个是因它需踏步检测某设备状态或周期性检查所有设备状态,所以影响微机系统的效率。二是系统所接入的设备越多,查询的周期就越长,因此对工作速度较快的I/O设备会因服务不及时而丢失数据。,中断传送控制方

14、式,程序查询方式独占CPU,而通常外设的输入输出速度很慢,浪费了大量的CPU时间,它使得CPU在查询过程中除了检测外设状态以外,不能做任何其他事情。在中断传送控制方式中,CPU执行功能程序与外部设备工作,二者是并行进行的,它改变了CPU主动查询外设状态的情况,而是当外设一切准备就绪后,主动向CPU提出进行数据传输的请求。中断过程就是CPU对一个随机的请求进行处理的过程,它一般包括五个方面,即中断申请、中断排队、中断响应、中断服务和中断返回。,中断申请,中断源就是指能够发出中断请求信号的来源。中断源能够产生中断申请信号有两个条件:(l)中断源自身工作已经“准备就绪”。比如对于输入设备,“准备就绪

15、”就是指它已经准备好数据,CPU可以随时来读取这个数据;对于输出设备,“准备就绪”就是指它已经准备好随时接收CPU送来的数据。(2)CPU允许该中断源申请中断。一般来说,CPU本身有一个中断允许触发器,而每一个中断源也有一个中断允许触发器(或称之为中断屏蔽寄存器),如果CPU本身禁止中断(即其中断允许触发器处于禁止状态),那么即使外部有中断请求信号,CPU也不会响应。如果CPU本身允许中断,它就可以接受(响应)中断源发出的中断请求信号。此时,哪一个中断源可能发出中断请求信号,就要看CPU使哪一个中断源的中断允许触发器处于允许状态(即该中断源所属的中断屏蔽寄存器处于非屏蔽状态)。如果CPU禁止某

16、个中断源申请中断,那么即使这个中断源自身工作已经准备就绪,它也不可能向CPU提出中断请求。,中断排队,解决中断优先权排队一般有两种方法,即软件查询法和硬件排队法。(l)软件查询法 基本思想:用软件查询中断源,根据查询的顺序先后来确定中断源的优先级。先查询的优先级就高,后查询的优先级就低,只要改变查询次序,就可以改变中断源的中断优先级。软件查询法的主要优点是节省硬件,电路简单,程序设计灵活,优先级调整方便,缺点是每次响应中断后,都要从优先权最高的中断开始询问,外设中断源越多,查询的时间就越长,而且各个中断源的服务响应时间也是不同的,造成优先级别低的中断源实时处理性差。(2)硬件排队法基本思想:用

17、硬件判优逻辑电路来确定申请中断中的最高优先级,系统中各中断源的优先级别是由它们在判优电路中的位置决定的。硬件排队法的优点在于中断响应速度炔,并且各不同设备,无论它排在链头还是链尾,它的响应时间是相同的。缺点是增加了硬设备,电路设计复杂。,中断响应,响应中断条件:(l)外部设备有中断请求。(2)CPU自身允许中断。(3)没有更高级的中断正在被服务。CPU对有些事情的处理是禁止被打扰的,比如DMA操作等。(4)CPU在每条指令结束后响应中断。CPU不能在指令执行的中间响应中断,而是在每条指令的最后一个T状态采样中断请求线,如果有中断请求并且满足响应条件的话,将发出中断响应信号。CPU一旦响应中断,

18、将在中断响应周期中完成一些必要的操作,这些工作是由硬件自动完成的,无需人工介入。(1)关中断。内部自动实现关中断,禁止在中断响应期间受到外部干扰。(2)保护断点。是指保护断点的地址,也就是中断发生时在程序计数器中保存的下一条指令的地址。保护断点的目的是执行完中断服务程序后能返回到该地址继续运行原程序。(3)将中断服务程序的入口地址送入程序计数器,从而实现转入相应的中断服务程序。不同的CPU有不同的转入方法。,中断服务,中断服务就是指执行中断服务程序,包括三个部分:保护现场、中断处理和恢复现场。保护现场是进入中断服务程序后首先要做的工作。主程序中要用到寄存器,中断服务程序中也要用到寄存器,而CP

19、U中的寄存器又是有限的,所以保护现场的目的就是将有关的寄存器内容压入堆栈保存起来。所谓有关的寄存器是指中断服务程序中使用的那些寄存器,将这些寄存器的内容保存起来,也就保存了主程序断点处的工作环境,以后即使改变了这些寄存器的内容也没关系,因为断点处的工作环境已经被保存下来,随时都可以恢复。保护现场一般使用PUSH指令。中断处理是中断服务程序中的核心工作。它实质性地完成CPU与外设之间的输入或输出操作,有时也包括内存地址的修改,计数值的修改等等。恢复现场的目的就是恢复主程序断点处的工作环境,这个环境是在保护现场工作中保存起来的,一般使用POP指令来完成。,中断返回,中断返回是中断过程的最后一个环节

20、,它是由中断返回指令(IRET)来实现的,其目的在于将断点地址返回到程序计数器,由于计算机总是按照程序计数器的地址取指令执行程序,所以CPU自然从断点地址开始继续执行原程序。需要说明的一点是,CPU在响应中断时已经在其内部自动实现了关中断(禁止中断),其目的是在中断响应过程中,保护断点,转入中断服务程序等工作不受其它中断源的干扰,但由于关了中断,使得在整个中断服务过程中不能再响应其他的中断,也就是不能实现中断嵌套。而如果不在中断服务程序返回之前,或在主程序循环体中重新开中断的话,那么系统就不可能再响应任何可屏蔽的中断请求。显然,为了实现中断嵌套,一定要在中断服务程序中开始的部分安排开中断指令;

21、为了实现连续的中断,最好在中断返回指令之前安排一个开中断指令。,8088的中断系统,8088具有强大的中断处理功能,它可以处理256种不同类型的中断,类型号为0255。,内部中断和外部中断,1外部中断外部中断是由CPU外部引起的中断,需要外设产生一个信号来通知CPU,包括非屏蔽中断NMI和可屏蔽中断INTR。非屏蔽中断NMI不能被禁止,它只要产生就必须响应,不受CPU的中断允许触发器IF的控制,其中断号为2,一般用于最急迫的事情。它的优先级高于INTR。可屏蔽中断INTR受CPU的中断允许触发器IF的控制,可由指令来实现控制:STI使IF=1允许中断,CLI使IF=O禁止中断。2内部中断内部中

22、断是由CPU状态的改变或执行中断指令而产生的中断,它不受IF的控制,主要用于功能调用、程序调试和意外情况处理。内部中断包括四类:除法错中断、单步中断、溢出中断、软件中断。各类中断源的优先级别由高到低的顺序依次为内部中断、NMI、INTR、单步中断。,中断向量表,中断向量表是中断服务程序的入口地址表。每个中断服务程序的入口地址都有2个字节的段地址和2个字节的段内偏移量共4个字节组成,共有256个中断源,所以中断向量表共占用2564=1024字节空间,并且从存储器地址的最低端开始存放(即地址00000H003FFH)。内部中断与外部中断的主要区别在于:1外部中断需要从数据总线上读取中断类型码,而内

23、部中断的中断类型码是指令的一部分。2外部中断受中断允许触发器IF的控制,而内部中断不受IF的控制。3内部中断的优先级别比外部中断要高(除单步中断以外)。,8088系统采用中断方式的程序结构(1),STACKSEGMENT STACK DW 100H DUP(?)STACK ENDSDATA SEGMENTINT_SEG DW?;保存中断向量段地址INT_OFF DW?;保存中断向量偏移地址DATA ENDS;CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART PROC FAR PUSH DS XOR AX,AX POSH AX MOV AX,DA

24、TA MOV DS,AX MOV AL,n;指定类型号为n MOV AH,35H INT 21H;取中断向量送到ES:BX,MOV INT_SEG,ES MOV INT_OFF,BX;保护ES:BX CLI;设置中断向量必须关中断 MOV AL,n MOV AH,25H;重新设置n MOV DX,SEG INTP MOV DS,DX MOV DX,OFFSET INTP;将INTP设置在n上 INT 21H STI;设置完毕后打开中断;主体程序 CLI;恢复中断向量前必须关中断 MOV AL,n MOV AH,25H MOV DX,INT_SEG MOV DS,DX MOV DX,INT_OF

25、F INT 21H;恢复原中断向量 RETSTART ENDP,8088系统采用中断方式的程序结构(2),INTP PROC FAR STI;允许中断嵌套 PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP PUSH ES PUSH DS;保护现场;中断处理 MOV AL,20H OUT 20H,AL;8259中断返回,发EOI,8088系统采用中断方式的程序结构(3),POP DS POP ES POP BP POP DI POP SI POP DX POP CX POP BX POP AX;恢复现场 IRFT;中断返回INTP E

26、NDPCODE ENDS END START;从START处执行程序 程序中使用了DOS系统功能调用,其中35H功能是取中断向量,入口AL=中断类型号,出口ES:BX=中断程序入口地址。另一个25H功能是设置中断向量,入口AL=中断类型号,DS:DX=中断程序入口地址。,8088系统采用中断方式的程序结构(4),直接存储器存取(DMA)方式,所谓DMA传送方式(即直接存储器存取方式)是一种不需要CPU干预也不需要软件介入的高速数据传送方式。CPU只是启动DMA过程,但是丝毫不干预这一过程,整个DMA过程是由硬件自动完成的,也不需要软件的介入。在DMA控制器的控制下,外设和存储器利用数据总线直接

27、进行数据交换。这样,数据的传送速度就取决于存储器的存取时间,故数据传送速率大大提高。DMA控制器除控制存储器与外设之间的数据传送之外,还可以控制存储器与存储器之间的数据传送。在DMA控制系统中,在没有进行DMA传送时,CPU作为系统中核心设备管理和使用三条总线(AB、DB、CB)进行数据的传送和处理,而DMA控制器仅作为CPU的一般外部设备,CPU可对它进行一般的I/O操作和初始化等工作。当需要进行DMA传送时,则DMA控制器成为系统中的核心设备,换句话说,DMA控制器必须接管CPU对三条总线的管理和使用权,代替CPU的位置,由DMA控制器发出地址和控制信号,完成存储器和外设之间的数据传送。,

28、2.4 中断控制器8259A,8259A的主要功能为:1具有8级优先权控制,通过芯片级联可扩展至64级优先权控制。2每一级中断均可通过编程屏蔽或允许。3在中断响应周期可提供相应的中断类型号。4有多种工作方式,可通过编程选择。5可与CPU直接连接,不需外加硬件电路。,8259A的内部结构,8259工作过程,(1)某一条或几条中断请求线(IROIR7)有中断申请,变为高电平,使中断请求寄存器IRR的相应位置“1”。(2)IMR对IRR屏蔽。未被屏蔽的请求信号经优先权电路判别最高优先级,再经由优先级方式确定没有更高级优先权的中断,则8259A的INT端输出为“1”,向CPU提出中断请求。(3)CPU

29、响应中断后发出中断响应信号。在中断响应过程中,CPU要发出两次INTA信号。当8259A收到第一个INTA信号后,ISR中当前被选中的最高优先级对应的那一位置“1”,同时IRR中的相应位被清“0”,表示该位上的中断请求已被CPU所接受。(4)8259A收到第二INTA信号后,驱动数据总线将对应的中断类型码输出。(5)如果是自动结束中断方式(AEOI),则在第二个INTA脉冲结束时将ISR中相应置“1”的位复位,否则该位的“1”将一直保持,直到CPU发出EOI命令为止。,8259A的工作方式,中断控制器8259A有:四种主要的工作方式:全嵌套、循环优先级、特定屏蔽和程序查询方式;四种从属的工作方

30、式:中断结束方式、读状态、中断请求触发方式和缓冲器方式。两大工作类型,即单片工作和多片级连工作。两种命令,一种是初始化命令,另一种是操作命令,它们用于控制8259A的中断管理。,全嵌套方式,这是一种最普通的工作方式。8259A在初始化工作完成后若未设定其它的工作方式,就自动进入全嵌套方式,这种方式的特点是:(1)中断请求的优先级固定,其顺序是IR0最高,逐次减小,IR7最低。(2)中断服务寄存器ISR保存优先权电路确定的优先级状态,相应位置“1”,并且一直保持这个服务“记录”状态,直到CPU发出中断结束命令为止。(3)在ISR置位期间,不再响应同级及较低级的中断请求,而高级的中断请求如果CPU

31、开放中断的话仍能够得到中断服务。(4)IR7IR0的中断请求输入可分别由中断屏蔽寄存IMR的D7D0的相应位屏蔽与允许,对某一位的屏蔽与允许操作不影响其它位的中断请求操作。全嵌套工作方式由ICW4的D4=0来确定。,循环优先级方式,包括两种:自动循环优先级方式和特殊循环优先级方式。(1)自动循环。各设备优先级相同,当某一个设备受到服务之后,它的优先级就自动地排到最后。IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7自动循环优先级方式由OCW2的R=1、SL=0来确定。(2)特殊循环。特殊循环优先级方式与自动循环优先级方式的不同之处在于:在自动循环优先级方式中,某一设备在被服务之后

32、被确定为最低优先权;而在特殊循环优先级方式中,是通过编程来确定某一设备为最低优先级。特殊循环优先级方式由OCW2的R=1、SL=1来确定,而L2L1L0用于指定最低优先级的二进制编码。,特定屏蔽方式,IMR的相应位为“1”则屏蔽,相应位为“0”则允许。IMR寄存器由操作命令OCW1进行设置。对中断请求输入信号的屏蔽方式一般有两种:正常屏蔽方式和特定屏蔽方式。在正常屏蔽方式中,每一个屏蔽位对应一个中断请求输入信号,屏蔽某一个中断请求输入信号对其他请求信号没有影响。未被屏蔽的中断请求输入信号仍然按照设定的优先级顺序进行工作,而且保证当某一级中断请求被响应服务时,同级和低级的中断请求将被禁止,如果C

33、PU允许中断,则高级的中断请求还会被响应,实现中断嵌套。特定屏蔽方式也叫特殊的中断屏蔽方式,当设定了特定屏蔽方式后,IMR中为“1”的位仍然屏蔽相应的中断请求输入信号,但所有未被屏蔽的位被全部开放,无论优先级别是低还是高,都可以申请中断,并且都可能得到CPU的响应并为之服务,也就是说,这种方式抛弃了同级或低级中断被禁止的原则,任何级别的未被屏蔽的中断请求都会得到响应,所以,可以有选择地设定IMR的状态,开启需要的中断输入。特定屏蔽方式由OCW3的ESMM和SMM确定,设定时ESMM=1、SMM=1,复位时ESMM=1、SMM=0。,程序查询方式,程序查询方式是不使用中断,用软件寻找中断源并为之

34、服务的工作方式。查询时,CPU先向8259A发出查询命令,8259A接到查询命令后,就把下一个IN指令(对偶地址端口的读指令)产生的读脉冲作为中断响应信号,此时,若有中断请求信号,则在ISR中相应位置“1”,并把该优先级送上数据总线。在读脉冲期间8259A送上数据总线供CPU读取查询的代码格式为:D7 D6 D5 D4 D3 D2 D1 D0 I是中断请求标志,I=1表示有中断请求,此时W2W1W0有效,W2W1W0就表示申请服务的最高中断优先级。I=O表示没有中断请求,此W2W1W0无效。例如读入的查询代码是83H,则表示有中断请求,申请中断的优先级输入是IR3。查询方式是由OCW3的P=1

35、来确定的。,中断结束方式,所谓中断结束方式是指中断如何结束的方法,这里的“结束”不是指中断服务程序的结束,中断服务程序的结束用IRET指令就可完成,这里的“结束”是指如何和何时使8259A中的ISR中的相应位清零。ISR中某位为“1”,表示CPU正在为之服务;某位为“0”表示CPU已经停止(结束)为之服务。而IRET指令主要是恢复程序的断点,它并不能使ISR的相应位清零。8259A的中断结束方式有两种:命令中断结束方式(EOI)和自动中断结束方式(AEOI)。(l)自动结束。(2)命令结束。非特殊EOI命令 特殊EOI命令,读8259A状态,读8259A的状态是指读8259A内部的IRR、IS

36、R和IMR的内容。(1)读IRR。先发出OCW3命令(使RR=1、RIS=0,地址A0=0),在下一个脉冲时可读出IRR,其中包含尚未被响应的中断源情况。(2)读ISR。先发出OCW3命令(使RR=1、RIS=1,地址A0=0),在下一个脉冲时可读出ISR,其中包含正在服务的中断源情况,也可看中断嵌套情况。(3)读IMR,不必先发OCW3,只要读奇地址端口(A0=l),则可读出IMR,其中包含设置的中断屏蔽情况。,中断请求触发方式,8259A的中断请求寄存器IRR中有8个中断请求触发器,分别对应8个中断请求信号的输入端IR0-IR7,这些触发器的触发方式有两种,即边沿触发和电平触发。(1)边沿

37、触发。当输入端有从低电平到高电平的正跳变时,则产生中断请求(IRR中相应位的触发器被触发置“1”,而不是直接向CPU申请中断)。此后,即使输入端仍然保持高电平也不会再产生中断。也就是说,只有正跳沿才能产生中断。边沿触发方式由ICW1的LTIM=0确定。(2)电平触发,当输入端产生高电平时产生中断请求。只要高电平就可以,不需要脉冲跳变。但需要注意的是,在电平触发方式下,在发出EOI命令以前,或CPU开放中断以前,必须去掉中断请求信号(使其变为低电平),否则将产生第二次中断。电平触发方式由ICW1的LTIM=1确定。,缓冲器方式,所谓缓冲器方式就是在8259A和数据总线之间挂接总线驱动器的方式,如

38、图2.4.2所示,既然挂接了总线驱动器(即总线缓冲器),那么在进行数据操作时就必须使之开启,并符合数据传送方向。因此,在缓冲器方式下,引脚将使用功能,并使之输出一个有效低电平,开启缓冲器工作。该方式多用于级联的大系统。缓冲器方式由ICW4的BUF=1确定。,特殊的全嵌套方式,该方式适用于多片级连,且必须将优先级保存在各从片8259A中的大系统。该方式与普通的全嵌套方式工作情况基本相同,区别在于两点:(1)当某从片的一个中断请求被CPU响应后,该从片的中断仍未被禁止(即没有被屏蔽),即该从片中的高级中断仍可提出申请(全嵌套方式中这样的中断是被屏蔽的,因为这种中断对从片而言后者是高级中断,可以嵌套

39、,但对主片而言,由于它们来自于同一个从片,故中断优先级相同,而在全嵌套方式中,同级和低级中断是被禁止的)。(2)在某个中断源退出中断服务程序之前,CPU要用软件检查它是否是这个从片中的唯一中断。检查办法是:送一个非特殊中断结束命令(EOI)给这个从片,然后读它的ISR,检查是否为0,若为0则唯一,即只有这一个中断在被服务,没有嵌套。若不为0则不唯一,说明还有其他的中断在被服务,该中断是嵌套在其他中断里的。只有唯一时,才能把另一个非特殊EOI命令送至主片,结束此从片的中断。特殊的全嵌套方式由ICW4的SFNM=1确定。,多片级连方式,在级连系统中,每个从片的中断请求输出线INT直接连到主片的某个

40、中断请求输入线上,主片的CAS0CAS2是输出线,输出被响应的从片代码,从片的CAS0CAS2是输入线,接收主片发出的从片代码,以便与自身代码相比较。级联方式的要点如下:(1)一个8259A主片至多带8个从片,可扩展至64级。(2)缓冲方式下,主片和从片的设定由ICW4的M/S位确定,M/S=1是主片,M/S=0是从片。M/S的状态在BUF=l时有意义。(3)在非缓冲方式下,主片和从片由引脚的功能确定,=1是主片,=0是从片。(4)在级连系统中,主片的三条级连线相当于从片的片选信号,从片的INT是主片的中断请求输入信号。(5)主片和从片需要分别进行初始化操作,可设定为不同的工作方式。级连方式由

41、ICW1的SNGL=0确定。,8259A的编程,8259A内部有7个寄存器,分为两组:初始化命令寄存器组和操作命令寄存器组。初始化命令寄存器组包括4个寄存器:ICW1ICW4对应的寄存器。操作命令寄存器组包括3个寄存器:OCW1OCW3对应的寄存器。由于8259A只有一条地址线A0,所以它只能有两个端口地址,而8259A有7个命令字,每个命令字要写入相应的寄存器。为此,采取以下几点措施:第一,以端口地址区分;第二,把命令字中的某些位作为特征码来区分;第三,以命令字的写入顺序来区分。,ICW控制字(1),ICW控制字(2),OCW控制字,2.5 DMA控制器8237A,DMA控制器占用总线有三种

42、方式:1CPU停机方式在这种方式中,当DMA操作时,CPU释放总线,暂时放弃对总线的控制权,即暂时脱离总线,处于“浮空”状态。这种方式可进行单字节或多字节传送,但降低了CPU的利用率,影响CPU对中断的响应,以及对动态存储器的刷新。2周期扩展周期扩展实质上就是延长CPU的时钟周期,让CPU的工作速度减慢,从而使DMA操作。这种方式也是迫使CPU“停止”工作的方式。该方式使用专门的时钟发生器,在DMA操作期间,启用二套时钟系统:扩展时钟(周期延长的时钟)给CPU,正常时钟给DMA,CPU在扩展时钟内操作不往下进行,扩展时钟结束后(此时DMA操作也已完成)再继续进行。这种方式降低了CPU的速度,并

43、由于时钟周期加宽(扩展)有限,故一次只能传送一个字节。3周期窃取这种方式的基本思想是:当CPU不使用总线时进行DMA操作。一般来说,一个CPU在工作时总有一些时间不使用总线,比如在取完指令操作码后,CPU要进行指令译码,或内部进行算逻操作等,CPU均不使用总线,DMA控制器可在这些时间接管总线,控制DMA操作。这种方式不影响CPU工作,但需要有专门的硬件来识别可用周期,识别电路比较复杂,而且数据传送不连续,也不规则,因而使用不多。,8237A功能,8237A主要功能:1在一片内有4个独立的DMA通道。2每个通道的DMA请求可分别编程允许或禁止。3每个通道有两种优先级:固定优先级和循环优先级,由

44、编程决定。固定优先级的顺序是通道0最高,依次是通道1,通道2和通道3。4可在外设与存储器,存储器与存储器之间传送数据,存储器地址寄存器可以加1或减1。5可由软件编程改变DMA读写周期长度。6有四种工作方式:(1)单字节传送方式(2)数据块传送方式(3)请求传送方式(4)级连方式7可以多片级连,扩展通道数。8DMA操作结束有两种方法:一是字节计数器减1由0变为FFFFH;二是外界通过输入负脉冲,强制DMA操作结束。9DMA操作启动有两种方法:一是外设输入DMA请求信号DREQ;二是通过软件编程从内部启动。,8237A的内部结构,寄存器组,8237A芯片内部共有12种寄存器,它们的名称和个数如下:

45、基地址寄存器 16位4 基字节数计数器 16位4 当前地址寄存器 16位4 当前字节数计数器 16位4 方式字寄存器 6位4 暂存地址寄存器 16位1 暂存字节数计数器 16位1 状态寄存器 8位1 命令寄存器 8位1 暂存寄存器 8位1 屏蔽寄存器 4位1 请求寄存器 4位1,8237A端口地址,8237A的工作方式,DMA控制器8237A的几种工作方式,包括主从模态、传送方式、传送类型、优先级编码、工作周期、读写时序、自动初始化方式、存储器到存储器的传送等。,主从模态,DMA控制器既可以作为I/O端口接受CPU的读写操作,也可以代替CPU占有总线,控制外设与存储器之间传送数据,它充分体现了

46、DMA控制器的两大特性,即总线的主控性和总线的从属性,按这两大特性,它也就有两种工作模态:主态方式和从态方式。(1)主态方式在主态方式时,DMA控制器是总线的控制者,此时,它如同CPU一样,掌握总线的控制权,可对涉及的外设端口或存储器单元进行读写操作。(2)从态方式在从态方式时,CPU是总线的控制者,而DMA控制器不过是普通的一个外部设备,有若干个端口而已,它的地位同一般的I/O接口芯片是一样的。,传送方式,4种传送方式:单字节传送,数据块传送,请求传送、级连方式(l)单字节传送方式单字节传送方式时,一次只传送一个字节,然后释放总线。若又有外设DMA请求,8237A再向CPU发下一次总线请求H

47、RQ,获得总线控制权后,再传送下一个字节数据。(2)数据块传送方式数据块传送方式时,响应一次DMA请求,将完成设定的字节数的全部传送。当字节数计数器减l由0变为FFFFH时,产生TC有效信号,使8237A将总线控制权交还给CPU从而结束DMA操作方式,外部有效的信号也可以终结DMA传送。(3)请求传送方式请求传送方式又称查询方式,类似数据块传送,但每传送一个字节后,检测DREQ状态,若无效则停止,若有效则继续DMA传送(4)级连方式 这种方式允许连接一个以上的芯片来扩展DMA通道的个数。其连接方法是将扩展的DMA芯片的HRQ和HLDA分别连到主片的某个通道的DREQ和DACK。当主片接到扩展芯

48、片的DMA请求并响应后,它仅发出DACK应答,其它的地址信号与控制信号一律禁止,由扩展芯片控制DMA传送。,传送类型,DMA系统无论是工作在单片方式,还是多片级连,也不管采用单字节传送,数据块传送,请求传送中的哪种传送方式,都可以对每个通道的方式字寄存器进行设置,采用DMA读,DMA写,DMA校验等三种不同的传送类型。(1)DMA读8237A输出有效的 和 信号,把存储器的数据读到I/O设备。(2)DMA写8237A输出有效的 和 信号,把I/O设备的数据写到存储器。(3)DMA校验这是一种伪传输,实际上是校验8237A芯片内部的读写功能。在这种传送类型中,8237A芯片的操作如同DMA读和D

49、MA写一样,产生地址信号以及对响应等,但对存储器和I/O设备的控制线(,)均处于无效状态,禁止实际传送。,优先级编码,8237A芯片可设定为两种优先级编码:固定优先级和循环优先级,这两种优先级编码我们已作介绍。固定优先级中4个通道的优先级顺序是固定的,DREQ0最高,DREQ3最低。循环优先级中4个通道的优先级顺序是可变的,但其变化仍有一定的规律。当某一个通道申请DMA请求并被响应服务后,它就被指定为最低优先级,它的下一级就成为最高优先级。值得注意的一点是,无论在任何情况下,DMA请求禁止嵌套服务。当一个通道的DMA请求被响应并服务后,其它3个通道的DMA请求将都被禁止,无论它们的优先级是高还

50、是低。优先权排队只在DMA响应之前有效,DMA响应之后则无效。,工作周期,两类工作周期:空闲周期和操作周期。全部工作周期分为7种时钟状态(时钟周期):空闲状态SI、起始状态S0、传送状态S1、S2、S3、S4以及等待状态SW。(1)空闲周期在没有DMA请求时,8237A就处于空闲周期,执行连续的空闲状态SI。在空闲周期内,每个SI状态都要进行两种检测:检测有无信号 检测有无DREQ信号(2)操作周期8237A在空闲周期内检测出DMA请求DREQ有效后,便进入操作周期(有效周期),操作周期有6种状态。S0起始状态 S1工作状态1 S2工作状态2 S3工作状态3 S4工作状态4 SW等待状态,82

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号