收藏 分享(赏)

第5章 中断技术.ppt

上传人:fcgy86390 文档编号:5585628 上传时间:2019-03-09 格式:PPT 页数:84 大小:3.58MB
下载 相关 举报
第5章 中断技术.ppt_第1页
第1页 / 共84页
第5章 中断技术.ppt_第2页
第2页 / 共84页
第5章 中断技术.ppt_第3页
第3页 / 共84页
第5章 中断技术.ppt_第4页
第4页 / 共84页
第5章 中断技术.ppt_第5页
第5页 / 共84页
点击查看更多>>
资源描述

1、第5章 中断技术,5.1 中断的基本概念1中断的概念 2. 中断的类型 3.中断处理 5.2 8259中断控制器1.功能及内部结构 2.初始化编程 3.应用举例 5.3 PC机中断系统1.硬中断 2.软中断 3. 中断处理过程 5.4 PCI中断技术1.PCI中断的操作 2.PCI中断响应周期 3.PCI中断共享 5.5 USB中断技术1.USB中断处理 2.GPIF中断 3.USB端点中断 4.计时器中断,5.1 基本概念 一、中断是指CPU在正常运行程序时,由于内部/外部事件(或由程序)引起CPU中断正在运行的程序,而转到为中断事件服务的程序中去,服务完毕,再返回执行原程序,这一过程称为中

2、断。中断的特征:具有随机性。,5.1.1 中断的类型,外部硬件中断:由外部硬件产生的中断。 非屏蔽中断:不能中断的中断 软件中断:由程序预先安排的中断。 内部中断与异常 :计算机软硬件异常或故障引起,1. 外部硬件中断,由外部硬件产生的中断,诸如键盘、鼠标、硬盘及打印机等这类外部设备产生的中断请求都属于外部硬件中断。,由系统内部硬件引发的中断,如协处理器出错、通道等。它的优先级高于外部硬件中断,且不受中断允许标志位(IF)的影响,所以是不可屏蔽中断。,2.非屏蔽中断(NMI),由用户在程序中设计的中断指令产生的。系统软件安排的软件中断的优先级也比外部硬件中断要高,不能被IF屏蔽。ROM-BIO

3、S中断DOS中断Eg:软件中断指令 int 21h 是用户实现DOS功能调用的指令 Int n 是常用的软件中断指令,可以实现多至256种软件中断特点:由程序事先安排的中断,不要求中断控制器提供中断号,CPU也不发出中断响应信号,而是从中断指令中获取中断号。,3.软件中断,发生的原因是指令执行的结果。在指令执行中或者执行之后检测到了错误的情况是发生。根据错误原因的不同可以进一步分为故障、陷阱、异常。不能被IF屏蔽。 故障(先排除故障)、陷阱(先执行再恢复)、异常(需要重启)是怎么处理?Eg:单步( int 1 )、断点(int 3 )等为内部中断;除法错误(int 0)、溢出错误(int 4)

4、、边界检查(int 5)等为异常。,4.内部中断和异常,硬中断与软中断的比较,二、中断过程分为四个阶段 中断请求 中断响应 中断服务 中断返回 1.中断请求 外设先发送“中断请求”信号给CPU。 CPU检查“中断请求”输入线。 CPU有权决定是否响应中断:a. 若允许申请,用ST1指令打开中断触发器IF; b. 若不允许申请,用CLI指令关闭中断触发器IF。没有获得允许中断请求称为中断被屏蔽。,不允许中断请求的情况:如:在实时控制时,需采集一段连续数据为防上数据丢失,不允许其他中断请求;又:执行管理程序中某些重要程序,CLI指令进行屏蔽。 2.中断响应 CPU在当前指令执行结束时,响应中断,进

5、入中断的响应周期; 发出二个中断回答信号INTA完成一个中断响应周期; 进行断点及标志保存 如:段地址(CS),偏移地址(IP)标志FR以及压入堆栈。 读取中断类型号,找到中断源; 装入中断服务程序的入口地址(CS,IP),中断响应中断响应是当中央处理机发现已有中断请求时,中止现行程序执行,并自动引出中断处理程序的过程。 中断响应过程: 保留程序断点及处理机有关信息 自动转入相应的中断处理程序执行 中断响应的实质交换指令地址及处理机的状态信息 3.中断服务 转入中断服务程序后,其服务程序的内容有:a.与CPU交换数据,进行I/O操作;b.外部期望CPU给以控制,进行参数修改。 在程序开头,将可

6、能使用的寄存器内容进栈,即保护现场。 在服务程序的未尾,将入栈的寄存器内容弹出,即恢复现场。,4.中断返回中断服务程序结束,执行中断返回。自动交保存在堆栈中的标志FR,断点(IP,CS)依次弹出并装入。回到中断前的地址开始继续执行。 三、中断源、中断识别、优先级 1、中断源:发出中断请求的外设或引起中断的内部原因称为中断源。,指令中断:INT 10H、INT 21H等,外设中断:键盘、打印机、显示器等,硬件故障中断:奇偶错、电源故障等,程序性中断:除法溢出、非法操作码等,2、中断识别:CPU响应中断后,只知道有中断请求但不知道是哪一个中断源,寻找中断源的操作过程称为中断识别。(确定中断源,实现

7、程序的转移)中断识别的目的:形成该中断服务程序的入口地址。,向量中断:中断向量、中断号,查询中断:软、硬件查询确定中断源,CPU识别中断的方法:二种: 向量中断程序查询中断 向量中断:在CPU响应中断后,由中断控制器将服务程序入口地址送到CPU的过程。 查询中断:采用软件查询技术来确定发出中断请求。,四、多重中断(中断嵌套) 在中断响应时,有更高级别的中断请求到来,五、中断处理的隐操作及堆栈的使用CPU执行中断服务程序前后,其状态标志和程序断点的进栈和出栈,都是硬件自动完成,这些操作称隐操作。堆栈的使用 1.建栈操作MOV AX,1050HMOV SS,AX ;将当前堆栈基址送入SSMOV S

8、P,0008H ;将堆栈段偏移地址送入SP此时,栈顶指向1058H处。,2.进栈操作(堆栈的深度:最大64KB空间)PUSH AX (SS:堆栈寄存器 SP:栈偏移地址) 3.退栈操作POP AX ;先12送AX高位,后34位低位POP BX 操作的指令序列如下:MOV AX,1050H ;建栈MOV SS,AX MOV SP,0008HPUSH BX ;进栈PUSH AXPOP AX ;退栈POP BX,中断应用,中断除了能解决快速CPU与慢速外设速度不匹配的矛盾以提高主机的工作效率外,也可以实现分时操作、实时处理、故障处理、多机链接、人际联系等。,六、中断向量:中断服务程序的入口地址 1.

9、中断向量CPU响应中断后,中断源提供地址信息,由此地址信息对程序的执行进行导向,引导到中断服务程序中去,故把这个地址信息称为中断向量(存储单元)。中断向量包括中断服务程序的段基址CS(高字节),偏址IP(低字节)共4个字节。中断向量表:所有的中断向量集中存放到存储器的某一区域,这一区域称之为中断向量表。 中断类型号:是系统分配给每个中断源的代号。系统的外部硬件中断、内部中断/异常和软件中断都统一编号。 注意:中断类型号只能决定存放中断向量的地址,并不能决定中断向量本身和中断服务程序的功能。,例:PC机,000003FF共1024(1K),2.中断向量指针与中断类型号什么叫“中断向量指针”?指出

10、中断向量存放在中断向量表的位置(或地址)。 中断类型号X4=中断向量最低字节的指针,在PC系列中由中断类型号提供的,即 向量地址=0000:类型号4 如:硬盘“1NT13H” 它的向量地址=0000:13H4=0000:004CH 004CH开始连续4个单元中用来存放“INT 13H”的中断向量:,中断向量0070(CS):0fc9h(IP),5.2 PC机中断系统,256的中断源分为二类: 1.硬中断: 可不屏蔽中断 NMI可屏蔽中断 INTR 2.软中断 一、硬中断(见下表) 1.不可屏蔽中断NMI RAM奇偶校验错PCK- I/O通道校验错I/O CHCK- 协处理器8087运算错INT

11、,表5.2 系统硬中断表,NMI的特点:不能被CPU用指令CLI来禁止,一旦出现这种请求,停止正在执行的程序,马上转移到服务程序。应用:紧急情况的故障处理。 2.可屏蔽中断INTRINTR可以被CPU用指令CLI来禁止,由STI允许。,中断类型号 INTR中断源 8-日时钟中断9-键盘中断0AH-保留0BH-串口20CH-串口10DH-硬盘/并行20FH-打印机/并行170H-保留/实时钟77H-保留中断系统的管理:采用8259A中断控制器协助CPU进行。一个8259可管理8级向量中断,2个8259为15级向量。,自由中断,中断系统及其功能,中断系统:是为实现中断而设置的各种硬件与软件,包括:

12、中断控制逻辑和管理中断指令 中断系统的功能:1.能响应中断、处理中断和返回2.能实现优先级排队3.高级中断源能中断低级的中断处理,中断控制器的基本功能: (1)为了加强中断系统的灵活性,对于各种中断请求,应该具有屏蔽和开放中断功能,使得程序员可以灵活控制。 (2)具有中断级别的判断和控制功能,即能实现中断源排队。当有多个中断源申请中断时,能够根据事先的设定及时响应中断。 (3)能够实现中断嵌套,高级别的中断能够再次中断较低级别的中断。,5.3 8259A可编程中断控制器,8259A协助CPU进行中断处理,PIC(中断控制器芯片)的主要任务: 1.优先级排队管理:根据任务轻重缓急或设备的特殊要求

13、,分配中断源的中断源等级。 2.接受外部设备的中断请求:经过优先权判决找到哪一个中断源的中断请求级别最高,然后,再向CPU提出中断申请INT。 3.提供中断类型号:为CPU实现程序的转移给出中断服务程序入口地址指针。 4.实现中断请求的屏蔽和开放。,8259A引脚信号,8259A是一种功能很强的可编程中断控制器。,引脚(28脚) Vcc、GND,面向CPU的信号(14),面向外设的信号(8),IR07:外设的中断申请; 输入触发方式由编程设定,面向同类芯片的信号(4),一、8259A的内部结构,1.中断请求寄存器(IRR) 它存放在IR线上提出了中断请求的中断源,该寄存器8位(D0D7)对应于

14、连接在IR0IR7线上的外设所产生的中断请求,哪 一根输入线有请求,哪位就置“1”。 具有锁存功能,其内容可用OCW3命令读出。 2.中断屏蔽寄存器(IMR)是对中断请求IR起屏蔽作用,即对中断请求IR还是允许,寄存器8位对应8级中断屏蔽。哪一级中断被屏蔽,哪位就写“1”,即禁止IR提出中断请求。,3.正在服务寄存器ISR 在中断响应之后,第一个获准中断请求的中断级在相应的ISR中置位。如IR3获准,ISR中的IS3置位,表明IR3正处于服务。 4.优先权分析器(PR)优先排队当在IR输入端有中断产生时,送到PR,PR检查进来的中断请求的优先级并和“正在服务中的中断”进行比较,确定是否让这个中

15、断请求送给处理器。过程如下:由8个“与”门逻辑选出参加中断优先级排队的中断请求级,即由8位位IRR与8位IMR分别送入“与”门输入端,只有当IRR位置“1”和IMR位置“0”(开放中断请求)同时成立时,相应“与”门输出才为高电平,并送到优先级编码器的输入端参加编码。,8259A的工作过程,二、中断响应周期时序图当: CPU收到INT中断请求 前一条指令执行完,且中断标志位IF=1那么:CPU进入中断响应周期,它通过总线控制器发出二个连续中断应答信号完成一个中断响应周期。,三、8259A的中断操作的功能及其命令。 中断操作功能:请求 屏蔽 排队 结束 级联 中断类型号 查询下面讨论为实现这些功能

16、的各个命令字的含义,为编程使用8259A提供一些思路。8259A提供了两类命令字:初始化命令字ICW(4)和操作命令字OCW(3)。初始化命令字放在初始化程序的开头,且有严格是次序即ICW1,ICW2和ICW4。ICW3在有级联时出现。,在中断响应周期两个工作: 1.第一个INTA脉冲时,CPU产生LOCK信号,使总线处于封锁状态,防止DMA占用总线。 2.第二个INTA时,LOCK撤除,总线解封。,1.中断请求触发方式的设定(ICW1)功能:设定中断请求的触发方式,是电平触发还是边沿触发。ICW1的格式:,例.若8259A采用边沿触发,单片使用,需要ICW4,则MOV AL,00010011

17、B ;ICW1的内容OUT 20H,AL ;写入ICW1端口(A0=0),ICW1,0,A0,0,0,0,1,LTIM,ADI,SNGL,IC4,16位无效,特征位,触发方式 =1,电平 =0,边沿,无效,单片使用 1:单片 0:级联,需要ICW4,D7,D6,D5,D4,D3,D2,D1,D0,2.中断类型号的设定(ICW2)功能:提供给CPU的中断类型号.,如:硬盘中断号:0DH 即 0000110100001000,注意:因此,向ICW2写入中断类型号只写高5位,低3位写0,即08H,MOV AL,08HOUT 21H,AL ;写入ICW2的端口(A0=1),表5.5 主片8259A8级

18、硬中断源的中断号,注意: 如表中日时钟、键盘、打印机等8个中断源的中断类型号的高5位都是08H,低3位07由IRi产生,并在CPU读取中断号之前,由8259自动填写。,3.中断级联方式的设定(ICW3) (1)级联的结构 例: 有三个8259A采用主从级联方式,指出优先级排序.,优先级次序为: IR0,1,2,8,915,4,5,1623,7,IR15 IR8,IR23 IR16,IR7 IR0,(2)ICW3的格式:a.主片ICW3,Si=1, 联接从控, Si=0, 末联接从控;例:上图; IR3, IR6, 联接从控, 则ICW3=01001000B (48H) MOV AL, 48H

19、OUT 21H, AL,ID2ID0有8种编码,表示从控INT接到主控的哪一个IR位,如:从控A的ICW3=00000011B=03H从控B的ICW3=00000110B=06H例如;MOV AL,03HOUT 0A1H,AL ;从片的地址由译码决定级联方式的从控中断申请级响应过程。,b.从片ICW3:,4.特定完全嵌套方式的设定(ICW4) 在级联方式中,当从控接收到比“正在服务”中的那一个优先等级更高的中断申请时,就不会被主控识别,就是说,从控的较高优先级的中断就不能被及时服务。 为了解决这个问题,8259提供了一种特定的完全嵌套方式。 如果在主控中采用这种方式,那么当从控收到一个更高的中

20、断请求时,它是会被主控识别的。这种完全嵌套方式是在初始化时由ICW4指定的。,ICW4格式:,当A0=1 D4=1 为主控为特定完全嵌套式=0 一般完全嵌套 D3=1 为缓冲方式 ,SP/EN 作输出线=0 为非缓冲方式,SP/EN作输入线,D0 =1 用于8088/8086=0 用于8080/8085,D1=1 自动结束方式,ISR有自动复位功能=0 为非自动 D2 =1 为缓冲方式下8259A作主控=0 为缓冲方式下8259A作从控,例. PC/XT机,CPU为8088,8259与系统为缓冲的连接,非自动结束方式,只用1片8259A,一般完全嵌套。ICW4=00001101B=0DHMOV

21、 AL,0DHOUT 21H,AL,B07,T,A07,8286,B07,T,A07,8286,B07,T,A07,8286,D07,CAS02,从片A,INT,D07,CAS02,从片B,INT,D07,CAS02,主片,IR5 IR6,+5V,1k,+5V,1k,+5V,1k,数据总线,数据总线,局部数据总线,DEN,DT/R,INTR,INT,图5.9 缓冲方式级联,系统数据总线,注意:在缓冲的方式下(8286)SP/EN作输出线,控制的数据传送方式。8259是主控制还是从控由ICW4的M/S(D2)位决定,(通过编程决定)。,(1)缓冲器方式下级联的设定(ICW4),例2.PT86单板

22、机,CPU为8086,采用非自动结束方式,使用2片8259A,非缓冲方式,采用特定完全嵌套方式,其ICW400010101B15H若将它写入ICW4的端口,MOV DX,0FFDEHMOV AL,15HOUT DX,AL,: 8259的编程命令有二类: 1.初始化命令字ICW1ICW4 如前面所讲的ICW1,ICW2,ICW3,ICW4放在初始化程序的开头,对8259进行初始化次序为:送ICW1ICW2ICW3ICW4 2.操作命令字(OCW)OCW1,OCW2,OCW3初始化后,即在程序执行中,使用OCW命令对中断控制器进行动态控制。不需要按顺序发送,在程序中任意安排。 1.中断屏蔽操作(O

23、CW1) 1)正常屏蔽方式功能:8259A的IMR中断屏蔽寄存器,可以屏蔽一个或多个级的中断请求。,例1. 要使中断源IR3开放,其余被屏蔽,则OCW1=11110111B=F7H MOV AL,0F7H OUT 21H,AL OCW1内容送端口IN AL,21H 回读21H端口的内容,可以在主程序中的不同部分使用不同的中断而不必改变硬件结构。,2.特定屏蔽方式(中断选择+结束控制OCW2),它用于开放你级中断,允许更低级的中断请求。,OCW2的作用: 1)作中断结束控制:当在初始化命令ICW1选用非自动结束方式时,就利用OCW2来控制中断结束。即:OCW2格式中的D5(EOI)=1SL(D6

24、)=0 不指定中断结束 L2L0=000,OCW2=00100000BSL(D6)=1,采用指定中断结束 L2L0编码是被指定的中断等级,即:OCW2=01100L2L1L0 例:指定IR5为中断结束,则OCW2=01100101B=65H。,(2)作中断优先级排队控制,D7(R),1:需要轮换优先权,分二种若SL=,0:优先级固定方式,则为完全嵌套方式,=1:优先权指定轮换,=0:自动轮换,注意:中断结束方式和中断排队方式都用OCW2命令来实现,因此,它的某些位功能重选相互交叉显然比较复杂,OCW3的格式及功能:功能:用来设置查询中断式设置特定屏蔽方式读取8259A的IRR,ISR寄存器的内

25、容,假设,8259A的端口为20H,21HMOV AL,0AH ;设置OCW3,其中D1D2=10OUT 20H,AL ;从低端口输出NOP ;等待IN AL,20H ;读入IRR的内容要读入ISR的内容?,5.4 8259A在PC系统中的应用,8259A初始化编程举例:,ICW1=13H=00010011B 边沿触发,单片要ICW4 ICW2=08H=00001000B 中断号的高5位,低3位由IR2动态产生 ICW4=09H=00001001B 全嵌套,8088非自动结束 例2.采用2片8259,主/从结构,中断优先级顺序: IRQ0,IRQ1,IRQ8IRQ15,IRQ3IRQ7 主片:

26、 ICW1=11H;边沿触发,多片,要ICW4 ICW2=08H;中断号高5位 ICW3=04H;主片的IR2接到从片上D2=1 ICW4=01H;非缓冲,全嵌套,16位CPU从片ICW1=11H, ICW2=70H,ICW3=02H, ICW4=01H,,Eg:单片8259A的端口地址是80H和81H,采用边沿触发,普通嵌套方式,缓冲方式,非自动中断结束方式,需要ICW4,中断类型码是18H-1FH,请对8259A进行初始化。, MOV AL,13H ;设置ICW1=00010011,即 采用边沿触发, 单片,需要ICW4 OUT 80H,AL ;ICW1写入地址A0=0 MOV AL, 1

27、8H ;ICW2=00011000,确定ICW2的高5位 OUT 81H,AL ;ICW2写入地址A0=1 MOV AL, 0DH ;ICW4=00001101,即普通嵌套方式,缓冲方式,非自动中断结束方式,用于8086/8088 OUT 81H,AL ;ICW4写入地址A0=1,Eg:已知8259A的端口地址是20H,21H,读取其中断请求寄存器IRR和中断服务寄存器ISR的内容。MOV AL,0AH ;OCW3=00001010,读 IRR寄存器OUT 20H,AL ;OCW3输出到8259A的地地址NOP ; 空操作,等待3个时钟周期IN AL,20H ; 从低地址读入 IRR的内容,E

28、g:设目前系统的最高优先权为IR5,若执行OCW2命令,且命令中EOI=0,R=1,SL=1,L2L1L0=011。请指出OCW2命令执行后,8259A的优先权顺序。,从OCW2命令可知它是指定优先权特殊循环方式的最低级,有L2L1L0=011可知最低优先权的为IR3,所以执行完OCW2命令后,8259A的8个中断源的优先权从高至低依次为:IR4, IR5, IR6, IR7, IR0, IR1, IR2, IR3。,一个中断系统有一片主8259A和3片从8259A,从8259A分别接至主8259A的IR2、 IR3、 IR4上。若主8259A的IMR此时设置为01010000,各从8259A

29、的IMR均设置为0,且连接IR3的从8259A此时最低优先权为IR5。请按优先权由高到低的顺序列出未被屏蔽的中断级。试编写主8259A和链接IR3的从8259A的初始化程序及写入有关的操作命令字(8259A端口地址和中断类型码可自己定义),系统中共有8259A 4片,应用中断源输入为:3*8+5=29级,但主8259A的IMR此时设置为01010000,则连接主8259A上的IR4的从片被屏蔽,主8259A的IR6被屏蔽,此时未被屏蔽的中断源还有20个。 所以未被屏蔽的各中断源按优先权由高到低的顺序是:主片:IR0、IR1、接IR2的从片:IR0-IR7接IR3的从片:IR6、IR7、IR0-IR5(连接IR3的从8259A此时最低优先权为IR5)主片IR5、IR7,设主8259A的端口地址为20H、21H,连接IR3的从片端口地址为24H、25H。 主片的初始化:设定缓冲方式、级联、IR2、IR3和IR4连接从片,中断请求信号边沿触发,中断类型号为:40H-47H,特殊全嵌套方式,非自动EOI,屏蔽IR4、IR6主片初始化程序:,连接IR3的从片初始化:设定缓冲方式,级联,该从片接主片IR3上,中断请求信号边沿触发,中断类型号48H-4FH,优先权为特殊循环方式,IR5为最低,非自动EOI.则初始化程序:,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑环境 > 建筑资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报