第五讲5数字量输入输出中断控制系统_第1页
第五讲5数字量输入输出中断控制系统_第2页
第五讲5数字量输入输出中断控制系统_第3页
第五讲5数字量输入输出中断控制系统_第4页
第五讲5数字量输入输出中断控制系统_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

1、8086/8088的中断控制系统教学重点中断的基本概念可编程中断控制器8259A的内部结构和编程 中断的基本概念中断、中断源中断系统的功能中断的分类、中断优先级中断类型号、中断向量、中断向量表中断响应及中断处理的流程 中断、中断源 中断就是CPU在执行当前程序的过程中,由于意外的事件引起另一段程序的运行。 中断是一个“过程”。这个过程,由微处理器内、外部硬件或软中断指令引起,即由它们发出中断请求,CPU接到中断请求后暂时中止现行程序的执行,转去执行请求中断的那个外设或事件的中断处理子程序,待中断服务子程序处理完毕后,再返回到暂停处继续执行原来的程序。 中断源引起中断的事件中断示意图:中断系统中

2、断系统实现中断过程的软硬件系统中断系统应具有以下功能:能实现中断响应、中断服务和中断返回 能实现中断优先权排队 能实现中断嵌套1、除法错 (INT 00H) 2、单步(INT 01H) IF=1 ,TF=1 3、溢出(INTO) OF=14、软件中断调用 (INT n) 1、非屏蔽中断NMI ( INT 02H )2、可屏蔽中断INTR (IF=1) 内部中断 外部中断中断的分类优先级顺序:除法除、INT n、INTO、NMI、INTR、单步8088CPU中断结构示意图8088外部中断请求及响应信号引脚(回顾)NMI: 输入,非屏蔽中断请求输入端,上升沿有效INTR: 输入,可屏蔽中断请求输入

3、端,高电平有效INTA:输出,低有效,当CPU响应外设中断申请时, 发出两个连续的INTA信号回顾调用子程序的过程: 主程序 . CALL Alarm .Alarm: RET回顾软件中断调用的过程(INT n): 主程序 . INT 21H . INT 60H .Alarm: IRET中断指令 Interrupt(回顾)指令说明执行操作INT n中断 (SP) (SP)-2, (SP)+1,(SP) (FLAGS) (IF) 0 , (TF) 0 (SP) (SP)-2, (SP)+1, (SP) (CS), (CS) n*4+2 (SP) (SP)-2, (SP)+1, (SP) (IP),

4、 (IP) n*4IRET中断返回 (IP) (SP)+1,(SP), (SP) (SP)2 (CS) (SP)+1,(SP), (SP) (SP)2 (FLAGS) (SP)+1,(SP), (SP) (SP)2 中断服务程序与子程序的区别 1) 子程序调用一定是程序员在编写源程序时事先安排好的,是可知的,而中断是由中断源根据自身的需要产生的,是不可预见的(用指令INT引起的中断除外) 2) 子程序调用是用CALL指令来实现的,但没有调用中断的指令,只有发出中断请求的事件(指令INT是发出内部中断信号,而不要理解为调用中断服务程序) 3) 子程序的返回指令是RET,而中断服务程序的返回指令是

5、IRET两者相似点:1、保存返回地址(堆栈区)2、在新地址处执行特定程序3、返回: 子程序返回到调用的下一条指令地址 中断返回到断点处中断向量中断服务程序的入口地址 类型号N的中断向量固定存放在4个内存单元中,如下图:中断向量表指存放 256 个中断向量的内存区域 每个中断向量占4个单元 256 个中断向量占1K个单元 (4 256 = 1024 = 1K)中断向量表地址为 0:0 0:03FFH,即低端1K内存中断类型号256个中断源的编号偏移地址段地址0:N4 0:N4 2其中:较低两个单元存放偏移地址较高两个单元 存放段地址CSIPCSIPCSIPCSIPCSIPCSIPCSIP类型25

6、5(十进制)类型32类型31(十进制)供用户定义的中断(共224个)类型5类型4类型3类型2类型1类型0保留的中断(共27个)专用的中断(共5个)0000: 03FFH0000:007FH0000:007EH 0000:0014H0000:0013H0000:0010H0000:000FH0000:000CH0000:000BH0000:0008H0000:0007H0000:0004H0000:0003H0000:0000H溢出中断断点中断非屏蔽中断单步中断除数为0中断 中断向量表(0:0-0:3FFH)保护断点 FLAG入栈;IF=0 TF=0; CS、IP入栈 获得中断类型号N,取出中断

7、向量,转中断服务 在0:4N开始的4个单元中取中断向量CS:IP 返回断点 IRET:依次弹出IP、CS、FLAG (1)中断响应周期:INTR=1,CPU发第二个INTA时, 类型号n(1Byte)DB CPU(2)总线写:FLAG入栈(3)IF=TF=0(EU)(4)总线写:CS入栈(5)总线写:IP入栈(6)总线读:n*4为指针, 读字IP(7)总线读:n*4 +2为指针,读字CS 中断响应过程:堆栈-2-1-3-4-5-6SPSS返回的断点中断向量表4n+24n+34n+14n 3FFH0中断时的栈顶中断服务程序入口FLAGSCSIPIPCS中断向量表的修改: (参见P307);装入I

8、NT 60H的中断向量PUSHDSMOVDX, OFFSET AlarmMOVAX, SEG AlarmMOVDS, AXMOVAH, 25HMOVAL, 60HINT 21HPOPDS.INT 21H功能调用功能:置中断向量功能号:AH=25H入口:AL=中断类型号 DS:DX=中断向量可编程中断控制器8259A主要功能: 管理和控制8086/8088的外部中断请求 实现优先级判决 提供中断类型码 屏蔽中断输入123456789101112131428272625242322212019181716158259ACS WR RDD7D6D4D5D2D3D0D1CAS0CAS1GNDINTAI

9、R7IR6IR4IR5IR2IR3IR0IR1INTCAS2 SP/ENVCCA08259引脚8259A的内部逻辑结构数据总线缓冲器读/写控制电路级 连缓冲器/比较器中断服务寄存器(ISR)中断请求寄存器(IRR)优先权判别器(PR)中断屏蔽寄存器(IMR)控制电路 SP/ENIR0IR1IR2IR6IR7内部总线CAS0CAS1CAS2_ INTA INT WR RDCSA0D7D0IR0IR7: (I) INTERUPT REQUESTS Asynchronous inputs. An interrupt request is executed by raising an IR input

10、(low to high), and holding it high until it is acknowledged (Edge Triggered Mode),or Just by a high level on an IR input(Level Triggered Mode). Internal pull-up resistors are implemented on IR0-7INT:(O) INTERRUPT This pin goes high whenever a valid interrupt request is asserted. It is used to intert

11、upt the CPU, thus, it is connected to the CPUs interrupt pin.INTA:(I) INTERRUPT ACKNOWLEDGE This pin is used to enable 82C59A interrupt-vector data onto the data bus by a sequence of interrupt acknowledge pulses issued by the CPU.CAS0CAS2: (I/0) CASCADE LINES This CAS lines form a private 82C59A bus

12、 to control a multiple 82C59A structure. These pins are outputs for a master 82C59A and inputs for a salve 82C59A.SP/EN: (I/O) SLAVE PROGRAM/ENABLE BUFFER This is dual function pin. When in the Buffered Mode it can be used as output to control buffer transceivers(EN). When not in the Buffered Mode i

13、t is used as an input to designate a master(SP=1)or slave(SP=0).IR0IR7单片 INTA8259AINTRINTACPU.中断请求 CPU8259A.IR0IR7级联主片8259AIR0从片.IR7 8259AIR0从片.IR7INTAINTR 使用单片8259A可以管理8级中断 采用级联方式最多可扩充到64级(用9片8259A)INT当IR0IR7上出现某一中断请求信号 * IRR对应位被置“1” * IMR的相应位决定是否将其屏蔽 * 中断请求进PR,PR把新进入的中断请求和当前正在 处理的中断进行优先级比较, 若新进入的中

14、断优先级 高,该中断请求被送到CPU。 * 若CPU的IF=1,CPU完成当前指令后,响应中断, 在 INTA引脚上发出两个连续的中断响应信号, 在 第2个中断响应到来时,8259将类型号放到数据总线 上。 8259中断请求过程关于触发方式 8259A的IRQi引脚上出现上升沿信号表示有中断请求 边沿触发方式 电平触发方式 8259A的IRQi引脚上出现高电平信号表示有中断请求, 该方式下,应注意及时撤除高电平,否则可能会引起不应该出现的第二次中断。 在两种触发方式上,IR的输入高电平至少应保持到中断被响应为止。 D7D0RD 中断服务 中断优先 中断请求 IR0WR 寄存器 级判决器 寄存器

15、 IR7INT ISR PR IRRINTA地 地址 CS ICW1 IMR(OCW1)址线 译码 ICW2 OCW2 A0CAS0 ICW3 OCW3CAS1 操作命令字寄存器CAS2 ICW4 SP/EN 初始化命令字寄存器 8259A的编程模型8259A的的编程 1.初始化命令字(ICW) 初始化命令字(ICW) 操作命令字(OCW) 编程用来规定8259A的初始状态 8080/8085 CPU8086/8088 CPU初始化命令字不同ICW1 、 ICW2 、 ICW3 、 ICW48259A内部寄存器的寻址方法/CS/RD/WRA0D4D3读写操作010000写OCW2写OCW3写I

16、CW1写ICW2,ICW3,ICW4,OCW1(顺序写入)00101x1xx00101xx读出IRR、ISR读出IMR需要/CS、A0、/RD、/WR和D4、D3的配合内部寄存器的访问方法如下表: 8259A初始化字装入规则送ICW1字送ICW2字送ICW3字送ICW4字IC4=1?20H21H21H 是否级联?紧跟ICW4?YNNY21HSNGL=0?8259A初始化字装入规则开始ICW1(A0=0 D4=1)ICW2(A0=1)SNGL=0?(级联方式?)ICW3(A0=1)IC4=1 ?ICW4(A0=1)准备好接受中断NNYY(1)ICW1字(主初始化命令字)0A0 D7 D6 D5

17、D4 D3 D2 D1 D0特征位,恒为1(用于寻址)(偶地址20H)IC41:写ICW4字,0:不跟 SNGL1:单片方式,0:级联方式1 LTIM1:高电平触发,0:上沿触发 偶地址(20H) 向8259A写入ICW1时,8259A自动设置以下状态:将中断屏蔽寄存器IMR清; 分配IRQ7的优先权为最低; 清除特殊屏蔽方式(以后可以由OCW3改动); 若IC4,则将寄存器ICW4清 说明:在IBM-PC/XT机中,ICW1=00010011B(13H),其工作方式为:中断请求信号为上沿触发,单片方式,后要跟ICW4字。(书P306)写控制字: 00010011B 送 ICW1装入程序:MO

18、V AL,13H OUT 20H,AL11001000需要ICW4单片工作边沿触发 A0 D7 D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 (奇地址21H)自动填入,不能改变基值,可以改变说明:在PC-XT机中,ICW2=00001000B 基值为08H 即: IRQ0 中断类型码为08H . IRQ7 中断类型码为0FH(2)ICW2(中断向量类型号) 用于设置中断类型码的基值(3)ICW3仅用于级联 A0 D7 D6 D5 D4 D3 D2 D1 D01 (奇地址21H)1 相应IRQ接从82590 不接在从8259 主片ICW3 A0 D7 D6 D5 D

19、4 D3 D2 D1 D01 (奇地址21H)若为从8259,则对应主8259的相应位从片ICW3 0 0 0 0 0 A0 D7 D6 D5 D4 D3 D2 D1 D01 0 0 0 SFNM BUF M/S AEOI uPM (奇地址21H) 1:8086/88,0:8080/851:自动结束,0:正常结束0:非缓冲方式 10:缓冲方式/从片 11;缓冲方式/主片1:特殊全嵌套方式,0:一般全嵌套方式(4)ICW4当ICW1中的D0=1时要装入关于中断嵌套方式 一般全嵌套方式 特殊全嵌套方式 普通全嵌套方式是8259A最基本、最常用且是默认的工作方式,简称为全嵌套方式(一般嵌套方式)。

20、该方式的中断优先权固定,IR最高,依次到IR最低。只有优先权更高的中断才能打断某个正在进行的中断服务程序(前提是CPU处于开中断状态) 主要用在级联情况,与全嵌套方式基本相同,除了:CPU响应某从8259A中断请求后,并不屏蔽该从片的中断退出中断服务程序之前,要检查该从片8259A中是否还有其它中断源 (送EOI,检查ISR,为0表示无其它中断)D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被本

21、从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式与特殊全嵌套方式的区别 去CPU1、对于每片8259,ICW1和ICW2是必须的。但ICW3和ICW4则根据需要设置。如果在级联方式下,需要设置ICW3;2、级联情况下,主片和从片8259均要设置ICW3。但主片和从片的ICW3设置的内容不同。3、ICW1必须写在偶地址寄存器中,而ICW2ICW4则必须写在奇地址寄存器中,并且要注意顺序,不能顺

22、序颠倒或无序。4、主8259或从8259只有经过初始化后,才能正常工作。后面对OCW进行控制才能有效。初始化命令字小结:2. 操作命令字OCW 写入初始化命令字以后,8259A就处于就绪状态。 如果要改变中断优先权管理方式或状态,或者需要读8259A内部寄存器,则需要向8259A写入有关操作命令字。 OCW1、OCW2 、 OCW3 注意:可随时写入操作命令字写入时可以不按顺序进行 (1)OCW1中断屏蔽操作命令字IMR1:被屏敝;0:未屏敝M0M1M2M3M4M5M6M71A0 D7 D6 D5 D4 D3 D2 D1 D0(2)OCW2优先循环和中断结束方式操作命令字 A0 D7 D6 D

23、5 D4 D3 D2 D1 D0 0 R SL EOI 0 0 L2 L1 L0 (偶地址20H)说明: D7(R)中断优先权旋转0:非循环方式07级总是0级最高,7级最低;1:优先级循环方式07级循环成为最高优先级;D6(SL)设定L2,L1,L0有效位0: L2,L1,L0无效;1: L2,L1,L0有效;D2D1D0(L2L1L0)当SL=1时有效,用于指示该操作命令字涉及的哪一级中断。例:L2L1L0=111,则7级为最低,0级为最高,依次 为:01267例:L2L1L0=011,则3级为最低,4级为最高,依次为:45623D6(SL)设定L2,L1,L0有效位0: L2,L1,L0无

24、效;1: L2,L1,L0有效;D5(EOI)中断结束命令位当ICW4字中的AEOI=0时(非自动结束方式),则由该位结束中断,即用EOI=1使ISR(中断服务寄存器)的相应位复位(清0)。操作:MOV AL, 20H; OUT 20H,AL;无操作 010优先级特殊循环, L2L1L0指定最低的IRQ011自动EOI时,取消优先级自动循环 000自动EOI时,优先级自动循环 001普通EOI命令,优先级特殊循环 (按编码)111普通EOI命令,优先级自动循环 101特殊EOI命令,全嵌套,L2L1L0指定ISR位清零 110普通EOI命令,全嵌套方式 100功 能EOISLRR、SL、EOI

25、三位组合为中断结束方式及循环方式 关于中断结束方式 中断处理结束后须将ISR相应位清,以开放同级或低级的中断请求,清除的方式就是中断结束方式 。 CPU响应中断请求时,在第二个INTA脉冲的后沿,由8259A自动将ISR的相应位清 只能用于不允许中断嵌套的场合 自动结束方式 (ICW4中的AEOI)非自动结束方式(常用)(OCW2) 中断服务程序末尾向8259A发出中断结束(EOI)命令以清除ISR对应位 普通的EOI命令: 自动清除最高优先权位 全嵌套方式 特殊的SEOI命令:位编码指定清除位 任意方式自动循环方式(等优先权方式) 某级中断被处理完,它的优先级别降为最低,而原来比它低一级的中断请求升为最高级。例:初始顺序由高到低: IR、IR、IR若IR中断,其服务程序执行完后,调整顺序由高到低: IR、 、IR、IR、 、IR 可见各中断源具有相等的优先权,故自动循环方式又称为等

温馨提示

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

评论

0/150

提交评论