微处理器与接口技术:第八章 中断系统_第1页
微处理器与接口技术:第八章 中断系统_第2页
微处理器与接口技术:第八章 中断系统_第3页
微处理器与接口技术:第八章 中断系统_第4页
微处理器与接口技术:第八章 中断系统_第5页
已阅读5页,还剩54页未读 继续免费阅读

付费下载

下载本文档

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

文档简介

微机原理与接口技术第八章中断系统8.1中断的基本概念中断是CPU和外部设备交换数据的一种方式。当CPU正常运行程序时,用户通过某种方式向CPU请求为自己服务,CPU接收请求暂时中断正在运行的程序,转去执行直接为用户服务的服务程序,执行完毕后再返回被中断的程序。这一过程被称为中断。中断可以提高CPU与外设交换数据的效率。中断源能够导致CPU产生中断的来源就是中断源。对于CPU来说,中断源有两类:硬中断源和软中断源。硬中断也称为外中断,是由外部的电路在CPU的引脚上产生的中断请求。软中断是在CPU执行程序过程中产生的中断请求。可以是一条软中断指令,也可以是因为程序运行出现某种问题而导致的软中断。CPU中断源的示意图:既有硬中断,也有软中断。8.1中断的基本概念开中断和关中断不同的中断源又可以分为条件中断和无条件中断。对于条件中断,要求CPU必须处于某种条件下,才可以响应中断。如果CPU处于可以响应条件中断的状态,称为开中断状态。如果CPU处于不可以响应条件中断的状态,称为关中断状态。8.1中断的基本概念中断优先级由于CPU存在多个中断源,多个中断源可能同时向CPU申请中断。为了能够有序的处理多个中断申请,所以要有中断优先级的规定。如果CPU在执行中断服务程序时,又接受了新的中断申请,就会打断正在执行的中断服务程序,为新的中断源服务。这种在中断服务过程中,又接受新的中断申请并为之服务的情况,称为中断嵌套。有了中断优先级可以使得中断嵌套有序的进行。8.1中断的基本概念软件查询实现中断优先级排队8.1中断的基本概念软件查询中断排队的服务程序流程图8.1中断的基本概念硬件电路实现中断源排队8.1中断的基本概念中断向量表中断向量表是系统RAM或者系统ROM的一个区域。向量表的大小取决于CPU支持的中断类型和数量。中断向量表存放中断服务程序的入口地址,或者是跳转到中断服务程序入口的指令。中断向量表用来解决中断和中断服务程序的关联,在中断系统中具有非常重要的作用。8.1中断的基本概念中断过程中断过程一般分为以下几个阶段:中断申请中断判优中断响应保存断点地址将指令指针指向中断服务程序的入口

中断返回8.28086中断系统8086的中断源8086处理的中断分为两类:软中断和硬中断。硬中断又分为两类:非屏蔽中断和可屏蔽中断。非屏蔽中断就是无条件中断,可屏蔽中断就是条件中断。8086系统可以处理256个不同的中断,对于每个中断,都会分配一个中断类型号。中断类型号的取值是从0~255,或者是从00H~FFH。8.28086中断系统中断类型号用途对应的指令说明0除法溢出无1单步中断无通过TF=1来启动2非屏蔽中断无3断点中断INT3是单字节指令4溢出中断INTO单字节指令8086规定的特殊中断类型号及其用途8.28086中断系统8086的中断源8.28086中断系统8086中断源的优先级由于8086存在多个中断源,这些中断源之间必须有优先级的差别,以便在几个中断源同时申请中断时,先响应高优先级的中断源。8086中断源的优先级是固定的: 除法溢出中断→INTn→INTO→NMI→INTR→单步中断(最低)8.28086中断系统可屏蔽中断的中断周期中断响应周期需要两个总线周期可屏蔽中断的接口电路,要在收到第一个应答信号后,立即向CPU传送相应外设的中断类型号。8.28086中断系统8086的中断向量表8086的中断向量表位于存储器的0~3FFH地址,共1024字节。8086的中断向量表采用的是向量中断,中断向量表中存放的是中断向量,也就是中断服务程序的入口地址。1024个字节用来存放256个中断服务程序的入口地址。每个中断号分配4个字节。低地址2个字节是中断入口的IP(偏移地址),高地址的两个字节是中断入口的CS(段地址)。8.28086中断系统利用DOS功能调用写、读中断向量表。DOS功能调用25H用来写中断向量表。入口参数是:

AL:中断类型号;

DS:中断服务程序入口的段地址;

DX:中断服务程序入口的偏移地址。DOS功能调用35H用来读中断向量表,入口、出口参数如下:

AL:中断类型号;

ES:读出的中断服务程序入口的段地址;

BX:读出的中断服务程序入口的偏移地址。8.28086中断系统例8-4设中断类型号为70H,中断服务程序是INTSUB,用DOS功能调用25H将中断服务程序入口地址写入中断向量表。解:相关的程序段如下:

PUSH DS MOV AX,SEGINTSUB MOV DS,AX LEA DX,INTSUB MOV AL,40H MOV AH,25H INT 21H POP DS8.28086中断系统8086的中断过程中断申请:外中断申请(包括NMI、INTR)都是高电平有效中断响应:无论是哪一种中断申请,8086都要在执行完当前指令后,开始响应中断。标志寄存器的值推入堆栈保护;使得标志IF和TF清零,也就是,进入中断服务程序后,CPU是处于关中断状态;正在执行的程序的断点的CS和IP入堆栈保存;根据中断类型号,查中断向量表,将中断服务程序入口地址写入CS和IP;开始执行中断服务程序。8.28086中断系统中断服务:中断服务程序都是远过程。如果希望允许中断嵌套,在中断服务程序的开始时,写一条开中断指令:STI。中断返回:用IRET指令IRET指令的具体操作是:

IP←(SP),SP←SP+2 CS←(SP),SP←SP+2 F←(SP),SP←SP+28086响应中断的过程:8.3可编程中断控制器8259A及其应用8259A中断控制器的基本功能:单片8259可以连接8个中断源,多片8259连接后,可以连接多达64个中断源。可以设置中断源的中断类型号;在CPU应答后,能自动地向CPU发送中断类型号。能管理中断源的优先级,并有固定优先级(自动嵌套方式)和循环优先级(相等优先级)两种管理方式。可以设置中断源的中断请求方式:电平方式或脉冲方式。8.3可编程中断控制器8259A及其应用8259A的功能框图8.3可编程中断控制器8259A及其应用主要模块,包括:中断请求寄存器(IRR),保存还没有得到处理的外部中断源的申请。中断服务寄存器(ISR),登记哪些中断源的申请正在被CPU响应。优先级分析器(PR),有多个中断源申请中断时,优先级分析器判定谁是最高优先级,可以优先服务;或者决定是不是可以中断嵌套。中断屏蔽寄存器(IMR),IMR共有8位,每一位控制一个外部中断源申请。当某一位为“1”时,相应的中断源的申请就被屏蔽,不能进入IRR寄存器进行登记。8.3可编程中断控制器8259A及其应用8259A引脚图8.3可编程中断控制器8259A及其应用8259A的工作方式作为一个可编程的中断控制器,8259A提供了多种工作方式供用户选择。了解8259A的主要工作方式才能够正确的使用8259A。8.3可编程中断控制器8259A及其应用确定中断类型号的方式单片8259A可以为8个中断源分别提供中断类型号。8259A规定8个中断类型号的高5位是相同的,只有低3位不同。中断类型号低3位的值和中断输入引脚的编号相一致。从IR0输入的中断源的中断类型号低3位是“000”,从IR7引脚输入的中断源的中断类型号的低3位是“111”。因此,8259A的8个中断源的中断类型号一定是连续的。8.3可编程中断控制器8259A及其应用中断结束方式8259A有两种清除ISR寄存器中的登记的方法,也就是有两种中断结束方式。自动结束中断方式:8259A在CPU发送第二个应答信号的后沿,自动清除被响应的中断在ISR寄存器中的登记。非自动介绍中断方式:要求在中断服务程序结束前,通过指令向8259A发送一个结束中断的命令,8259A收到这个命令后,才会清除正在服务的中断在ISR寄存器中的登记。8.3可编程中断控制器8259A及其应用优先权管理方式全嵌套方式:对于8个中断源,从IR0接入的中断源优先级最高,从IR7接入的中断源优先级最低。循环优先级方式:一旦某个中断请求被响应了,这个中断输入对应的优先级就降到最低,原来比这个输入低一级的输入的优先级升位最高,其余各个输入对应的优先级仍然依次排列。8.3可编程中断控制器8259A及其应用特殊全嵌套方式:特殊全嵌套方式在多片8259A级联的时候使用。它允许同级中断的嵌套:后面到来的同级中断申请可以打断前面没有结束的同级中断服务。从8259A发来的新的申请可以打断前面的中断服务8.3可编程中断控制器8259A及其应用中断屏蔽方式一般屏蔽方式:通过对于中断屏蔽寄存器IMR的设置,可以屏蔽一些(甚至全部)中断申请输入到8259A。特殊屏蔽方式:8259A还可以设置一种特殊屏蔽方式。在这样的屏蔽方式中,高优先级的中断不对低级中断产生屏蔽。也就是说,各中断源之间的优先级关系就不考虑了。8.3可编程中断控制器8259A及其应用8259A和系统数据总线连接的方式非缓冲方式在非缓冲方式下,8259A的数据线直接和系统的数据总线相连接。一般的应用场合,都可以使用这种连接方式。在这种连接方式下,不需要作为输出信号控制外接的数据缓冲器。作为输入信号来标识8259A是作为主8259A,还是从8259A:接高电平为主8259,接低电平,为从8259。

8259A非缓冲方式的连接8.3可编程中断控制器8259A及其应用缓冲方式在缓冲方式下,8259A的数据线通过数据缓冲器和系统的数据总线相连。数据缓冲器的选通端连接到8259A的引脚。在这种应用场合,引脚输出低电平的选通信号时,打开所连接的数据缓冲器,8259A才和系统数据总线进行数据传送。8.3可编程中断控制器8259A及其应用8259A的编程8259A作为一种可编程中断控制器,需要在CPU的控制下工作。CPU传送给8259A的控制命令有两类:初始化命令字和操作命令字。8.3可编程中断控制器8259A及其应用8259A的初始化命令字初始化命令字设置8259A的基本工作方式。完成一次初始化编程后,8259A就按照所设置的方式工作,直到重新进行初始化,才可以改变所设置的基本工作方式。8259A共有4个初始化命令字:ICW1~ICW4。每个初始化命令字要写到8259A的不同的端口。8.3可编程中断控制器8259A及其应用ICW1初始化命令字8.3可编程中断控制器8259A及其应用ICW2初始化命令字:功能:写入8个中断源的中断类型号的高5位。8.3可编程中断控制器8259A及其应用ICW3初始化命令字:功能:在多片8259A的系统中,说明主、从8259A之间的连接关系。8.3可编程中断控制器8259A及其应用ICW4初始化命令字:功能:设置8259A的中断结束方式等。8.3可编程中断控制器8259A及其应用8259A的初始化过程8.3可编程中断控制器8259A及其应用8259A的操作命令字初始化过程结束后所写入的命令字都是操作命令字。每个操作命令字写入的次数和时间顺序都是没有限定的。8259A有3个操作命令字:OCW1、OCW2和OCW3。8.3可编程中断控制器8259A及其应用OCW1命令字写入端口:A0=1。功能:设置中断屏蔽寄存器。8.3可编程中断控制器8259A及其应用OCW2命令字:写入端口:A0=0。功能:设置中断优先级管理方式,向8259发送中断结束字(EOI)。8.3可编程中断控制器8259A及其应用OCW3命令字:写入端口:A0=0。主要功能:确定下一次读出是IRR还是ISR。8.3可编程中断控制器8259A及其应用8259A初始化编程举例例8-52片8259级联,从片的INT接主片的IR2。端口地址:主片20H、21H,从片A0H、A1H。主片和从片均采用边沿触发。主片采用特殊全嵌套方式,从片是一般全嵌套方式。采用非缓冲方式,主片接+5V,从片接地。主片的中断类型号为08H~0FH,从片的中断类型号为70H~77H。写出主8259A和从8259A的初始化程序段。

相应的初始化程序段如下:ICW1AEQU20H ;主片端口地址ICW2AEQUICW1A+1ICW3AEQUICW2AICW4AEQUICW2AICW1BEQU0A0H ;从片端口地址ICW2BEQUICW1B+1ICW3BEQUICW2BICW4BEQUICW2B;-----------主片8259A------------MOVAL,11H ;ICW1,边沿触发,多片,需ICW4OUTICW1A,ALMOVAL,08H ;ICW2,中断类型码OUTICW2A,ALMOVAL,04H ;ICW3,IR2接从片OUTICW3A,ALMOVAL,11H ;ICW4,非缓冲,特殊全嵌套,非自动结束OUTICW4A,AL;-----------从片8259A------------MOVAL,11H ;ICW1,边沿触发,多片,需ICW4OUTICW1B,ALMOVAL,70H ;ICW2,中断类型码OUTICW2B,ALMOVAL,02H ;ICW3,INT接主片的IR2OUTICW3B,ALMOVAL,01H ;ICW4,非缓冲,全嵌套,非自动结束OUTICW4B,AL8.3可编程中断控制器8259A及其应用中断应用程序举例例8-6改写除法溢出的中断服务程序,能够分别处理除法溢出的两种情况:当除数为0时,给出错误信息;如果不是除数等于0,计算出实际的商和余数,并通过子程序的出口参数来传递。除法溢出中断服务程序的流程图

8.4ARM中断系统简介8.4.1ARM将中断作为一种异常

ARM将执行程序时发生的意外事件称为异常,中断只是要处理的异常之一。

ARM异常包括8种:复位、未定义指令、软件中断、指令予取中止、数据中止、外部中断请求IRQ和快速中断请求FIQ,还有一个异常没有具体定义。ARM中断系统特点8.4.1ARM将中断作为一种异常ARM响应异常时,将程序指针赋予固定的地址,也就是ARM的异常向量表(也就是前面说的中断向量表)是属于指令型的异常向量表。ARM处理器的异常向量表。异常向量异常0x00000000复位0x00000004未定义指令0x00000008软件中断0x0000000C预取指令中止0x00000010数据中止0x00000014保留0x00000018IRQ0x0000001CFIQ8.4.1ARM将中断作为一种异常异常向量表指定各异常及其处理程序的对应关系。ARM处理器的异常向量表的大小为32字节。其中,每个异常占据4个字节大小,保留了4个字节空间。ARM处理器响应外部中断时,程序指针将被赋值为0x00000018,可在这个地址放置一条跳转

温馨提示

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

评论

0/150

提交评论