




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章中断控制器、计数/定时器及DMA控制器9.1可编程中断控制器8259A9.2可编程计数/定时控制器82539.3可编程DMA控制器8237A4.4.3中断操作 1956年,美国IBM公司在IBM7049机上首先使用了中断处理技术,并开始使用“中断”(interrupt)这一术语。 计算机在程序执行过程中,当出现硬件或软件请求时,处理器暂时停止正在执行的程序,转去对请求进行处理,处理完后,回到程序断点位置继续执行。
8086/8088的中断系统可以处理256种不同类型的中断。这256种中断对应着类型码0~255。4.4.3中断操作4.4.3中断操作中断请求的发生时间是随机的,因此在执行程序的过程中中断程序的插入也是随机的。这是子程序和中断处理程序的重要区别。断点主程序中断服务程序有中断请求对中断进行处理继续执行返回断点4.4.3中断操作采用中断技术的原因:当CPU与外设进行数据传送时,必须确认外设处于准备好的状态才能够进行数据传送。快速的CPU与慢速的外设在传递数据的速度上存在很大矛盾,大大降低了CPU的工作效率。引入中断技术以后,可以使CPU和外设在大部分时间里并行工作,提高处理器的工作效率。4.4.3中断操作1.8086/8088的中断分类硬件中断:通过外部的硬件产生的,也叫外部中断。不可屏蔽中断:通过CPU的NMI引脚进入,不受IF的屏蔽。整个系统中只能有一个不可屏蔽中断。可屏蔽中断:通过CPU的INTR引脚进入,当IF为1时中断才能被响应。整个系统中可以有多个非屏蔽中断。软件中断:程序中断指令、指令运行出错等。4.4.3中断操作中断标志1、中断允许标志 标志寄存器中的IF标志,表示是否可以响应可屏蔽中断请求,“1”表示允许,“0”表示禁止。 可以用CLI和STI指令来设置IF。2、中断请求标志 每个中断对应一位,用来纪录外设的中断请求状态,有请求时置1,中断处理完后自动清0。4.4.3中断操作中断屏蔽:选择性的将某些中断源的请求忽略,即不响应该中断请求。 有些硬件中断源的请求可以根据IF标志决定是否响应,而有些硬件中断源的请求需要一定被响应。 在8086/8088系统中,INTR是可屏蔽中断请求引脚,NMI是不可屏蔽的中断请求引脚。 在PC机系统中,通过8259A管理的外设中断源连在CPU的INTR引脚上。在8259A内部有8位的中断申请寄存器和8位的中断屏蔽寄存器,可以对应于8个外设的中断申请和中断屏蔽。4.4.3中断操作中断优先级:当系统具有多个中断源时,有可能同时发出请求,由CPU按照中断优先级择优响应。一般的处理原则:1、不同优先级同时请求,按优先级别处理。2、低优先级中断正在处理,出现高优先级请求,转去处理高优先级请求。3、高优先级中断正在处理,出现低优先级请求,暂不响应。4、中断处理时,出现同级别请求,当前中断处理完以后再处理新的请求。4.4.3中断操作中断嵌套:在CPU的处理外部中断的时候,如果有更高优先级的中断请求,则转去处理高优先级的中断。这种低级中断中套着高级中断称为中断嵌套。断点:CPU在每条指令执行的最后一个时钟周期检测中断请求,如果响应中断的话,转去执行中断处理程序,程序被中断的地方称为“断点”。具体地址是响应中断时,主程序中当前指令的下一条指令的地址,包括CS和IP的值。4.4.3中断操作2.中断向量 中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。8086中,把内存00000H—003FFH区域设置为一个中断向量表。每个中断向量占4个存储单元。低地址单元存放中断子程序入口地址的偏移量IP,高地址单元存放段基址CS,低位在前,高位在后。图4-208086/8088中断向量表4.4.3中断操作例:类型号为03H的中断处理子程序放在2345:7890H开始的内存区域中,而03H中断对应的中断向量存放在0000:000CH处,所以,0段000CH、000DH、000EH、000FH这4个单元中的值分别为90H、78H、45H、23H。4.4.3中断操作3.硬件中断
8086/8088为外部设备提供了NMI和INTR引脚来送入中断请求信号。
NMI:不受IF的影响。中断优先级非常高。一般用来处理重大故障。
INTR:当IF为1时,执行完当前指令后响应中断请求,IF的设置和清除可以通过指令和调试工具来完成。4.4.3中断操作4.可屏蔽中断的响应过程 当CPU在INTR引脚上接收到一个高电平的中断请求信号,并且当IF=1时,CPU执行完当前指令之后,响应外部中断请求,往INTA引脚上发两个负脉冲,外设接到第二个负脉冲之后,立即通过数据线给CPU送中断类型码。4.4.3中断操作CPU中断响应流程:1.从数据总线读取中断类型码,存入内部暂存器。2.将标志寄存器压栈。3.IF和TF清零。避免被其他中断请求打断。4.将断点压栈。5.根据中断类型码查中断向量表,根据找到的中断向量载入CS和IP,转入相应的中断处理子程序。4.4.3中断操作5.中断处理子程序的结构模式
(1)中断处理子程序的开始必须通过一系列推入堆栈指令来进一步保护中断时的现场,即保护CPU各寄存器的值。(2)设置中断允许标志IF来开放中断,以允许级别较高的中断请求进入。(STI)(3)中断处理的具体内容是中断处理子程序的主要部分。(4)中断处理子程序的尾部则是一系列弹出堆栈指令,使得各寄存器恢复进入中断处理时的值。(恢复现场)(5)最后是中断返回指令IRET,中断返回指令的执行会使堆栈中保存的断点值和标志值分别装入IP,CS和标志寄存器。4.4.3中断操作6.软件中断:利用一条指令来使CPU进入中断处理程序。 不需要执行中断响应总线周期,不需要读取中断类型码,不受IF影响。 若有不可屏蔽中断请求、可屏蔽中断请求(当IF=1时),则在当前指令执行完毕之后响应。9.1可编程中断控制器8259A用于管理可屏蔽中断。8259A的基本功能:一片8259A可以管理8级中断,可扩展至64级。每一级中断都可单独被允许响应或被屏蔽。在中断响应周期,可提供相应的中断向量号。
8259A有多种工作方式,可通过编程选择。9.1.18259A芯片内部结构图9-18259A的内部结构9.1.18259A芯片内部结构图9-28259A芯片引脚信号9.1.18259A芯片内部结构1.数据总线缓冲器双向三态8位缓冲器,构成8259A和CPU之间的数据接口。2.读/写控制电路 接收来自CPU的读/写控制命令和片选控制信息。用末尾地址A0来选择端口,往8259A写控制字,读8259A内部寄存器的内容。3.级联缓冲/比较器 一片8259A可接收8级中断,从IR0~IR7输入,中断超过8级时,允许多片8259A级联使用,构成主从关系。 非缓冲状态:SP=1:主8259A;SP=0:从8259A。 缓冲状态:EN=1:写8259A;EN=0:读8259A。9.1.18259A芯片内部结构4.中断请求寄存器IRR
保存由外部输入的8条中断请求信号IR0~IR7。1表示有中断请求;0表示无请求。5.中断服务寄存器ISR
记录正在处理中的中断请求。某一位为1表示中断正在处理;为0表示没有被处理。6.中断屏蔽寄存器IMR
保存对各级中断请求的屏蔽信息。1表示相应中断被屏蔽;0表示允许。7.优先权判别器PR 识别各个中断请求信号的优先级别,找出最高优先级的中断请求,系统优先响应。9.1.28259A芯片的工作方式8259A工作示意图9.1.28259A芯片的工作方式8259A有两种中断触发方式:边沿触发方式8259A将中断请求输入端出现的上升沿作为中断请求信号。电平触发方式中断请求端出现的高电平是有效的中断请求信号。在第1个INTA结束前,IRi必须保持高电平。9.1.28259A芯片的工作方式
在中断响应周期的第2个INTA信号有效期间,8259A应该将当前被响应的中断的中断类型码n通过数据总线D7~D0传送给CPU。一片8259A引入的8级中断请求的中断类型码肯定是连续的。中断类型码由软件定义的D7~D3决定。当D7~D3=10001时,8级中断的类型码为88H~8FH。图9-3中断类型码形成9.1.28259A芯片的工作方式中断优先权管理方式:1.完全嵌套方式2.自动循环方式3.中断屏蔽方式 各中断源的优先级确定之后,一般的处理原则只允许高级中断打断低级中断,禁止低级打断高级和同级中断相互打断。9.1.28259A芯片的工作方式1.完全嵌套方式(默认方式)
8259A的中断优先权顺序固定不变,从高到低依次为IR0、IR1、IR2、……IR7。 中断请求后,8259A对当前请求中断中优先权最高的中断IRi予以响应,将其向量号送上数据总线,对应ISR的Di位置位,直到中断结束(ISR的Di位复位)。 在ISR的Di位置位期间,禁止再发生同级和低级优先权的中断,但允许高级优先权中断的嵌套。 要求CPU每响应一次中断进入中断服务程序后,应该安排开中断指令(STI)将IF置1,否则其他高级中断无法进入。处理完,CPU向8259A回送结束命令,将ISR相应位清零,标志着一级中断处理过程完全结束。9.1.28259A芯片的工作方式图9-48259A中断控制器8级中断嵌套过程9.1.28259A芯片的工作方式在完全嵌套方式下,可采用以下3种中断结束方式:普通EOI方式 当任何一级中断服务程序结束时,只给8259A发送一个EOI命令时,8259A收到后,自动将ISR寄存器中级别最高的置1位清零。特殊EOI方式 不但发送EOI,还发送当前结束的中断级别,即指出了要清除哪个ISR位。自动EOI方式 在第2个中断响应信号结束时,自动将ISR寄存器相应位清零,不用发送任何消息,简单,但有可能造成重复嵌套。9.1.28259A芯片的工作方式2.自动循环方式优先级动态排序某中断请求IRi被处理后,其优先级别自动降为最低,原来比它低一级的中断上升为最高级。IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低级最高级最高级最低级ISR内容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服务结束以前0001000000000000IR4的服务结束以后ISRi9.1.28259A芯片的工作方式实现自动循环方式,可采用以下3种EOI循环方式:普通EOI循环方式 当任何一级中断服务程序结束时,只给8259A发送EOI命令,8259A收到后,自动将ISR寄存器中级别最高的置1位清零,并赋予最低优先级,原来比它低一级的中断赋予最高级,其他类推。特殊EOI循环方式 不但发送EOI,还可以根据用户的需要将最低优先级赋给指定的中断源,即指出了要清除哪个ISR位。表9-2自动EOI循环方式 在第2个中断响应信号结束时,自动将ISR寄存器中相应位清零,并改变各级中断的优先级。9.1.28259A芯片的工作方式3.中断屏蔽方式
CPU在任何时候都可以用CLI指令将中断标志清零,从而禁止由INTR端引入的可屏蔽中断请求。普通屏蔽方式: 将中断屏蔽寄存器IMR的Di位置1,则对应的中断IRi被屏蔽。如果置0,则允许响应对应的中断。特殊屏蔽方式 当CPU正在处理某级中断时,仅仅对本级中断进行屏蔽,允许其他高级和低级中断请求进入系统。9.1.38259A芯片的级联使用
单片8259A可以支持8级中断,在多于8级中断的系统中,必须将多片8259A级联使用。 级连时只能有一片8259A为主片,其余的均为从片。 级联时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2。 每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IRi。 主8259A的INT线连至CPU的中断请求输入端。
SP/EN在非缓冲方式下,规定该8259A是主片(SP=1)还是从片(SP=0)。9.1.38259A芯片的级联使用图9-58259A级联方式连接9.1.38259A芯片的级联使用9.1.38259A芯片的级联使用特殊全嵌套方式一中断正被处理时,允许同级或更高优先级的事件可以打断当前的中断处理过程而被服务。特殊全嵌套仅用于多个8259A级连时的主8259A,而不能用于从属8259A或单8259A系统。一般全嵌套方式与特殊全嵌套方式的区别D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:从片的INT被主片封锁,故更高级别的IR0-IR2中断也无法得到响应特殊嵌套方式:因主片不封锁从片的INT,故级别高的IR0-IR2中断可以得到响应。(但IR3-IR7仍被从片封锁)C.假定IR3发生中断,并获得服务一般嵌套方式:IR4的中断被服务时,这些中断将被封锁。B.特殊嵌套方式:IR4的中断被服务时,只封锁IR5-IR7。A.INTE.从8259AINTIR0IR1IR2IR3IR4IR5IR6IR7去CPU9.1.48259A芯片的控制字及其工作方式初始化编程:
8259A开始工作前,必须进行初始化编程 给8259A写入预置命令字ICW中断操作编程 在8259A工作期间,可以写入操作命令字OCW将选定的操作传送给8259A,使之按新的要求工作;还可以读取8259A的信息,以便了解它的工作状态
8259只有一根地址线A0,所以每片8259有2个片内地址A0=0和A0=1,所有的命令都是通过访问这两个端口来实现的。9.1.48259A芯片的控制字及其工作方式1.预置命令字初始化命令字ICW最多有4个。在8259A开始工作前必须写入。必须按ICW1~ICW4顺序写入。
ICW1和ICW2是必须的。
ICW3在级联使用时需要设置。
ICW4在8086/8088-8259A配置系统中需要设置。
8259的初始化流程如图,注意次序不可颠倒。写ICW1写ICW2级连?写ICW3需ICW4?写ICW4NNYY9.1.48259A芯片的控制字及其工作方式(1)ICW1 初始化8259A必须从ICW1开始,写ICW1意味着重新初始化8259A。写入ICW1后,8259A的状态如下:清除ISR和IMR(全0)。将中断优先级设成初始状态:IR0最高,IR7最低。设定为一般屏蔽方式。采用非自动中断结束方式。状态读出逻辑预置为读IRR。9.1.48259A芯片的控制字及其工作方式图9-98259AICW1格式9.1.48259A芯片的控制字及其工作方式(2)ICW2 定义中断类型码的高5位。低3位取决于当前的中断请求是由IR7~IR0中哪一个引脚输入。由此可确定当前中断请求的中断类型码。 若ICW2=18H,中断类型码为18H~1FH。图9-108259AICW2格式9.1.48259A芯片的控制字及其工作方式(3)ICW3 只对级联方式有效,ID2~ID0表示从8259A连接在主8259A的哪个IR端上。图9-118259AICW3格式9.1.48259A芯片的控制字及其工作方式
中断响应时,主片通过级连线CAS2~CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2~CAS0比较,二者一致的从片才可发送中断向量码。
ICW3在定义的时候,必须与主从片的连接关系一致。 例:
主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW3=04H。9.1.48259A芯片的控制字及其工作方式(4)ICW4 对于8086/8088系统,是必须设置的预置命令字。图9-118259AICW4格式初始化流程奇地址偶地址9.1.48259A芯片的控制字及其工作方式例:当8086系统中8259A单级使用,其端口地址为80H和81H,可用如下的初始化程序段写入预置命令字。
MOVAL,13H ;定义ICW1 OUT80H,AL;
MOVAL,18H ;定义ICW2,中断类型码
OUT81H,AL;
MOVAL,01H ;定义ICW4 OUT81H,AL; 由ICW2可确定该8259A引入的8级中断的中断类型码为18H~1FH。9.1.48259A芯片的控制字及其工作方式图9-138259AICW控制字应用举例9.1.48259A芯片的控制字及其工作方式2.操作命令字
OCW1~OCW3用于设置8259的工作状态。在初始化后写入。
OCW1~OCW3的写入顺序可任意。写入地址要求:OCW1必须写入奇地址端口(A0=1)OCW2,OCW3必须写入偶地址端口(A0=0)
9.1.48259A芯片的控制字及其工作方式(1)OCW1用来实现中断屏蔽功能,OCW1的内容被直接置入中断屏蔽寄存器IMR中。9.1.48259A芯片的控制字及其工作方式(2)OCW2:定义中断结束方式。01将最低优先级赋给IRi9.1.48259A芯片的控制字及其工作方式(3)OCW3:设置对内部寄存器的读出命令设置中断查询方式设置和撤销特殊屏蔽方式9.1.48259A芯片的控制字及其工作方式 P位置1后,表示向8259A发出查询命令,查询当前是否有中断请求正在被处理,若有,则给出当前处理的最高优先级是哪一级。
CPU先写一个D2=1的OCW3,再对同一地址读入,即可得到如下状态字节:
1xxxx010IR=1表示有中断请求,当前处理的最高级中断为IR2。9.1.48259A芯片的控制字及其工作方式CPU可读出IRR、ISR、IMR和查询字偶地址:由OCW3中RR和RIS位设定读取IRR或ISR;由OCW3中P位设定读取查询字(反映8259A是否有中断请求)奇地址:读取的都是IMR(随时)写入ICW1、OCW2和OCW3写入ICW2~ICW4和OCW1读出IRR、ISR和查询字读出IMR数据总线高阻状态数据总线高阻状态0100110000101010×110×××1功能A0RDWRCS9.1.48259A芯片的控制字及其工作方式注意的几个问题:系统进入中断会自动使IF=0,在中断子程序中可以人为的加入STI(开中断)指令,使系统能够相应更高级的中断,形成中断嵌套每个中断处理子程序结束之前必须执行中断结束命令EOI,清除对应的ISn位,并执行中断返回指令(IRET)初始化开中断开中断关中断中断结束命令中断返回开中断关中断中断结束命令中断返回……IR3请求中断IR2中断处理程序主程序IR2请求中断…中断全嵌套方式的流程清除IS2清除IS3IR3中断处理程序9.1.48259A芯片的控制字及其工作方式3.8259A级联使用的初始化程序举例 某系统中设置两片8259A实现中断控制,他们之间采用级联方式连接。从8259A的INT端和主8259A的IR3端相连。主8259A的IR0和IR5端上分别引入两个中断请求,从8259A的IR2和IR3端上也分别引入两个中断请求。9.1.48259A芯片的控制字及其工作方式
主8259A引入的中断类型码分别为40H和45H,他们的中断服务程序在同一段中,其段基址为1000H,偏移地址分别为1050H和2060H。 从8259A的IR2和IR3的中断类型码为32H和33H,中断服务程序的段基址为2000H,偏移地址分别为5440H和3620H。 首先应将4个中断入口写入中断入口地址表中。9.1.48259A芯片的控制字及其工作方式从:IR2:32H2000H:5440HIR3:33H2000H:3620H主:IR0:40H1000H:1050HIR3:45H1000H:2060H9.1.48259A芯片的控制字及其工作方式主8259A的端口地址为FFE8H和FFE9H从8259A的端口地址为FFFAH和FFFBH主8259A的初始化:MOVAL,11H;定义ICW1,级联使用方式,边沿触发MOVDX,0FFE8HOUTDX,AL
MOVAL,40H;定义ICW2,中断类型码为40H~47HMOVDX,0FFE9HOUTDX,AL
MOVAL,08H;定义ICW3,IR3接从片OUTDX,AL;MOVAL,11H;定义ICW4,特殊完全嵌套,非自动EOI结束,OUTDX,AL非缓冲,由SP=1确定为主8259AMOVAL,0D6H;定义OCW1,屏蔽IR0、IR3和IR5以外的中断源OUTDX,AL
MOVAL,20H;定义OCW2,普通EOI结束方式MOVDX,0FFE8HOUTDX,AL
9.1.48259A芯片的控制字及其工作方式从8259A的初始化:MOVAL,11H;定义ICW1,级联使用方式,边沿触发方式MOVDX,0FFFAHOUTDX,ALMOVAL,30H;定义ICW2,中断类型码为30H~37HMOVDX,0FFFBHOUTDX,ALMOVAL,03;定义ICW3,接在主8259A的IR3OUTDX,ALMOVAL,01H;定义ICW4,特殊完全嵌套方式,非自动EOI结束,OUTDX,AL;非缓冲方式,由SP=0确定为从8259AMOVAL,0F3H;定义OCW1,屏蔽IR2和IR3以外的其他中断源OUTDX,ALMOVAL,20H;定义OCW2,普通EOI结束方式MOVDX,0FFFAHOUTDX,AL
9.3可编程DMA控制器8237ADMA(DirectMemoryAccess)特点
8237A的工作方式
8237A寄存器组的编程DMA特点
在内存与I/O设备之间或内存与内存之间直接传送数据,不需要CPU的中转。主要用于需要高速大批量数据传送的系统中,如磁盘存取、高速数据采集等系统中。需要有DMA硬件(DMA控制器)。DMA传送的过程 DMA传送从开始到结束全过程分为几个阶段,在DMA操作开始之前,用户应根据需要先对DMA控制器编程,把要传送的数据字节数据,数据在存储器中的起始地址、传送方向、DMAC通道号等信息送到DMAC中,这叫DMAC的初始化。初始化后,就等待外部设备来申请DMA请求。1.申请阶段2.响应阶段3.数据传送阶段4.传送结束阶段DMA传送的方式一、DMA操作类型
DMA传送主要是进行数据传送操作,但也包括一些并不是进行数据传送的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业废水处理与环境保护
- 工业废水处理技术与策略
- 工业控制系统信息安全防护策略与实践
- 工业建筑节能与环保技术
- 工业机器人技术发展现状及趋势分析汇报材料
- 工业设计中的新材料技术及其优势分析
- 工业自动化技术的新发展及应用前景
- 4s店公司管理制度
- ic饭卡管理制度
- 标准措施预防管理制度
- 2025天津市龙网科技发展有限公司招聘9人笔试参考题库附带答案详解
- 2024年甘肃省西部计划真题
- 2024北京重点校八年级(下)期末道德与法治汇编:人民当家作主章节综合
- 保洁员三级安全教育试题及答案
- CJ/T 189-2007钢丝网骨架塑料(聚乙烯)复合管材及管件
- 2025年智慧农业与可持续发展考试题及答案
- 2025年北京市各区高三语文二模卷《论语》《红楼梦》试题汇集附答案
- 《ICF康复工具》课件 - 以ICF为核心的专业康复指导手册
- 国家开放大学2025年《创业基础》形考任务2答案
- 《农村基层干部廉洁履行职责规定》解读与培训
- 短视频技术与应用智慧树知到期末考试答案章节答案2024年济南大学
评论
0/150
提交评论