8259A 可编程中断控制器

本文介绍了8259A可编程中断控制器的工作原理和技术细节,包括其内部寄存器的功能、中断处理流程以及如何通过编程进行配置。探讨了8259A在IBM PC中的应用,以及如何管理多达64个中断源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CPU的中断向量范围为 0--255 , 其中 0--31 cpu 保留使用。中断源可分为外部中断( Extenal Interrupts) 和软中断 (Software-Genrated Interrupts).

CPU处理的各种中断中,对于来自外部的硬件中断由可编程中断控制器 (PIC) 控制, 8259A 就是其中一种。

    单个8259A 可连接 8 个中断源,最多可级联 9 个,所以可接受 64 个中断源,在 IBM PC 机上级联了两个 8259A ,可共接收 15 个中断源。

    在总线的控制下,8259A可处于编程状态和操作状态,CPU通过使用IN OUT最新片进行编程,芯片包含中断请求寄存器(IRR),中断屏蔽寄存器(IMR),正在服务寄存器(ISR),优先级解析器。

    IRR:保存输入的中断请求,寄存器的8位对应IRQ0--IRQ7。

    IMR:保存被中断的请求,8位寄存器中哪位为1表示IRQ1--IRQ7中相应中断被屏蔽。

    ISR:保存正在服务的中断请求。

    优先级解析器:用来选取优先级高的中断先处理。IRQ向量越低优先级越高。

   

    中断处理过程:

1.中断信号到来,IMR根据初始化设置判断该终端是否被屏蔽,如果没有屏蔽,送到IRR

2.优先级解析器取出优先级最高的终端,发送INT信号到CPU,在CPU完成当前指令后会向芯片发送INTA型号,8259A收到信号后把终端放到ISR中,同时复位IRR中相应位,表示中断正在处理

3.CPU先芯片发出第二个INTA,通知8259A发送中断信号,行骗将中断向量发到数据总线供CPU读取

4.CPU处理中断,周期结束。

 

    中断结束方式:

1.AEOI(Automatic End of Interrupt),在第二个INTA结尾处,ISR中当前服务比特位自动复位。

2.非自动,中断服务结束后,服务程序向8259A发送EOI命令,复位ISR中相应比特位。

 

       编程方式:

1. 每个8259A有两个端口用于编程,Master 0x20、0x21, Slave 0xA0、0xA1。

2. 可以通过端口想芯片写入两种命令字,ICWS, OCWS。ICW 用于初始化,OCW用处操作。

 

      I/O端口及所能操作的控制字和寄存器:

1. 0x20, Master    ICW1 OCW2 OCW2 IRR ISR

2. 0x21, Master    ICW2 ICW3  ICW4  IMR

3. 0xA0, Slave      ICW1 OCW2 OCW2 IRR ISR

4. 0xA1, Slave      ICW2 ICW3  ICW4  IMR

 

     控制字介绍:

1. ICW1: 用于向8259A发初始化命令,是初始化命令序列的第一条,表示初始化的开始。

    位0, 1=need ICW4、0=not need ICW4

    位1, 1=single、0=cascaded(级联)

    位2,

    位3, 1= level triged 、 0=edge triged

    位4, 恒为1

    位5--8,

 

 未完待续。。。。。

 

    

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值