微机原理与接口课件中断系统-8259A控制字
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
; 非自动中断结束方式
OUT 21H, AL
六、8259A 的操作命令字
对8259A 进行初始化编程后,8259A作好了接收中
断请求输入的准备,在8259A 工作期间可由操作
命令字OCW1~OCW3 规定工作方式和控制命令。
如:中断屏蔽、中断结束和优先级循环、查询中断
方式等,都可在用户程序中利用操作命令字OCW 设置和修改。
INTR
(to CPU)
INTA
INT
CAS0
INTA
CAS0
INT
从8259A
CAS1
CAS2
CAS1
CAS2 IR7 IR6
主8259A
IR7
IR6
…
IR0
… …
IR0
…
Hale Waihona Puke Baidu
若主、从8259A工作于固定优先权方式,从片 的优先级为IR0IR1 IR7。但对主片来说,从 片的IR0 ~IR7 是同级的。
② 特殊方法:令 SL = 1, EOI = 1 写入OCW2后,使L2L1L0指定的位复位。 L2 L1 L0 0 0 0 ISR中的Di D0 对应的IRi IR0
0 0 1
1 1 1
D1
D7
IR1
IR7
(2) 定义8259A 的优先权工作方法 ①R=0 固定优先权方式
IR0 IR1 … IR7
一旦设定,在工作过程中一般不再改变。
操作命令字OCW( Operation Command Word)3个: OCW1~OCW3 作用:设定8259A的工作方式及发出相应控制命令。 设定:在应用程序中(如设备的中断服务程序), 用于中断处理过程的动态控制,可多次设置。
注意: 8259A 只有两个端口地址 A0=
② AEOI = 0 非自动中断结束方式
由程序发出EOI 命令 (由8259A 的 OCW2 实现),使ISR 中相应位复位。
五、8259A 的初始化编程流程
用ICW1设置:是否级联? 请求信号的触发方式 后面是否用ICW4 用ICW2设中断类型码 是否为级联方式? Y 本片为主片吗? 主片ICW3各位对应 IR0~IR 7 的连接状况 N N
R 1 SL 1 EOI 0 0 0 0 0 L2 0 L1 1 L0 0
AL,0C2H ;OCW2 20H,AL ;把OCW2写入8259A的偶 地址端口。
例:试编一段程序,用以清除8086系统中 8259A的ISR第6位(ISR6 ),8259A的偶地址 为20H。 为实现题意要求,应先确定OCW2的内容, 然后将OCW2写入8259A的偶地址端口。 OCW2:
0 偶地址端口 1 奇地址端口
对8259A读/写 操作时, 要注意控制字
写入的端口地址(与CPU低位地址连接有关) 写入的顺序 有关的标志位
1.芯片控制字ICW1 (IRi 触发方式,是否单片使用,是否写入ICW4)
A0
0
D7 D6 D5 D4
D3
D2 D1
D0
1 LTIM SNGL ICW4
2. OCW2 (优先权循环方式和中断结束方式 操作命令字)
A0
0
D7 D6 D5 D4 D3 D2 D1 D0
R SL EOI 0 0 L2 L1 L0
标志位
有两个作用:
(1) 8259A 工作于非自动中断结束方式时,如 何复位ISR 中的对应位?有两种方法: ① 一般方法:令SL = 0, EOI =1 将OCW2写入8259A后,将刚刚被服务的IRi 对应位复位。
四、8259A 的控制字与初始化编程
两类控制字:初始化字(ICW)和操作命令字(OCW),
可进行初始化设定及工作方式控制;
编程: 分为两部分,即初始化编程和工作方式编程。 初始化字ICW (Initialiation Command Word)有 4个:ICW1~ICW4,用于初始化; 通常,系统启动时设置初始化程序;
A0=0:表示OCW3必须写入偶地址端口。 D7:无关。 D6D5:特殊屏蔽方式控制位,为11时允许特殊屏蔽方式, 为10时复位特殊屏蔽方式。 D4D3:特征位,必须是01。 D2:查询中断方式控制位,D2=1,进入查询中断方式,8259A将送出 查询字;否则是向量中断方式。 D1:读命令控制位,D1=1,是读命令,否则不是读命令。 D0:读ISR、IRR选择位,为1选择ISR,反之选择IRR。
IR5优先权最低 此时,优先权为: IR7 1 IR6 0 IR5 IR4 7 6 IR3 5 IR2 4 IR1 3 IR0 2
R、SL、EOI配合使用表
R SL EOI 0 0 0 0 1 1 1 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 工作方式 普通EOI 特殊EOI,L2L1L0指定的ISR位清0 取消优先级自动循环 无操作意义 普通EOI命令,优先级自动循环 普通EOI命令及优先级特殊循环方式,当前 最低优先级为L2L1 L0所指定 优先级自动循环 优先级特殊循环,L2L1L0指定级别最低的优 先级的IR端号 备注 组合 出有 效的 七个 操作 命令
N 从片ICW3 高5位为0; 低3位为标识码
用ICW4 吗?
注意:级联 使用时,主 /从8259A都 要作初始化 操作。
Y 用 ICW4 设:为特殊全嵌套方式? 为缓冲方式? 为自动EOI方式? 为8086/8088系统? END
8259A的初始化流程
例:PC/XT 系统中8259A的初始化编程 20H、21H为8259A的端口地址,
例:若使8086系统中8259A的优先级顺序为 IR3, IR4, IR5, IR6 IR7, IR0 IR1, IR2,试编写 一段程序实现该优先顺序,设8259A的偶地址 为20H。 根据题意要求,为实现上述优先级顺序, 应先确定OCW2 ,然后将它写入8259A的偶地址 端口:
OCW2:
MOV OUT
R 0 SL 1 EOI 1 0 0 0 0 L2 1 L1 1 L0 0
MOV OUT
AL,66H 20H,AL
;OCW2 ;把OCW2写入8259A的偶 地址端口。
3. OCW3 (特殊屏蔽方式和中断查询方式操作命令字) A0 D7 D0
0 0 ESMM SMM 0 1 P RR RIS
标志位
在BIOS 中,8259A的初始化程序段如下:
MOV AL, 13H OUT 20H, AL ; ICW2=08H, IR0~IR7对应的中断类型号 ; 为08H~0FH OUT 21H, AL ; ICW4= 00001001B, 正常的嵌套方式, MOV AL, 09H ; ICW1=00010011B, 边沿触发,单片使用, ; 要 ICW4. MOV AL, 08H
0 1 0
1 1 1
IR2
IR7
例:某PC机中8个可屏蔽中断(IR0 IR7)
的类型号为08H 0FH,A0=1,端口地址为
21H,则ICW2为:08H,设置ICW2的指令为:
MOV
OUT
AL,08H
21H,AL
3. 级联控制字 ICW3 在级联系统中,主片和从片都需设置ICW3, 指明主、从芯片的级联引脚连接关系。 主/从分别写。 1 若ICW1 中SNGL= 0 写入ICW3(级联) 不写入ICW3
(单片使用时,两种方式一样。)
(1) SFNM: 中断的嵌套方式
① 正常的完全嵌套方式(0)
高级的中断
② 特殊的完全嵌套方式(1)
同级的 或高级 的中断
注意:级联使用时,某从片的IRi对主片来说是同级 的(同级中断)。 此处,要理解同级中断的概念!(从片内仍有优先级)
例如:
INTA
(from CPU)
(1) 主片的ICW3
A0
1
D7 D6 D5 D4 D3 D2 D1 D0
S7 S6 S5 S4 S3 S2 S1 S0
Si = 1, 表示主片IRi上接有从片。
用奇地址
(2) 从片的ICW3 A0
1
D7 D6 D5 D4 D3 D2 D1 D0
0 0 0 0 0 ID2 ID1 ID0 从片的标志码
ID2 ID1 ID0
该从片
0
0 1
0
0 1
0
1 1
接入主片的IR0
接入主片的IR1 接入主片的IR7
例:某8086微机系统中,主片8259A的IR2 ,IR6 引脚上分别接有从片8259A,则主、从片的ICW3初始 化命令字设置如下:
主片初始化命令字:(设:主片口地址设为20H, 21H)
1. OCW1(中断屏蔽操作命令字)
设置或清除IMR 的各个位。 A0
1
D7
M7
………… …………
D0
M0
Mi=1 表示IRi被屏蔽
例:设OCW1 =06H,则表示IR1 ,IR2 两 个引脚上的中断申请被屏蔽,其他的中断申
请 (IR0,IR3IR7)则得到允许。8259A编程指
令为:
MOV AL,00000110B OUT 21H,AL ;OCW1屏蔽字 ;屏蔽字写入奇地址口 ;的 OCW1寄存器
4. 中断方式字 ICW4 A0
1
奇地址
D7 D6 D5
0 0
标志位
D4
D3
D2
M/S
D1
AEOI
D0
1
0 SFNM BUF
用于8088/ 8086系统
A0=1 ICW4必须写入奇地址端口。 D0:系统选择,1-8086/8088,0-8080/8085。 D1:结束方式,1-自动结束(AEOI),0-正常结束(EOI)。 D2:与D3配合,缓冲方式下:区别主片/从片 1:主片,0:从片。 D3:缓冲方式选择,1-缓冲方式,0-非缓冲方式; 当D3=0(非缓冲)时,D2位无意义。 D4:嵌套方式选择,1-特殊全嵌套方式,0-普通全嵌套方式。
OCW3有三个作用:
用于设置查询中断方式、特殊屏蔽方式、读IRR或ISR控制
(1) 设置和撤消特殊屏蔽工作方式 ① 正常的屏蔽方式 由OCW1 设置IMR 实现 A0
D7 D6 D5 D4 D3 D2 D1 D0
T7 T6 T5 T4 T3
IRi 对应中断类型号的高5位
(中断类型号的低3位由8259A 的IRi编码产生)
如:接在IR7端为111,挂接在IR6端为110,余类推。
T7 T6 T5 T4 T3 T2 T1 T0 由ICW2规定 0 0 0 0 0 1 IR0 IR1
特征位
A0=0 ICW1必须写入偶地址端口。 D0:是否在初始化流程中写入ICW4,D0=1写ICW4,D0=0不写ICW4, 8086/8088系统中D0必须置1。 D1:是否写ICW3,D1=1 不写ICW3,单片使用8259A, D0=0 写ICW3,多片8259A级联。 D2:对8086/8088系统不起作用。 D3:中断触发方式,D3=0 沿触发,D3=1 电平触发。 D7~D5:对8086/8088系统不起作用,一般设定为0。
M/S位 ① 当8259A 工作于缓冲方式时 (BUF位=1) , M/S用于定义主、从芯片。 1 M/S = 主8259A
0
从8259A
② 当8259A工作于非缓冲方式时 (BUF = 0),
SP引脚为输入,接高/低电平,区分主/从芯片,
此时 M/S 不起作用。
AEOI: 中断的结束方式 (如何使ISR中对应位清0) ① AEOI = 1 自动中断结束方式 当CPU 发出第二个 INTA 后,ISR 中的相应 位复位,此时,不适宜实现中断嵌套。
例:某8086微机系统中,使用单片8259A, 中断请求信号为上升沿触发,需要设置ICW4, 端口地址为20H,21H,则其初始化命令字 ICW1应为:00010011=13H,设置ICW1的指 令为:
MOV AL,13H
OUT
20H,AL
2. 中断向量字 ICW2 (中断类型号的高5位)
A0
1
MOV AL,44H ;44H为主片的ICW3,表示其IR6, IR2上接有从片:01000100 OUT 21H,AL ;将ICW3写入奇地址端口
从片1的初始化命令:(设:从片1口地址为30H,31H)
MOV OUT
AL,02H 31H,AL
从片2的初始化命令:(设:从片2口地址为40H,41H) MOV OUT AL,06H 41H,AL
② R = 1, SL = 0 优先权自动循环方式 例: IR7 初始优先 权为: 若ISR = IR6 IR5 IR4 IR3 IR2 IR1 IR0
7
0
6
1
5
0
4
1
3
0
2
0
1
0
0
0
则 当 IR4 服务完毕 后,优先 2 权5最高:
1
0
7
6
5
4
3
③ R = 1, SL = 1 优先权特殊循环方式 此时,L2L1L0 规定循环开始时的最低优先权 例: 1 1 0 0 1 0 1