微机系统与接口课件2012-2013学年第5章_第1页
微机系统与接口课件2012-2013学年第5章_第2页
微机系统与接口课件2012-2013学年第5章_第3页
微机系统与接口课件2012-2013学年第5章_第4页
微机系统与接口课件2012-2013学年第5章_第5页
已阅读5页,还剩54页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

第5章-5中断控制系统教学重点:

8088/8086CPU的中断系统

8259A的结构原理和操作方式

8259A的应用5.1基本概念中断的定义

CPU执行程序时,由于发生了某种随机的事件(外部或内部),引起CPU暂时中断正在运行的程序,转去执行一段特殊的服务程序(称为中断服务程序或中断处理程序),以处理该事件,该事件处理完后又返回被中断的程序继续执行,这一过程称为中断。引起CPU中断的事件:中断源外设——请求输入输出数据,报告故障等;事件——掉电、硬件故障、软件错误、非法操作、定时时间到等;中断源分为:外部中断、内部中断内部中断——CPU内部执行程序时自身产生的中断;外部中断——CPU以外的设备、部件产生的中断;

8086/8088的外部中断信号:INTR、NMIINTR——可屏蔽中断请求,高电平有效,受IF标志的控制。IF=1时,执行完当前指令后CPU对它作出响应;

NMI——非屏蔽中断请求,上升沿有效,任何时候CPU都要响应此中断请求信号。5.1基本概念中断系统的目的

维持系统正常工作,提高系统效率;实时处理;为故障处理作准备。

8088/8086的中断系统采用向量中断机制能够处理256个中断;用中断向量号0~255或00H~FFH区别;可屏蔽中断还需要借助专用中断控制器Intel8259A实现优先权管理。5.1基本概念5.28088/8086的中断系统5.2.1中断类型1.软件中断(内部中断)由于CPU内部执行程序出现异常引起的程序中断除法错中断:向量号为0断点中断:向量号为3溢出中断:向量号为4;条件:OF=1指令中断:向量号为n单步中断:向量号为1;条件:TF=1且IF=1注意:

中断优先级除单步中断外都比硬件中断高且不能被屏蔽。软件中断的中断向量号已定2.硬件中断(外部中断)由8088/8086外部提出中断请求引起的程序中断非屏蔽中断:向量号为2外部通过非屏蔽中断NMI请求,必须响应;非屏蔽中断主要用于处理系统的意外或故障。可屏蔽中断:向量号来自中断控制器外部通过可屏蔽中断INTR请求,由IF控制是否响应;响应时产生INTA*信号;可屏蔽中断主要用于与外设交换数据。IF控制可屏蔽中断的响应3.中断标志IF的状态IF=0:可屏蔽中断不会被响应关中断、禁止中断、中断屏蔽系统复位,使IF=0任何一个中断被响应,使IF=0执行指令CLI,使IF=0IF=1:可屏蔽中断会被响应开中断、允许中断、中断开放执行指令STI,使IF=1执行指令IRET恢复原IF状态明确IF标志的状态是关键5.2.28088的中断向量表中断向量:中断服务程序的入口地址(首地址);逻辑地址含有段地址CS和偏移地址IP(32位);每个中断向量的低字是偏移地址、高字是段地址,需占用4个字节;8088微处理器从物理地址00000H开始,依次安排各个中断向量,向量号从0开始;256个中断占用1KB区域,就形成中断向量表。向量号为N的中断向量的物理地址=N×45.2.28088的中断向量表(续)请查阅附录5.1例5.1中断类型号为27H中断向量指针的低地址=27H×4=9CH中断向量指针的高地址=27H×4+2=9EH即该中断向量存放在0000H:009CH开始的4个连续单元中。如果这4个单元中的内容如下:

0000:009C2AH

0000:009D43H0000:009E65H

0000:009F87H例5.1中断类型号为27H则该中断类型号27H的中断向量(中断服务程序入口地址)的逻辑地址是

8765H:432AH即

(CS)=8765H、(IP)=432AH物理地址是

8B97AH5.2.3中断响应过程

1.硬件中断响应总线周期

非屏蔽中断(NMI):不受中断标志位的控制,中断类型号为2,所以中断向量放在0000:0008开始的4个单元中。NMI中断一般用于紧急情况的处理。

可屏蔽中断(INTR):受中断标志位的控制,IF=1,CPU才能响应INTR中断。CPU响应INTR中断时,往INTA*引脚上发两个负脉冲,外设接到第二个负脉冲后,立即往数据总线上送出中断类型码,供CPU读取。

1.硬件中断响应总线周期(续)中断响应总线周期要求中断控制器将中断源的类型码送入问数据总线,供CPU读取通知中断控制器中断申请已被响应,准备类型码

先判断IF是否为1,若IF=1则进入中断响应,此时CPU要读取中断类型码,然后进入所有中断都要做的事。

1)将标志寄存器FR的内容压入堆栈;

2)将中断允许标志IF和单步标志TF清零;

3)将断点保护到堆栈中。当前指令下面的一条指令的段寄存器CS的值和指令指针存器IP的值压入堆栈,先压CS,再压IP的值;

4)根据当前中断的中断类型码查中断向量表,得到中断向量(中断服务程序入口地址)分别装入CS和IP,从而转到相应的中断服务程序;

5)执行中断服务程序,结束后恢复断点,从而继续执行原来的程序。2.中断响应和中断处理过程6)得到中断服务程序入口地址后,查看NMI是否有,接着查看TEMP,若TEMP=1,则在中断前CPU已处于单步方式,就和NMI一样重新保护现场和断点,转入单步中断服务程序。若TEMP=0,即中断前CPU处于非单步方式,则CPU转去执行最先引起中断的中断服务程序。2.中断响应和中断处理过程(续)例5.2中断操作过程某中断类型号为72H,给出中断操作过程。①取中断类型号72H;②计算中断向量地址72H×4=1C8H;

72H×4+2=1CAH;③取中断服务程序入口地址的偏移量送IP,(IP)=2050H,段地址送CS,(CS)=A000H;④转入中断服务程序A000H:2050H;⑤中断返回到INT72H指令的下一条指令:

MOVAX,BX例5.2中断操作过程5.38259A中断控制器Intel8259A是可编程中断控制器;可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中断;8259A的基本功能:一片8259A可以管理8级中断,可扩展至64级;每一级中断都可单独被屏蔽或允许;在中断响应周期,可提供相应的中断向量号;8259A设计有多种工作方式,可通过编程选择。8259A的主要任务

接受外部的中断请求;

管理所有外部的中断请求(排队、判优、屏蔽、嵌套);

向CPU产生中断请求INTR及中断类型号;

进行中断结束处理;

接受CPU命令及返回状态。5.3.18259A的引脚5.3.2内部结构中断请求寄存器IRR保存8条外界中断请求信号IR0~IR7的请求状态;Di位为1表示IRi引脚有中断请求;为0表示无请求。中断服务寄存器ISR保存正在被8259A服务着的中断状态;Di位为1表示IRi中断正在服务中;为0表示没有被服务。中断屏蔽寄存器IMR保存对中断请求信号IR的屏蔽状态;Di位为1表示IRi中断被屏蔽(禁止);为0表示允许。5.3.2内部结构数据总线缓冲器读写控制逻辑,一片8259A只占用两个端口地址,由A0来选择,其它高位地址译码输出作为片选信号CS*。WR*、RD*分别为写信号和读信号。级联缓冲器/比较器,扩充中断用。优先级判别器PR,当有多个中断同时请求中断时,判别当前优先级最高的中断请求进入系统。控制逻辑,控制芯片内个部件协调一致地工作。5.3.2内部结构5.3.3与处理器接口A0RD*WR*CS*功能0100110000101010×110×××1写入ICW1、OCW2和OCW3写入ICW2~ICW4和OCW1读出IRR、ISR和查询字读出IMR数据总线高阻状态数据总线高阻状态5.3.48259A的工作方式⑴普通全嵌套方式:普通全嵌套方式是8259A初始化后自动进入的基本工作方式。此时优先级从IR0到IR7依次降低。当某一中断处理时,可响应比它高的中断,但禁止比它低的或同级中断进入。当某一中断请求处理结束时,CPU向8259A发送中断结束命令EOI,以使ISR中相应位清零。

特殊全嵌套方式:与⑴的普通全嵌套方式差不多,区别是CPU处理某一中断时,允许比它高的和与它同级的中断请求进入,而只禁止比它低的中断请求。1.优先级管理方式⑶自动循环方式:任何一级中断请求被处理完后,CPU向8259A发送中断结束命令EOI,以使ISR中优先级最高的置1位清零,并重新赋给它最低优先级,而将最高优先级赋给比它低一级的中断请求,其它中断请求的优先级则以循环方式类推。⑷

特殊循环方式:用户根据要求用置优先级命令指定最低优先级,例如设置IRi为最低优先级,则最高优先级为IRi+1,其它各级按循环方式类推。1.优先级管理方式(续)⑴

自动中断结束方式,中断处理结束时自动将ISR中相应位清零,只需将初始化命令字ICW4中的AEOI置为1即可实现这种方式。⑵普通中断结束方式,用在8259A的全嵌套方式下,即在CPU处理完一个中断请求时需向8259A发送一个EOI命令,8259A收到EOI后,将ISR中最高优先级的置1位清零(即当前正在处理的中断)。用操作命令字OCW2中的EOI=1,SL=0,R=0的设置来实现。⑶特殊中断结束方式,在非全嵌套方式下,通过向8259A发一条特殊中断结束命令来判断要清除ISR中置1位中的哪一位。用操作命令字OCW2中的EOI=1,SL=1,R=0的设置来实现,此时OCW2中的L2、L1、L0这3位指出了到底要清除ISR中的哪一位。2.中断结束方式3.屏蔽中断源方式⑴普通屏蔽方式,将IMR中某一位或几位置1,则其对应的中断被屏蔽(即这些中断被禁止)。⑵

特殊屏蔽方式,一般情况处理一个中断时,禁止同级或低级中断进入,但有些场合,在处理某个中断时,仅希望对本级屏蔽,可以响应高级或低级中断,此时采用这种方式。特殊屏蔽方式通过操作命令字OCW3中的ESMM和SMM同时置为1,并将IMR对应于本级中断的位置1来实现。边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号;电平触发方式中断请求端出现的高电平是有效的中断请求信号。4.中断触发方式5.数据线连接方式缓冲方式8259A的数据线需加缓冲器予以驱动;8259A把SP*/EN*引脚作为输出端,输出允许信号,用以锁存或开启缓冲器;非缓冲方式SP*/EN*引脚为输入端;若8259A级连,由其确定是主片或从片。6.中断级连一个系统中,8259A可以级连,有一个主8259A,若干个(最多8个)从8259A;级连时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2;每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR;主8259A的INT线连至CPU的中断请求输入端;SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)。5.3.58259A的编程初始化编程8259A开始工作前,必须进行初始化编程;给8259A写入初始化命令字ICW。中断操作编程在8259A工作期间;可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作;还可以读取8259A的信息,以便了解他的工作状态。1.初始化命令字ICW初始化命令字ICW最多有4个;8259A在开始工作前必须写入;必须按照ICW1~ICW4顺序写入;ICW1和ICW2是必须送的;ICW3和ICW4由工作方式决定。流程D7D6D5D4D3D2D1D0ICW1(A0=0)×××1LTIM×SNGLIC4D7D6D5D4D3D2D1D0×——表示可以任意为1为0都可以(建议为0)1——只能为1,作为标志中断触发方式:LTIM=1,电平触发方式LTIM=0,边沿触发方式规定单片或级连方式:SNGL=1,单片方式SNGL=0,级连方式是否写入ICW4IC4=1,要写入ICW4IC4=0,不写入ICW4,即ICW4规定的位全为0ICW2(A0=1)T7T6T5T4T3×××D7D6D5D4D3D2D1D0设置中断向量号T7~T3为中断向量号的高5位低3位由8259A自动确定:IR0为000、IR1为001、……、IR7为111ICW3(A0=1)S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字主片8259A:Si=1对应IRi接有从片;否则IRi没有连接从片从片8259A:ID0~ID2编码说明从片INT引脚接到主片哪个IR引脚ICW3(A0=1)例:主片的IR3和IR6两个输入端分别连接了从片A和B的INT。则主片的ICW3=01001000B=48H

从片A的ICW3=00000011B=03H

从片B的ICW3=00000110B=06HICW4(A0=1)000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0嵌套方式:特殊全嵌套方式(SFNM=1)普通全嵌套方式(SFNM=0)数据线的缓冲方式:缓冲方式(BUF=1)非缓冲方式(BUF=0)主片/从片选择:主片(M/S=1)从片(M/S=0)中断结束方式:自动中断结束(AEOI=1)非自动中断结束(AEOI=0)微处理器类型:16位80x86(PM=1)8位8080/8085(PM=0)2.操作命令字OCW8259A工作期间,可以随时接受操作命令字OCW;OCW共有3个:OCW1~OCW3;写入时没有顺序要求,需要哪个OCW就写入那个OCW。D7D6D5D4D3D2D1D0OCW1(A0=1)M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字内容写入中断屏蔽寄存器IMRDi=Mi对应IRi,为1禁止IRi中断;为0允许IRi中断。各位互相独立。OCW2(A0=0)RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和EOI配合使用产生中断结束EOI命令和改变优先权顺序SL=1时有效L2~L0的3位编码指定IR引脚OCW2(A0=0)OCW3(A0=0)0ESMMSMM01PRRRISD7D6D5D4D3D2D1D0设置中断屏蔽方式

10清除特殊屏蔽

11设置特殊屏蔽

0x无动作P=1查询命令、P=0无查询命令RR和RIS10在下一个读周期读IRR11在下一个读周期读ISR0x无动作3.读取状态字CPU可读出IRR、ISR、IMR和查询字;A0为低,由OCW3中RR和RIS位设定读取IRR或ISR,由OCW3中P位设定读取查询字;而A0引脚为高电平时读取的都是IMR;查询字反映8259A是否有中断请求。D7D6D5D4D3D2D1D0查询字I----W2W1W0D7D6D5D4D3D2D1D0中断位I位为1,有外设请求中断W2~W0的编码当前中断请求的最高优先级5.3.68259A在IBMPC/XT上的应用应用注意事项利用上升沿做为中断请求IRQ的有效信号;IRQ0~IRQ7的中断向量号依次为08H~0FH;I/O端口号为20H和21H;采用普通全嵌套优先权方式,中断优先权从高到低顺序

温馨提示

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

评论

0/150

提交评论