8 中断及中断系统
微机原理第7章 8086中断系统和中断控制器
3)高级中断源能中断低级的中断处理
中断嵌套 当CPU正在响应某一中断源的请求,执行为其服务的中断服务程序时, 如果有优先级更高的中断源发出请求,CPU将中止正在执行的中断服务程 序而转入为新的中断源服务,等新的中断服务程序执行完后,再返回到被 1 中止的中断服务程序,这一过程称为中断嵌套。 • 中断嵌套可以有多级,具体级数原则上不限,只取决于堆栈深度。
外部中断 非屏蔽中断 可屏蔽中断
可屏蔽中断源
CPU 中断逻辑
INTR
8259A 中断 INTA 控制器
INT N 指令
INTO 指令
除法 错误
单步 中断
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
外 设 中 断 源
内部中断: 除法错中断 指令中断 溢出中断 单步中断
硬件(外部)中断 非屏蔽中断请求 INT 2 NMI(17号引脚) 中 断 逻 辑 可屏蔽中断请求 中断类型号32~255 INTR(18号引脚)
中断指令 INT n N=32~255
溢出中断 INTO INT 4
断点 中断 INT 3
单步中断 (TF=1) INT 1
除法 错误 INT 0
软件(内部)中断
8086/8088中断源
1.软件中断(内部中断) 8086/8088的软件中断主要有三类共五种。 (1) 处理运算过程中某些错误的中断 执行程序时,为及时处理运算中的某些错误 ,CPU以中断方式中止正在运行的程序,提醒程 序员改错。 ① 除法错中断(中断类型号为0)。在8086 /8088 CPU执行除法指令(DIV/IDIV)时,若发现 除数为0,或所得的商超过了CPU中有关寄存器所 能表示的最大值,则立即产生一个类型号为0的 内部中断,CPU转去执行除法错中断处理程序。
中断与中断系统的基本概念汇总
中断与中断系统的基本概念汇总中断是计算机中的一种机制,用于在计算机运行过程中处理各种外部事件。
中断系统是计算机系统中实现中断机制的硬件和软件部分的总称。
在计算机系统中,中断机制起着非常重要的作用,它使得计算机可以同时处理多个任务,提高了计算机系统的效率。
中断可以分为硬件中断和软件中断两种类型。
硬件中断是由计算机系统中的硬件设备引起的中断,例如设备I/O完成、时钟中断等。
而软件中断是由计算机系统中的软件引起的中断,例如系统调用、异常等。
中断系统的基本概念主要包括中断向量表、中断服务程序和中断处理机制。
中断向量表是一张存储中断服务程序入口地址的表,其中每个表项对应一个中断源。
当一个中断源发生时,其对应的表项会被检索,从而找到相应的中断服务程序入口地址。
中断服务程序是一段用于处理中断的程序代码,它负责处理特定类型的中断事件。
中断服务程序通常由系统内核提供,并且在中断发生时被自动调用。
中断处理机制是指计算机系统对中断请求的检测、响应和恢复过程。
当一个中断事件发生时,计算机系统会首先检测中断请求信号,然后根据中断请求的优先级,响应并调用相应的中断服务程序。
在中断服务程序执行完毕后,系统会根据需要进行中断恢复操作,然后继续执行中断前的程序。
中断机制具有以下几个特点:1.异步性:中断机制使得计算机可以及时响应外部事件,提高了系统的实时性。
不需要由程序主动请求,而是在外部事件发生时自动触发中断。
2.多任务处理能力:通过中断机制,计算机可以在处理一个中断事件的同时,同时处理其他的任务。
这样可以充分利用计算机系统的资源,提高系统的处理能力。
3.优先级控制:中断机制可以根据中断请求的优先级,调用相应的中断服务程序。
这样可以灵活地对不同类型的中断事件进行优先处理。
4.可靠性:中断机制使得计算机系统对于外部事件的处理更加稳定。
即使系统正在执行一个重要的任务,也能够及时响应其他重要的外部事件。
5.可扩展性:通过增加中断源和相应的中断服务程序,可以很方便地扩展计算机系统的功能。
中断系统中断概念一中断的概念中断是指在计算机执行
中断源
入口地址
INT0
0003H
T0
000BH
INT1
0013H
T1
001BH
串行口
0023H
(5)中断返回
S(E串ETM串串5(1.FEXSO)1行行行用10T:)V串:B口 口 口字EI行定自PEX节,T口#1时然00操:外中8/优计作HR断部先数指X允中级D器令00许断00:(T22控0133),中外HH制T断部位X标D中志(断位1)中断允许控制位
5.5 中断优先级控制 1、中断优先级寄存器
IP
BCH BCH BBH BAH B9H B8H
B8H X X X PS PT1 PX1 PT0 PX0
高优先级
MCS-51系列单片机有两级中断级
低优先级
PX0,PT0,PX1,PT1,PS分别为INT0,T0,INT1,T1 串行口中断优先级控制位,当相应位为0时为低优先级,相应 为1时为高优先级。
例5 .2 要将T1定时器定义为最高优先级,其他中断定义为低 优先级,如何设置IP?
(1M M)用OO字VV 节AIE操8,H作,##指88E令EHH E串串 例串P中IT串(TCTRRTUP0行行:行断行1000US:)::口 口口 源 口HE响外置TI定定应N1部相PT时时,中ES_中应//TWT断计计断2R的0:后数数:X定0优D触,器器00入0时先000(发于TT口222计级00333)方中地运 运数HHH触式断T址行行器发X选返控控TD器0择回制制(,状T前位位1)态,,T为2应中1该断撤控销制中位断请求。 (2S)E用T位B E操A作 P中生S…ITUE1断的…TS:B是 事 .H外E指件部TP在,1S中W计待断算处0机理触执完发行毕方程后式序,选的再择过返程回当来中执,行当原外来部被设中备断发的生程某序一。事件时,请求CPU处时,CPU暂时中断当前程序的执行,转去处理所发 SSSEEETTTBBB EEETTX010 EI(P先为ST中S1中生N0EXES假4级了断断的T0TT:)1串设,BB。 使 处 是 事转行允PEE这理指件T入TA口许些过在,00相中,打单程计待应断P开0元可算处X0的允0I的分机理01N0中B许,1T值为执完H31断控PH在三行毕及T服制1中个程后定,务位断阶序,时P程程段的再器S序分序:过返T入0别中中程回,T口为不断当来1,I禁被响中执NT止冲应,行0其,掉,当原他T,中外来0中在断部被,断进处设中IN,入理备断T试1中,发的设,断中生程置T1服断某序IE串务返一。. 行程回事口序。件中前时断,,优要请先将求级有C控P关U制寄处位存时,器,当保C相P护U应起暂位来时为。中0断时当为前低程优序先的级执,行相,应转为去1时处为理高所优发
中断技术是计算机中重要的技术之一,它既和硬件有关,又和软件有关正
89S51中断系统主要由几个与中断有关的特殊功
能寄存器、中断入口、顺序查询逻辑电路等组成。
89S51的中断系统结构框图示于图8-3。如图所示, 与中断有关的特殊功能寄存器有4个,分别为中断源 寄存器(即专用寄存器TCON、SCON的相关位)、 中断允许控制寄存器IE和中优先级,即可实现二级中 断嵌套。5个中断源的排列顺序由中断有限级控制寄 存器IP和顺序查询逻辑电路(图中的硬件查询)共同 决定。5个中断源对应5个固定的中断入口地址,亦称 矢量地址。
2、实现是实时处理
在实时控制中,现场的各个参数、信息是随时间和现场情况 不断变化的。有了中断功能,外界的这些变化量可根据要求, 随时向CPU发出中断请求,要求CPU及时处理,CPU就可以马 上响应(若中断响应条件满足)。这样的及时处理在查询方式 下是做不到的。
3、故障处理
计算机在运行过程中,出现一些事先无法预料的故障是难 免的,如电源突跳,在储出错,运算溢出等。有了中断功能, 计算机就能自行处理,而不必停机处理。
序事先却无法确知,因为“中断”的发生是由外部 的
因素决定的,程序中无法事先安排调用指令,因而 调用中断服务程序的过程是由硬件自动完成的。
8.1.2 引进中断技术的优点
计算机引进中断技术之后主要有如下优点:
1、分时操作
有了中断功能就解决了快速的CPU与慢速的外设之间的矛 盾。可以使CPU和外设同时工作。CPU在启动外设工作后,继 续执行主程序,同时外设也在工作,每当外设做完一件事,就 发出中断申请,请求CPU中断它正在执行的程序,转去执行中 断服务程序(一般情况是处理输入输出数据),中断处理完之 后,CPU恢复执行主程序,外设仍继续工作。这样CPU可以命 令多个外设同时工作,从而大大提高了CPU的利用率。
第8章 中断系统
中断执行示意图如下:
第18页
2012年6月11日星期一
第8章
结束当前指令?
内部中断?
中断系统
①
关中断 标志寄存器入栈 TEMP=TF(暂存) 清除IF、TF标志 断点(CS,IP)入栈 取中断向量 进入中断服务程序 开中断 执行中断服务程序 Y
N
有NMI?
有
无 N
无
有INTR?
有
IF=1?
Y Y
TF= N 1? 取中断类型码
第8页 2012年6月11日星期一
第8章
8.2.2 中断处理
中断系统
1.中断的处理过程 ⑴关中断。目的:在现场保护过程中,CPU不应该 响应更高级的中断源申请。 ⑵保存断点和现场。即将现行状态字和断点地址相 继压入堆栈。目的:在中断处理完后返回主程序时, 恢复原程序运行状态。 ⑶开中断。目的:允许更高级中断请求能够及时得 到响应,实现中断嵌套。 ⑷转入中断服务程序。目的:完成的最终目的。 ⑸ 退出中断。返回到主程序的执行。
第20页 2012年6月11日星期一
第8章
8.3.4 软件中断
中断系统
软件中断有如下特点: 1.INT n 指令,中断类型码是 n。 2.不执行中断响应总线周期,不读取中断类型码。 3.软件中断不受IF的影响。 4.可进行中断嵌套,即可以响应非屏蔽中断;当被软 件中断调用的中断处理子程序使IF=1时,那么也可响 应屏蔽中断的高优先级请求。 5.软件中断没有随机性,这是因为软件中断是由程序 中的中断指令引起的,何时执行,是事先知道的,所 以软件中断失去了随机性。
第21页 2012年6月11日星期一
第8章
8.4 中断控制器8259A
一、引言
中断系统
计算机硬件基础——第八章(中断系统)
AJMP MAIN
AJMP IT0P MAIN: MOV SP,#60H MOV TMOD, #01H MOV TH0 ,#M
DJNZ R7,DD2
DJNZ R5,DD1 RET
MOV TL0,#N
SETB TR0 SETB EA SETB ET0 SJMP $
从上例可看出中断大大提高了CPU的工作效率。
中建立堆栈。 ②在中断服务程序的开始应有保护现场的指令。 即将中断服务程序中用到的各寄存器的内容压入堆栈保存,在中 断结束之前弹回恢复,然后返回。这样就能保证返回原断点时各
寄存器内容与中断服务前相同,使原程序能正确运行。
③中断与调用子程序的异同: 中断过程中由主程序转向中断服务程序的请求是由外部设备提出 的,发生中断的时刻不确定,而在何处调用子程序则是由程序确 定的。
3
一.8031的中断请求源
有5个中断源,它们是:串行口 T1 INT1 T0 INT0
TCON (88H)中相应的位锁存它们的中断标志:
TF1 其中:
TR1
TF0
TR0
IE1
IT1
IE0
IT0
IT0 :INT0触发方式选择,0:低电平触发,1:负跳变触发
IE0 :INT0选择负跳变触发时的中断标志,0:INT0未申请中断, 1:INT0申请中断 INT0选择低电平触发时此标志无用。 IT1、IE1同上定义对INT1控制。
10
例
8000H
MOV A, #06H
①
8002H
8005H
MOV B, #05H
MUL AB MOV IE , #05H MOV R0 , #30H …………….
②
8006H 8009H 800BH
硬件技术基础第七章中断系统
CPU响应中断的条件和过程 CPU响应中断的条件和过程
恢复现场 把所保存的各个内部寄存器的内容和标志位的状态从 堆栈弹出,送回CPU中的原来位置。这个操作在8088 CPU中的原来位置 8088中也 堆栈弹出,送回 CPU中的原来位置。这个操作在8088 中也 是由服务程序中用POP指令来完成的。 POP指令来完成的 是由服务程序中用POP指令来完成的。 开中断与返回 在中断服务程序的最后,要开中断(以便CPU CPU能响应 在中断服务程序的最后,要开中断(以便 CPU能响应 新的中断请求)和安排一条返回指令,将堆栈内保存的IP 新的中断请求)和安排一条返回指令,将堆栈内保存的IP CS值弹出 程序就恢复到主程序中运行。 值弹出, 和CS值弹出,程序就恢复到主程序中运行。
中断系统
教学目的和要求
本章主要介绍中断的基本概念 , 中断响应过程 , 8088的中断方式 的中断方式, PC/XT的中断方式 的中断方式, 8088的中断方式,IBM PC/XT的中断方式,之后又介绍了 中断控制器8259 重点掌握中断概念、中断响应过程、 8259, 中断控制器 8259 , 重点掌握中断概念 、 中断响应过程 、 8088中断方式 中断方式。 8088中断方式。
中断系统
中断的屏蔽:有些中断源产生的中断,可以用编程的方法, 中断的屏蔽:有些中断源产生的中断,可以用编程的方法, CPU不予理睬 不予理睬。 使CPU不予理睬。 CPU响应中断转去执行中断服务程序前, CPU响应中断转去执行中断服务程序前,需要把被中 响应中断转去执行中断服务程序前 断程序的现场信息保存起来,以便执行完中断服务程序后, 断程序的现场信息保存起来,以便执行完中断服务程序后, 接着从被中断程序的断点处继续往下执行,这些现场信息 接着从被中断程序的断点处继续往下执行, 包括程序计数器的内容、CPU的状态信息 的状态信息、 包括程序计数器的内容、CPU的状态信息、执行指令后的 结果特征和一些通用寄存器的内容。 结果特征和一些通用寄存器的内容。 中断处理的隐操作: 中断处理的隐操作:有些信息的保存如程序计数器的内容 等由机器硬件预先安排完成。 等由机器硬件预先安排完成。 中断向量: 中断向量:有些信息的保存是在中断服务程序中预先安排 CPU响应中断 由中断源提供地址信息, 响应中断, 的。CPU响应中断,由中断源提供地址信息,
2.2.3 中断操作
(4)硬件中断的响应和时序
8086/8088CPU中断处理的基本过程
对该图作几点说明:
中断的基本过程可分为:中断请求,中断响应,中断处理 和中断返回。
按预先设计安排的中断优先权来响应中断。
对非屏蔽中断和可屏蔽中断的响应,CPU的处理动作基本 相同,仅仅有两点差别:
CPU遇到可屏蔽中断请求时,要先判断IF是否为1,若 IF为1,便进入中断响应过程。 CPU还要读取此中断的类型码。
溢出中断 断点中断 非屏蔽中断 单步中断 除数为0中断
专用的中断 类型2 (共5个)
类型1 类型0
0000:0008H 0000:0007H 0000:0004H 0000:0003H
0000:0000H
当CPU 响应中断访问入口地址表时,外设
应将一个8 位的中断类型码放在数据总线上,
CPU对编号n 乘以4得到4n指向该入口地址的
用户自己设计接口电路,利用寄存器/缓冲器组件
(7)最大与最小模式中断响应过程和响应时序的差异
பைடு நூலகம்
在最大模式的系统中,中断响应信号不是通过INTA引 脚发出的,而是通过状态线S2、S1、S0发出的。当CPU 响应中断请求时,S2、S1、S0同时输出低电平,总线控 制器回将这三个低电平信号组合,而得到INTA信号。 最大模式中,在总线控制器输出两个INTA负脉冲的同 时,CPU会在LOCK引脚上从第一个中断响应周期的T2到 第二个中断响应周期的T2之间维持一个低电平,以封锁 中断响应期间CPU以外的总线主模块发出的总线请求。
首字节:4n和4n+1单元中存放的是入口的偏
移地址值,其低字节在4n中,高字节在4n+1
中;4n+2和4n+3单元中存放的是入口的段基
计算机组成之.8259A详细说明资料
若为AEOI方式,直接清除ISR相应位;否则需要在中 断服务结束时,由CPU送出普通或特殊中断结束命
-9-
中断系统和中断控制器8259A
9.4.4 8259A的工作方式
- 11 -
中断系统和中断控制器8259A
3. 中断优先权设置方式
普通全嵌套方式:最基本、最常用的工作方式,也是默认工作方式。 此方式下, 8259A的 8 个中断请求按照 IR0优先权最高、 IR7 优先权最 低的固定优先权顺序,所以对于单片8259A最大中断嵌套深度为8级; 特殊全嵌套方式:与普通全嵌套方式基本相同,优先权按照 IR0 优先 权最高、 IR7优先权最低的固定顺序。不同的是允许同级中断请求产 生 INTR 信号给 CPU ,即可以实现同级中断嵌套。该方式一般用在 8259A级联系统中,将主片设定为特殊全嵌套方式,当从片的某一中 断请求被处理时,保证从片较高优先权中断源能够得到响应;
- 16 -
中断系统和中断控制器8259A
8259A缓冲方式级联
系统数据总线
B7 ~B0 T 74LS 245 OE A7 ~A0
- 15 -
中断系统和中断控制器8259A
7. 级联方式
一个主8259A可以带至多8个从8259A,将中断源扩展到64级; 从片的 INT 接至主片的 IRi 端,从片上的中断请求通过主片的 INT 送至 CPU; CPU的中断响应信号INTA分别送至主、从片上; 主片在级联线CAS2~CAS0上送出标识符编码,对应编码相同的从片 可以获得INTA信号; 在第二个INTA负脉冲时,主片不动作,由从片送上中断类型码; 通常主片的优先权控制采用特殊全嵌套方式,允许同级中断产生嵌套。
8086处理器中断系统思维导图,脑图
中断系统概述基本概念处理过程中断请求中断判优中断相应中断处理中断返回16位微机中断系统中断类型外部中断内部中断中断向量表组成及定位在8086/8088 中断系统中,所有中断服务程序的入口地址(中断向量)集中放在内存的最低1K区域(即地址为00000H ~ 003FFH) ,构成一个中断向量表。
每个中断向量占4个内存单元,前两个单元存放中断向量的偏移地址,后两个单元存放中断向量的段地址,因此,中断向量表可存放256 个中断向量。
中断向量地址= 4×中断类型码中断步骤心读取中断类型码;计算中断向量地址;取中断向量,偏移地址放IP ,段地址放CS;转入中断服务程序;中断返回到INT 指令的下一条指令。
设置例子设中断服务程序入口地址标号为VINTSUB ,中断类型码为N。
设置中断量:PUSHDS;数据段地址压栈MOVAX,0;中断向量表段地址-DSMOVDS, AXMOVBX,N*4;中断向量地址-+BXMOVAX,OFFSET VINTSUB;中断向量填入中断向量表MOV[BX], AXMOVAX,SEG VINTSUBMOV[BX +2],AXPOPDS;恢复数据段地址在PC 机中,通常是使用DOS 功能调用INT 21H 来设置中断向量。
入口参数设置为:AH 中预置功能号25H;AL 中预置中断类型码N;DS:DX 中预置中断向量(段地址置入DS ,偏移地址置入DX) 。
利用DOS 功能调用设置中断向量的程序:PUSH DSMOV AX, SEG VINTSUBMOV DS,AXMOV DX, OFFSET VINTSUBMOV AH, 25HMOV AL, NINT 21HPOP DS相应过程32位微机中断系统(略)中断控制器8259A编程模型中断请求寄存器IRR中断服务寄存器ISR中断屏蔽寄存器IMR优先权电路PR初始化命令寄存器ICW1 ~ ICW4操作命令寄存器OCW1 ~ OCW3外部引脚工作方式中断嵌套方式普通嵌套方式特殊全嵌套方式中断屏蔽方式中断优先权循环方式中断查询方式中断触发方式编程初始化命令字(ICW)ICW1设置方法将中断屏蔽寄存器IMR 清O;分配IRQ7 的优先权为7 (即最低级);清除特殊屏蔽方式;若IC4 =0 ,则将寄存器ICW4清0 。
中断系统及中断控制器
详细描述
根据来源不同,中断可分为硬件中断和软件中断。硬件 中断是由硬件设备产生的,如键盘输入、时钟中断等; 软件中断则是由程序中的特定指令或异常条件触发的。 根据是否可屏蔽,中断可分为可屏蔽中断和不可屏蔽中 断。可屏蔽中断可以被允许或禁止,而不可屏蔽中断则 无法被禁止。根据优先级是否可变,中断可分为优先级 可变中断和优先级固定中断。优先级可变中断的优先级 可以在运行时动态改变,而优先级固定中断的优先级是 固定的。
中断优先级通常由硬件设备或操作系统进行设置和管理,以确保系统的正 常运行。
中断优先级的管理对于系统的性能和稳定性至关重要,不当的设置可能导 致系统崩溃或性能下降。
中断向量表
中断向量表是计算机系统中用于映射中断信号和处理 程序的表格,它包含了不同中断的地址信息,以便在
中断发生时快速找到相应的处理程序。
流量控制
中断在网络通信和可靠性。
05 中断技术的发展趋势
可编程中断控制器的发展
早期中断控制器
采用硬件连线方式实现中断优先级分配,功能较为简单。
可编程中断控制器
允许通过软件编程实现中断优先级、向量表等配置,提高了中断控制器的灵活性和可扩展 性。
资源管理
中断用于实时系统中的资源管理,如内存分配、设备驱动等,确 保资源的高效利用和合理分配。
中断在网络通信中的应用
数据传输
中断在网络通信中用于数据传输控制,如 TCP/IP协议中的数据包接收和发送,确保数 据的可靠传输。
事件处理
中断用于处理网络通信中的事件,如连接建立、数 据包丢失等,实现快速响应和恢复。
可编程中断控制器的发展趋势
随着技术的进步,可编程中断控制器将进一步集成更多的功能,如中断共享、中断嵌套等 ,以满足复杂系统的需求。
第6章 STM8中断控制系统
正因如此,ITC_SPR1寄存器的b1、b0对应TLI,即0号 中断,而不是复位中断RESET;同理,TC_SPR1寄存器的 b3、b2对应AWU,即1号中断,而不是软件中断TRAP; ITC_SPR8寄存器的b3、b2对应29号中断。即ITC_SPR8~ ITC_SPR1定义了30个中断源(编号为0~29,其中25~29中
向量地址 8000h 8004h 8008h 800Ch 8010h 8014h 8018h 801Ch 8020h 8024h 8028h 802Ch 8030h 8034h 8038h 803Ch 8040h 8044h 8048h 804Ch 8050h 8054h 8058h 805Ch 8060h 8064h 8068h 806Ch到 807Ch
● 不可屏蔽的中断:
RESET,TLI 和 TRAP
●
可屏蔽中断: 外部中源 不可屏蔽中断不会考虑CC寄存器的I1和I0的状态。仅仅当TRAP 中断发生时候将PC,X, Y, A 和 CC 寄存器的内容压栈。相应的向量载入到PC寄存 器中同时置位I1和I0位禁止中断(3级优先级)。 STM8S支持32个中断,中断服务程序入口地址称为中断向量,放在 8000H~807FH之间。每个中断向量占4个字节,共4x32(128字节)。中断服 务程序可放在16MB任一存储区。
断号保留,没有定义)的优先级,而ITC_SPR8寄存器的高4
位没有定义。
(4) 优先级10最低,分配给主程序使用。因此,不允许
将中断优先级设为10。如果将某一个中断优先级设为10, 为使对应中断请求得到响应,STM8 CPU将保留该中断源 先前的优先级。换句话说,当前中断优先级设置操作无效。 (5) 当两个或两个以上可屏蔽中断源具有相同的软件优 先级时,硬件查询顺序如表6-1所示,即1号中断(自动唤醒 中断AWU)优先级最高,CLK中断次之,而24号中断
中断系统
在另外的新型号中,PIC16F870单片机的芯片内部集成了10个外围 设备模块, PIC16F871单片机的芯片内部集成了13个外围设备模 块, PIC16F872单片机的芯片内部也集成了10个外围设备模块(比 PIC16F870多了1个USART模块,少了一个SSP模块)。而该公司早 期生产的PIC12CXX和PIC16C5X系列不具备中断功能。 这些外围设备模块在投入工作时以及在工作过程中,都或多 或少的需要CPU参与控制、协调或交换数据等各种服务工作。外 围设备模块的数量和种类如此的多,而CPU只有一个;各个外围 设备模块不仅工作速度不同,而且对于时间上轻重缓急程度要求 也不同,他们在工作过程中需要CPU参与的程度也不同。那么, 一个CPU如何“照顾”得过来这样多的外围设备模块呢?怎样才 能保障单片机内部的各个部分运行得协调和高效呢?在实际工作 中这两个问题都得到了很好的解决。解决这些问题基于2个条件: 一个是CPU的运行速度非常高,而各个外围设备模块的工作速度 却非常低,况且这些外围设备模块也不都是频繁的要求CPU对其 服务;二是采取一种让众多外围设备模块分享一个CPU,并且能 够及时得到CPU服务的调速方法——中断。
CCPIF CCPIE
TMR2IF TMR2IE TMR1IF TMR1IE GIE
中断源第二梯队 (d) PIC16F871中断逻辑
中断源第一梯队
EEIF EEIE
ADIF ADIE RCIF RCIE TXIF TXIE T0IF T0IE INTF INTE RBIF RBIE PEIE CCPIF CCPIE TMR2IF TMR2IE TMR1IF TMR1IE GIE 中断CPU当 前的程序 唤醒CPU(如果 处于模式)
在上述的9个阶段中,第1、2、3和9阶段是由硬件自动实现的, 而第4、5、6、7、8阶段则是用户软件完成的。 CPU相应中断后转入中断服务子程序的处理方法,欲“CPU 汇编语言程序设计基础”部分中讲道德子程序条用的处理过程有 类似之处,都需要在跳转时保护现场和返回时恢复现场。但是, 应该说中断转子程序的情况更为复杂一些。原因分析如下,调用 子程序的指令是程序设计者预先安排的,也就是说,主程序执行 到何处发生到子程序的跳转是可以预知的。于是,保护现场和恢 复现场的工作,既可以安排在主程序内,也可以放到子程序中去 完成。并且需要保护的寄存器的数量也可以视跳转到子程序的时 机而进行适当的减少。而在出程序执行过程中何时发生中断,或 者说,主程序执行到何处会发生到中断服务子程序的跳转完全是 随机的。于是,保护现场和恢复现场的任务,只能是放到中断服 务子程序中去实现。并且由于跳转到子程序的时机不可预料,因 此凡是主程序中用到过的和子程序中也将会用到(或影响到)的寄 存器,原则上都需要保护。
中断系统由哪几部分构成
中断系统由哪几部分构成一、硬中断硬中断就是由硬件引起的中断。
如键盘(I/O接口的传送请求)、定时器(实时时钟),以及一些硬件故障(如电源掉电、硬件损坏等)等。
硬中断又可分为可屏蔽中断INTR(如键盘产生的);非屏蔽中断NMI(如由微处理器产生的)。
非屏蔽中断为类型2中断,它的中断请求信号直接送CPU的NMI引脚,它的处理过程同内部中断。
可屏蔽中断是可以由软件禁止的中断,通常外部设备产生的实时中断请求信号,按系统设置的优先级依次与中断控制器的中断请求端IR0~IR7相连,因而硬件连接一旦确定,各中断源的优先级也就确定了,不能通过软件对其修改。
IBM-PC机中规定中断类型号08H~0FH为外部可屏蔽中断。
不可屏蔽中断(NMI):1.CPU不能屏蔽,即:无论IF的状态如何,CPU收到有效的NMI必须进行响应;2.NMI是上升沿有效;3.中断类型号固定(为2);4.它在被响应时无中断响应周期;5.通常用于重大故障处理(如:系统掉电[系统掉电指系统的电源电压下降幅度过大:220V掉至160V且还在继续m下掉,至使系统不能工作]硬件损坏,协处理器运算出错,存储器校验出错,I/O通道校验出错等)可屏蔽中断(INTR):1.CPU可以通过设置IF的状态屏蔽它,若IF=1,CPU响应,IF=0,CPU不响应;2.INTR高电平有效;它需要中断响应周期;3.中断类型号由中断控制器在中断响应周期中提供给CPU;4.可屏蔽中断主要用于普通I/O设备请求与CPU进行数据交换.二、软中断softirq软中断是由中断指令(INT)引起的中断。
软中断无优先级别,它是程序中执行一条INT指令产生的。
当执行INT指令时,先把标志字压入堆栈,然后将返回地址(段地址、段内偏移量)压入堆栈,清除中断标志(关闭屏蔽中断),从中断向量表中得到当前中断服务程序入口地址,并转去执行。
软件中断有双字节指令形式的中断(ROM-BIOS中断、DOS中断、未定义自由中断)和几种特殊类型的中断(除法溢出中断、单步中断、断点中断、溢出中断)。
微机原理第八章:中断技术讲解
1.中断源识别
★ 软件查询法:
★ 中断矢量法:中断源提供中断类型号,CPU根据类型确定中断源 2.中断判优
★ 对同时产生的中断,首先处理优先级别较高的中断;
若优先级别相同,则按先来先服务的原则。
★ 对非同时产生的中断:
低优先级的中断程序允许被高优先级的中断源所中断
1.中断服务子程序的特点: 为“远过程”,用 IRET 指令返回
2.中断服务程序完成的工作
1)保护现场(通用寄存器的内容)
2)开中断(STI)
3)中断处理
4)关中断(CLI)
5)恢复现场 6)IRET
中断服务程序结构
保护有关寄存器内容 开中断
执行中断服务程序 关中断
恢复有关寄存器内容 执行IRET
精品资料
④ 执行 IRET 指令
4.退出中断(zhōngduàn) ① 关中断(zhōngduàn)
退
出
② 恢复现场中
③ 恢复断点 ④ 开中断(zhōngduàn) 断
精品资料
关中断 保存断点,保存现场
判别中断源 转入中断服务程序 保护寄存器、开中断 执行中断服务程序
IRET
关中断 恢复现场,恢复断点
开中断
STOSW
;串存储(字)
;AX→ES∶[DI]、 [DI+1]
MOV AX,SEG_INTR
;中断服务程序段基址送AX
STOSW
;串存储(字)
STI
;开中断
精品资料
2.用 MOV将直接(zhíjiē)中断向量写入中断向量表中
;将中断向量直接(zhíjiē)写入中断向量表中的程序段为
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
“INT N”指令在程序中可用来调用某一特定功能的程序段 (如从键盘输入一个字符,输出一个字符到显示器等)。 从某种意义上说有些类似CALL指令,所不同的是“INT N” 指令保护主程序标志寄存器中各标志位的状态。另外,由 于类型码N可在00~0FF中任意指定,所以,用程序自中断 指令不仅能测试各种中断处理子程序,还可根据需要,扩 充系统功能,增加新的软中断指令。
每种类型的中断都由相对应的中断服务程序来处理,中断类型由中断类 型号来标识。中断服务程序的功能是多种多样的,所有中断服务程序 都具有相同的结构模式。中断服务程序的编写方法和标准子程序很类 似,下面是编写中断服务程序的步骤,但它与子程序编写有一些不同 之处。
(1)保存寄存器内容; (2)如允许中断嵌套,则开中断(STI); (3)处理中断; (4)关中断(CLI); (5)送中断结束命令(EOI)给中断命令寄存器; (6)恢复寄存器内容; (7)返回被中断的程序(IRET)。 中断处理程序除了编写结构特点外,在位置上也有特点。它们在80X86
14
MOV AH,01H INT 21H CMP AL,‘$’
向量地址 =21H×4=84H
0:0080 类型20H
0:0082 中断向量
0:0084 107C
IP
0:0086 00A7
CS
0:0088 类型22H
0:008A 中断向量
00A7:107C
STI … … IRET
图8.3 INT 21H中断操作过程图
3
在中断传送方式下,CPU不再循环查询外设的状态,而是在外设 “准备好”后,主动通知CPU。具体地说,外设通过接口电路 向CPU发出中断请求信号,CPU暂停执行当前正在执行的程序, 转入执行相应的中断服务程序。在中断服务程序中,执行I/O 操作,再返回继续执行原来被中断的程序。这样CPU就避免了 把大量时间耗费在等待、查询外设信息的操作上,故提高了 CPU的工作效率。
USER
对I/O设备 的程序请求
DOS
DOS
IBMDOS﹒CO M
IBMBIOS﹒C OM
ROM
BIOS
外设
图8.4 DOS和BIOS中断调用模块关系图
21
在某些情况下,既能选择DOS中断也能选择BIOS中断来执行 同样的功能。例如打印机输出一个字符,可用DOS中断21H 的功能5,也可用BIOS中断17H的功能0。因为BIOS比DOS更 靠近硬件,因此应尽可能地使用DOS功能,但在少数情况 下必须使用BIOS功能,例如,BIOS中断17H的功能2为读打 印机状态,它就没有等效的DOS功能。
DOS中断能处理大多数的I/O操作,但有一些功能没有提供, 如声音控制等,这就要考虑用I/O指令在端口级上编程, 或使用高级语言编程。
DOS中断和BIOS中断是两种最常用的中断,其它中断类型详 见附录3。这些中断服务在当前流行的WINDOWS操作系统中 依然存在,因为WINDOWS系统仍然加载了DOS内核。
系统中,都是由操作系统提供的,都不是浮动装配的,而是固定装配 的。装配的起始地址由中断向量表给出。并且,中断服务程序通常都 是常驻内存的,即系统一启动,就完成中断服务程序的装配。
7
8.1.4 中断向量表 每种中断类型都安排一个中断类型号。80X86中断系统能处
理256种类型的中断,类型号为000-0FFH。每种中断类型 号都对应一个中断服务程序,中断向量是中断服务程序的 入口地址,中断向量表就是各类型中断处理程序的入口地 址表。 其中,存储器的低1.5KB,地址从0段0000~5FFH为系统占用, 其中最低的1KB,地址从0000~3FFH存放中断向量。中断 向量表中的256项中断向量对应256种中断类型,每项占用 4个字节,其中2个字节存放中断服务程序的段地址(16 位),另2个字节存放偏移地址(16位)。因为各服务程 序的段地址和偏移地址在中断向量表中按中断类型号顺序 存放(如图8.2所示),所以每类中断向量的地址可由中 断类型号N×4计算出来。
8
中断向量表
0:0000 0:0004 0:0008
类型0中断服务程序入口地址 NhomakorabeaIP
CS
类型1中断服务程序入口地址
类型2中断服务程序入口地址
… …
…
0:03FC
类型FF中断服务程序入口地址
图8.2 中断向量表
9
8.2中断指令与中断调用
8.2.1 软中断指令
软中断又称为程序自中断,它是用中断指令实现的。 ⑴中断指令 格式:INT N;其中,N为中断类型号。
包括一个文件管理程序和其它处理程序,在DOS 环境下运行的程序可以调用这些服务。为了完成DOS功能 调用,把信息传送给,或者 再把信息传送给ROM BIOS,形成一级或多级 BIOS调用。
20
DOS和BIOS中断调用模块关系图
22
8.3.2 中断服务程序
中断系统是操作系统提供的中断服务程序的集合,不同的中 断类型对应着不同的中断服务程序,只不过中断服务程序 的名字用的是00~FFH编号,即中断类型号而已。这样有 利于快速查找中断服务程序的入口地址。
当计算机启动成功之后,这些中断服务程序将被调入内存。 操作系统提供的以INT 21H形式调用的中断只是DOS中断 (20H~FFH)服务程序的一部分,还有一部分是BIOS中断 (10H~1AH)服务程序,以及其它中断类型的服务程序等。
5
表8-1 常用的中断类型号及其对应的中断名
中断类型号 00-1F 20-3F 40-5F 60-67 68-6F 70-77 78-7F 80-FD F1-FF
中断类型 BIOS中断 DOS中断向量 扩充BIOS中断向量 用户中断向量
保留 I/O设备中断向量
保留 BASIC 保留
6
8.1.3 中断服务
第八章 中断及中断系统
8.1中断工作原理 8.2中断指令与中断调用 8.3终端系统应用 8.4中断服务程序编写
中断是CPU与外设之间进行输入输出的一种有效方法, 它是CPU中止正在执行的程序而转去处理特殊事件 的过程。具有这种功能实现这种过程的软、硬件 环境称中断系统。
中断技术的应用非常广泛。现代计算机系统中多道 程序的分时运行、实时控制、人机通讯、计算机 故障处理、对I/O设备的管理等均使用中断技术。 中断技术能够充分发挥计算机的软、硬件功能, 提高工作效率和实时处理能力。
功能:①(FLAGS)→↓(SP) 0→IF、TF ②(CS)→↓(SP) (4*N+2)→CS ③(IP)→↓(SP) (4*N)→IP
说明:首先将CS、IP寄存器的内容压入堆栈,然后IP、 CS从中断向量表的4*N~4*N+3共4个字节单元中获取N号中 断处理子程序的入口地址。最后根据IP和CS寄存器中地址 值的内容,CPU便转入N号中断处理子程序执行中断服务。
21号中断 服务程序
15
8.2.3 中断与子程序
子程序是程序设计的一种方法,是把具有固定功能、在编程 中经常重复使用的程序段设计成子程序,在需要时调用。
中断是计算机系统支持的一种重要功能,当发生中断时,系 统执行一段特定的服务程序,根据中断源的不同,需要把 中断分为软件中断与硬件中断。
16
软件中断、硬件中断与子程序之间有一些共同之处。
23
同一种中断类型的服务程序又具有很多子功能,完成各个子 功能的程序段都集中放在一起,并且有一个总控程序,构 成了一个整体。例如DOS系统的21H号中断,整个中断服务 子功能程序段的入口地址放在了21H号中断向量中。这是 一个软件中断,调用方式是INT指令,并规定调用时AH中 必须存放子功能号,不同的子功能还需要有不同的入口参 数,在前面第5.6章节中讲述的1号、2号、9号、10号子功 能,实际上是DOS提供给用户的21H号中断服务程序的子功 能,同时还包括如何读写文件、如何申请和释放内存、如 何修改中断向量、如何取得及修改系统当前的日期和时间 等等
为了保证在执行完中断处理子程序之后能正确返回到被 中断程序处继续执行,通常在中断处理子程序的最后写上 中断返回指令。
10
⑵中断返回指令
格式:IRET恢复断点地址 功能:①↑(SP)→ IP ②↑(SP)→CS ③↑(SP)→FLAGS ;恢复标志寄存器的内容 说明:执行IRET之后,恢复了被中断程序的断点地址
18
8.3中断系统应用
8.3.1 中断系统
中断系统是计算机系统提供给系统和用户的底层服务接口, 分别存在于ROM(只读存储器)芯片和计算机操作系统中。 驻留在ROM中的BIOS提供了系统加电自检、引导装入、主 要I/O设备的处理程序、接口控制等功能模块来处理所有 的系统中断。使用BIOS功能调用,给程序员编程带来了很 大方便,程序员不必了解硬件I/O接口的特性,可直接用 指令设置参数,然后中断调用BIOS中的程序,所以利用 BIOS功能编写的程序简洁,可读性好,而且易于移植。
13
8.2.2 中断调用
中断调用采用软中断指令“INT N”来实现。 例8.1 INT 21H(DOS中断调用)
该DOS中断调用语句执行以下5个步骤: ①取中断类型号21H; ②计算中断向量地址; ③取中断向量,偏移地址送IP,段地址送CS; ④转入中断处理程序; ⑤中断返回到INT指令的下一条指令。 具体中断调用过程如图8.3所示。 采用中断向量的方法,可以加快中断处理的速度。因为计算 机可直接通过中断向量表转向相应的中断服务程序,而不 需要CPU去逐个检测和确定中断原因。
(1)都需要相应程序段的支持。 (2)软件中断与子程序都由特定指令调用。 (3)发生调用时,系统均自动记载返回地址。 (4)软件中断和子程序都可以带有入口参数和出口参数。 (5)可以用子程序调用代替软件中断的调用指令。
17
软件中断、硬件中断与子程序三者之间也存在着本 质的差别。
(1)调用方式不同。 (2)系统保护的值不同。 (3)返回方式不同。 (4)共享方式不同。 (5)在内存中存在的时间不同。