可编程中断控制器Intel8259A.ppt

上传人:小飞机 文档编号:5944504 上传时间:2023-09-06 格式:PPT 页数:39 大小:742KB
返回 下载 相关 举报
可编程中断控制器Intel8259A.ppt_第1页
第1页 / 共39页
可编程中断控制器Intel8259A.ppt_第2页
第2页 / 共39页
可编程中断控制器Intel8259A.ppt_第3页
第3页 / 共39页
可编程中断控制器Intel8259A.ppt_第4页
第4页 / 共39页
可编程中断控制器Intel8259A.ppt_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《可编程中断控制器Intel8259A.ppt》由会员分享,可在线阅读,更多相关《可编程中断控制器Intel8259A.ppt(39页珍藏版)》请在三一办公上搜索。

1、7.5 可编程中断控制器Intel 8259A,芯片的特点:-可编写程序控制芯片的多项功能-可提供多中断源的中断类型码-中断源有多种触发方式-可屏蔽/允许输入端的中断源-采用NMOS工艺制造,只需要一组5V电源使用形式:-单片方式可提供8个中断源-级联方式最多提供64个中断源(9片),8259A引脚及功能示意图 28个DIP封装8个中断源输入8个数据线1位片内地址线3条控制线4条级联线2条中断响应请求线2条电源线,图7.22 8259A引脚,8259A引脚及功能结构 与中断源有关(14个)IR7IR0:外部中断源输入引脚INT:中断请求输出引脚,接8086CPU的INTR:中端响应输入引脚,接

2、8086CPU的CAS0 CAS2:级联选择线SP/EN:级联控制线,8259A引脚及功能结构 与CPU有关(12个)D7D0:8位数据传送线INT:中断请求输出引脚,RD、WR:读/写控制线CS:片选控制线A0:片内地址线,7.5.2 8259A的内部结构及外部引脚 18259A的内部结构,图7.21 8259A内部结构框图,中断请求寄存器IRR(Interrupt Request Register),8位,接受并锁存来自IR0IR7的中断请求信号,当IR0IR7上出现某一中断请求信号时,IRR对应位被置1;中断屏蔽寄存器IMR(Interrupt Mask Register),8位,若IR

3、R中记录的各级中断中有任何一级需要屏蔽,只要将IMR的相应位置1即可,未被屏蔽的中断请求进入优先权判别器;中断服务寄存器ISR(In-Service Register),8位,保存当前正在处理的中断请求,例如,如果ISR的D2=1,表示CPU正在为来自IR2的中断请求服务;优先权判别器PR(Priority Resolver)能够将各中断请求中优先级最高者选中,并将ISR中相应位置1。若某中断请求正在被处理,8259A外部又有新的中断请求,则由优先权判别器将新进入的中断请求和当前正在处理的中断进行比较,以决定哪一个优先级更高。若新的中断请求比正在处理的中断级别高,则正在处理的中断自动被禁止,先

4、处理级别高的中断,由PR通过控制逻辑向CPU发出中断申请INT。,数据总线缓冲器是8259A与系统之间传送信息的数据通道。读/写控制逻辑包含了初始化命令字寄存器和操作命令字寄存器。其功能是确定数据总线缓冲器中数据的传输方向,选择内部的各命令字寄存器。当CPU发读信号时将8259A的状态信息放到数据总线上;当CPU发写信号时,将CPU发来的命令字信息送入指定的命令字寄存器中。级联缓冲/比较器用来存放和比较在系统中用到的所有8259A的级联地址。主控8259A通过CAS0、CAS1和CAS2发送级联地址,选中从控8259A。,28259A的外部引脚 8259A采用28脚双列直插封装形式,如图7.2

5、2所示。CS:片选信号,输入,低电平有效,来自地址译码器的输出。只有该信号有效时,CPU才能对8259A进行读/写操作。WR:写信号,输入,低电平有效,通知8259A接收CPU从数据总线上送来的命令字。RD:读信号,输入,低电平有效,用于读取8259A中某些寄存器的内容(如IMR、ISR或IRR)。,CAS0CAS2:级联总线,输入或输出,用于区分特定的从控制器件。8259A作为主控制器时,该总线为输出,作为从控制器时,为输入。SP/EN:从片/允许缓冲信号,输入或输出,该引脚为双功能引脚。在缓冲方式中(即8259A通过一个数据总线收发器与系统总线相连),该引脚被用做输出线,控制收发器的接收或

6、发送;在非缓冲方式中,该引脚作为输入线,确定该8259A是主控制器(SP/EN1)还是从控制器(SP/EN0)。8259A的级联方式如图7.23所示。,A0为地址输入信号,用于对8259A内部寄存器端口的寻址。,7.5.3 8259A的工作过程 初始化工作过程8259初始化是由CPU发送2-4个初始化命令字ICW来实现的。接受外设中断请求初始化后8259进入正常工作状态。当外部中断源通过IRn引脚向8259发出有效中断请求时,8259会自动将其内部中断请求寄存器IRR的相应位置1以记录并保持外设的中断请求。中断屏蔽判断中断请求寄存器IRR中的被置位与中断屏蔽寄存器IMR的相应位比较,如果没有被

7、屏蔽,信号被送入优先级分析器。,中断判断中断请求进入优先权分析器PR后,PR将其中的最高优先权与服务状态寄存器ISR中正在处理的中断优先权比较以确定是否通过INT脚向CPU送出中断请求信号。中断响应CPU接受到8259的中断请求后,如果CPU内的中断允许标志IF=1,则在当前指令执行完后进入中断相应周期。,注意:CPU收到中断请求后,若IF=1,则CPU完成当前指令后,响应中断,即执行两个中断响应总线周期,在 引脚上发出两个负脉冲。8259A收到第一个负脉冲后,使IRR锁存功能失效,不接受IR0IR7上的中断请求信号;直到第二个负脉冲结束后,才又使IRR锁存功能有效,并清除IRR的相应位,使I

8、SR的对应位置1,以便为优先级裁决器以后的裁决提供依据。收到第二个负脉冲后,8259A把当前中断的中断类型号送到D7D0,CPU根据此类型号进入相应的中断服务程序。,中断结束如果8259初始化为中断自动结束方式,即ICW4 的AEOI=1,在第二个负脉冲结束时,ISR中的被第一个负脉冲置位的位即被复位。如果8259初始化为非自动结束中断方式,即ICW4 的AEOI=0,则等到中断结束命令送到OCW2后,才清除ISR中的相应位,表明中断服务程序结束。,7.5.4 8259A的编程 8259A是可编程的中断控制器,它的工作状态和操作方式是由CPU通过命令字进行控制的。8259A有两类命令字初始化命

9、令字ICW(Initialization Command Words)和操作命令字OCW(Operation Command Words)。相应地,在8259A的控制部分有7个CPU可访问的寄存器,这些寄存器分成两组:一组用做存ICW,另一组存OCW。当计算机刚启动时,用初始化程序设定ICW,即由CPU按次序发送24个不同格式的ICW,用来建立起8259A操作的初始状态,此后的整个工作过程中该状态保持不变。相反,操作命令字(OCW)用于动态控制中断处理,是在需要改变或控制8259A操作时随时发送的。每片8259A有2个片内地址A0=0和A0=1,所有的命令字都是通过这两个端口来发送的。注意,当

10、发出ICW或OCW时,CPU中断申请引脚INTR应关闭(使用CLI指令)。,1初始化命令字 1)ICW1 ICW1主要用于设置芯片控制方式,其格式及各位的定义如图7.24所示。,图7.24 ICW1的作用,对A0=0的端口写入一个D4=1的数据,表示初始化编程开始。D4:特征位,必须为1;D3:LTIM位,设置中断请求信号的触发方式,0为边沿触发,1为高电平触发。D1:SGNL位,是否工作在单片方式,0为多片级联,1为单片。D0:IC4 位,是否有ICW4,0表示后面不需设置命令字ICW4,1表示后面还需要设置ICW4。D2和D7D5这4位在仅对8080/8085系统有意义,8086/8088

11、系统中这4位不用,通常置为0。,2)ICW2 ICW2用于设置中断类型号,写入A0=1的端口,其格式如图7.25所示。,图7.25 ICW2的作用,在8086/8088系统中,只设置D7D3,即只需设置中断类型号的高5位,编程时D2D0的值可任意设定(通常设为0),D2D0的实际内容由8259A根据中断请求来自IR0IR7的哪一个输入端,自动填充为000111中的某一组编码,与高5位一同构成8位的中断类型号。例如,在PC/XT中ICW2为00001000B,则对于从IR0、IR1、IR2、IR3、IR4、IR5、IR6和IR7上引入的各中断请求,其相应的中断类型号为08H、09H、0AH、0B

12、H、0CH、0DH、0EH和0FH。,3)ICW3 ICW3用于设置级联,写入A0=1的端口,格式如图7.26所示。,图7.26 ICW3的作用,只有当系统中有级联(ICW1的SNGL位为0)时,才写入ICW3。对于主片,ICW3的S0S7指明了IR0IR7各引脚连接从片的情况,置1的位表示对应的引脚有从片级联。例如,若主片ICW3的内容为07H(00000111B)时,说明主片的IR0、IR1、IR2上连有从片。对于从片,ICW3的D7D3不用,置0即可;用D2D0表示与主片的对应引脚级联,例如,若某从片ICW3的内容为07H,说明该从片的INT引脚与主片的IR7相连。,4)ICW4 ICW

13、4用于设置8259A的工作方式,写入A0=1的端口,格式如图7.27所示。ICW1的IC4位为1时,才写入ICW4。,图7.27 ICW4的作用,D1:AEOI位,设置结束中断方式。0表示中断正常结束,靠中断结束指令清除ISR相应位;1表示自动结束中断,即CPU响应中断后,立即自动清除ISR相应位。D0:PM位,设置微处理器类型。0表示系统采用8080/8085微处理器;1表示系统采用8086/8088微处理器。,2初始化编程 8259A初始化流程图如图7.28所示。任何一种8259A的初始化都必须发送ICWl和ICW2,只有在ICWl中指明需要ICW3和ICW4以后,才发送ICW3和ICW4

14、。一旦初始化以后,若要改变某一个ICW,则必须重新再进行初始化编程,不能只是写入单独的一个ICW。例如,PC/AT机中8259A的主片定义为:上升沿触发、在IR2级联从片、有ICW4、非AEOI方式、中断类型号08H0FH、一般的中断嵌套方式、端口地址是20H、21H;从片定义为:上升沿触发、级联到主片的IR2、有ICW4、非AEOI方式、中断类型号为70H78H、一般的中断嵌套方式、端口地址是A0H、A1H。初始化过程如下:,初始化主片 初始化从片MOV AL,11H MOV AL,11HOUT 20H,AL OUT 0A0H,ALMOV AL,08H MOV AL,70HOUT 21H,A

15、L OUT 0A1H,AL MOV AL,04H MOV AL,02HOUT 21H,AL OUT 0A1H,ALMOV AL,01H MOV AL,01HOUT 21H,AL OUT 0A1H,AL,图7.28 8259A初始化顺序,3操作命令字 系统初始化完成以后,可以在应用程序中随时向8259A送操作命令字,以改变8259A的工作方式,读出8259A内部寄存器的值等。1)OCW1 OCW1的功能是设置和清除中断屏蔽寄存器的相应位,写入A0=1的端口,格式如图7.29所示。,图7.29 OCW1的作用,MX=1表示屏蔽中断源IRX;MX=0表示来自IRX的中断请求得到允许。例如,若OCW1

16、=03H,说明IR0和IR1上的中断请求被屏蔽。,2)OCW2 OCW2用于设置优先级循环方式和中断结束方式,写入A0=0的端口,格式如图7.30所示。D4和D3位是特征位,D4D3=00表示写入的是OCW2。D7:R位,表示优先级是否循环。为1,采用优先级循环方式;为0,则为非循环方式。D6:SL位,表示L2L0是否有效。为1,L2L0位有效;为0,则L2L0位无效。D5:EOI位,中断结束命令位。为1时,OCW2用做结束中断命令;为0时,OCW2用做设定优先级循环方式的命令字。,图7.30 OCW2的作用,D2、D1、D0:L2L0位,只有SL位为1时,这三位才有意义。L2L0位有三个作用

17、:一是当OCW2给出特殊中断结束命令时,L2、L1和L0三位的编码指出了要清除中断服务寄存器ISR中的哪一位;二是当OCW2给出结束中断且指定新的最低优先级命令时,将ISR中与L2、L1和L0编码值对应的位清0,并将当前系统最低优先级设为L2、L1和L0指定的值;三是当OCW2给出优先级特殊循环命令时,由L2、L1和L0的编码指定循环开始的最低优先级。,3)OCW3 OCW3的功能有三个方面:设置和撤消特殊屏蔽方式、设置中断查询方式以及设置对8259A内部寄存器的读出。OCW3写入A0=0的端口,格式如图7.31所示。D4和D3位是特征位,D4D3=01表示写入的是OCW3。D7:无关位,可设

18、为任意值。D6:ESMM位,即允许特殊屏蔽方式位。该位为1时SMM位才有意义。,图7.31 OCW3的作用,D5:SMM即特殊屏蔽方式位。为1,表示设置特殊屏蔽方式;为0,表示清除特殊屏蔽方式。D2:P位,为1时表示该OCW3用做查询命令(查询方式在前面已经介绍过,在此不再赘述);为0表示非查询方式。D1和D0:RR位和RIS位。这两位的组合用于指定对中断请求寄存器(IRR)和中断服务寄存器(ISR)内容的读出。D1D0=10时,表明紧接着要读出IRR的值;D1D0=11时,表明紧接着要读出ISR的值。,8259A应用举例,图7.32 8259A 在PC/XT机中的连接,在IBM PX/XT机

19、中,只用1片8259A中断控制器。分别用于日历时钟中断等。259A的片选地址为20H和21H。初始化,MOV AL,00010011H;写ICW1,单片,边沿触发,要ICW4OUT 20H,ALMOV AL,00001000;写ICW2,中断类型号从8开始OUT 21H,ALMOV AL,00001101;写ICW4,缓冲工作方式,8088/8086配置OUT 21H,ALMOV AL,0;写OCW1,允许IR0-IR7全部八级中断OUT 21H,AL,送中断向量入口地址,例如,异步通信中断IR4,其中断向量类型号为8+4=12(0CH)则中断入口地址的偏移量(IP)与短地址(CS)在入口地址表中的存放地址为12*4=48(30H),49(31H),50(32H),51(33H),其中前两个放IP,后两个放CS。,中断子程序程序,采用正常结束中断,因此子程序结束前必须发EOI命令和IRET命令。MOV AL,00100000;写OCW2命令,使ISR相应位复位 即发EOI命令。OUT 20H,ALIRET;开放中断允许,并从中断返回。,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号