版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2023/9/21第10章中断控制器、计数/定时控制器10.1中断概述10.2可编程中断控制器8259A10.3可编程计数/定时控制器825310.4DMA的概念习题2023/9/2210.1中断概述10.1.1中断的一般概念10.1.28086/8088的中断方式10.1.3中断优先权管理返回2023/9/2310.1.1中断的一般概念
中断(Interrupt)
是一种使CPU中止正在执行的程序而转去处理特殊事件的操作过程。它是微处理器与外部设备进行信息交换的一种方式。目的:解决CPU与外设之间速度不匹配的矛盾。(一)中断控制方式的优点(二)中断源(三)中断系统的功能(四)中断服务程序与一般子程序调用的区别返回2023/9/24(一)中断控制方式的优点使CPU与外设并行工作实现实时处理自动地进行故障处理返回2023/9/25(二)中断源
引起中断的事件,或提出中断申请的来源,称为中断源。如:输入/输出设备中断(如键盘、打印机)、过程控制产生的中断(如程序调试)、电源故障中断等。中断源分为内部中断和外部中断两大类。内部中断(软件中断):产生于处理器内部,由专门的中断指令引起。外部中断(硬件中断):产生于处理器外部,由外部硬件引起。
返回2023/9/26(三)中断系统的功能能实现中断及正确地返回中断前:保护断点和现场返回前:恢复现场和断点能实现优先权排队和中断嵌套
中断优先权:多个中断源同时提出申请时,CPU响应中断的先后次序。中断嵌套:CPU处理低级中断源的中断响应时,能够被高级中断中止而转去响应高级中断。能屏蔽某些中断
由中断允许触发器决定是否响应中断请求。8086/8088中,当中断标志位IF=1时,才允许响应可屏蔽中断INTR。返回2023/9/27(四)中断服务程序与一般子程序调用的区别
产生中断的时间具有随机性,何时执行中断服务程序是不确定的。在中断方式中,CPU自动完成对标志寄存器FR的保护与恢复,无需PUSHF和POPF指令。中断服务程序采用中断返回指令IRET,而不是子程序返回指令RET,二者执行的操作不同。中断服务程序中总有一条开中断指令(该指令安排在IRET指令前,以便返回主程序后能再次响应中断;该指令若安排在中断服务程序开始的地方,则允许在中断处理过程中响应更高级的中断源请求)。返回2023/9/2810.1.28086/8088的中断方式
(一)8086/8088中断分类(二)8086/8088中断向量表(三)8086/8088中断响应过程
返回2023/9/29(一)8086/8088中断分类8086/8088中断系统可处理256种不同的中断,其中断源如图10-1所示。这256种中断分两大类:硬件中断(外部中断)——由外部硬件引起的中断。软件中断(内部中断)——由CPU执行某些指令引起的,即由INT指令或CPU执行程序时某些错误引起的中断。返回2023/9/210图10-18086/8088中断源返回中断逻辑INTn指令单步TF=1除法错误INTO指令非屏蔽中断请求INTR2NMICPU014nIR0IR1IR2IR3IR4IR5IR6IR782510AINT可编程中断控制器(PIC)系统定时器键盘彩色图形接口保留(通信)串行通信接口保留(ALT打印机)软盘保留(打印机)08090A0B0C0D0E0F图10-18086/8088中断源返回类型号2023/9/211(1)硬件中断非屏蔽中断NMI由引脚NMI(non-maskableinterrupt)引入,中断类型号为2。NMI不受中断允许标志IF的屏蔽。当NMI引脚上出现宽度大于2个时钟周期的正脉冲时,CPU在执行完当前指令后就马上响应NMI中断。一般用于处理系统的重大故障,如系统掉电等。可屏蔽中断INTR由引脚INTR(interrupt)引入,采用高电平触发方式。INTR上的中断请求可被IF屏蔽。只有当IF=1时,CPU才能响应INTR中断。IF的状态可由开中断指令STI和关中断指令CLI来设置。注意:系统复位或响应任一种中断后,IF均被清零,必须在一定时候用STI来开放中断。8086/8088只有一条INTR输入线。将INTR与中断控制器8259A的INT相连,由8259A可扩展多个外部中断源。返回2023/9/212(2)软件中断软件中断通常由三种情况引起:①由指令INT引起的中断②由CPU某些错误引起的中断
③由DEBUG调试程序设置的中断注:286以上微处理器常将软件中断称为异常返回2023/9/213①由指令INT引起的中断CPU执行一条INTn
指令后立即产生中断。n为中断类型号,可为00H~FFH中的某数。
返回2023/9/214②由CPU某些错误引起的中断除数为0中断——类型0中断。除法运算中,若除数为0或商超过寄存器所能表达的范围,则产生类型0中断。没有相应的中断指令。溢出中断(INTO指令)——类型4中断。当溢出标志OF=1时,CPU执行INTO指令就会进入溢出中断处理程序,打印出错信息,并把控制权交给操作系统。若OF=0,INTO指令不起作用。因此,将INTO指令放在加、减法运算指令后,可对OF的状态进行检测,一旦发生溢出便给予出错报警。
返回2023/9/215③由DEBUG调试程序设置的中断单步中断——类型1中断。在跟踪标志(TrapFlag)TF=1时,CPU在每条指令执行后,自动产生类型1中断,显示各寄存器和有关存储单元的内容,以及下条要执行的指令。TF由DEBUG程序修改。断点中断——类型3中断。用DEBUG程序的G命令设置断点,实质上是把一条断点指令INT3插入到断点设置处。当CPU执行到断点处,自动进入类型3的中断服务程序,显示相关寄存器和存储器的内容。可省写为INT(单字节指令)。返回下一页2023/9/216软件中断的特点及优先级软件中断的特点:a.
中断类型号由指令提供;b.
不受中断允许标志IF的影响;c.
在执行软件中断时,如果有外部硬件中断请求,CPU会在执行完当前指令后给予响应(对于可屏蔽中断请求,要求IF=1)。中断源优先权级别由高到低的顺序为:
除法错→INTn→INTO→NMI→INTR→单步
返回2023/9/217(二)8086/8088中断向量表中断向量是中断服务程序的入口地址(段地址和偏移地址)。8086/8088系统在存储器00000H~003FFH的1KB区域建立了一个中断向量表,可存储256个中断向量(类型号00~FFH),每个向量占4个字节,低2个字节存放中断入口地址的段内偏移地址(IP),高2个字节存放中断入口的段地址(CS),如图10-2所示。中断类型号由指令给定或由外设提供。当CPU响应中断时,将中断类型号n乘以4就得到中断向量的存放地址,取4n和4n+1单元中的内容装入IP,取4n+2和4n+3单元中的内容装入CS,程序就转入相应的中断处理过程。见举例。
返回下一页2023/9/218(二)中断向量表(续)在8086/8088中断向量表中,前5个是专用中断,用户不能修改,除类型2外都是软件中断。类型05H~1FH是系统使用中断,不允许用户修改。其中类型08H~0FH对应8259中断控制器的8路可屏蔽中断请求,类型10H~1AH为BIOS中断,类型1DH~1FH指向三个专用数据表。类型20H~3FH为DOS中断,用户程序可调用,特别是类型21H中断,称为DOS系统功能调用,使用特别多。类型40H以后的中断类型大都可由用户安排。返回2023/9/219图10-28086/8088中断向量表返回2CSIPCSIPCSIPCSIPCSIPCSIPCSIP0000:0000H0000:0003H0000:0004H0000:0007H0000:0008H0000:000BH0000:000CH0000:000FH0000:0010H0000:0013H0000:0014H0000:007EH0000:007FH0000:03FFH除数为0的中断单步中断非屏蔽中断断点中断溢出中断类型0类型1类型2类型4类型3类型5类型31类型32类型255(十进制)(十进制)专用中断(共5个)保留中断(共27个)供用户定义的中断(共225个)返回12023/9/220举例
执行INT05H过程:取中断类型号05H计算中断向量地址05H*4=14H取中断入口的偏移地址FF54H→IP,取段地址FF00H→CS程序转向中断服务程序入口FF00H:FF54H返回0000:0014HFFH00HFFH54H0000:0015H0000:0016H0000:0017H2023/9/221(三)8086/8088中断响应过程8086/8088的中断响应过程分三大步:(1)响应中断,获取中断类型号(2)中断服务,包括保护现场、保护断点和断点处理(3)中断返回,包括恢复断点和恢复现场在8086/8088各类中断中,除了第一步不同类型中断提供中断类型号的方式不同之外,第二步、第三步的处理过程大体是相同的。返回2023/9/222(1)中断类型号的获取获取方式有:可屏蔽中断INTR——由外设(8259A)提供中断类型号
8086/8088响应INTR中断要用两个总线周期:第一个总线周期通知8259A,CPU准备响应中断,要求准备好中断类型号;第二个总线周期中,被响应外设的中断类型号通过低8位数据总线送给CPU。CPU将类型号左移两位,成为中断向量的存放地址,存入暂存器。(参考图10-1)非屏蔽中断NMI——不经过中断响应周期,自动形成中断类型号02H;专用软件中断——自动形成中断类型号。除法出错0,单步中断1,断点中断3,溢出中断4;中断指令INTn——由指令提供中断类型号n。返回2023/9/223(2)中断响应取得中断类型码后的操作过程大体相同,顺序为(见图10-3
):①根据中断类型码计算中断向量所在地址;②将标志寄存器FR的内容入栈,保护现场;③复制TF的状态,IF和TF标志清0,以屏蔽外部其它中断及防止单步运行中断服务程序;④将断点地址CS和IP的内容推入堆栈保护;⑤从中断向量表读取中断向量送入CS和IP,转入中断服务程序。以上各步骤是CPU自动完成的。返回2023/9/224图10-38086/8088中断响应流程图返回是内部中断吗?是非屏蔽中断吗?是可屏蔽中断吗?TF=1吗?执行下一条指令结束当前指令IF=1吗?取中断类型码标志推入堆栈令TEMP=TF清除IF和TFCS和IP推入堆栈进入中断处理程序TEMP=1吗?执行中断处理程序弹出IP和CS弹出标志有NMI吗?是是是是否否否否否是响应中断有无是否返回断点2023/9/225(3)中断处理和返回进入中断服务程序,完成以下内容:⑥保护现场,将有关寄存器内容推入堆栈保护。⑦开中断,用STI指令使IF=1(若允许中断嵌套的话,否则应将开中断放在中断返回之前)。⑧对中断源提出的中断请求进行处理。⑨恢复现场,将保存在堆栈中的各寄存器原内容弹回原寄存器。⑩执行中断返回IRET。完成两个功能:一是将保存在堆栈中的断点地址送回IP和CS,二是恢复标志寄存器FR中的内容(相当于POPF),使CPU回到原程序继续运行。返回2023/9/22610.1.3中断优先权管理中断优先权(Priority):多个中断源同时提出申请时,CPU响应中断的优先次序。中断嵌套:CPU处理低级中断源的中断响应时,能够被高级中断中止而转去响应高级中断。(一)用软件确定中断优先权(二)硬件确定中断优先权返回2023/9/227(一)用软件确定中断优先权软件查询:由软件查询的先后次序决定中断源的优先权,先查询的中断源的优先权高于后查询的中断源。结构组成:图10-4将8个外设的中断请求信号相“或”后送到CPU的INTR端,同时把这8个外设的中断请求寄存器组成一个端口,赋予端口地址20H。任一外设有中断请求,CPU响应后进入中断服务程序,执行中断优先权查询程序,读入端口内容,逐位查询每位的状态,查到哪位有中断请求就转入相应的中断服务程序。其流程图见图10-5。屏蔽法查询与移位法查询软件查询的优、缺点返回2023/9/228图10-4软件查询方式的接口电路返回INTR70电源故障磁盘磁带显示器纸带输入键盘输入纸带穿孔打印输出端口地址20H2023/9/229图10-5软件查询程序流程图返回C申请服务?B申请服务?A申请服务?保留现场恢复现场外设C中断服务程序外设B中断服务程序外设A中断服务程序NNNYYY2023/9/230屏蔽法查询屏蔽法查询:
INAL,20HTESTAL,80HJNEPWF;转电源故障处理
TESTAL,40HJNEDISS;转磁盘服务程序
TESTAL,20HJNEMT;转磁带服务程序
……返回2023/9/231移位法查询
移位法查询
INAL,20HSALAL,1;AL中的值算术左移1位
JCPWF;转电源故障处理
SALAL,1JCDISS;转磁盘服务程序
……返回2023/9/232软件查询法的优、缺点
软件查询法的优点:①优先权次序由程序确定;②省硬件,不需要复杂电路缺点:CPU响应中断的速度慢,即由询问转至相应服务程序的入口需较长时间。返回2023/9/233(二)硬件确定中断优先权(1)用编码器和比较器组成的优先权排队电路(2)菊花链式优先权排队电路(3)专用的中断控制器返回2023/9/234(1)用编码器和比较器组成的优先权排队电路电路原理如图10-6所示。优先权编码器对中断输入线进行优先权编码。中断源I0=1编码为A2A1A0=000;中断源I1=1编码为A2A1A0=001,…,I7=1编码为A2A1A0=111。111的优先权最高。有多个中断源提出请求时,编码器输出优先权最高的编码。优先权寄存器存放当前正在处理的中断优先权编码B2B1B0。当前没有中断处理时,“优先权失效”=1,这时任一中断请求,都可通过与门2送到CPU的INTR端。如果CPU当前正在处理中断的话,则“优先权失效”=0,与门2被封锁,中断请求能否经过与门1受比较器输出信号的控制。若提出请求的中断源的优先权编码高于正在处理的中断源,即A>B,则比较器输出“1”,与门1开通,中断请求经与门1送CPU;否则比较器输出“0”,该中断被封锁,直至当前中断处理完毕才通过与门2送至CPU。中断类型号由A2A1A0提供。返回2023/9/235图10-6编码器和比较器的优先权排队电路返回优先权寄存器8到3优先权编码器CPU数据总线A>B比较器A2A1A0B2B1B0中断输入21去CPUINTR优先权失效2023/9/236(2)菊花链式优先权排队电路菊花链式优先权排队电路如图10-7所示。中断请求Ii通过或门送入CPU的INTR端。CPU响应后输出INTA。若中断源I1提出请求,则与门A1被打开,缓冲器A被选通,该中断类型号被送入CPU,转入该中断服务程序。I1输入与门A1的同时,也输入与门A2,使A2输出低电平,将A级以下的各中断请求Ii都屏蔽掉。在菊花链优先权排队电路中,排在最前面的中断请求优先权最高,即I1>I2>I3……。若前级有中断请求,则屏蔽本级和以下各级的中断请求;若本级有中断请求,则屏蔽以下各级的中断请求。返回2023/9/237图10-7菊花链式优先权排队电路返回缓冲器A缓冲器B缓冲器CA1A2C2C1B2B1INTACPU
DB中断矢量中断矢量中断矢量INTR2023/9/238(3)专用的中断控制器
微机系统中,常采用专门的中断控制器进行中断优先权管理,如Intel公司的8259A,通过它对外设接口的中断请求进行管理。返回2023/9/23910.2可编程中断控制器8259A
10.2.1
8259A的内部结构
10.2.28259A的引脚
10.2.38259A的工作方式
10.2.48259A的命令字
10.2.58259A的级联使用返回小结2023/9/24010.2.18259A的内部结构
8259A的内部结构如图10-8所示,包括八部分:(1)中断请求寄存器IRR(InterruptRequestRegister):保存中断请求信号IR0~
IR7;(2)中断屏蔽寄存器IMR(InterruptMaskRegister):对IRR中相应的中断源进行屏蔽(置“1”);(3)中断服务寄存器ISR(InterruptServiceRegister):记录正在处理的中断请求,相应的ISR位置“1”;(4)优先权判别器PR(PriorityResolver):判别保存在IRR中的中断请求的优先级,将优先级最高的中断请求在中断响应周期送至ISR寄存器。多重中断时,由PR判定是否允许IRR中的中断请求打断正在处理的ISR中保存的中断;返回下一页2023/9/241图10-88259A内部结构框图数据总线缓冲器读/写控制电路级联缓冲器/比较器D7~D0CAS0CAS1CAS2A0RDWR控制电路中断服务寄存器(ISR)优先权判别器(PR)中断请求寄存器(IRR)INTINTA中断屏蔽寄存器(IMR)IR7…CSSP/ENIR6IR1IR0返回2023/9/24210.2.18259A的内部结构(续)(5)数据总线缓冲器:双向8位三态缓冲器,构成8259A与系统总线之间的数据接口;(6)读/写控制电路:控制状态信息的读出和控制命令的写入;(7)级联缓冲器/比较器:用于多片8259A的连接,最多可级联8块8259A,将中断源由8级扩展到64级;(8)控制电路:控制8259A芯片内部部件运行。返回2023/9/24310.2.28259A的引脚8259A的引脚如图10-9所示,它有28个引脚。CAS2~CAS0为级联信号线。在多片8259A级联系统中,主片8259A的CAS2~CAS0为输出线,从片的CAS2~CAS0为输入线。与SP/EN配合使用。SP/EN为级联/缓冲允许信号线。当8259A工作于非缓冲方式时,SP作为输入,用来决定本片8259A是主片还是从片,SP=1时为主片,SP=0时为从片。当8259A采用缓冲方式时,EN引脚作为输出,与数据总线驱动缓冲器OE相连,控制数据传输方向。返回2023/9/244图10-98259A的引脚图11011121314567892342819181716152423222120272625D7~D0数据总线RD读输入WR写输入A0端口选择信号CS选片CAS2~CAS0级联信号线SP/EN级联/缓冲允许线INT中断输出INTA中断响应输入IR0~IR7中断请求输入引脚名CAS2SP/ENINTIR0IR1IR2IR3IR4IR5IR6IR7INTAA0VccD0D1D2D3D4D5D6D7RDWRCS地CAS0CAS1返回2023/9/24510.2.38259A的工作方式(一)
优先级设置方式(二)中断结束(EOI)处理方式(三)中断屏蔽方式(四)中断请求引入方式(五)8259A与系统总线的连接方式
返回2023/9/246(一)优先级设置方式(1)
全嵌套方式(2)
特殊全嵌套方式(3)
优先级自动循环方式(4)
优先级特殊循环方式
返回2023/9/247(1)全嵌套方式
全嵌套方式是8259A的默认方式,也是最常用的工作方式。此方式中,中断优先级是固定的,IR0优先级最高,IR7优先级最低,即IR0>IR1
>IR2
>IR3
>IR4
>IR5
>IR6
>
IR7
可实现中断嵌套:只允许高一级中断进入嵌套,不允许同级和低级中断进入嵌套。CPU响应中断时,中断服务寄存器ISR中的相应位保持为“1”。返回2023/9/248(2)特殊全嵌套方式特殊全嵌套方式只屏蔽低级中断,允许同级和高级中断进入嵌套。优先级次序仍是IR0>IR1
>IR2
>IR3
>IR4
>IR5
>IR6
>IR7该方式用于8259A级联,主片8259A设置为此方式,从片处于其他工作方式。同一个从片上不同优先级的8个中断源对于主片来讲却是同一级别。所以主片的特殊全嵌套方式,使得CPU除能响应主片的高一级中断外,还能响应对于主片是同一级、对于从片是更高一级的中断。返回2023/9/249(3)优先级自动循环方式
优先级自动循环方式中,中断源的优先级是变化的。初始优先级次序规定为IR0、IR1、…、IR7,当一个外设得到中断服务后,它的优先级自动降为最低,其后一级中断升为最高级。例如IR4申请中断,处理完IR4中断后,IR5变为最高级,IR4降为最低优先级,优先级队列自动循环成IR5、IR6、IR7、IR0、…、IR4。此方式适用于多个中断源优先级相等的场合。返回2023/9/250(4)优先级特殊循环方式优先级特殊循环方式与优先自动循环方式只有一点不同,即初始的最低优先级由用户编程确定,从而优先级次序及最高优先级也就确定了。例如,编程(OCW2)确定IR5为最低优先级,则优先级次序为IR6、IR7、IR0、IR1、…、IR5。返回2023/9/251(二)中断结束(EOI)处理方式中断结束(EOI)处理就是对中断服务寄存器ISR中对应位的处理。当某中断被CPU响应后,8259A使ISR的对应位置“1”,中断处理结束时,必须将ISR中对应位清“0”,以便再次接受同级别的中断。8259A有三种中断结束(EOI)处理方式:(1)普通EOI方式(2)特殊EOI方式(3)自动EOI方式(AEOI)
返回2023/9/252(1)普通EOI方式该方式适合于全嵌套工作方式。中断服务程序结束返回上一级程序前,CPU发一个EOI命令,使8259A自动将ISR寄存器中级别最高的置“1”位清“0”(即结束了当前正在处理的中断)。普通EOI方式的设置是使OCW2中的EOI位为1,即OCW2中的R、SL、EOI=001。在优先级循环方式中,普通EOI循环方式的设置通过使OCW2中的R、SL、EOI=101来实现,它使8259A将ISR寄存器中级别最高的置“1”位清“0”的同时,赋予该位最低优先级,将最高优先级赋给原来比它低一级的中断请求,其它中断源的优先级依次递增。返回2023/9/253(2)特殊EOI方式在非嵌套方式中,中断服务程序无法确定哪一级中断为最后响应和处理的,这就要采用特殊EOI方式,即由中断结束命令指明8259A的中断服务寄存器ISR中的哪一位被清“0”。特殊EOI方式的设置通过使OCW2中的R、SL、EOI=011来实现,而OCW2中的L2、L1、L0指明了ISR中对应的清“0”位。在优先级循环方式中,特殊EOI循环方式的设置通过使OCW2中的R、SL、EOI=111来实现,此时OCW2中的L2、L1、L0指明了清“0”和降为最低优先级的中断源,原来比它低一级的中断请求则升为最高优先级,其它中断源的优先级依次递增。返回2023/9/254(3)自动EOI方式(AEOI)自动EOI方式:在CPU进入中断响应周期,发第二个INTA脉冲后,8259A自动将ISR中的对应位清“0”。中断结束时,不再向8259A送回任何信息。在CPU处理中断期间,ISR中没有相应标志,有可能出现低级中断打断高级中断,产生重复嵌套,嵌套深度无法控制。用于没有多级中断嵌套的场合。在优先级循环方式中,8259A自动将ISR中相应位清“0”的同时,并按循环方式改变中断的优先级别。在8259A级联方式下,不用AEOI方式,而用非自动EOI方式。中断处理结束时发两次中断结束命令,一个送主片,另一个送从片,将主、从8259A中的ISR相应位均清“0”。返回2023/9/255(三)中断屏蔽方式CPU用CLI指令将IF清零后,将禁止所有可屏蔽中断,CPU自身无法做到有选择地屏蔽某一级或几级中断。8259A通过中断屏蔽寄存器IMR可实现这一点。(1)普通屏蔽方式:8259A的IMR的每一位对应一个中断请求输入,可以通过设置操作命令字OCW1使IMR中某一位或某几位置“1”,从而屏蔽对应的某一级或某几级中断。(2)特殊屏蔽方式:只屏蔽同级中断请求,而允许高级中断或低级中断进入系统的方式。利用操作命令字OCW3设置该方式。该方式设置后,对8259A的中断屏蔽寄存器IMR的某位置“1”使本级中断被屏蔽时,会同时使当前中断服务寄存器ISR中的相应位自动清零。这样就不仅屏蔽了本级中断,而且开放了较低级中断。这种方式常用于动态地改变系统中断优先级的场合。返回2023/9/256(四)中断请求引入方式
中断请求引入有三种方式:(1)
电平触发方式(2)边沿触发方式(3)中断查询方式返回2023/9/257(1)电平触发方式电平触发方式:8259A把中断请求输入端IRi出现的高电平作为中断请求信号。需要注意的是,当中断请求被响应后,输入端必须及时撤销高电平,否则在CPU进入中断处理过程,并且开中断的情况下,原输入端的高电平会引起第二次中断的错误。8259A通过初始化命令字ICW1中的LTIM位设置,LTIM=1为高电平触发方式。返回2023/9/258(2)边沿触发方式边沿触发方式:8259A将中断请求输入端IRi出现的上升沿作为中断请求信号,该信号可以一直保持高电平。8259A通过初始化命令字ICW1中的LTIM位设置,LTIM=0为边沿触发方式。返回2023/9/259(3)中断查询方式中断查询方式一般用于多于64级中断的场合,或者用于CPU内部的中断允许触发器复位、中断输入信号不起作用的场合。在中断查询方式下,外设通过IRi向8259A发中断请求。但8259A不通过INT端向CPU发中断申请信号,而是靠CPU执行查询命令来确定中断源。中断查询方式既有中断的特点,又有查询的特点。查询命令通过8259A的操作命令字OCW3实现。8259A接到命令后,将ISR中有中断请求的对应位置“1”,并把查询字送到数据总线上。中断查询字格式如图10-10所示。返回2023/9/260图10-10中断查询字格式D7D6D2D1D0D5D4D3L2L1L0IR1:有中断请求0:无中断请求返回当前中断请求的最高优先级编码2023/9/261(五)8259A与系统总线的连接方式(1)非缓冲方式:当系统只有单片8259A或少量几片8259A级联时,将8259A的D7~D0直接与数据总线相连。8259A的SP/EN引脚作为输入,在单片8259A系统中,SP/EN端必须接高电平;在多片系统中,主片8259A的SP/EN端接高电平,从片的SP/EN端接低电平。(2)缓冲方式:在多片8259A级联的大系统中,8259A通过总线驱动器与数据总线相连。8259A的SP/EN引脚作为输出,与总线驱动缓冲器的允许端OE相连,控制数据传输方向。返回2023/9/26210.2.48259A的命令字8259A编程有两类命令字:
①初始化命令字ICW(InitializationCommandWord),用于系统初始化设置,只设置一次。
②操作命令字OCW(OperationCommandWord),定义8259A的操作方式,允许多次设置,以动态地改变8259A的操作与控制方式。CPU对8259A的写入和读出,由CS、A0、RD和WR等信号的组合来控制,见表9-1。返回下一页2023/9/263表10-18259A的读/写操作A0100IRR,ISR或中断级别数据总线(注1)IMR数据总线001数据总线OCW2数据总线OCW3数据总线ICW1数据总线OCW1,ICW2,ICW3,ICW4(注2)D4D3RDWRCS输入操作(读)输出操作(写)断开功能000000000000111111111110000XXXXXXXXXXX数据总线——3态(无操作)数据总线——3态(无操作)注1:IRR、ISR或中断级别的选择,取决于在读操作前所写入的OCW3的内容
2:由片上的顺序逻辑队列,使这些命令字按适当的顺序写入。返回2023/9/26410.2.48259A的命令字(续)8259A包含两个端口地址:偶地址A0=0,奇地址A0=1,高位地址由片选信号CS等确定。ICW在系统开机初始化时按顺序填写。ICW1写入偶地址端口,其余写入奇地址端口。OCW没有写入顺序要求。OCW1写入奇地址端口,其余写入偶地址端口。(一)
初始化命令字ICW(二)
操作命令字OCW
返回2023/9/265(一)初始化命令字ICW
初始化命令字ICW(InitializationCommandWord)又称预置命令字,只在初始化时设置一次。四个初始化命令字ICW1~ICW4不是任何情况下都需要设置,根据实际使用情况确定,设置流程如图10-11所示。(1)
芯片控制初始化命令字ICW1
(2)中断类型初始化命令字ICW2(3)主/从片初始化命令字
ICW3(4)
方式控制初始化命令字ICW4返回ICW编程举例2023/9/266图10-118259A预置命令字设置流程图ICW1ICW2ICW3ICW4可中断返回A00A7A6A51LTIMADISNGLIC4A15/T7A14/T6A13/T5A12/T4A11/T3A10A9A8TRUE11S7S6S5S4S3FALSES2/ID2S1/ID1S0/ID01000SFNMBUFM/SAEOIμPMD7D6D5D4D3D2D1D0SNGL=“1”IC4=“1”ADIA5~A158085A时使用T3~T78086时使用S0~S7主控制器时使用ID0~ID2从控制器时使用TRUEFALSE8253例2023/9/267(1)芯片控制初始化命令字ICW101A5A6A7LTIMADISNGLIC4A0764532108086/8088系统中不用标志位1:需要设置ICW40:不需设置ICW41:单级使用0:级联使用1:调用地址间隔为40:调用地址间隔为8(8086/8088不用)1:电平触发0:边沿触发返回图10-12ICW1格式下一页8253例2023/9/268(1)芯片控制初始化命令字ICW1(续)A0:ICW1写入偶端口地址(A0=0);D4:D4=1和A0=0是ICW1的标志;D3(LTIM):定义中断请求触发方式,LTIM=0表示边沿触发,LTIM=1表示高电平触发;D2(ADI):对8086/8088系统无效;D1(SNGL):单片/多片指示。SNGL=1表示单片8259A使用,SNGL=0表示多片8259A级联使用。D0(IC4):指示是否需要设置ICW4。在8086/8088系统中IC4必须设定为1。返回2023/9/269(2)中断类型初始化命令字ICW2ICW2紧跟在ICW1之后,端口地址为奇地址(A0=1)。用于设置中断类型码的高5位,而低3位取决于引入中断的引脚IR0~IR7。例:在PC/XT机中T7~T3=00001,所以8个中断IR0~IR7对应的中断类型码为08H~0FH。返回1T7T3T4T6T5765430A0中断类型码的高5位图10-13ICW2格式8253例2023/9/270(3)主/从片初始化命令字ICW31S7S6S5S4S3S2S1S076543210A0Si=0:表示IRi端上未接8259A从片1:表示IRi端上接有8259A从片(a)(b)1A0ID0ID1ID2210从8259A的识别地址图10-14ICW3格式主8259A从8259A返回下一页2023/9/271(3)主/从片初始化命令字ICW3(续)ICW3只在级联(ICW1的SNGL=0)时才设置。必须写入奇地址端口(A0=1);主片8259A的ICW3中,Si=1表示对应引脚IRi上接有8259A从片;从片8259A的ICW3中,ID2~ID0表明该从片接在主片的哪个IR引脚上。例如某从片8259A的ID2~ID0=100,则表明该从片接在主片的IR4引脚上。返回2023/9/272(4)方式控制初始化命令字ICW4
1000BUFM/SAEOI
PMA0764532101:8086/8088配置0:8080/8085配置1:自动EOI方式0:非自动EOI方式1:特殊完全嵌套方式(级联,主片)0:非特殊完全嵌套方式SFNM非缓冲方式0x缓冲方式从8259A10主8259A11返回图10-15ICW4格式OCW2下一页8253例2023/9/273(4)方式控制初始化命令字ICW4(续)ICW4在ICW1中的IC4=1才需要设置,8086/8088必须有。A0=1:ICW4必须写入奇地址端口。D0(µPM):指定CPU类型。µPM=0表示与8080/8085系统配合;µPM=1表示与8086/8088系统配合。D1(AEOI):设置中断结束方式。AEOI=1表示采用自动中断结束方式,即CPU响应中断进入中断过程时,8259A自动清除ISR中的对应位;AEOI=0表示采用非自动EOI方式,即CPU必须发中断结束命令,8259A才清除ISR中的标志位。返回下一页2023/9/274(4)方式控制初始化命令字ICW4(续)D2(M/S):主/从片选择位,缓冲方式(BUF=1)下,M/S=1表示本片为主8259A,M/S=0表示本片为从8259A。BUF=0时M/S不起作用。D3(BUF):表示8259A是否采用缓冲方式。BUF=1表采用缓冲方式,EN输出有效,EN=0允许缓冲器输出,EN=1允许缓冲器输入;BUF=0表示采用非缓冲方式,SP输入有效,SP=1表主片,SP=0表从片。BUF、M/S和SP/EN的关系见表9-2。D4(SFNM):表示嵌套方式,为1时表示特殊全嵌套方式(允许响应同级中断);为0时表示一般全嵌套方式。单级时设定D4=0。返回2023/9/275表10-2BUF、M/S和SP/EN的关系BUF位M/S位SP/EN端非缓冲方式缓冲方式主8259A从8259A1001无意义SP有效(输入信号)EN有效(输出信号)SP=1SP=0EN=1EN=0主8259A从8259ACPU8259A8259ACPU返回2023/9/276ICW编程举例例:当8086系统中采用单级8259A,其端口地址为20H和21H,对8259A进行初始化编程。
MOVAL,13H;初始化ICW1OUT20H,AL;边沿触发,单级使用,需要ICW4
MOVAL,18H;初始化ICW2OUT21H,AL;中断类型码高5位为00011BMOVAL,01H;初始化ICW4OUT21H,AL;全嵌套、非缓冲、非AEOI、8086式ICW2确定的中断类型码为18H~1FH。返回2023/9/277(二)操作命令字OCW8259A经ICW初始化后,进入工作状态,可通过OCW(OperationCommandWord)使它按不同的方式工作。8259A三个操作命令字OCW1~OCW3可独立使用,写入次序不限。OCW1须写入奇地址端口,OCW2、OCW3写入偶地址端口。(1)中断屏蔽命令字OCW1(2)中断结束方式命令字OCW2(3)特殊屏蔽和查询方式命令字OCW3返回2023/9/278(1)中断屏蔽命令字OCW1
OCW1用于向中断屏蔽寄存器IMR写入屏蔽信息M7~M0对应IR7~IR0,Mi=1表示对应的IRi被屏蔽,禁止它产生中断输出INT;反之则允许对应的IRi产生中断信号。返回1M7M6M5M4M3M2M1M070A0Mi=1:屏蔽由IRi引入的中断请求0:允许IRi端中断请求进入图10-16OCW1格式8253例2023/9/279(2)中断结束方式命令字OCW200EOISLRA0764532100L0L1L2D4D3=00是OCW2的标志位001普通EOI方式101普通EOI循环方式000取消自动EOI循环方式110置位优先权命令010无效100设置自动EOI循环方式011特殊EOI方式111特殊EOI循环方式000IR0100IR4101IR5110IR6111IR7010IR2011IR3001IR1图10-17OCW2的格式返回下一页2023/9/280(2)中断结束方式命令字OCW2(续)OCW2设置中断优先级循环方式和中断结束方式。A0=0、D4D3=00为OCW2的标志位。D7(Rotate):优先级循环标志。R=0为固定优先级;D6(SpecificLevel):指明L2L1L0是否有效。SL=1时,L2L1L0有效。D5(EndOfInterrupt):中断结束命令位。在非自动EOI方式(见ICW4)下,EOI=1表示中断结束命令,使ISR中相应位清0;EOI=0则不起作用。对于非AEOI方式,中断结束前必须发OCW2命令字,以给出EOI标志。D2D1D0(L2L1L0):当SL=1时,L2L1L0指定操作的中断源IRi。L2L1L0为000、001、…、111分别对应于IR0~IR7。返回下一页2023/9/281(2)中断结束方式命令字OCW2(续)
R、SL、EOI组合产生8种功能:001—普通EOI方式,中断处理结束时,将ISR寄存器中当前级别最高的置“1”位清“0”,适于全嵌套中断方式。011—特殊EOI方式,中断处理结束时,由L2L1L0指定清除ISR中的哪一位,适用于非全嵌套中断方式。101—普通EOI循环方式,中断处理结束时,将ISR寄存器中当前级别最高的置“1”位清“0”并赋予最低优先级,最高优先级赋给它的下一级,其它中断优先级依次循环改变。111—特殊EOI循环方式,中断处理结束时,由L2L1L0指定清除ISR中的哪一位,并赋予最低优先级,最高优先级赋给它的下一级,其它中断优先级依次循环改变。下一页返回2023/9/282(2)中断结束方式命令字OCW2(续)100—设置自动EOI循环方式,在CPU进入中断响应发第二个INTA脉冲后,8259A自动将ISR中正在服务的对应位清“0”,并赋予最低优先级,最高优先级赋给它的下一级,其它优先级依次循环改变。000—取消自动EOI循环方式。110—设置优先级特殊循环方式,由L2L1L0指定最低优先级中断,其它中断优先级依次循环排列。010—无意义返回2023/9/283(3)特殊屏蔽和查询方式命令字OCW30A00SMMESMM1RRPRIS6453210标志位0X:无效10:下次RD有效,读IRR11:下次RD有效,读ISR1:查询8259A状态0:不查询0X:无效11:特殊屏蔽方式置位10:特殊屏蔽方式复位图10-18OCW3
格式返回下一页7举例2023/9/284(3)特殊屏蔽和查询方式命令字OCW3(续)OCW3用来管理特殊屏蔽方式,设置中断查询方式,设置8259A寄存器的读出命令。A0=0,D4D3=01:OCW3的标志位。D6(ESMM):特殊屏蔽方式允许位。D5(SMM):特殊屏蔽方式位。只有当ESMM=1时,才允许SMM位起作用。SMM=1,选择特殊屏蔽方式,即只屏蔽本级中断请求,允许高级或低级中断进入系统。SMM=0,取消特殊屏蔽方式。返回下一页2023/9/285(3)特殊屏蔽和查询方式命令字OCW3(续)D2(P):查询方式位。P=1将8259A置于中断查询方式,8259A不向CPU发中断请求信号,而是CPU靠发送查询命令,读取查询字(图10-19)来获得外部设备的中断请求信息。返回下一页IR76453210L0L1L2给出当前中断请求的最高优先级0:无中断请求1:有中断请求0A0图10-198259A中断状态字格式2023/9/286(3)特殊屏蔽和查询方式命令字OCW3(续)D1(RR):读寄存器命令。RR=1允许读IRR或ISR寄存器,RR=0禁止读取。D0(RIS):读IRR或ISR的选择位。RIS=1允许读ISR寄存器;RIS=0允许读IRR寄存器。注:A0、P、RR、RIS组合成8259A的读取命令:
A0PRRRIS读取内容
01xx中断查询命令
0010读IRR命令
0011读ISR命令
1xxx读IMR状态返回举例2023/9/287读8259A状态举例IMR的读取:
INAL,21HIRR的读取:
MOVAL,00001010BOUT20H,ALINAL,20HISR的读取:
MOVAL,00001011BOUT20H,ALINAL,20H返回2023/9/28810.2.58259A的级联使用一片8259A芯片只能管理8级中断,在多于8级中断的系统中,必须将多片8259A级联使用。两级级联情况下,最多可管理64级中断源。第一级用一片8259A作主片,第二级用1~8片8259A作从片,如图10-20所示。级联时,主片8259A的SP/EN端接Vcc,从片的SP/EN端接地。从片的INT脚接主片的IRi端,主片的IRi端若未接从片,可直接连中断源。主片的CAS2~CAS0作输出端,从片的CAS2~CAS0作输入端,二者相连。返回下一页2023/9/289INTCAS0CAS2IR7INTACAS1SP/ENIR1IR2IR3IR4IR5IR6IR08259A(从8)INTCAS0CAS28259A(主)IR0IR1IR2IR6IR7INTACAS1SP/EN...INTCAS0CAS2IR7INTACAS1SP/ENIR1IR2IR3IR4IR5IR6IR08259A(从1)中断请求输入中断请求输入VCC...图10-208259A级联方式连接返回嵌套引脚2023/9/29010.2.58259A的级联使用(续)CPU响应中断时回送两个INTA信号。第1个INTA有效时,主片将级联地址从CAS2~CAS0端输出给所有的从片;第2个INTA有效时,与主片发出的级联地址相符的从片将中断类型号n通过低八位数据总线送给CPU。当从片引入的中断处理过程结束时,CPU应发出两个EOI命令,一个送主片,将主8259A中的ISR相应位清“0”;另一个送从片,将从8259A中的ISR相应位也清“0”。图10-21为8086在最小模式下的一种8259A级联方式。返回下一页2023/9/29110.2.58259A的级联使用(续)级联使用与单片使用在初始化时的不同处:(1)对于主片8259A:①级联时ICW1中的SNGL=0,单片时SNGL=1;②级联时设置ICW3,ICW3中Si=1表示对应引脚IRi上接有从片。单片不要设置ICW3
;③级联时应设置为特殊全嵌套方式,即ICW4中SFNM=1。(2)对于从片8259A:①ICW1中SNGL=0;②要设置ICW3,由ICW3中低3位ID2~ID0标记该从片接在主片的哪个IRi引脚上。返回2023/9/29282828286INTRINTAWRRDM/IOIR0IR5IR6IR7IR4IR3IR2IR1CAS0CAS2CAS1SP/ENA0D7~D0CSINTA从8259A#2INTD7~D0IR0CAS0CAS2CAS1IR5IR6IR7IR4IR3IR2IR1SP/ENA0CSINTA从8259A#1INTIR0IR5IR6IR7IR4IR3IR2IR1CAS0CAS2CAS1SP/ENA0D7~D0CSINTA主8259AVCC数据总线地址总线控制总线图10-218259A级联方式系统连接返回2023/9/2938259A芯片的功能小结8259A芯片的功能:(1)一片8259A具有8级优先权控制,通过级联用9片8259A(1主片+8从片)可以扩展到64级中断优先权;(2)每一级中断可由程序单独屏蔽或允许;(3)在中断响应周期,可以提供中断类型号;(4)可通过编程选择多种工作方式,使用灵活。核心问题:中断优先权管理返回2023/9/29410.3可编程计数/定时控制器8253
在微机系统中常常需要定时器或计数器。8253是三通道16bit的可编程计数/定时器。10.3.18253芯片的内部结构10.3.28253芯片的工作方式10.3.38253应用举例返回2023/9/29510.3.18253芯片的内部结构8253芯片内部结构和引脚信号如图所示。返回由四部分组成:(1)数据总线缓冲存储器(2)读/写控制电路(3)3个计数通道(4)控制字寄存器2023/9/296(1)数据总线缓冲存储器是8253与CPU之间的数据接口,由8位双向三态缓冲存储器构成,是CPU与8253之间交换信息的必经之路。
返回2023/9/297(2)读/写控制电路
接收来自CPU的地址信号和控制信号,完成对8253内部各功能的控制和操作。信号如下:①A1A0:端口选择信号。选择8253内部的计数器通道或控制字寄存器。如表10-3所示。②CS:片选信号,低电平有效。③RD:读信号低电平有效时,CPU读取由A1A0所选定的计数通道中的内容。④WR:写信号低电平有效时,CPU将计数初值写入选定通道的计数器中,或将方式控制字写入控制字寄存器中。
8253的读/写操作如表10-4所示。
返回2023/9/298表10-3A1、A0的定义A1A0
端口00011011计数通道0计数通道1计数通道2控制字寄存器表10-3A1、A0的定义返回2023/9/299表10-48253的读/写操作状态01000010010101001011001000010100110001111×
××
×011××装入通道0计数器装入通道1计数器装入通道2计数器写方式控制字读通道0计数器读通道1计数器读通道2计数器无操作禁止使用无操作操作说明CSRDWR
A1
A0表10-48253的读/写操作状态返回2023/9/2100(3)通道0~通道23个计数通道功能完全相同,操作独立。每个通道内部设有一个16位减法计数器,可进行二进制(计数范围0000H~FFFFH)或十进制(BCD码)(范围0000~9999)计数。每个计数通道有三个引脚:
CLKi脚:时钟脉冲输入端,频率不大于2.6MHz
OUTi脚:计数器输出端,计数/定时结束时产生信号
GATEi脚:门控脉冲输入端,高电平允许减法计数返回下一页2023/9/2101(3)通道0~通道2(续)每一通道既可作计数器,也可作定时器使用,其内部操作完全相同。
①用作计数器时,从CLKi端输入外部事件产生的计数脉冲。
②用作定时器时,从CLKi端输入精确的时钟脉冲。
定时时间=时钟脉冲周期×计数器初值(定时系数)每输入一个计数/时钟脉冲,计数器内容减“1”,待计数值减到“0”,OUTi端将有输出,表示计数次数/定时时间到。返回2023/9/2102(4)控制字寄存器
存放由CPU写入的方式选择控制字,以定义各通道的工作方式,其格式如图10-24所示。SC1、SC0位:选择通道。RL1、RL0位:定义选中通道计数器的操作方式。
RL1RL0=00时,将该通道中当前计数器的内容送到锁存器中,供CPU读取计数值。利用该锁存命令可随时读取计数器当前的计数值。
RL1RL0=01时,只读/写计数器低8位,写时高8位自动清0RL1RL0=10时,只读/写计数器高8位,写时低8位自动清0RL1RL0=11时,先读/写计数器低8位,后读/写高8位BCD位:定义是采用二进制计数还是BCD计数。M2M1M0位:定义选中通道的工作方式。返回2023/9/2103图10-248253芯片方式选择控制字格式00:计数器锁存,供CPU读01:只读/写计数器低字节10:只读/写计数器高字节11:先读/写计数器低字节,后读/写高字节1:BCD码计数0:二进制计数000:方式0001:方式1x10:方式2x11:方式3100:方式4101:方式500:选通道001:选通道110:选通道211:无效SC1SC0RL1RL0M2M1M0BCDD6D7D6D4D5D2D3D1D0返回应用例1例2例32023/9/210410.3.28253芯片的工作方式8253提供6种工作方式,遵循以下基本原则:控制字写入8253,所有的控制逻辑电路复位,输出端进入初始状态;初始计数值写入后,经过一个CLK脉冲后,才由计数初值寄存器送入计数执行单元。从第二个CLK脉冲的下降沿开始,计数器作减1计数;通常,在CLK脉冲的上升沿,门控信号GATE被采样。不同的工作方式,GATE信号的触发方式也不同,分为电平触发、边沿触发;8253内部没有中断控制电路,也没有专用的中断请求线,若需中断,可将OUT端作为中断请求信号;启动计数过程分两种:软件启动(由程序指令启动)、硬件启动(由外部电路信号启动)。下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年吉林省延边朝鲜族自治州单招职业适应性考试模拟测试卷附答案解析
- 2023年潍坊工程职业学院单招职业技能考试模拟测试卷附答案解析
- 2024年新疆喀什地区单招职业适应性测试题库附答案解析
- 2024年武汉海事职业学院单招职业适应性测试模拟测试卷附答案解析
- 2025年浙江汽车职业技术学院单招职业倾向性测试模拟测试卷附答案解析
- 猫咪乐队课件
- 重庆最好用的课件
- 校园消防应急演练流程优化
- 猜字谜课件教学课件
- 校园课外活动安全审批表
- 2026年农产品营销技巧培训课件
- 2024年桂林市检察机关招聘聘用制书记员考试真题
- 考调工作人员(综合知识)历年参考题库含答案详解(5套)
- 习作:那次经历真难忘 课件 2025-2026学年统编版语文三年级上册
- 多学科协作吞咽障碍全程管理方案
- 2026甘肃省第二人民医院招录39人笔试考试参考试题及答案解析
- 2025-2026学年度第一学期第二次检测九年级道德与法治考试试题
- 八年级下册-中考生物复习必背考点分册梳理(人教版)填空版
- AI技术在电力系统继电保护课程改革中的应用与挑战
- 2025年黑龙江省省直机关公开遴选公务员笔试题及答案解析(A类)
- 铁路局安全员证考试题库及答案解析
评论
0/150
提交评论