第8章-2 可编程中断控制器8259A_第1页
第8章-2 可编程中断控制器8259A_第2页
第8章-2 可编程中断控制器8259A_第3页
第8章-2 可编程中断控制器8259A_第4页
第8章-2 可编程中断控制器8259A_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8259中断控制器 1.8级优先权控制,通过级连可扩展至64级优先权控制。 2.每一级中断都可允许或屏蔽。 3.提供中断向量。 4.可编程选择多种工作方式单片IR0IR7

INTINTA8259AINTRINTACPU...中断请求

CPU8259A.....IR0IR7级联主8259AIR0从...IR78259AIR0从...IR7INTAINTR7.3可编程中断控制器Intel8259A8259中断控制器的内部结构7.3可编程中断控制器Intel8259AIRR:

中断请求寄存器。SP/ENCAS1CAS0CAS2CSWRRDIR7IR6IR5IR4IR3IR2IR1IR0中断请求寄存器(IRR)优先权比较器(PR)中断服务寄存器(ISR)中断屏蔽寄存器(IMR)控制逻辑内部总线缓冲器内部总线缓冲器级联缓冲器/比较器级IRTAINTD0~D7A0内部总线ISR:

中断服务寄存器。IMR:

中断屏蔽寄存器。PR:

优先权判别器。8259中断中断优先权管理方式及中断结束方式7.3可编程中断控制器Intel8259A设置优先级的方式: 完全嵌套方式: 中断优先权为固定优权,IR0~IR7依次下降。中断嵌套时只能高级中断低级的中断,同级和低级不能产生中断。适用于单片结构。

CPU8259A.....IR0IR7主8259AIR0从...IR78259AIR0从...IR7INTAINTR特殊完全嵌套方式:

在级联方式下必须运用特殊完全嵌套方式。同一片的IR0~IR7与完全嵌套方式相同。对于从片,中断被响应后,并不屏蔽这个从片的中断,从片中优先权高的中断申请仍可响应。 主片工作在特殊完全嵌套方式,而从片工作在完全嵌套方式。8259中断中断优先权管理方式及中断结束方式7.3可编程中断控制器Intel8259A特殊优先权旋转:

根据用户的要求将最低优先级赋给指定的中断源。可在主程序或中断服务程序中利用置位优先权命令把最低优先级赋给某一中断源,其它中断的优先权按级别以循环方式类推。IR5IR6IR7IR0IR1IR2IR3IR4例如,中断优先级依次为IR0到IR7,当中断IR4被响应,则IR4的中断优先权变为最低,比它低一级IR5的优先权变为最高。相应的优先权排队为IR5、IR6、IR7、IR0、IR1、IR2、IR3、IR4、IR3中断优先权的旋转 正常优先权旋转:

IRi的中断优先权相等。某个中断响应,它的优先权变为最低,比它低一级的中断源得到最高优先权。其它中断的优先权按级别以循环方式类推。IR0IR7INTINTA8259A...中断请求8259中断中断优先权管理方式及中断结束方式7.3可编程中断控制器Intel8259A屏蔽方式:查询排序方式

: 用软件查询响应中断,此时8259不处于中断状态,INT可不连接INTR,而是程序查询IRR决定的是否响应中断及中断的优先级。

特殊屏蔽方式:

当处理中断的过程中,希望对本级进行屏蔽,而允许优先级比它高或低的中断申请中断。特殊屏蔽方式只能用特殊EOI结束。

普通屏蔽方式:

IMR中的某一位或某几位置“1”,即可能将相应级的中断请求屏蔽掉。程序运行的过程中,可以将中断优先级比正在响应的中断高的中断屏蔽掉。8259中断中断优先权管理方式及中断结束方式7.3可编程中断控制器Intel8259A中断结束方式特殊EOI方式: 中断服务程序结束,发出EOI的同时将当前结束的中断级别也传送给8259。8259将ISR中指定级别的相应位清“0”。显然这种方式适合于任何情况。

普通EOI方式:

中断服务程序结束,发出中断结束(EOI)命令。在级连的情下则必须送两个EOI,一个送给从片,另一个送给主片,8259自动将ISR中对应中断位清“0”

自动EOI方式:

在第二个中断响应周期的的后沿,自动使中断源在ISR中的相应位复位,只适用于无中断嵌套的情况。否则将可能出现自身的重复中断。T4T3T2T1CLKALED7~D0INTAT4T3T2T1中断类型码7.3可编程中断控制器Intel8259A缓冲方式: 输出一个低电平允许信号,启动总线缓冲器与总线相连接。在缓冲方式下必须初始化8259为主、从结构。

ENSP/ENSP/ENSP/非缓冲方式: 单片、多片非级连下工作在非缓冲方式下,作为输入端,必须接高电平。 多片级连时主片为高电平,从片为低电平。

连接系统总线的方式:

多片8259与系统相连时,8259通过数据总线缓冲器与数据总线相连,进行数据缓冲放大。(ICW4进行初始化)7.3可编程中断控制器Intel8259A8259芯片的级联使用:

在一个系统中,8259可以级联,有一个主8259,若干个从8259,最多可以有8个从8259,把中断源扩展到64个。

CPU8259A主IR0IR78259A从IR0IR7中断源INTAINTRINTINTACAS2CAS1于CAS0CAS2CAS1于CAS0…………ENSP/ENSP/VCCGND 2)CAS2、CAS1、CAS0:主8259为输出线,从8259为输入线。 3)INT:从8259的INT线连接到主8259的中断请求输入端IRI,主8259连接到CPU的中断请求输入端INTR。 4)主8259也可直接从IRI接入中断源。电路特征: 1)SP/EN主8259接VCC,从8259接GND用以区分主从关系。 7.3可编程中断控制器Intel8259A 1)从8259判断IRi的优先权,经INT向主8259发出中断请求。 2)主8259判断从8259的优先权后再向CPU发出中断请求。 3)CPU响应中断,第一个响应周期,主8259通过三条级连线输出被响应中断的从8259的编码。 4)从8259接收编码,在第二个中断响应周期输出它的中断向量类型码,进入中断响应过程。

CPU8259A主IR0IR78259A从IR0IR7中断源INTAINTRINTINTACAS2CAS1于CAS0CAS2CAS1于CAS0…………ENSP/ENSP/VCCGND级连下的中断请求:7.3可编程中断控制器Intel8259A8259的初始化命令及编程嵌套方式 完全嵌套方式:IR0~IR7依次下降。 特殊完全嵌套方式:在级联方式主片运用特殊完全嵌套方式优先权旋转 正常优先权旋转:中断响应,优先权为最低,比它低一级的得到最高优先权。 特殊优先权旋转:将最低优先级赋给指定的中断源。屏蔽方式 普通屏蔽方式:IMR中的置“1”的位,相应级的中断请求屏蔽掉。 特殊屏蔽方式:本级进行屏蔽,而允许优先级比它高或低的中断进入 系统,不管其优先权如何,在任何情况下都可以申请中断。结束方式 自动EOI方式: 第二个中断响应周期的的后沿,自动复位ISR相应位。 普通EOI方式: 中断服务程序结束,发出中断结束(EOI)命令。 特殊EOI方式: 中断服务程序结束,发出EOI的同时将近当前结束的中断 级别也传送给8259。7.3可编程中断控制器Intel8259A分为两步骤:

1)初始化编程: 写入2~4个初始化命令字ICW1~ICW4。 2)工作方式编程: 写入三个工作命令字OCW1~OCW4。以规定8259的工作方式。可以在初始化以后的任何时间写入。8259的初始化命令及编程7.3可编程中断控制器Intel8259A 1)ICW1、ICW2是必须的。 2)ICW3在级联时才有。 3)ICW4是专用于8086系统的。 4)地址线A0、特定标志位、及ICW的输入顺序相配合,完成多寄存器的寻址。初始化编程:ICW2A0=1ICW1A0=0级联方式?ICW3NYA0=1ICW4准备好接受中断需ICW4?YNA0=1 8259初始化命令字ICW有四个,在不同的状态下写入不同。7.3可编程中断控制器Intel8259AICW1芯片控制字初始化编程:IRX输入触发方式0:上升沿1:高电平D7D6D5D4D3D2D1D0无定义无定义LTIM×1××SNGLICW4×ICW1标志ICW4选择0:不需要1:需要单片级联选择0:多片级1:单片ICW1ICW2级联方式?ICW3ICW4准备好接受中断NY需ICW4?YNA0=1A0=0A0=1A0=17.3可编程中断控制器Intel8259AICW2中断类型字

初始化编程:D7D6D5D4D3D2D1D0由程序决定高5位T6IR7:111IR6:110IR5:101IR4:100IR3:011IR2:010IR1:001IR0:000T7×××T4T5T3ICW1ICW2级联方式?ICW3ICW4准备好接受中断NY需ICW4?YNA0=1A0=0A0=1A0=1例,高5位为00011则其类型号为00011XXXIR0=18H 00011000IR1=19H 00011001……1R7=1FH 000111117.3可编程中断控制器Intel8259AICW3级联控制字初始化编程:D7D6D5D4D3D2D1D0S6Sx=1表示IRX接有从8259Sx=0表示IRX无从8259S7S4S5S3S1S2S0主8259ICW3:D7D6D5D4D3D2D1D00IDi为从片的标识,与主8259的对应IRI的编号相同。

0000ID2从8259ICW3:ID1ID0IR7:111IR6:110IR5:101IR4:100IR3:011IR2:010IR1:001IR0:000ICW1ICW2级联方式?ICW3ICW4准备好接受中断NY需ICW4?YNA0=1A0=0A0=1A0=17.3可编程中断控制器Intel8259AICW4方式控制字初始化编程:设定结束方式0:非自动EOI1:自动EOICPU类型0:8085/80801:8086/8088D7D6D5D4D3D2D1D0BUF000AEOIμPMM/SSFNM级联方式优先权管理0:正常完全嵌套方式1:特殊完全嵌套方式主从选择0:作为从片1:作为主片缓冲方式选择0:非缓冲方式SP/EN输入主8259接高电平从8259接低电平1:缓冲方式SP/EN输出ICW1ICW2级联方式?ICW3ICW4准备好接受中断NY需ICW4?YNA0=1A0=0A0=1A0=17.3可编程中断控制器Intel8259A例如,8088系统中8259单级使用,其端口地址为80H,和81H,可用下面的初始化程序段输入命令字。初始化编程:D7D6D5D4D3D2D1D0BUF000AEOIμPMM/SSFNM;ICW4MOV AL,01H ;ICW4 8086配置,非自动EOI,OUT [81H],AL ;非缓冲,完全嵌套方式D7D6D5D4D3D2D1D0T6T7×××T4T5T3;ICW2MOV AL,18H ;ICW2中断类型码00011XXX(18H)IR0OUT [81H],ALD7D6D5D4D3D2D1D0LTIM×1××SNGLICW4×ICW1MOV AL,13H ;ICW1设ICW4,单级,边沿触发OUT [80H],AL ;7.3可编程中断控制器Intel8259A三个工作命令字OCW1~OCW3OCW1中断屏蔽字工作命令编程:D7D6D5D4D3D2D1D0M6Mx=1表示IRX被屏蔽Mx=0表示IRX不被屏蔽M7M4M5M3M1M2M0A0=17.3可编程中断控制器Intel8259AOCW2中断结束字,D4、D3=00为标志位工作命令编程:D7D6D5D4D3D2D1D0SLRL2EOI0L1L0OCW2标志07:1116:1105:1014:1003:0112:0101:0010:000SL=1中断级别选择001SLREOI命令功能完全嵌套中断结束普通EOI011同上,清除ISR中指定位特殊EOI101普通EOI循环100自动循环置位000优先权自动循环自动循环复位111特殊循环指定最低级中断源特殊EOI循环110置位优先权010无操作优先权自动循环结束优先权自动循环复位A0=07.3可编程中断控制器Intel8259AOCW3指定设置特殊屏蔽方式、读内部寄存器命令;D4、D3=00为标志位D7D6D5D4D3D2D1D0查询选择0:作为从片1:作为主片SMMXRIS读ISR位0:禁止1:允许RRESMM特殊屏蔽方式选择ESMMSMM10:特殊屏蔽方式复位11:特殊屏蔽方式置位PRRRIS010:下次读IRR011:下次读ISR00X:无操作1P0读IRR位0:禁止1:允许工作命令编程:A0=07.3可编程中断控制器Intel8259A某系统中设置两片8259A实现中断控制,它们之间采用级联方式连接,一片从8259的INT端与主8259的IR3端相连,当前主8259的IR0和IR5端上分别引入两个中断请求,从8259的IR2和IR3端上也分别引入两个中断请求。主8259:IR3:接一片从8259IR0,IR5各接一个中断源,中断类型码分别为30H,35H。中断服务程序同段。地址分别为1000H:1050H和1000H:2060H。例,

CPU8259A主IR3IR08259A从IR2IR3中断源1INTAINTRINTINTACAS2CAS1于CAS0CAS2CAS1于CAS0INTINTAIR5中断源2中断源3中断源4从8259:IR2、IR3各接一个中断源,中断类型码分为32H和33H,中断服务程序的地址分别为2000H:5440H和2000H:3620H7.3可编程中断控制器Intel8259A中断服务程序入口地址进入中断矢量表。中断矢量地址:30H:30H×4=00C0H35H:35H×4=00D4H32H:32H×4=00C8H33H:33H×4=00CCHPUSH DS ;保存当前数据段段基址XOR AX,AXMOV DS,AX ;段地基址指向中断向量表MOV AX,1050HMOV [0C0H],AX ;30H中断服务程序入口地址IPMOV AX,1000HMOV [0C2H],AX ;30H中断服务程序入口段地址CSMOV AX,2060HMOV [0D4H],AX ;35H中断服务程序入口地址IPMOV AX,1000HMOV [0D6H],AX ;35H中断服务程序入口段地址CSMOV AX,5440HMOV [00C8H],AX ;32H中断服务程序入口地址IPMOV AX,2000HMOV [00CAH],AX ;32H中断服务程序入口段地址CSMOV AX,3620HMOV [00CCH],AX ;33H中断服务程序入口地址IPMOV AX,2000HMOV [00CEH],AX ;33H中断服务程序入口段地址CSPOP DS程序分为三个部分: 1)中断服务程序入口送入中断矢量表中 2)主8259的初始化程序 3)从8259的初始化程序7.3可编程中断控制器Intel8259A主8259的端口地址为FFE8H、FFE9H,A0=0对应FFE8H,A1=1对应FFE9HICW1:A0=0,11H=00010001B表示边沿触发,级联,需ICW4(8086)ICW2:A0=1,34H=00110000B表示中断类型码30H—37HICW3:A0=1,08H=00001000B表示IR3上接从8259ICW4:A0=1,11H=00010001B表示特殊完全嵌套,非自动EOI,非缓冲方式。OCW1:A0=1,0D6H=11010110B,屏蔽IR7、IR6、IR4、IR2、IR1OCW2:A0=0,20H=00100000B ,普通EOI方式从8259的端口地址为FFFAH、FFFBH。ICW1:A0=0,11H=00010001B表示边沿触发,级联,需ICW4(8086)ICW2:A0=1,30H=00110000B表示中断类型码30H—37HICW3:A0=1,03H=00000011B从8259识别码03H,与主片IR3对应。ICW4:A0=1,11H=00010001B表示特殊完全嵌套,非自动EOI,非缓冲方式。OCW1:A0=1,0F3H=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论