8259A芯片使用方法
D
CAS2~CAS0:级联控制线,主片的CAS2~CAS0与从片的CAS2~CAS0对应相连。对于主片,CAS2~CAS0为输出信号;对于从片,CAS2~CAS0为输入信号。当从片发起的中断请求被响应时,主片通过CAS2~CAS0送出相应的编码给从片,告诉从片该中断请求被允许。
IR7~IR0:中断请求输入信号,由外设输入。上升沿(边沿触发方式)或高电平(电平触发方式)表示有中断请求到达。
VCC:+5V电源输入信号。
GND:电源地
内部结构
8259A的内部结构如下图所示:
8259A的内部结构图
数据总线缓冲器
数据总线缓冲器为三态、双向、8位寄存器。数据线D7~D0与CPU系统数据总线连接,构成CPU与8259A之间信息传送的通道。
读/写控制逻辑
读/写控制逻辑用来接收来自系统总线的读/写控制信号和端口地址寻址信号,用于控制8259A内部寄存器的读/写操作。
级联缓冲/比较器
8259A既可以工作于单片方式,也可以工作于多片级联方式。级联缓冲/比较器提供多片8259A的管理和选择功能,其中一片为主片,其余为从片。
中断控制逻辑
中断控制逻辑按照编程设定的工作方式管理中断,负责向片内各部件发送控制信号,向CPU发送中断请求信号INT和接收CPU回送的中断响应信号Error! No bookmark name given.,控制8259A进入中断管理状态。
中断请求寄存器(interrupt request register,IRR)
IRR是一个8位(D0~D7)寄存器,它接受并锁存来自IR0~IR7的中断请求信号,也就是说它记录着当前的中断请求。D0~D7与中断请求信号IR0~IR7对应,当IRi(i=0~7)上出现中断请求信号时,对应的Di置1。因为同一时刻可能有多个中断请求到达,因此IRR可能有多个位置1。
第一个中断响应信号到达后(CPU在对8259A的中断请求INT进行响应时,会连续返回两个中断响应信号,产生两个中断响应总线周期),如果8259A决定使IRi得到响应,则会将对应的Di清除。
第一个中断响应脉冲到达后,IRR锁存功能失效,不接受IR0~IR7上的中断请求信号;直到第二个中断响应脉冲结束后,IRR锁存功能才得以恢复。
中断服务寄存器(interrupt service register,ISR)
ISR是一个8位(IS0~IS7)寄存器,用于记录CPU当前正在服务的中断。IS0~IS7与中断请求信号IR0~IR7对应。第一个中断响应脉冲达到后,如果8259A决定使IRi得到响应,则会将对应的ISi(i=0~7)置1,表示IRi正在被服务。ISi的复位则由8259A中断结束方式决定。若8259A被设置为自动结束方式,ISi会在第二个中断响应脉冲的后沿被自动复位为0;若8259A被设置为非自动结束方式,则Di应由其对应的中断服务程序发送来的中断结束命令(EOI)复位。
ISi置1可阻止与其同级或更低优先级的中断请求被响应,但不能阻止比其优先级高的中断请求被响应,即允许中断嵌套。因此,ISR中可能不止一位被置1。
中断屏蔽寄存器(interrupt mask register,IMR)
IMR是一个8位(IM0~IM7)寄存器,用来存放IR0~IR7的中断屏蔽标志。IM0~IM7与中断请求信号IR0~IR7对应,用于屏蔽IRi。当IMi=1时,对应的IRi中断请求被禁止;IMi=0时,对应IRi中断被开放。
优先权判决器(priority register,PR)
优先权判决器将IRR中记录的当前中断请求与ISR中记录的CPU正在服务的中断按中断优先级排队并进行比较,如果IRR中优先级最高者的优先级高于ISR中优先级最高者,则由中断控制逻辑向CPU发出中断请求信号INT,使CPU暂停当前的中断服务,转而响应IRR中优先级最高者,即进行中断嵌套;否则8259A不向CPU发起中断请求INT,CPU继续当前的工作。
8259A的工作过程
接受来自IR0~IR7的中断请求,使IRR的对应位置1。
PR对IRR中记录的且未被屏蔽的中断和IRS中记录的中断进行优先权判决,并决定是否向CPU发起中断请求INT。如果IRR中优先级最高者的优先级高于ISR中优先级最高者,则向CPU发出中断请求信号INT,否则不发出。
CPU收到INT,如果IF=1,则待当前执行的指令结束后连续返回给8295A两个中断响应信号
。
8295A收到第一个中断响应信号后
使IRR的锁存功能失效,不再接受中断请求,直到第二个中断响应信号结束后恢复。
对IRR
8259A芯片使用方法 来自淘豆网m.daumloan.com转载请标明出处.