




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章中断掌握有关中断和中断源、中断处理过程、中断优先级和中断嵌套等基本知识掌握可编程中断控制器82C59A外部特性及其与CPU的连接方式掌握82C59A的初始化编程掌握8086/8088可屏蔽中断的全过程了解82C59A的结构及级联方式的运用等教学目的和要求重点及难点重点中断及中断处理过程82C59A的初始化编程8086/8088可屏蔽中断的全过程难点8086/8088的中断系统中断优先权的控制机理6.1.1中断、中断源及中断系统一、中断、中断源所谓“中断”是指在CPU正常运行程序时,由于内、外部事件引起CPU暂时中止正在运行的程序,转而去执行请求CPU暂时中止的内、外部事件的服务程序,待该服务程序处理完毕后又返回到被中止的程序能够向CPU发出中断请求的中断来源称为“中断源”常见的中断源一般的输入/输出设备,如打印机、RS232C串行通信设备等数据通道,如磁带、磁盘等实时时钟,如定时器芯片82C54等的定时输出作为定时中断请求信号故障信号,如电源掉电等软件中断,如为调试程序而设置的单步中断二、中断系统的功能
为满足中断要求,中断系统应具有的功能可归结为中断处理和中断控制。中断处理 包括发现中断请求、响应中断请求、中断处理与中断返回中断控制 主要是实现中断优先级的排队和中断嵌套三、中断的主要用途
在微机系统中,中断的主要用途是实现输入/输出操作电源掉电或其他情况的报警控制台或人工干预多处理机系统中各处理机之间的协调控制操作系统
四、中断的分类
可屏蔽中断:通过INTR提请中断申请,受IF标志的控制。不可屏蔽中断:通过NMI提请中断申请。中断发生立即响应。程序中断,不可屏蔽,由程序产生,无硬件中断源与之对应。硬中断:软中断:中断:6.1.2中断处理过程
微机系统中断处理过程的流程图如图所示CPU对中断的响应过程
进入中断周期后,中断响应的过程如下:1、关中断
CPU在响应中断后,发出中断响应信号,同时内部自动地关中断,以禁止接受其他的中断请求。2、保护断点 把断点处的标志寄存器FR的内容、段寄存器CS值和指令指针IP值依次压入堆栈保存,以便中断处理完后能正确地返回到主程序的断点地址,接着执行被中断的程序。3、识别中断源
CPU要对中断请求进行处理,必须要找到相应中断服务程序(处理中断的程序)的入口地址,这就是中断源的识别。CPU对中断的响应过程识别中断源有两种方法-1查询中断 当外设没有提出中断请求时,CPU照常执行主程序,只有在接收到外设的中断请求后CPU才去查询,以识别提出中断请求的设备,主要采用软件查询。软件查询是用程序查询的方法,查询中断请求寄存器的当前值,查询程序依次查询每一个外设的中断状态位,通过测试该状态位来判断对应的外设是否发出过中断请求,如果有,则转到相应的中断服务程序。识别中断源有两种方法-2向量中断(VectoredInterrupt)
又称矢量中断,在具有向量中断的微机系统中,每个外设都预先指定一个中断向量,当CPU识别出某个外设请求中断并予以响应时,控制逻辑就将该外设的中断向量送入CPU,以自动地提供相应的中断服务程序的入口地址,转入中断服务。用向量中断来确定中断源主要是用硬件来实现的,通常在微机系统中采用可编程中断控制器来提供中断向量。4、保护现场 为了不使中断服务程序的运行影响主程序的状态,必须把断点处有关寄存器(指在中断服务程序中要使用的寄存器)内容压入堆栈保护。5、执行中断服务程序
6、恢复现场
即把中断服务程序压入堆栈的现场信息从堆栈中弹出来,并存入到原寄存器中,这是在中断服务程序中用POP指令来实现的。CPU对中断的响应过程7、开中断与返回
开放中断在返回之前,目的是返回主程序后能继续响应新的中断请求。从中断返回到断点处,有一条专门的中断返回指令,该指令的隐操作是将堆栈栈顶处连续的三个字依次弹出给指令指针IP、段寄存器CS以及标志寄存器FR。CPU对中断的响应过程6.1.38086/8088的中断系统
8086/8088有一个简单而灵活的中断系统,每个中断都有一个中断类型码(TypeCode),以供CPU进行识别,8086/8088最多能处理256种不同的中断类型。中断可以由CPU以外的硬件设备驱动,也可由软件中断指令启动。在某些情况下,也可由CPU自身启动,8086/8088的中断源如图所示。从图可见8086/8088的中断源可分为两类,即外部中断和内部中断。8086/8088的中断系统一、外部中断1、可屏蔽中断INTR2、不可屏蔽中断NMI,有最高中断优先级。二、内部中断
1、溢出中断:
OF=1产生的中断。中断类型码为42、除法出错中断
DIV、IDIV运算时超出商的范围,中断类 型码为0。3、INTn中断 中断指令。n为程序指定类型。4、断点中断 断点中断,类型码为3。5、单步中断
TF=1产生的中断,类型码为1。内部中断
内部中断的注意事项:
(1)类型码固定指定。(2)不执行中断响应周期。(3)除单步中断外,无法禁止;都比外部中断优先级高。
中断优先级8086/8088的中断优先级见表8-1表8-1中断优先级中断优先级除法出错,INTn,INTO最高NMI…INTR…单步最低
多个中断源同时发生中断,必须确定中断响应的先后次序,称中断优权处理。三、中断向量表
中断向量表又称中断指针表,是存放中断服务程序入口地址(即“中断向量”)的表格。它存放在存储器的最低端(0000H:0000H~0000H:03FFH),共1024个字节,每4个字节存放一个中断服务程序的入口地址,一共可以存放256个中断服务程序的入口地址。较高地址的两个字节存放中断服务程序入口的段基值;较低地址的两个字节存放入口地址的段内偏移量。这4个单元的最低地址称为向量地址,其值为对应的中断类型码乘以4。8086/8088中断向量表的结构如图所示。中断向量表由图可见,8086/8088的中断向量表由三部分组成:专用的有5个(0#~4#),保留的有27个(5#~31#),可供用户定义的有224个(32#~255#)。“专用的”是指8086/8088系统中统一规定并使用的中断类型。“保留的”是指为系统开发所保留的中断类型。例1:若中断类型号为3,则由中断类型号取得中断服务入口地址的过程如下图所示:00000H00001H0000CH(0000:000CH)1EA00H(1E00:0A00H)FFFFFH低地址内存高地址1E000H+0A00H1EA00H中断类型号3×4 =000CH…….00(IPL)0A(IPH)00(CSL)1E(CSH)…....中断服务程序…....例2.中断类型号为23(17H),中断服务程序的入口地址为2340H:7890H,由于中断类型号17H对应的中断向量存放在0段的0000:005CH(17H×4=5CH)处,所以有:(005CH)=(005DH)=(005EH)=(005FH)=90H78H40H23H中断类型码为0AH,中断向量地址=0AH*4=28H,将12ACH送0000H:0028H,将2010H送0000H:002AH。 例3 某外部可屏蔽中断的类型码为0AH,它的中断服务程序的入口地址是2010H:12ACH,请用8086汇编语言直接编程,将中断服务程序的入口地址填入中断的向量表中。PUSHESMOV AX,0000HMOV ES,AXMOV ES:WORDPTR[28H],12ACHMOV ES:WORDPTR[2AH],2010HPOP ES6.2可编程中断控制器82C59A8259中断控制器的功能
1、8级优先权控制,通过级连可扩展至64级优先权控制。
2、每一级中断都可允许或屏蔽。
3、提供中断向量。
4、可编程选择多种工作方式。IR0IR7单片
INTINTA8259AINTRINTACPU...中断请求
CPU8259A.....IR0IR7级联主8259AIR0从...IR78259AIR0从...IR7INTAINTRVCCIRTA20191817161528272221123456789108259GND2423CSD7D6D5D4D3A0D1D2CAS2INTWR13141112IR72625IR6IR5IR4IR3IR2IR1IR0SP/ENCAS1CAS0D0RDCS——片选信号(ChipSelect)低电平有效。WR——写信号,低电平有效。——读信号,低电平有效。RDD0~
D7——双向数据总线。IR0~IR7中断请求信号,输入。INT——向CPU发出的中断请求信号,输出。A0——片内地址选择信号,用来对82C59A内部的2个可编程寄存器进行选择。VCCIRTA20191817161528272221123456789108259GND2423CSD7D6D5D4D3A0D1D2CAS2INTWR13141112IR72625IR6IR5IR4IR3IR2IR1IR0SP/ENCAS1CAS0D0RDINTA——接收CPU发出的中断响应信号,输入。CAS2、CAS1、CAS0
——级联总线,传送3位标识码,用于区分特定的从8259。双向:对于主片为输出,对于从片为输入。SP/EN——双功能引脚输入:表明主从关系=1为主片,=0为从片输出:缓冲方式启动数据总线收发器传送方向。
=1表示CPU通过数据缓冲器写入8259A。
=0CPU通过数据缓冲器读8259A。6.2.182C59A内部结构IRR:(中断请求寄存器)八位,存放从外设来的中断请求信号IR0—IR7,相应位置“1”
。ISR:(中断服务寄存器)八位,记忆正在处理中的中断请求。ISR中相应位置“1”,直到该中断处理过程结束。当ISR为全0时,表示无任何中断服务。IMR:(中断屏蔽寄存器)八位,保存各级中断的屏蔽信息。某一位置“1”,禁止这一级中断。82C59A内部结构PR:(优先权判别器)1)根据CPU送入的命令定义或修改中各位的优先级别。2)有多个中断同时出现时,分析哪个中断源优先级最高。3)判断是否可以进入多重中断。4)当一个中断请求被判别为较高优先级时,通过控制逻辑向CPU发出中断请求信号INT,当CPU响应中断而获得响应信号INTA时,使ISR中的相应位置“1”。82C59A内部结构数据总线缓冲器:双向八位三态缓冲器,构成8259与CPU之间的数据接口。读/写控制电路:接收CPU的读/写控制命令和片选控制信息。控制逻辑将根据优先权判别器的请求向CPU发出中断请求信号同时接收来自CPU的中断响应信号INTA。82C59A内部结构级联缓冲/比较器:CAS2、CAS1、CAS0主从片间级联总线,构成主从关系。主8259:输出信号,输出从片的级联编号。从8259:输入信号,接收主片的级联信号,响应中断。6.2.282C59A的中断优先权管理方式一、完全嵌套方式
中断优先权为固定优先权,IR0~IR7依次下降。中断嵌套时只能高级中断低级的中断,同级和低级不能产生中断。适用于单片结构。
CPU8259A.....IR0IR7主8259AIR0从...IR78259AIR0从...IR7INTAINTR二、特殊完全嵌套方式
在级联方式下必须运用特殊完全嵌套方式。同一片的IR0~IR7与完全嵌套方式相同。对于从片,中断被响应后,并不屏蔽这个从片的中断,从片中优先权高的中断申请仍可响应。 82C59A的中断优先权管理方式主片工作在特殊完全嵌套方式,而从片工作在完全嵌套方式。82C59A的中断优先权管理方式三、中断优先权的旋转1、正常优先权旋转:
IRi的中断优先权相等。某个中断响应,它的优先权变为最低,比它低一级的中断源得到最高优先权。其它中断的优先权按级别以循环方式类推。IR0IR7INTINTA8259A...中断请求IR5IR6IR7IR0IR1IR2IR3IR4例如:中断优先级依次为IR0到IR7,当中断IR4被响应,则IR4的中断优先权变为最低,比它低一级IR5的优先权变为最高。相应的优先权排队为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4、IR32、特殊优先权旋转:
根据用户的要求将最低优先级赋给指定的中断源。可在主程序或中断服务程序中利用置位优先权命令把最低优先级赋给某一中断源,其它中断的优先权按级别以循环方式类推。82C59A的中断优先权管理方式四、屏蔽方式:1、普通屏蔽方式:
IMR中的某一位或某几位置“1”,即可能将相应级的中断请求屏蔽掉。程序运行的过程中,可以将中断优先级比正在响应的中断高的中断屏蔽掉。2、特殊屏蔽方式:
当处理中断的过程中,希望对本级进行屏蔽,而允许优先级比它高或低的中断申请中断。特殊屏蔽方式只能用特殊EOI结束。3、查询排序方式: 用软件查询响应中断,此时8259不处于中断状态,INT可不连接INTR,而是程序查询IRR决定的是否响应中断及中断的优先级。
82C59A的中断优先权管理方式6.2.3
82C59A的中断结束方式一、自动EOI方式:
在第二个中断响应周期的的后沿,自动使中断源在ISR中的相应位复位,只适用于无中断嵌套的情况。否则将可能出现自身的重复中断。二、EOI命令方式:
在中断服务程序末尾向8259A发出中断结束命令,清除ISR中的相应位,表示该级的中断服务程序已经结束。82C59A的中断结束方式2、特殊EOI方式:
中断服务程序结束,发出EOI的同时将当前结束的中断级别也传送给8259。8259将ISR中指定级别的相应位清“0”。显然这种方式适合于任何情况。1、普通EOI方式:
自动清除ISR中所有已置位的优先级最高的那一位,因此它适用于完全嵌套方式的中断结束,因为此时正在服务的中断源必定是优先级最高的。6.2.4
中断处理过程
下面以82C59A单片使用为例,说明可屏蔽中断处理的过程1、当一条或多条中断请求线IR0~IR7变高时,设置相应的IRR位。2、PR对中断优先权和中断屏蔽寄存器的状态进行判断之后,如果某中断优先权最高且为允许中断状态,就向CPU发高电平中断申请信号INT,请求中断服务。3、CPU响应中断时,送出中断响应信号。4、82C59A接到来自CPU的第一个信号时,当前中断服务寄存器(ISR)中相应位置位,并把IRR中相应位复位。同时,82C59A准备向数据总线发送中断类型码。5、在82C59A发送中断类型码的最后—个负脉冲期间,如果是在AEOI(自动结束中断)方式下,在这个负脉冲结束时复位ISR的相应位。在非自动中断结束方式下,ISR相应位要由中断服务程序结束时发出的EOI命令来复位。中断处理过程
6.2.5
8259A芯片的级联使用
在一个系统中,8259可以级联,有一个主8259,若干个从8259,最多可以有8个从8259,把中断源扩展到64个。级联的电路特征1、SP/EN:主8259接VCC,从8259接GND用以区分主从关系。2、CAS2、CAS1、CAS0:主8259为输出线,从8259为输入线。3、INT:从8259的INT线连接到主8259的中断请求输入端IRi,主8259连接到CPU的中断请求输入端INTR。4、主8259也可直接从IRi接入中断源。
CPU8259A主IR0IR78259A从IR0IR7中断源INTAINTRINTINTACAS2CAS1于CAS0CAS2CAS1于CAS0…………ENSP/ENSP/VCCGND级联下的中断请求1、从8259判断IRi的优先权,经INT向主8259发出中断请求。2、主8259判断从8259的优先权后再向CPU发出中断请求。3、CPU响应中断,第一个响应周期,主8259通过三条级连线输出被响应中断的从8259的编码。4、从8259接收编码,在第二个中断响应周期输出它的中断向量类型码,进入中断响应过程。
CPU8259A主IR0IR78259A从IR0IR7中断源INTAINTRINTINTACAS2CAS1于CAS0CAS2CAS1于CAS0…………ENSP/ENSP/VCCGND6.2.6命令字和初始化编程
82C59A是根据收到CPU的命令字进行工作的。CPU的命令字分两类:一类是初始化命令,称为初始化命令字(InitializationCommandWord,ICW),初始化命令字往往是在系统启动时,由初始化程序设置的。初始化命令字一旦设定,一般在系统工作过程中就不再改变。另一类是操作命令,称为操作命令字(OperationCommandWord,OCW)。在初始化后,CPU用这些控制字来控制82C59A执行不同的操作,如中断屏蔽、中断结束、优先权循环和中断状态的读出和查询等。命令字和初始化编程分为两步骤:
1)初始化编程: 写入2~4个初始化命令字ICW1~ICW4。
2)工作方式编程: 写入三个工作命令字OCW1~OCW4。以规定8259的工作方式。可以在初始化以后的任何时间写入。命令字和初始化编程1)ICW1、ICW2是必须的。2)ICW3在级联时才有。3)ICW4是专用于8086系统的。4)地址线A0、特定标志位、及ICW的输入顺序相配合,完成多寄存器的寻址。初始化编程:
8259初始化命令字ICW有四个,在不同的状态下写入不同。ICW2A0=1ICW1A0=0级联方式?ICW3NYA0=1ICW4准备好接受中断
需ICW4?YNA0=1ICW1芯片控制字ICW4选择0:不需要
1:需要IRX输入触发方式0:上升沿1:高电平D7D6D5D4D3D2D1D0无定义无定义LTIM×1××SNGLICW4×ICW1标志单片级联选择
0:多片级1:单片命令字和初始化编程主要功能:1、表明IRX输入是电平触发方式还是上升边沿触发方式2、表明是单片8259A还是多片8259A0A0命令字和初始化编程例:某8086微机系统中,使用单片82C59A,中断请求信号为上升沿触发,需要设置ICW4,端口地址为20H和21H,则其初始化命令字ICW1应为:00010011=13H,设置ICW1的指令为:
MOVAL,13HOUT20H,ALICW2中断类型字
D7D6D5D4D3D2D1D0由程序决定高5位T6IR7:111IR6:110IR5:101IR4:100IR3:011IR2:010IR1:001IR0:000T7×××T4T5T3命令字和初始化编程主要功能:用来设定8086/8088CPU可屏蔽中断的中断类型码的高五位的内容,而低三位的值由8259A按IR0~IR7三位编码值自动填入。1A0例:高5位为00011则其类型号为00011XXXIR0=18H 00011000IR1=19H 00011001……1R7=1FH 00011111命令字和初始化编程ICW3级联控制字D7D6D5D4D3D2D1D0S6Sx=1表示IRX接有从8259Sx=0表示IRX无从8259S7S4S5S3S1S2S0主8259ICW3:D7D6D5D4D3D2D1D00IDi为从片的标识,与主8259的对应IRI的编号相同。
0000ID2从8259ICW3:ID1ID0IR7:111IR6:110
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025私营企业劳动合同书 劳动合同
- 2025电缆供应合同模板
- 2025汽车销售合同大全
- 2025年网络设备采购合同
- 二次结构工程施工承包合同书模板二零二五年
- 二零二五领队出团合约
- 艺人代言合同
- 2025年签订的二手房合同是否有效
- 2025专业深圳合同范本
- 2025解析山东省商品供销合同范本
- DZ∕T 0173-2022 大地电磁测深法技术规程
- 在线网课知慧《形势与政策(吉林大学)》单元测试考核答案
- 样本相关系数课件
- 三年级必读书课外阅读测试(附答案)
- 《电力人工智能训练数据集归集标准》标准
- 减重肥胖手术
- 博白芒竹编织工艺
- 语言活动:魔法妈妈
- 桥梁施工测量方案
- 五子棋课件公开课课件
- 数据安全与网络法律保护
评论
0/150
提交评论