1 / 24

第 9 章 可编程中断控制器 8259A

第 9 章 可编程中断控制器 8259A. 主要功能: ( 1 )每片可管理 8 级优先权中断源,通过级联,最多可管理 64 级优先权中断源。 ( 2 )可对任一中断源单独进行屏蔽。 ( 3 )能向 CPU 提供可编程的标识码(中断类型码)。 ( 4 )具有多种中断优先权管理方式,且可通过编程进行动态控制。 ( 5 )协助进行系统总线控制。. 9.3.1 8259A 的内部结构和功能. 1. 内部结构 由 8 个部分组成,如图 9-6 ( 1 ) 8 位中断请求寄存器( IRR ):存放正在进行中断请求的所有中断级( IR0~IR7 )。

hamlin
Download Presentation

第 9 章 可编程中断控制器 8259A

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第9章 可编程中断控制器8259A • 主要功能: • (1)每片可管理8级优先权中断源,通过级联,最多可管理64级优先权中断源。 • (2)可对任一中断源单独进行屏蔽。 • (3)能向CPU提供可编程的标识码(中断类型码)。 • (4)具有多种中断优先权管理方式,且可通过编程进行动态控制。 • (5)协助进行系统总线控制。

  2. 9.3.1 8259A的内部结构和功能 • 1.内部结构 由8个部分组成,如图9-6 • (1)8位中断请求寄存器(IRR):存放正在进行中断请求的所有中断级(IR0~IR7)。 • (2) 8位中断屏蔽寄存器(IMR):存放CPU送来的屏蔽信号。IMn=1,屏蔽。 • (3) 8位中断服务寄存器(ISR):记忆正处在处理中的所有中断级。=1有效。 • (4)优先权判别器(PR):选中IRR中置“1”的各级中最高级别,由INTA选通,送入ISR中,若有更高级的中断请求,则先处理高级的中断。

  3. (5)控制逻辑 • 依PR用INT线向CPU发INTR;接受后发INTA信号,置位ISR,释放中断类型码到数据总线,清除INT信号等。 • (6)数据总线缓冲器 • (7)读/写控制逻辑 • 包含7个寄存器:存放4个初始化命令字ICW1~ICW4,3个操作命令字OCW1~OCW3。 • (8)级联缓冲器/比较器

  4. 二、工作方式 • 1、中断优先权管理方式 有5种: • (1)完全嵌套方式 • 固定优先级别,IR0最高,IR7最低,若收到的中断级别比ISR中的高,则响应较高级的中断请求,实现中断嵌套。 • (2)自动循环方式(等优先权方式) • 服务结束,优先权降为最低,下一级变成最高。 • 例:一开始为IR0~IR7,若响应IR3后,优先级为IR4、IR5~IR7、IR0~IR3。

  5. (3)特殊循环方式 • 在主程序或中断服务程序中发操作命令,即由编程确定某中断源的优先级最低,则下一级为最高。 • (4)特殊屏蔽方式 • 在中断服务程序中,用OCW1对IMR的某位置1时,会同时使ISR中对应位清0,则虽在处理该中断,却可响应其他级别较低的中断。 • (5)查询排序方式 • 8259A不用INT向CPU发中断请求,CPU先关中断,再用软件查询中断源,实现中断服务。适用多于64级中断的场合,先确定优先级,再运行某模块。

  6. 2、中断结束方式 • 使ISR中对应位清0的方式。 • (1)EOI命令方式 • 在中断服务程序末尾发中断结束命令,有两种: • 1)普通EOI命令 适用于完全嵌套方式。 • 清除ISR中最高非0位(即正在处理的中断)。 • 2)特殊EOI命令 适用于非完全嵌套方式。 • 因此时无法确定哪个是最后响应的,要指明清除ISR中的某一位。

  7. (2)自动EOI方式 • 系统一进入中断,在第二个INTA的后沿,自动清除。适用于单片系统,且不会嵌套的情况。 • 三、中断工作顺序(中断响应过程) • (1)IR0~IR7有高电平,相应的IRR位置“1”; • (2)若IMR中对应位为0,则通过进入PR; • (3)PR选中最高优先级且比当前更高的,用INT向CPU发INTR; • (4)若IF=1,CPU响应中断,发第一个 INTA-,最高优先级的ISn=1,相应的IRn=0

  8. (5)发第二个INTA时,ICW2向CPU送中断类型号到数据总线。(5)发第二个INTA时,ICW2向CPU送中断类型号到数据总线。 • 注:若是自动结束中断(AEOI),则第二个INTA时,清ISR对应位,否则要保持到中断服务程序结束,CPU发EOI时为止。

  9. 四、8259A的引脚信号 • 排列如图9-6和表9-2 • (1)与CPU的连接 • D7~D0:双向数据总线,写命令字和读寄存器。 • CS:芯片选通信号,由地址A15~A2译码。 • A0:片内端口选址。8088系统,接CPU的A0,8086系统接CPU的A1,而A0=0。 • RD、WR:读写/信号。 • INT:中断请求,接CPU的INTR。 • INTA:中断响应信号,第一个负脉冲通知外设中断被响应,第二个负脉冲CPU读取中断类型号。

  10. (2)与外设的连接 • IR7~IR0:单片用,接外部中断请求;级联用,接从片的INT。 • (3)级联时 • CAS2~CAS0:级联信号,主从片互连,主片指明哪个从片被接受,从片接受编码,与ICW3比较,确定是否被响应。 • SP/EN:从编程/允许级联,采用非缓冲方式,输入,主片为1,从片为0,单片时为1;采用缓冲方式,输出,=0,启动数据总线驱动器。

  11. 9.3.2 8259A的初始化命令字及其编程 • 1.8259A的初始化命令 • 初始化时设置,工作中保持不变。 • ICW1 写偶地址 • ICW2~ICW4 写奇地址 • (1) ICW1 (芯片控制) A0=0 • 格式如图9-7 • (2) ICW2(设置中断类型码) A0=1 • 格式如图9-8 • (3) ICW3(标志主片/从片) A0=1 • 格式如图9-9 (当SNGL=0时才设置)

  12. (4)ICW4(方式控制) A0=1 格式如图9-10 • 2.8259A的初始化编程 • 流程如图9-11 • 次序ICW1~ICW4,固定, ICW3、 ICW4可不用,视ICW1决定。 • 例:在8086系统中,用单片8259A,边沿触发,缓冲方式,用EOI清除ISn(一般的中断结束方式).地址80H、82H(8088系统中为80H、81H),中断类型码18H,设接IR3。 • ICW1 XXX1 0 X1 1 (13H) • ICW2 0 0 0 1 1 XXX(18H) • ICW4 0 0 0 0 1 1 0 1 (0DH)

  13. 程序:MOV AL,13H • OUT 80H,AL • MOV AL,18H • OUT 82H,AL • MOV AL,0DH • OUT 82H,AL

  14. 9.3.3 8259A的操作命令字及其编程 • 1. 8259A的操作命令字 • 应用程序中设置,次序不固定,工作中可随时改变或读某寄存器的内容。 • OCW1 写奇地址 • OCW2、OCW3 写偶地址 • 注:工作中写入,不跟在ICW1之后. • (1) OCW1(中断屏蔽)格式如图9-12 • (2) OCW2(设置优先级循环方式和中断结束方式) 格式如图9-13 • (3)OCW3(设置特殊屏蔽方式,中断查询和对内部寄存器的读出)格式如图9-14

  15. 2.8259A的操作命令的编程 • 流程如图9-15 • 例:(1)屏蔽IR2 • IN AL,82H • OR AL,04H • OUT 82H,AL • (2)发EOI命令 • MOV AL,20H • OUT 80H,AL

  16. (3)读IRR的内容 • MOV AL,0AH • OUT 80H,AL • IN AL,80H • 也可从奇地址读IMR的内容。

  17. 9.3.4 8259A的应用举例 • 例1:8259A在IBM-PC/XT中的应用 • 情况见表9-5和连接如图9-16。 • 端口地址20H、21H,单片8259A,边沿触发,缓冲方式,采用完全嵌套方式,IR0最高,IR7最低,中断类型号08~0FH,中断结束采用EOI命令方式。 • (1)初始化程序: • MOV AL,13H • OUT 20H,AL • MOV AL,08H • OUT 21H,AL

  18. MOV AL,0DH • OUT 21H,AL • MOV AL,0FFH ;屏蔽所有硬中断 • OUT 21H,AL • (2)采用中断结束命令 • MOV AL,20H • OUT 20H,AL • (3)中断向量装入 • MOV AX,0 • MOV ES,AX • MOV DI,“中断向量地址” • CLD

  19. MOV AX,OFFSET“过程名” • STOSW • MOV AX,SEG“过程名” • STOSW

  20. 例2: 8259A在IBM-PC/AT中的应用 • 采用二片级联,连接如图9-17,从片的INT接主片的IR2,主片的SP=1,从片的SP=0,INTA直连即可.采用完全嵌套方式。 • 优先级别为: IR0>IR1>IR8>……>IR15>IR3>……>IR7.

  21. 9-16

  22. 9-17

  23. 中断响应过程 • 1、从片上IRn=1,若对应中断未屏蔽,则INT=1,往主片IRn发中断请求; • 2、若主片上对应中断未屏蔽,经PR与ISR比较,若比之高级,则INT=1到CPU; • 3、若IF=1,则CPU发第一个INTA-信号 • 主片的ISn=1,IRn=0,对ICW3进行检测,确定是否来自从片。 • 1)若Dn=0,则第二个INTA-时,外设送上中断类型码ICW2; • 2)若Dn=1,则n 通过CAS2~CAS0送出。 • 从片的ISn=1,IRn=0

  24. 从片把n与ICW3中ID2~ID0比较,若相同,则第二个INTA-时,从片送上中断类型码ICW2到数据总线。从片把n与ICW3中ID2~ID0比较,若相同,则第二个INTA-时,从片送上中断类型码ICW2到数据总线。

More Related