190 likes | 329 Views
中断系统与中断控制器. 中断系统功能与组成 中断系统应具有的功能 多中断源请求,软件可禁止与允许每个请求。 中断优先级判别功能,响应优先级别最高的请求。 中断嵌套功能,高级别中断可中断较低级别的中断。 响应中断后,能自动转向中断处理程序,处理结束后自动返回主程序。. 中断系统与中断控制器(续). 中断系统功能与组成(续) 中断系统的组成 微处理器应有处理中断请求的机制与相关硬件电路:接收请求,响应请求,保护现场,转向中断服务程序,处理完返回。 外围应有一个与处理器匹配的中断控制器:管理多个中断源,优先级裁决,中断源屏蔽等功能。
E N D
中断系统与中断控制器 • 中断系统功能与组成 • 中断系统应具有的功能 • 多中断源请求,软件可禁止与允许每个请求。 • 中断优先级判别功能,响应优先级别最高的请求。 • 中断嵌套功能,高级别中断可中断较低级别的中断。 • 响应中断后,能自动转向中断处理程序,处理结束后自动返回主程序。
中断系统与中断控制器(续) • 中断系统功能与组成(续) • 中断系统的组成 • 微处理器应有处理中断请求的机制与相关硬件电路:接收请求,响应请求,保护现场,转向中断服务程序,处理完返回。 • 外围应有一个与处理器匹配的中断控制器:管理多个中断源,优先级裁决,中断源屏蔽等功能。 • 依处理器的结构编写中断处理程序,安排相关的系统初始化。
中断系统与中断控制器(续) • 中断控制器:Intel 8259A可编程中断控制器 • 8259A的内部结构框图说明: • 中断请求寄存器(IRR):8位寄存器,可寄存储 8 个请求输入(IR0~IR7)的状态。 • 优先权裁决器:对请求源与正在被服务的中断级进行比较,裁决出优先级最高者。 • 中断在服务寄存器(ISR):8位,与IRR对应,记录正被处理的请求。IRn被响应,ISRn被置1;IRn处理结束, ISRn置0。
中断系统与中断控制器(续) • 8259A的内部结构框图说明(续) • 中断屏蔽寄存器(IMR):8位,某位置1对应IRR位的请求被屏蔽。 • 控制逻辑:寄存8259A的命令字,多种工作方式的控制,向处理器发INT,接收INTA#。 • 级联缓冲与比较器:多片8259A级联时,对从片的标识码进行寄存与比较。
INTA# INT 控制逻辑 总线 缓冲器 D7~D0 IR0 中断在 服务寄 存器ISR 优先 权裁 决器 中断请 求寄存 器IRR IR1 : RD# 读 / 写 逻辑 : WR# IR6 A0 IR7 CS# CAS0 级连缓冲器 / 比较器 CAS1 中断屏蔽寄存器IMR CAS2 SP# / EN# 8259A 内部结构框图
中断系统与中断控制器(续) • 中断控制器: • 8259A的主要引脚信号说明 • D7~D0:数据总线,双向,与系统数据线连接。 • CS#:片选信号,确定芯片在系统I/O空间位置。 • A0: 地址线,8259A占相邻的2个I/O地址,与CS#信号配合,A0=0选偶端口,A0=1选奇端口。 • CAS2~CAS0:级联线,双向。在主从级联结构中,主片输出,从片输入。主片发从片标识码,从片比较,符合时输出中断类型码。
中断系统与中断控制器(续) • 中断控制器: • 8259A的主要引脚信号说明 • SP#/EN#:双向信号。输入时为SP#,硬接线确定主从;输出时为EN#,作为DB缓冲允许。 • INT:中断请求,输出,与相连。 • INTA#:中断响应,输入,与8086INTA#相连。
中断控制器: • 8259A的级连 IR0 IR1 IR2 : : IR7 INTA# INT 8259A 最 多 64 条 中 断 请 求 线 CAS0 CAS1 CAS2 SP#/EN# CAS0 CAS1 CAS2 SLAVE0 ; 8086 INTA# INT IR0 IR1 IR2 : : IR7 SLAVE1 SLAVE2 8259A : +5 IR0 IR1 IR2 : : IR7 INTA# INT SP#/EN# MASTER 8259A CAS0 CAS1 CAS2 SP#/EN# SLAVE7
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的工作方式(续) • 优先级方式选择 • 全嵌套方式:固定优先级,IR0最高,IR7最低。 • 特殊全嵌套:与a)基本相同,响应同级中断请求 • 优先级自动循环:某级被响应后,降为最低。如IR4被响应后,优先级顺序变为:IR5,IR6,IR7,IR0,IR1,IR2,IR3,IR4。 • 优先级特殊循环方式:编程指定最低优先级,其它同C)。
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的工作方式(续) • 屏蔽中断方式选择 • 普通屏蔽方式选择:对应IMR为1位的中断请求将被屏蔽。 • 特殊屏蔽方式: 执行中断程序时,动态改变优先级结构,屏蔽本级,允许较低级请求被服务。
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的工作方式(续) • 中断结束方式:ISRn被清0,中断结束。 • 自动结束方式:8259A收到INTA#后自动把ISRn位清0。 • 一般结束方式:8086发命令清除ISR中级最高的位,结束中断。 • 特殊结束方式:将ISR中指定位清0。
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的命令字 (Command word, CW): 8259A工作方式设定及运行中的控制,均由8086 发来的命令字(1字节代码)决定。命令字分初始 化命令字和操作命令字两种,系统向8259A两个 端口之一写入。8259A根据接收命令字的端号, 特征位及顺序决定命令字的属性。 • 初始化命令字(Initialization Command Word,ICW)有ICW1~ICW4四个初始化命令字,有接收顺序要求。
8259A初始化流程 A0 D7 D6 D5 D4 D3 D2 D1 D0 ICW1 0 A7 A6 A5 LTIM ADI SNGL IC4 1 (chip control) 8085 用于8085 ICW2 1 A15/T7 A14/T6 A13/T5 A12/T4 A13/T3 A10 A9 A8 (type) 用于8085 Y SNGL=1 ? N ICW3 1 S7 S6 S5 S4 S3 S2/ID2 S1/ID1 S0/ID0 (slave control) N IC4=1 ? ICW4 1 0 0 0 SFNM BUF M/S AEOI u PM (mode control) 可中断
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的命令字 (Command word, CW)(续) • 初始化命令字(Initialization Command Word,ICW) • ICW1:硬件设置 LTIM=1中断请求电平触发, LTIM=0中断请求边沿触发。 SNGL=1单片8259A系统,SNGL=0多片8259A系统。 • ICW2:中断类型码设定,最低3位由IRn的n值定。 • ICW3:在多片8259A系统中依主片、从片而定。 主片: 有1位其IR连有从片用8位。 从片: INT连到主片IR哪端,用最后3位。
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的命令字 (Command word, CW)(续) • 初始化命令字(Initialization Command Word,ICW) • ICW4:工作方式设定 SFNM=1特殊全嵌套、SFNM=0非特殊全嵌套。 AEOI=1中断自动结束、AEOI=0一般中断结束。 BUF=0,DB无缓冲,SP#/EN#用作SP#。 BUF=1,DB有缓冲,主从片软件定。 M/S=1为主片、M/B=0为从片。 PM=1,8086系统、 PM=0,8085系统。
中断系统与中断控制器(续) • 中断控制器(续) • 8259A的命令字 (Command word, CW)(续) • 操作命令字:(Operation Command Word,OCW) 共有OCW1~OCW3三个操作命令字。8259A在运行期间 可接收8086发来的OCW,对工作方式进行控制,OCW 无接收顺序要求,有端口号要求。 • OCW1:屏蔽命令字,有1位对应请求被封。 • OCW2:优先级循环及EOI方式设定。 • OCW3:特殊屏蔽方式,中断查询方式及读寄存器。
操作命令字 (OCW1) D7 D6 D5 D4 D3 D2 D1 D0 A0 1 M7 M6 M5 M4 M3 M2 M1 M0 1=MASK SET 0=MASK RESET
操作命令字 (OCW2) D7 D6 D5 D4 D3 D2 D1 D0 A0 0 R SL E0I 0 0 L2 L1 L0 操作命令作用的 IR 级 0 1 2 3 4 5 6 7 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 1 1 NON--SPECIFIC E0I COMMAND 0 0 1 END OF INTERRPT SPECIFIC E0I COMMAND 0 1 1 ROTATE ON NON-SPECIFIC E01 COMMAND 1 0 1 AUTOMATIC ROTATION ROTATE IN AUTOMATIC E01 MODE(SET) 1 0 0 ROTATE IN AUTOMATIC E01 MODE(CLEAR) 0 0 0 ROTATE ON SPECIFIC E0I COMMAND 1 1 1 SEPCIFIC ROTATION SET PRIORITY COMMAND 1 1 0 0 1 0 NO OPERATION
操作命令字 (OCW3) D7 D6 D5 D4 D3 D2 D1 D0 A0 0 0 ESMM SMM 0 1 P RR RIS 1 0 RESET SPECIAL MASK 0 1 1 1 READ IR REG READ IS REG SET SPECIAL MASK 1 1 1 0 ESMM=0 NO ACTION POLL NO POLL COMMAND COMMAND