可编程中断控制器859A.ppt
《可编程中断控制器859A.ppt》由会员分享,可在线阅读,更多相关《可编程中断控制器859A.ppt(82页珍藏版)》请在三一文库上搜索。
1、1,2,一、引言,3,1. 向CPU的引脚INTR发中断申请信号 当有多个外设同时发出中断请求时, 能按照一定的优先级顺序,向CPU发出中断申请, 使CPU能优先响应优先级最高的外部设备的中断申请。 2. 送中断类型号 在CPU中断响应周期,针对不同外设的中断请求, 向CPU传送不同的中断类型号, 使CPU执行相应的中断子程。,中断申请管理接口的主要功能:,在IBM PC机由8259A可编程中断控制器(PIC)来完成。,4,二、 8259A的引脚、编程结构和工作过程,1. 8259A的引脚 2. 8259A的编程结构 3. 8259A的工作过程,5,定时器,6,1、单片8259A可支持8个中断
2、源; 2、采用多片8259A级连,可最多支持64个中断源。n片8259A可支持7n+1个中断源; 3、级连时只能有一片8259A为主片,其余的均为从属片; 4、涉及到的8259A引脚包括: CAS0-CAS2 SP/EN IRi INT,6,级联工作方式,7,SP/EN:双功能的双向信号线,分别表示主从定义/缓冲器方向这两种工种方式。 在主从方式中,它作为输入信号线SP,由该信号的高低电平来区分“主”或“从” 8259A:若SP1,则本片为“主”8259A;若SP0,则为“从” 8259A。只有一个8259A时,它应接高电平。 在缓冲方式时,则它作为输出信号线EN,用于控制缓冲器的传送方向:若
3、EN1,则CPU将把数据写入8259A;若EN0,将把数据由8259A读出至CPU。,7,8,级连电路连接方法,8,9,28259A的编程结构,10,11,(1) 初始化命令字(ICW1- ICW4) 决定8259A的工作方式 通常是在计算机系统启动时在初始程序设置, 一旦设定,一般在系统工作过程不再改变。 例 开机后,BIOS将8259A初始化为: IR0IR7中断申请信号为上升沿触发方式; IR0IR7对应的中断类型号分别为08H0FH; 优先级IR0最高, IR7最低; (2) 操作命令字(OCW1,OCW2,OCW3) 在应用程序中设定,动态地控制CPU处理中断的过程 (3) ISR和
4、IRR存放当前8259A的状态 通过读取 ISR 和 IRR 的内容,可了解当前8259A工作情况,12,初始化命令字 ICW1ICW4,初始化命令字在8259正常工作前设置。它决定8259的工作方式和环境。返回,ICW1,12,13,8259A的控制命令字,初始化8259A必须从ICW1开始 写ICW1意味着重新初始化8259A 写入ICW1后,8259A的状态如下: 清除ISR和IMR(全0); 将中断优先级设成初始状态:IR0最高,IR7最低; 设定为一般屏蔽方式; 采用非自动中断结束方式; 状态读出逻辑预置为读IRR。,13,14,在中断响应的第二个总线周期,通过数据线发送中断类型码给
5、CPU 返回,14,15,ICW2中断向量码,T7T3: 中断向量码的高5位 T2T0: 最低3位为中断源的序号IRn 000111分别对应IR0IR7 由8259A根据中断源的序号自动填入 例如: 若ICW2命令字为48H,则IR0的中断向量码为48H,IR7的中断向量码为4FH,等等。,A0 D7 D6 D5 D4 D3 D2 D1 D0 1 T7 T6 T5 T4 T3 x x x,15,16,级连初始化必须与硬件连接一致,主片,从片,16,17,ICW3级连控制字(续),ICW3必须与主从片的连接关系一致: 例如,主片的IR4与从片的INT线连接,则主片的ICW3=10H,从片的ICW
6、3=04H。 中断响应时,主片通过级连线CAS2-CAS0送出被允许中断的从片标识码,各从片用自己的ICW3与CAS2-CAS0比较,二者一致的从片才可发送中断向量码。,17,18,ICW4,初始化命令字ICW1ICW4是以写入的顺序来区分的,返回,18,19,例 8259初始化,单片8259应用于8086系统,IR0的中断类型码为18H,电平触发方式,全嵌套非缓冲方式,自动结束中断,要求初始化ICW4。端口地址为0A0H开始,初始化程序为: MOV AL,13H ICW1初始化 OUT 0A0H,AL ;写入ICW1 MOV AL,18H ICW2 初始化 OUT 0A2H,AL ;写入IC
7、W2 MOV AL,03H ICW4初始化 OUT 0A2H,AL ;写入ICW4,19,20,8259A的操作命令字OCW,OCW用于设置8259的工作状态 在初始化后写入 OCW的写入顺序可任意 写入地址要求: OCW1必须写入奇地址端口(A0=1) OCW2,OCW3必须写入偶地址端口(A0=0),20,21,操作命令字OCW,Mi=1 中断请求线IRi被屏蔽(不允许中断) =0 允许该IRi中断 OCW1将写入IMR寄存器。 A0=1时读OCW1可读出设置的IMR内容。,OCW1,21,22,操作命令字OCW,R=1:循环优先权 R=0:固定优先权 SL=1:L2L1L0指定IR位 S
8、L=0:L2L1L0无效 EOI=1:中断结束,OCW2,22,23,OCW3,操作命令字OCW,8259的工作方式编程并没有固定顺序,各命令字之间用地址信号A0及特征位加以区分。,23,24,OCW3(续),查询方式允许8259A不工作于中断方式,而是以查询方式工作。 CPU先写一个D2=1(查询方式)的OCW3,再对同一地址读入,即可得到如下状态字节: I x x x x R2 R1 R0 I=1表示有中断请求,中断请求号为R2-R0 此查询步骤可反复执行,以响应多个同时发生 的中断。 读IRR/ISR:写入此命令后,随后再对同一地址读,即可得到IRR或ISR的内容。,24,25,CLI
9、;关中断 MOV AL,17H;ICW1:单片,边缘触发,需要ICW4 OUT 20H,AL MOV AL,08H ;ICW2:中断类型码的D7D3位为00001 OUT 21H,AL MOV AL,01H;ICW4:非自动的EOI,非缓冲,80X86方式 OUT 21H,AL MOV AL,04H ;OCW1:只屏蔽IRQ2(保留中断) OUT 21H,AL MOV AL,20H ;OCW2:固定优先权,一般的EOI OUT 20H,AL MOV AL,4BH;OCW3:正常屏蔽,非查询方式,可读ISR OUT 20H,AL STI ;开中断,8259的初始化编程,25,26,分两步: (1
10、)处理外设中断申请,决定是否向CPU发中断申请信号。 (2)若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号。,3. 8259A 的工作过程,27,(1) 处理外设中断申请,决定是否向CPU发中断申请信号, 中断屏蔽寄存器 IMR 决定 IRR 中的中断申请 是否进入优先级裁决器 PR。 IMR对应位为 0,允许中断申请进入优先级裁决器, 为 1,不允许进入,中断申请被IMR屏蔽。, 中断申请寄存器IRR 锁存外部的中断申请。 若 IR0IR7 引脚上有中断申请,则将 IRR 相应位置1, 当前中断服务寄存器 ISR 记录CPU正在响应的中断。 ISR中的某位为1,表示CP
11、U正在响应此级中断, ISR中的某位为 0,表示CPU没有或已响应完此级中断,, 优先级裁决器PR 据新进入的中断申请和 ISR的内容, 决定是否发中断申请信号。 如果进入的中断申请比 ISR 中记录的中断优先级高, 则通过 8259A 的 INT 引脚向 CPU发出中断请求信号; 如果进入的中断申请不比 ISR 中记录的中断优先级高, 同级或低级,则不向 CPU 发中断请求信号。,28, 中断申请寄存器IRR 锁存外部的中断申请。 若 IR0IR7 引脚上有中断申请,则将 IRR 相应位置1,29,30,31,32,(2) 若发中断申请信号,且CPU响应, 则在CPU中断响应周期送出中断类型
12、号,CPU接收到 INTR上的中断申请信号后: 如果 IF 标志为0,则CPU不响应此中断申请信号, 即中断申请被IF屏蔽。 如果 IF 标志为1, 则处理完当前的指令后, 进入中断响应周期 通过 INTA 引脚发出两个负脉冲信号, 从数据总线上获取中断类型号, 进入中断响应的过程。,33,8086CPU中断响应周期时序,34, 将 ISR 中相应位置1, 表示 CPU 响应此级中断,执行此中断源的中断子程。,8259A在接收到第一个INTA中断响应信号后:,0 0 1 0 0 0 0 0,ISR 当前 中断 服务 寄存器,IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7,PR
13、优先级 裁决器,IRR 中断 申请 寄存器,1 0 0 0 0 0 0 1,ICW1 芯片控制,ICW2 中断类型号,ICW3 主从片关系,ICW4 方式控制,OCW1 中断屏蔽寄存器 IMR,OCW2 优先级、发EOI,OCW3 特殊屏蔽设置,IOR,IOW,总线,数 据 线,D0 D7,INTA,A0,片 选 译 码,A5 A9,CS,A0,RD,WR,INTA,INT,D0 D7,INTR, 把 IRR中对应的位清0,清除IRR中锁存的中断申请信号。,35, 通过数据线,将被响应申请的中断类型号送给CPU。 类型号由ICW2提供,在初始化8259A时已设定好。, CPU获得中断类型号后,
14、进入CPU响应中断的过程, 执行中断子程,处理中断源申请的功能。,36,37,三、8259A的编程,1. 8259A的编程 2. 8259A的编程方法 (1) 设置中断屏蔽字 (2) 发中断结束命令EOI,38,39,8259A有两个I/O端口地址,A0=0 偶地址端口 A0=1 奇地址端口,ICW1 芯片控制,ICW2 中断类型号,ICW3 主从片关系,ICW4 方式控制,处理部分,控制部分,0 0 0 0 0 0 0 0,ISR 当前 中断 服务 寄存器,PR 优先级 裁决器,IRR 中断申请 寄存器,0 0 0 0 0 0 0 0,8259A中断控制器,D0 D7,0,1,1,1,A0,
15、1,0,0,A0,40,8259初始化流程,用ICW1设置,是否级联 请求格式信号 是否需要设置ICW4,用ICW2设置中断类型码,是否为级联方式,本片设为主片吗?,设置ICW3,各位 对应IR0IR7,设置ICW3,高5位 为0,低3位为标识码,需要用到ICW4吗?,用ICW4设置,是否为特殊全嵌套方式 是否为缓冲方式 是否为自动结束中断方式 是否为16位系统,结束,进行中断服务,N,Y,N,Y,N,Y,41,(1)通过中断屏蔽寄存器IMR的读写,设置中断屏蔽字 (2) 通过OCW2操作命令寄存器,发中断结束EOI命令,2. 8259A的编程方法,8259A有多种工作方式,这些工作方式均可编
16、程选择,使用相当灵活。,要求掌握:,42,IRR ISR 查询字(OCW3) IMR(OCW1) CPU,OCW2 CPU写 OCW3 ICW1 写(IMR).OCW1.ICW2.3.4,DB7-0,DB7-0,0 0 0 0 0 1 0 0 0 1 0 1 0 0 1 X 0 1 0 1 X X 0 1,0A0H 0A1H,20H 21H,输出操作(WR),0 0 1 0 0 1 1 0,0A0H 0A1H,20H 21H,输入操作(RD),CS A0 WR RD,PIC2,PIC1,对8259的端口寻址及其基本操作(读/写基本操作),注意:8259只有两个端口,由A0一位确定: 1:奇数口
17、 0:偶数口 由奇/偶数端口及控制字中的某些特定 位来确定命令字往那个R中送。,43,44,新增允许 IR2 的中断申请 IN AL, 21H ;读入原IMR的内容 AND AL, 1111 1011B ;D2=0,允许IR2的中断申请 OUT 21H, AL ;写入IMR,禁止 IR4 的中断申请 IN AL, 21H ;读入原IMR的内容 OR AL, 0001 0000B ;D4=1,禁止IR4的中断申请 OUT 21H, AL ;写入IMR,例 已知 IBM PC/XT系统中 8259A的奇地址端口地址为21H,45,46,(2) 发中断结束命令 EOI,由 8259A 的工作过程可知
18、: ISR中的内容是优先级裁决器进行裁决的重要依据 CPU响应某级中断后,8259A自动将ISR的对应位置1,如果CPU已执行完中断子程,而ISR中的对应位仍为1, 8259A的优先级裁决器仍会据ISR的内容做裁决, 从而会屏蔽同级或低级的中断申请。 在中断响应后,对 ISR中相应位的清0很重要, 它是8259A认为中断结束的标志。,47,48,一、 初始化8259A时,设置8259A工作方式为自动清0方式, 则在CPU响应中断后,硬件自动将ISR的对应位清0。,清 ISR 内容的方法有两种:,二、 初始化8259A时,设置8259A工作方式为非自动清0方式, 需在中断子程中,通过软件方式清0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 中断 控制器 859
链接地址:https://www.31doc.com/p-2611098.html