微机原理第6章-3学分_第1页
微机原理第6章-3学分_第2页
微机原理第6章-3学分_第3页
微机原理第6章-3学分_第4页
微机原理第6章-3学分_第5页
已阅读5页,还剩79页未读 继续免费阅读

下载本文档

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

文档简介

1、第六章输入/输出方式与接口芯片第一节输入/输出方第二节中断第三节可编程定时/计数器8254及其应用第四节可编程并行I/O接口芯片8255A及其应用第五节可编程中断控制器8259及其应用第一节输入/输出方式教学目标介绍I/O接口的基本概念介绍I/O端口的编址方式介绍CPU与外设间的数据传送关系学习要求掌握I/O接口的基本功能,了解接口的一般结构熟悉I/O端口的编址方式,了解IN/OUT指令的执行过程掌握微机与外设的各种传送方式,了解DMA传送过程一、I/O接口1)I/O接口的基本概念 I/O接口是连接CPU与外设的逻辑控制部件,它主要在CPU与外设间起着传输状态与命令信息,实现数据的缓冲、数据格

2、式转换等作用。它的主要功能有: 选择外设对外设进行控制和监视进行数据格式转换 进行信号电平转换I/O接口的分类并行I/O接口和串行I/O接口可编程接口和不可编程接口专用接口和通用接口2)I/O接口的基本结构主要包含有数据端口、状态端口和控制端口数据端口用于存放数据信息,包括数据输入寄存器和数据输出寄存 器,主要作用是协调CPU和外设之间的数据传输速度。控制端口用于存放控制信息,控制信息是CPU通过接口传送给外设的,其主要作用是控制外设工作,如控制输入输出装置的启/停等。状态端口用于存放状态信息,即反映外设当前工作的状态信息, CPU可通过读取这些信息,了解外设当前的工作情况。3)I/O端口的寻

3、址方式在一个微机系统中既有存储单元地址又有I/O端口地址,根据两 者地址的不同安排可分为以下两种寻址方式。存储器统一编址在这种方式中,把I/O端口作为存储器的一个单元来对待,即每个端口占用一个存储单元地址。此时,对I/O端口操作可以使用全部的存 储器指令,而不必另设专门的I/O指令。由于该方式是将I/O地址映射到 了存储器地址空间,所以也称为存储器映像方式。I/O端口独立编址在这种方式下,I/O端口与存储器各自独立编址,这样存储器地址和I/O端口地址可以重叠。此时,CPU利用专门的I/O指令来操作I/O端口以防混淆。4)IN/OUT指令的执行过程 N指令的执行过程指令格式:INAL,(端口地址

4、)端口地址送上A15A0执行过程:M/IO为低,W/R为低,使选中的端口将数据送上DBCPU采样DB,获取数据例1一组开关状态的检MOVDX,210H74LS244 +5VINAL,DX接数据总线DBYAK0YENAK1Y ENAK2Y ENAK3Y ENAK4Y ENAK5Y ENAK6ENK7D7210H IORYEN三态缓冲器M/IOW/RIOROUT指令的执行过程指令格式:OUT(端口地址),AL端口地址送上A15A0执行过程:欲送至端口的数据送上数据总线M/IO为低,W/R为高,将数据锁入端口例2利用微机控制发光二极管LED的状态74LS273D0DCLKD0DCLKQLED0RDQ

5、CLKLED1RDQCLKDQCLKLED2RLED3RDLED4RQ CLKDLED5CLKQRDQCLKLED6D7DQCLK 八D锁存器LED7MOVRRDX,212HM/IOMOVAL,00HIOWW/ROUTDX,AL数据总线212H IOW例3利用开关Ki 控制小灯LEDi 的状态设开关Ki 闭合,小灯LEDi 亮开关Ki 断开,小灯LEDi 灭START:INAL,90HNOTAL OUTJMPSTART或:+5VR K0 K1 K7R74LS244RDRA0AA0A1Y0Y1 A7END774LS273数据数据总线START:MOVDX,90HINAL,DXRLED0 D0D1

6、Q0Q1RLED1 D0D1Q0Q1NOTINCDX+5V CLKD7Q7RLED7 CLKD7Q7OUTDX,ALJMPSTART91H IOW二、CPU与外设之间的数据传送方式在CPU控制、直接存储器存取(Direct MemoryAccessDMA)传送方式和I/O 处理机方式。无条件传送方式适用于随时都是准备就绪的简单外设。接口电路中仅需数据端口。查询方式 适用于CPU与慢速的外设间的数据传送。读外设状态查询式接口电路一般有:中断控制方式适用对象同程序查询方式N准备好?Y数据输入/ 输出该方式下,微机与外设并行工作,外设有请求时,微机对其进行服务,否则不对该外设进行任何操作。这样可大大

7、提高CPU的利用率。DMA方式在主存与外设间建立直接数据通道,进行数据传送。特点:传送过程不需CPU干预,速度快。其传送过程受专用硬件DMAC控制无条件、查询、中断均属于程控式,而DMA方式是非程控方式。区别如下:程控CPUMOVMOVINM直接通道DMAC联络OUT外设5.I/O处理机传送方式该方式中,IOP处理机用自己专门的指令和程序,负责输入输出。 此时主CPU将只负责“数据处理”工作。第二节中断教学目标介绍中断的有关基本概念学习要求了解什么是中断及中断类型了解什么是中断向量,熟悉中断向量表的设置方式 了解中断响应的条件及中断响应的过程了解多中断源时的中断识别与管理方法一、中断的基本概念

8、什么是中断 在CPU正常运行程序时,由于内部或外部某个非预料事件的发生,使CPU暂停正在运行的程序,而转去执行处理引起中断事件的程序,然后再返回被中断了的程序,继续执行。这个过程就是中断。CPU执行流程非预料事件1中断服务程序1中断服务程序 2中断源与中断向量表中断源能够引发CPU中断的信息源,称为中断源。80X86微机系统中最多允许有256种中断源,其中中断源类型编号为0255。按中断源的性质可以把中断分为内中断和外中断两类。内中断(软中断)指CPU执行某些特殊操作或由INT指令引起的中断,通常分为以下三类: 除数为零或OF=1时执行INTO指令引起使用调试程序中的单步或断点设置操作引起执行

9、INTn 指令引起外中断(硬中断)指外部芯片通过CPU的INTR、NMI两条外部中断请求输入线向CPU申请中断请求而引起的中断。 非屏蔽中断它通过CPUNMI引脚产生,当NMI上有正跳变信号时,即产生一个内部引导的类型2中断。即NMI引脚上的中断请求不受IF标志的控制,IF不能屏蔽NMI引脚上的中断请求。可屏蔽中断它是通过CPU的INTR引脚产生,当INTR上有高电平信号且中断允许标志位IF置“1”时即产生中断。CPU是否响应INTR引脚上的中断请求取决于IF标志: IF=1,CPU响应INTR引脚上的中断请求IF=0,CPU不响应INTR引脚上的中断请求即当IF=0时,将INTR引脚上的中断

10、申请屏蔽。中断向量表在实模式下,中断向量表就是中断服务程序入口地址。:0200h:0200h3000h: MOVAX,ADDAX,DX0:MOVDI,AX: MOV:IRET:0: 00000: N40: N4+23FFH中断向量表0:0 0:3FFH某中断源发申请中断,申请执行类型号为N的中断子程1000:150h3000:200h内存类型N中断子程(IP)=0200h堆栈0150100001501000(F)响应中断后SS:SP响应中断前SS:SP0: 00000: N40: N4+21000:150h:0200h3000h:MOVAX, 0 ADDAX, DX MOVAX、:从中断子程返

11、回断点处,靠的是执行中断子程最后的指令IRET;从堆栈中取出断点地址给CS:IP,继续执行被中断的程序。故中断子程最后要安排IRET指令。堆栈0150100001501000(F)IRET后3000:200h:MOVBX,CX:SS:SP(IP)(CS)(F)IRET:SS:SP内存中断向量表的设置 当CPU响应中断时,将从中断向量表中读取中断向量送给CS和IP,转去执行中断服务程序。因此,用户必须将中断服务程序的 入口地址填入系统的中断向量表中,填入的方法有两种。 用程序设置中断向量表假设中断类型号为32H,中断服 务 程 序 入 口 处 的 标 号 为INTSUB。CLIMOVAX,0 M

12、OVES,AX MOVLEAAX,INTSUBCLD STOSWMOVAX,SEG INTSUBSTOSWINTH:中断优先级与中断嵌套中断优先级当有多个中断源同时产生中断申请时,CPU先响应优先权最高的中断源,再响应优先级较低的中断源。中断嵌套当多个中断源同时发出中断请求时,CPU按照中断优先权的高低顺序,依次响应。这种中断套中断的过程称为中断嵌套。中断嵌套可以有多级,具体级数原则上不限,主要取决于堆栈区的大小(因为中断处理前后均需要保护断点和现场,而断点信息和现场数据的保护是通过堆栈来完成的)。CPU响应中断的条件 CPU内部中断是开放的。现行指令内无总线请求,没有更高优先级别的中断请求正

13、在被响应或正发出、正挂起。CPU在现行指令结束后,即运行到最后一个机器周期的最后一个T状态时,才能采样INTR线而响应可能提出了的外中断请求。中断处理过程内中断处理过程 CPU自动产生中断类型号n;(SP)-2(SP),标志寄存器F内容入栈;(SP)-2(SP),当前代码段CS内容入栈;(SP)-2(SP),当前指令计数器IP内容入栈;禁止外部中断IF0,禁止单步中断TF0;从中断向量表中取中断服务程序入口地址(4*N单元的字内容送IP, 4*N2单元里的内容送CS);转中断服务程序;执行中断服务程序并返回,弹出IP,CS,F,返回断点,继续执行。外中断(INTR)执行过程 CPU发出两个中断

14、响应信号INTA,第二个INTA时,CPU从当前数据总线上取中断类型码N(通常由管理INTR的控制器8259A提供);(SP)-2(SP),标志寄存器F内容入栈;(SP)-2(SP),当前代码段CS内容入栈;(SP)-2(SP),当前指令计数器IP内容入栈;禁止外部中断IF0,禁止单步中断TF0;首先从中断向量表中取4*N单元的字内容送IP,然后再取4*N2单元里的内容送CS;转中断服务程序;执行中断服务程序并返回,弹出IP,CS,F,返回断点,继续执行。多中断源的中断源识别与优先级管理菊花环(或称为链式)排队电路第三节可编程定时器/计数器8254及其应用教学目标介绍定时器/计数器的基本概念介

15、绍可编程定时器/计数器芯片8254学习要求了解定时器/计数器的基本工作原理熟悉8254的主要功能、基本结构及工作过程掌握8254的使用方法一、概述微机系统实现定时功能,主要有三种方法:软件定时、不可编程硬件定时和可编程硬件定时。软件定时是通过执行一个固定的程序段来实现定时。由于CPU执行每条指令都需要一定时间,因此执行一个固定的程序段就需要一个固定的时间。定时或延时时间的长短可通过改变循环次数来控制。不可编程的硬件定时常采用中小规模集成电路实现。如使用555 定时器等,硬件定时方案不占用CPU时间,但电路连接好后,定时值就不能改变。可编程硬件定时用可编程定时器/计数器来实现,本节主要介绍IBM

16、 PC系列微机使用的Intel 8254可编程定时器/计数器。二、8254的内部结构和引脚功能计数器0、1、2的内部结构16位初值寄存器由CPU 分两次写入16位减1计数器:在CLK的作用下,对 计数初值N进行减当减为0时,在OUT 引脚上产生回零时到信号 16位锁存器其值随减1计数器改变而改变三、8254接口设计CBCBA输出为0000Y0001Y1010Y2011Y3100Y4101Y5110Y6111Y7G1Y0G1Y0Y1G2AY2G2BY3 Y4CY5BY6AY7 允许选择输出端只有在G1=1且G2A=0且G2B=0时,该芯片才能工作。在任何时候,8个输出只能有一个可以为低电平,其余

17、全为高电平。根据选择输入端C、B、A的不同状态组合,确定哪一个输出引脚变为低电平。Y7Y7Y0Y1G1G2B C B A地址:地址:210H21FHA8CSA7 A6 A5 A4Y7YY7Y0Y1G1G2B C B A地址:0C0H0CFHA6A4CSA9 A8 A5 A7Y3G1Y3G1G2B C B AA9 A8A7 A3 A2A1 A0IOR IOWD08D7地址:20CH地址:20CH20FHCSGATE0CLK0A1OUT0A0GATE1CLK1RDOUT1WRD0GATE2CLK2D7OUT2四、8254的工作方式五、8254的编程方式控制字计数初值(N)定时时间T= CLK时钟周

18、期tCL计数初值(N)计数时:计数初值N即为所需脉冲数例:选计数器通道0为计数方式,每计50个脉冲中断一次;计数器通 道1为定时方式,定时时间为20ms(设CLK1 引入的时钟频率为2MHZ),请编制出有关的初始化程序。 通道0的方式控制字通道0的计数初值通道1的计数初值通道1(只读/写低字节、方式2、BCD计数00010101BN=50D20ms=0.5sN N=20ms/0.50 11 10 1 00 B初始化程序如下:MOVDX,20FH;计数器0初始MOVAL,00010101BOUTDX,ALMOVDX,20CH;计数器0送TCMOVAL,50HOUTDX,ALMOVDX,20FH;

19、计数器1MOVAL,01110100BOUTDX,ALMOVDX,20DH;计数器1送TCMOVAX,40000DOUTDX,AL;先写低字节MOVAL,AHOUTDX,AL;后写高字节六、计数器量程的扩展例如:在时钟频率为2MHZ前提下,要求利用8254某通道完成1秒 钟的定时16位计数器,TC的最大值为:0(65536次最大定时时间为TT=655360.5us33ms1s 定时1s所需的时间初值为TC=1s/0.5us=1106/0.5 = 2000000D 软件法设置中断次数计数器CSGATE0GATE1CSGATE0GATE1A1A0CLK0OUT0RDWR D0CLK1OUT1D7通

20、道0定时20ms中断一次中断次数计数器计50次即1s82545V时钟信号系统总线此时,通道0定时20ms通道1计数50次可完成1s定时!第四节可编程并行I/O接口芯片8255及其应用教学目标介绍并行与串行接口的基本概念介绍可编程并行接口芯片8255A学习要求了解并行与串行接口的基本功能熟悉并行接口8255A的主要功能、基本结构及工作过程掌握8255A的使用方法一、概述并行/串行接口概念按数据传送方式划分,I/O接口只有两种:并行接口:多位数据同时传送。又分字并行和字节并行两种(字节与字节间串行)。串行接口:多位数据一位一位分时传送。注意:两者仅在I/O接口与I/O设备间有并行、串行之分,I/O

21、接口与CPU间都是并行的。I/O 外设I/O 接口CPU并串或并I/O 外设I/O 接口CPU并行/串行接口在结构和功能上的异同主要区别:串行接口要实行并串转换;并行接口则不需要。ABCB译码器与逻辑控制并行接口ABCB译码器与逻辑控制并行接口CPU串行口所需连线少,传DB输速度低,适于速度要求不高或传输距离较远场合。 并行口传输速度高,但所需连线多,适于短距离高速传输场合。DB(8根) STROBE并行设备BUSY/READY并行设备地串行接口地串行设备二、8255的内部结构和引脚功能地址:208H地址:208H20BHG1G1G2B C B AY1A9A7A6A2A5A4 A3A1 A0I

22、OR IOWRESETD08D78255PA0PA0外 设PB0PC0PA7A1A0 RD WRRESETD0PB0PC0PA7A1A0 RD WRRESETD0CSD7D7PC7四、8255的工作方式8255A有三种工作方式: 方式0、方式1、方式21.方式0:基本输入输出方式这种方式下,端口与外设间不需要联络信号。8255A的3个端口都可以工作在该方式下,并由控制字规定为输入或输出。当8255A的端口工作在方式0时,CPU只要用输入或输出指令就可以与外设进行数据交换。因此,方式0也称为无条件的输入/输出方式。2.方式1:选通输入输出方式这种方式下,只有A口和B口可以作为8位的输入或输出端口

23、,C口主要作为A、B两个端口输入/输出时的联络信号。且A口和B口无论输入或 输出都有数据锁存功能。该方式下CPU与8255A间可以用中断方式或查询方式进行信息交换。输入时的联络信号(应答信号):输入选通信号:STB将外设数据锁存入8255端口中可以引起中断输入缓冲器满信号:中断请求信号:IBF RDINTR输入锁存器已有数INTE=1, STB=1, CPU执行IN指令将8255锁存的数据送入CPU中断允许/禁止:INTE输出时的联络信号(应答信号输出缓冲器满:OBF表明CPU已将数据送入8255端口锁存器,同时送上I/O总线CPU执行OUT指令WR 外设响应信号:ACK中断请求信号:可以引起

24、中断外设已将数据取走INTRINTE=1,ACK=1,OBF=1方式2:选通的双向传送方式仅有A口可工作于该方式下。输出时有:OBFA 和ACKA联络信号,与方式1相似,唯一的差异OBFA 有效时,CPU仅将数据送入了端口锁存器,没有送上I/O总线,ACKA有效后才送上I/O总线。输入时与方式1完全相同。A口:BC方式0、方式1、方式2方式0、方式1 方式0方式1(A、B口)方式2输入输出方式1(A、B口)方式2输入输出PC0INTRBINTRBI/OPC1IBFBOBFBI/OPC2STBB (INTEB)ACKB(INTEB)I/OPC3INTRAINTRAINTRAPC4STBA(INT

25、EA)I/OSTBA(INTE2)PC5IBFAI/OIBFAPC6I/OACKA (INTEA)ACKA(INTE1)PC7I/OOBFAOBFA五、8255的编程方式选择控制字C口按位置位/复位控制字3.初始化举例例如,若规定端口A为方式1输出,端口C上半部分为输出,端口B 指定为方式0输入,端口C下半部分为输入,则方式选择控制字应是: 10100011B或A3H。若将此控制字的内容写入8255A的控制寄存器,即完成了对8255A 的初始化。初始化程序段为:MOVDX,20BH;假设控制端口的地址为210HMOVAL,0A3H;方式选择控制字OUTDX,AL;送到控制端口若要允许中断,则I

26、NTE必须为1,由此须用对C口置位的命令字如B口工作于方式1,输入,允许中断,则应有:INTEB=1,即PC2=1MOVDX,20BHMOVAL,05HOUTDX,AL4.8255的应用举例地址:314H317HA974LS138A9 A8 A7 A6 A5 A4 A3 A2 A1 A0A8Y5G1G2A GY5G1G2A G2B C B A11000101+5VA6 A5A4A3A2A1A18255PA7LED0RLED7RA0IORA0PC0RDIOWRESETD08D7WR RESET D0D7PC7PB0PB7+5VK0K7 例.电路如图所示。要求开关Ki每拨动一次,其LEDi便随Ki

27、改变一次状态,问:根据给出的端口地址画出74LS138的连接图。各端口的工作方式是什么?写出控制字,编制相关的初始化程序。编制能完成题目要求的程序段。AGAIN:MOVDX,317HMOVAL,82H OUTDX,AL MOVDX,315H INAL,DXDECDXOUTJMPAGAIN初始化程序程序功能段74LS138G1GG1G2A G2B C B AY5A6 A5 A4 A3 A2RDWRRESETA1 RDWRRESETPA3 PA4PA5PA0 PA1PA3 PA4PA5PA0 PA1PA2CSCSLED1MOVOUT97H,ALMOVAL,00010010BOUT94H,ALMOV

28、OUT95H,ALMOVAL,01111110BA1A0A1A0RESETD7D08PB3PB3PB4PB5PB6PB6D0D7D0D7OUT96H,ALPB2PA6PC0 PC7PB0 PB1LED1的D1,D4发光,LED2的D0,D1,D3,D5,D6 发光,试编程实现,并分析结果(地址PB2PA6PC0 PC7PB0 PB1G1G2A GG1G2A G2B C B AY574LS1387A6 A54328255LED1A1A0IOR IOWRESETD7D08PB6D0D7PB3PB4PB5PB2RDWRRESETPA6PC0 PC7PB0 PB1A1A0PA3 PA4PA5PA0 P

29、A1PA2CSOUT97H,ALMOVAL,00010010BAOUT94H,ALAAMOVAL,01101011BOUT95H,ALMOVOUT96H,ALLED2LED1的D1,D2发光,LED2的D0,D1,D3,D5,D6 发光,试编程实现,并分析结果(地址94H97H)5.综合应用举例利用8254和8255实现对A口所接的八个发光二极管的定时控制(PAi接Li),让8个发光二极管任何时刻都只有一个点亮,每隔1s 改变一次状态,且从L0到L7依次循环点亮。(PAi=1,Li亮;PAi=0,Li灭)定时1s的功能可通过8254的两个通道级联实现: 8254通道0定时20ms,CLK0上的

30、时钟脉冲频率为2MHz,OUT0接到CLK1,通道1计数50次。(利用查询方式时OUT1接8255的PB0端)设:8255的地址为208H20BH,8254的地址为20CH20FH程序流程图:程序8255初始化LED状态初始8254初始化N1S时间到否?Y改变LED状态8255如下:MOVMOVAL,82H OUTDX,AL给8的程序段如下:MOVDX,208H MOVAL,01H OUTDX,AL MOVBH,AL8254的初始化程序段如下:MOVDX,20FHMOVDX,20FHMOVAL,01010101BOUTDX,ALMOVDX,20DHMOVAL,50HOUTDX,ALMOVDX,

31、20FHMOVAL,00110100BOUTDX,ALMOVDX,20CHMOVAX,40000DOUTDX,ALMOVAL,AHOUTDX,AL;计数器1送TC;计数器0初始;计数器0送TC;先写低字节;后写高字节查询1S时间到否?MOVAGAIN:INAL,DXTESTJNZAGAINAGAIN1:INAL,DXTESTJZAGAIN1改变LED状态MOVAL,BHROLMOVBH,AL;取得上一次灯的状态;改变灯的状态为下一次准备MOVDX,208HOUTJMPAGAIN;输出控制灯的状态;返回等待下一个1S 时间到第五节可编程中断控制器8259及其应用教学目标介绍可编程中断控制器芯片8

32、259学习要求了解中断控制器的基本作用熟悉8259的主要功能、基本结构及工作过程掌握8259的使用方法中断控制器82598259A的内部结构与引脚功能内部结构 中断请求寄存器IRR11IRR11IRR4IRR2IRR0IRRi=1,有请求中断屏蔽寄存器IMR00IMR00IMRi=1,屏蔽中断请求中断服务寄存器ISR111ISR111ISR4ISR0ISRi=1,该请求正在被响应优先级分析器PR用于对各中断请求进行择优择优的对象是:没被屏蔽的IRi择优的时间是:接收到第一个INTA信号时择优的方式:由编程决定择优的结果:找出优先权最高的中断源,送出中断类型号,并将ISR对应位置1。控制逻辑读/

33、写电路数据总线缓冲器级联缓冲器/比较器初始化命令寄存器组和操作命令寄存器组用于设定或改变8259A的工作方式引脚概述 IR0IR7、INTINTAD0D7CS、A0 、WR、RDSP/ENCAS0CAS2VccIR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7SP/ENVccIR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7SP/ENCA0 CA1 CA2GND8259A8259A总线D0 D7RD WR A0D0 D7RD WR A0CSINTA INTD0 D7IOR IOWA0A5 A9INTA INTR片选译码203FH片选译码+ 5V18.2Hz2 1 用于多

34、片8259A级连情况8259A 的 中 断 优 先 权 管 理 方 式 8259A有五种优先级管理方式,所有的优先级管理方式均可通过编程来设置。 全嵌套方式-即固定优先级方式,它是一种最普通的工作方式。优先级顺序为 IR7IR0INT IR0INT IR1IR2IR3 IR4 IR5 IR6IR7)8259AIR0 INTIR0 INTIR2 IR3 IR4 IR5 IR6 IR7)特殊全嵌套方式-适用于多片8259A级连且响应的中断优先级保存在各从片中的大系统。 与普通全嵌套方式相比,特殊全嵌套方式的特殊性表现在:当从片的中断请求被响应后,主片并不封锁从片的INT输入端,以便从片中优先级更高

35、的请求可得到响应.在从片中断服务程序快结束时要检查其ISR内容,检测刚服务完的中断是 否为该从片唯一的中断请求源,如是,则连发两个非特殊EOI命令,使从片、主片相继结束中断;否则,只发一个EOI命令,使主片仍不结束中断.自动循环方式其优先级自动循环,即已服务的中断源自动降为最低优先级如原优先级顺序为:IR0IR1IR2IR3IR4IR5IR6IR7高低自动循环方式其优先级自动循环,即已服务的中断源自动降为最低优先级如原优先级顺序为:若IR2已被响应,则其顺序自动变为:IR0IR1IR2IR3IR4IR5IR6IR7高低IR3IR4IR5IR6IR7IR0IR1IR2特殊循环方式指定优先级方式通

36、过程序指定某中断源为最低优先级后,其它顺延。如指定IR6为最低优先级,此时优先级顺序为:IR7IR0IR1IR2IR3IR4IR5IR6特殊屏蔽方式为一种允许低嵌高的管理方式普通屏蔽方式下,中断嵌套受IMR、ISR两重控制;特殊屏蔽方式下,中断嵌套仅受MR控制。8259A处理过程 中断申请寄存器IRR锁存外部的中断申请。若IR0IR7引脚上有中断申请,则将IRR相应位置1中断屏蔽寄存器IMR决定RR中的中断申请是否进入优先级裁决 PR。IMR对应位为0,允许中断申请进入优先级裁决器, IMR对应位为1,不允许进入,中断申请被IMR屏蔽当前中断服务寄存器ISR记录CPU正在响应的中断。 ISR中

37、的某位为1,表示CPU正在响应此级中断,即正在执行此中断源的中断子程;ISR中的某位为0,表示CPU没有或已响应完此级中断,即不在执行此中断源的中断子程优先级裁决器PR据新进入的中断申请和ISR的内容,决定是否发中断申请信号。如果进入的中断申请比 ISR8259AINT 引脚向 CPU发出中断请求信号;如果进入的中断申请不比 ISRCPU 发中断请求信号。若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号CPU接收到INTR上的中断申请信号后:如果 IF 标志为0,则CPU不响应此中断申请信号,即中断申请被IF屏蔽。如果 IF 标志为1, 则处理完当前的指令后, 进入中断响应

38、周期通过INTA 引脚发出两个负脉冲信号,从数据总线上获取中断类型号,进入中断响应的过程。8259A在接收到第一个INTA中断响应信号后: ISR中相应位置1CPU响应此级中断,执行此中断源的中断子程。IRR中对应的位清0,清除IRR中锁存的中断申请信号。8259A在接收到第二个INTA中断响应信号后: 通过数据线,将被响应申请的中断类型号送给CPU。类型号由ICW2提供,在初始化8259A时已设定好。CPU获得中断类型号后,进入CPU响应中断的过程,执行中断子程,处理中断源申请的功能。CPU响应中断过程: 取中断类型号NF 当前CS的内容入栈 当前IP的内容入栈 清IF、TF标志为0保存现场

39、取内存单元( 0 : N 4 )字内容送IP取中断子程取内存单元( 0 : N 4 + 2 )字内容送CS入口地址此时CS:IP指向中断程序的入口,开始执行中断程序。执行完中断子程中最后一条指令IRET后,返回被中断处,继续 执行被中断的程序。(2)发中断结束命令EOI由 8259A 的工作过程可知:ISR中的内容是优先级裁决器进行裁决的重要依据,CPU响应某级中断后,8259A自动将ISR的对应位置1,如果CPU已执行完中断子程,而ISR中的对应位仍为1,8259A的优先级裁决器仍会据ISR的内容做裁决,从而会屏蔽同级的中断申请。因此,在中断响应后,对ISR中相应位的清0很重要,它是8259

40、A认为中断结束的标志。 自动结束方式8259A在接收到第二个中断响应脉冲INTA时就会自动清除ISR中的相应位。该方式只能用在系统中只有一片8259A且多个中断不会嵌套的情况下。 非自动结束方式一般结束方式8259A在接收到一般结束命令时,就会把ISR中最高优先级位复位,结束当前正在处理的中断。该方式适用于8259A工作在全嵌套方式下的情况。特殊结束方式当8259A工作在非全嵌套方式下,可选特殊结束方式。该方式下,通过命令使8259AISR中的指定位复位,结束当前中断。8259A的初始化编程8259A的初始化编程的顺序及内容C10101LTIMSNGLIC4C2T7T6T7T6T5T4T311C31A0D7D6D5 D4D3D2D1D01C41000SFNM BUF M/S 1000SFNM BUF M/S AEOI 18259A的操作编程OCW11M7M61M7

温馨提示

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

评论

0/150

提交评论