接口技术 8259A中断控制器原理及应用
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
非缓冲方式
19
8259A的编程
Βιβλιοθήκη Baidu
初始化编程
8259A开始工作前,必须进行初始化编程 给8259A写入初始化命令字ICW(ICW1~ICW4) 在8259A工作期间 可以写入操作命令字OCW(OCW1~OCW3)将选 定的操作传送给8259A,使之按新的要求工作 还可以读取8259A的信息,以便了解它的工作状 态
10
1. 优先权固定方式
普通全嵌套方式
8259A的中断优先权顺序固定不变,从高到低依次为IR0 、IR1、IR2、……IR7 中断请求后,8259A对当前请求中断中优先权最高的中 断IRi予以响应,将其向量号送上数据总线,对应ISR的 Di位置位,至到中断结束(ISR的Di位复位) 在ISR的Di位置位期间,禁止再发生同级和低级优先权 的中断,但允许高级优先权中断的嵌套
D5 T5
D4 T4
D3 T3
D2 x
D1 x
D0 x
T7~T3: 中断向量码的高5位 T2~T0: 最低3位为中断源的序号IRn
000~111分别对应IR0~IR7 由8259A根据中断源的序号自动填入 例如: 若ICW2命令字为48H,则IR0的中断向量码为 48H,IR7的中断向量码为4FH,等等。
动画
8259A对中断请求的处理过程如下:
当某IRi有效时,IRR相应位置1 若有效的IRi未被屏蔽,则向CPU发出中断请求 检测到第1个INTA*信号后,置ISRi=1,IRRi=0 检测到第2个INTA*信号后,把ISRi=1中最高优 先级的中断类型码放到DB上 若工作在AEOI方式,在第2个INTA*结束时,使 ISRi复位;否则由CPU发出EOI命令使ISRi复位
ISRi
0 7
最低级
IR4的服务结束以前
最高级
最高级
最低级
IR4的服务结束以后
3. 结束中断处理方式
什么是8259A的中断结束? 8259A利用中断服务寄存器ISR判断: 某位为1,表示正在进行中断服务; 该位为0,就是该中断结束服务。 这 里 说 明 如 何 使 ISR 某 位 为 0 , 不 反 映 CPU的工作状态。
清除ISR和IMR(全0); 将中断优先级设成初始状态:IR0最高,IR7最低; 设定为普通(一般)屏蔽方式; 采用非自动中断结束方式; 状态读出逻辑预置为读IRR。
ICW1——芯片控制初始化命令字
A0 0
D7 x
D6 x
D5 x
D4 1
D3 D2 LTIM x
ICW1 的标志
D1 D0 SNGL IC4
自动循环:初始优先级自动规定 特殊循环:初始优先级可用编程改变
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0 0 2 1 1 0 0 0 7 0 6 0 5 0 4 0 3
IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
适用于多个中断源具有相同优先权
1 6 0 5 1 4 0 3 0 2 0 1 0 0 ISR内容
演示
ICW4——方式控制初始化命令字
LTIM: 触发方式
=1 高电平触发 =0 上升沿触发 =1 单片 =0 级连 =1 要写ICW4(8086配合8259则此位必须为1) =0 不写ICW4(默认ICW4为全0)
SNGL: 级连控制
IC4: ICW4控制
ICW2——中断向量码基值
A0 1
D7 T7
D6 T6
6
级连电路连接方法
系统总线 AB、DB、CB
演示
INTA A0 CS D0-D7
RD WR INT CAS0 CAS1 CAS2
INTA A0 CS D0-D7 RD WR INT
INTA A0 CS D0-D7 RD WR INT CAS0 CAS1 CAS2
8259A (从片1)
8259A (从片2)
4
2. 与处理器接口(读写控制逻辑部分)
A0 RD* WR* CS* 0 1 0 1 × × 1 1 0 0 1 × 0 0 1 1 1 × 0 0 0 0 0 1 功能 写入ICW1、OCW2和OCW3 写入ICW2~ICW4和OCW1 读出IRR、ISR和查询字 读出IMR 数据总线高阻状态 数据总线高阻状态
注:ICW—初始化命令字,OCW—操作命令字
5
3. 中断级连
单片8259A可支持8个中断源; 采用多片8259A级连,可最多支持64个中断源。N片 8259A可以支持8*N-(N-1)个中断源 级连时只能有一片8259A为主片,其余的均为从属片; 涉及到的8259A引脚包括:
中断操作编程
20
8259A内部寄存器的寻址方法
A0 RD* WR* CS* 0 1 0 1 × × 功能
需要 、A0、RD#、WR# 和 D DOCW3 1 CS# 0 0 写入ICW1 、 OCW2 4、和 3的配合
内部寄存器的访问方法如下表:
1 0 0 1 ×
0 1 1 1 ×
0 0 0 0 1
8259A的工作方式(理解)
普通全嵌套方式 优先权固定方式 特殊全嵌套方式 设置优先权方式 自动循环方式 优先权循环方式 特殊循环方式 自动中断结束方式 结束中断处理方式 普通中断结束方式 非自动中断结束方式 特殊中断结束方式 普通屏蔽方式 屏蔽中断源方式 特殊屏蔽方式 边沿触发方式 中断触发方式 电平触发方式 缓冲方式 数据线连接方式 非缓冲方式
CAS0-CAS2 : 主8259A的三条级连线CAS0~CAS2作为输出线, 连至每个从8259A的CAS0~CAS2 SP*/EN*:在非缓冲方式下,规定该8259A是主片(SP*=1)还是 从片(SP*=0) IRi : 每个从8259A的中断请求信号INT,连至主8259A的一个中断 请求输入端IR INT :主8259A的INT线连至CPU的中断请求输入端
8259A中断控制器 原理及应用 (6.3节)
8259A中断控制器
Intel 8259A是可编程中断控制器PIC 可用于管理Intel 8080/8085、8086/8088、 80286/80386的可屏蔽中断 8259A的基本功能
一片8259A可以管理8级中断,可扩展至64级 每一级中断都可单独被屏蔽或允许 在中断响应周期,可提供相应的中断向量号 8259A设计有多种工作方式,可通过编程选择
ICW3——级连控制字
A0 1
D7 S7
D6 S6
D5 S5
D4 S4
D3 S3
D2 S2
D1 S1
D0 S0
主片的级联控制字 (位映像方式)
Si=1 对应IRi线上连接了从片
D7 0 D6 0 D5 0 D4 0 D3 0 D2 ID2 D1 ID1 D0 ID0
A0 1
•
从片的级联控制字 (编码方式)
B.
主8259A
IR0 IR1 IR2
一般嵌套方式: IR4 的中断被服务 时,这些中断将 被封锁。
C. 一般嵌套方式:
从8259A
IR0
从片的INT被主片封 锁,故更高级别的 IR0-IR2 中断也无法 得到响应
IR1
IR2 IR3
A.
去CPU
IR3
假定IR3发生中 断,并获得服务
INT IR4
IR5
17
5. 中断触发方式
边沿触发方式
8259A将中断请求输入端出现的 上升沿作为中断请求信号 中断请求端出现的高电平是有 效的中断请求信号
电平触发方式
18
6. 数据线连接方式
缓冲方式
8259A的数据线需加缓冲器予以驱动 8259A把SP*/EN*引脚作为输出端(输出允 许信号),用以锁存或开启缓冲器(enable buffer) SP*/EN*引脚为输入端(slave program) 若8259A级连,由其确定是主片(sp=1)或从 片 (sp=0)
1. 中断控制
中断请求寄存器IRR
保存8条外界中断请求信号IR0~IR7的请求状态 Di位为1表示IRi引脚有中断请求;为0表示无请求 保存正在被8259A服务着的中断状态 Di位为1表示IRi中断正在服务中;为0表示没有被服务
中断服务寄存器ISR
中断屏蔽寄存器IMR
保存对中断请求信号IR的屏蔽状态 Di位为1表示IRi中断被屏蔽(禁止);为0表示允许 (与IF标志位的规定相反)
8259A的初始化顺序
8259的初始化流程如图 (注意次序不可颠倒 )
写ICW1 写ICW2 N
级连?
Y 写ICW3 N
需ICW4?
Y 写ICW4
8259A的控制命令字
初始化8259A必须从ICW1开始
写ICW1意味着重新初始化8259A 写入ICW1后,8259A的状态如下:
ID2~ID0 标识码,说明本从片连接到主片的哪个 IR引脚上。 000~111分别对应IR0~IR7。
ICW3——级连控制字(续)
ICW3必须与主从片的连接关系一致: 例如,主片的IR4与从片的INT线连接,则 主片的ICW3=10H,从片的ICW3=04H。 中断响应时,主片通过级连线CAS2-CAS0 送出被允许中断的从片标识码,各从片用 自己的ICW3与CAS2-CAS0比较,二者一致 的从片才可发送中断向量码。
CAS0 CAS1 CAS2
8259A (主片)
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
SP/EN IR7 IR6 IR5 IR4 IR3 IR2 IR1 IR0
VCC
8259A的工作过程
15
结束中断处理方式(续)
自动中断结束方式AEOI
在第2个INTA#结束时,由8259A使ISRi自动复位 配合全嵌套(固定)优先权方式使用 当CPU用输出指令往8259A发出普通中断结束EOI命令 时,8259A就会把所有正在服务的中断中优先权最高 的ISR位复位 配合循环优先权方式使用 CPU在程序中向8259A发送一条特殊中断结束命令, 这个命令中指出了要清除哪个ISR位
INT IR4
IR5
IR6 IR7
IR6
IR7
E.
D. 特殊嵌套方式: IR4 的 中 断 被 服
务时,只封锁 IR5-IR7。
特殊嵌套方式: 因主片不封锁从片的 INT ,故级别高的 IR0IR2 中断可以得到响应。 (但IR3-IR7仍被本从片 封锁)
2、循环优先级方式
中断源轮流处于最高优先级,某中断请求IRi被 处理后,其优先级别自动降为最低,原来比它 低一级的中断上升为最高级
特殊全嵌套方式
11
特殊全嵌套方式
一中断正被处理时,允许同级或更 高优先级的事件可以打断当前的中 断处理过程而被服务。(参阅教材 P190—P191)
注: 特殊全嵌套仅用于多个8259A级 连时的主8259A,而不能用于从 属8259A或单8259A系统。
普通(一般)全嵌套方式 VS. 特殊全嵌套方式
非自动中断结束方式1:普通中断结束方式EOI
非自动中断结束方式2:特殊中断结束方式SEOI
16
4. 屏蔽中断源方式
普通屏蔽方式 将IMR的Di位置1,则对应的中断IRi被屏蔽,该 中断请求不能从8259A送到CPU 如果IMR的Di位置0,则允许IRi中断产生 特殊屏蔽方式 使用场合:在执行较高级的中断服务时,希望开放 较低级的中断请求。 原理:将IMR的Di位置1,对应的中断IRi被屏蔽的 同时,使ISR的Di位置0。假定当前正在处理IR6, 先进入特殊屏蔽方式,然后设置IM6=1。这时, 除IR6外的所有中断请求均能得到响应。 特殊屏蔽方式中只能用SEOI命令结束中断。
2
8259A的内部结构和引脚
INTA 控制逻辑 D7~D0 数据 总线 缓冲器 读 /写 控制 逻辑 级联 缓冲器 比较器 INT 中 断 请 求 寄 存 器
RD WR A0 CS CAS0 CSA1 CAS2 SP/EN
3
中 断 服 务 寄 存 器
优 先 权 判 别 电 路
IR0
IR7
中断屏蔽寄存器
写入ICW2~ICW4和OCW1 读出IRR、ISR和查询字 读出IMR 数据总线高阻状态 数据总线高阻状态
CS# RD# WR# A0 D4 D3 0 0 0 0 0 1 0 1 0 0 1 x 1 x x 0 0 1 0 1 x x
读写操作 写OCW2 写OCW3 写ICW1 写ICW2,ICW3,ICW4,OCW1(顺序写入) 读出IRR、ISR 读出IMR