8259A中断控制器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
CS
CAS0 CAS1 CAS3
级 联 缓 冲 比较器
内 部 总 线
中 断 服 务 寄 存 器
ISR
优 先 权 处 理 器
中 断 请 求 寄 存 器
IRR
IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7
SP / EN
中断屏蔽寄存器 IMR
IRR,IMR
1.中断请求寄存器IRR
IRi(i=07)上有中断请求时,IRR相应位置1。
AEOI=1自动中断结束方式AEOI=0:非自动中断结束(EOI) µ PM=1:86系列CPU; µ PM=0:非86系列CPU 。
普通全嵌套方式
普通全嵌套方式也叫固定优先权方式。 优先权从IR0到IR7依次递降。 级别高的中断请求可以中断级别低的中断服 务子程序。 一中断被响应的过程中,自动屏蔽同级和更 低级别的中断。
8259A在PC机中的I/O端口地址
PC机中相当有两片8259A级联,一个主片,一个从片。
ICW1 ICW2 ICW3 ICW4 OCW1 OCW2 OCW3
主片 0x20 从片 0xa0
0x21 0xa1
0x21 0xa1
0x21 0xa1
0x21 0xa1
0x20 0xa0
0x20 0xa0
主片初始化程序
0
X
ESMM SMM 0
1
P
RR
RIS
A0=0 , D4=0 , D3=1 是OCW3的特征。 ESMM=1,SMM=0: 设置特殊屏蔽
ESMM=1,SMM=1: 清除特殊屏蔽
P=1:发查询命令 ; P=0:不发查询命令 RR=1,RIS=0: 读IRR寄存器 RR=1,RIS=1: 读ISR寄存器
操作命令字OCW1
A0 D7 D6 D5 D4 D3 D2 D1 D0
1
M7 M6 M5 M4 M3 M2 M1 M0
OCW1是中断屏蔽命令字
Mi=1:屏蔽IRi的中断请求。
Mi=0:允许IRi的中断请求。
操作命令字OCW2
A0 D7 D6 D5 D4 D3 D2 D1 D0
0
R
SL
EOI 0
0
SING=0:多片8259A级联。 IC4=1:初始化包括ICW4。 IC4=0:初始化不包括ICW4。
初始化命令字ICW2
A0 1 D7 D6 D5 D4 D3 D2 D1 D0 T7 T6 T5 T4 T3
每片8259A可管理8个硬件中断源,每个中断源 都要分配一个中断类型号。T7~T0确定中断类型 号的高5位,低3位由IRi(i=0~7)的序号决定。
2.中断屏蔽寄存器IMR IMR第i位置1,屏蔽IRi上的中断请求。
优先权处理器,ISR
3.优先权处理器
根据中断屏蔽情况及优先级顺序,决定将那个中 断请求送往CPU。 4.中断服务寄存器ISR
若某个中断请求被CPU响应,则相应位置1。
8259A的编程
8259A接受来自CPU的两类命令字:初始化命 令字ICW和操作命令字OCW。 初始化命令字有4个:ICW1,ICW2,ICW3, ICW4。
软件重新指向 INT 0AH
保留 保留
IR12
IR13 IR14
保留
协处理器 硬盘
IR15
IR3 IR4 串口2 串口1
保留
IR5
IR6 IR7
并口2
软盘 并口1(打印机口)
中断类型号
主片中断源:
IR7
IR6
IR6
IR4
IR3
IR2
IR1
IR0
0x0f 0x0e 0x0d 0x0c 0x0b 0x0a 0x09 0x08 从片中断源: IR15 IR14 IR13 IR12 IR11 IR10 IR09 IR08 0x77 0x76 0x75 0x74 0x73 0x72 0x71 0x70
L2
L1
L0
A0=0,D4=0,D3=0 是OCW2的特征。
R=1 : 循环优先权;
R=0 : 固定优先权。
SL=1 : 操作在L2~L0指定的级别上进行。 SL=0 : L2~L0无效。 EOI=1 : 中断结束命令。清除ISR中优先权最高的置1位。 EOI=0 : 不起作用。
循环优先级方式
循环优先级方式由 OCW2 的 R=1 设定,分优先级自 动循环方式和优先级指定循环方式两种。 优先级自动循环方式:初始时,优先级从IR0到 IR7依次递降。刚执行完的中断,级别沦为最低。
操作命令字有3个:OCW1,OCW2,OCW3。
命令字都是8位的。
初始化命令字ICW1
A0 0 D7 X D6 X D5 D4 X 1 D3 D2 D1 D0 LTIM X SNGL IC4
A0=0,D4=1是ICW1的标志。 LTIM=1:中断请求是电平触发。
LTIM=0:中断请求是边沿触发。 SING=1:单片8259A工作。
outportb(0x20,0x20);
若中断源在从片,要先写一个从片的中断结束命令,
再写一个主片的中断结束命令。
outportb(0xa0,0x20); outportb(0x20,0x20);
IR2接从片 00000001B
MOV AL,01H ;ICW4 OUT 21H,AL
ICW1=11H=00010001B
D7
0
D6
0
D5
0
D4
1
D3
0
D2
0
D1
0 级联
D0
1
边沿触发
初始化编程 包括ICW4
ICW4=01H=00000001B
D7 0 D6 0
不用
D5 0
D4 0
D3 0
非缓冲
屏蔽中断源
中断屏蔽命令字OCW1可屏蔽中断源的中断请求。 例如,欲屏蔽键盘和串口1,不改变其它中断源的屏 蔽情况。 b=inportb(0x21);
b=b|0x12;
outportb(0x21,b);
EOI命令
PC机中8259A初始化规定为普通(非自动)中断结 束方式。在中断服务子程序结束前,要用户用OCW2写 一个中断结束EOI命令。 若中断源在主片,EOI命令为:
优先级指定循环方式:可由软件指定最低优先级。
R=1,SL=1,EOI=0, L2~L0 编码指定中断源IRi。 例如:OCW2=11000011B=0xc3表示设置IR3位最低 优先级。 IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3


操作命令字OCW3
A0 D7 D6 D5 D4 D3 D2 D1 D0
MOV AL,11H ;ICW1 OUT 20H,AL
0 0 0 1 0 0 1B
JMP
SHORT $+2
中断类型号从8开始
MOV AL,08H ; ICW2 OUT 21H,AL JMP SHORT $+2
MOV AL,04H; ICW3
00000100B
OUT 21H,AL
JMP SHORT $+2
D2 0
D1 0
D0 1
86系列CPU
一般全嵌套方式 非自动中断结束
从片初始化程序
MOV AL,11H ; ICW1
OUT 0A0H,AL JMP SHORT $+2
MOV AL,70H ;ICW2 OUT 0A1H,AL
JMP
SHORT $+2
MOV AL,02H ;ICW3 OUT 0A1H,AL JMP SHORT $+2
8259A中断控制器
8259A为CPU管理硬件中断,每一片8259A可 管理8个硬件中断源,级联使用可管理更多的硬 件中断. PC系列微机中相当有两片8259A级联,管理 15个硬件中断源.
8259A的结构
INTA
INT
D0~D7
数 据 总 线缓 冲 器
控 制 逻 辑
RD
WR
读 / 写 逻 辑
A0
MOV AL,01H ;ICW4
OUT 0A1H,AL
只有两个地址,
N
ICW2
级联? Y ICW3 N
靠地址,顺序和特征区分七个 命令字。
思想方法可以借鉴!
要ICW4?
Y ICW4
IR0
IR1
日时钟(8254通道0)
键盘 IR8 实时钟
中断源
IR9
IR10 IR2 IR11
初始化命令字ICW3
表明主从连接的方式,但主片与从片的格式不同。 主片格式:
A0
1
D7
S7
D6 D5 D4 D3 D2 D1 D0
S6 S5 S4 S3 S2 S1 S0
S i=1:IRi接了从片;Si=0:IRi未接从片。
从片格式:
A0 1
D7
D6 D5 D4 D3 D2 D1 D0 ID2 ID1 ID0
若该从片接到主片IRi上,ID2~ID0的编码为i。
初始化命令字ICW4
A0 D7 D6 D5 D4 D3 D2 D1 D0
1
0
0
0
SFNM BUF
M/S AEOI µ PM
A0=1,D7~D5=0,是ICW4的标志。 SFNM=1:特殊全嵌套方式;SFNM=0:普通全嵌套方式。
BUF=1: 缓冲方式; BUF=0:非缓冲方式。 M/S=1:主片(BUF=1时有效) ;M/S=0:从片(BUF=1时有效)
相关文档
最新文档