第八章-中断及异常-2_第1页
第八章-中断及异常-2_第2页
第八章-中断及异常-2_第3页
第八章-中断及异常-2_第4页
第八章-中断及异常-2_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8.8中断优先级管理器8259APIC

一、引言二、8259A的引脚、编程结构和工作过程三、8259A的编程1.设置中断屏蔽字2.发中断结束命令EOI四、8259A在微机系统中的应用一、引言中断申请管理接口INT中断申请接口1网络接口2硬盘接口3软盘接口4打印机8088CPUINTRIF1.向CPU的引脚INTR发中断申请信号当有多个外设同时发出中断请求时,能按照一定的优先级顺序,向CPU发出中断申请,使CPU能优先响应优先级最高的外部设备的中断申请。2.送中断类型号在CPU中断响应周期,针对不同外设的中断请求,向CPU传送不同的中断类型号,使CPU执行相应的中断子程。中断申请管理接口的主要功能:在IBMPC机由8259A可编程中断控制器(PIC)来完成。二、8259A的引脚、编程结构和工作过程1.

8259A的引脚

2.

8259A的编程结构

3.

8259A的工作过程1.

8259A的引脚

双列直插式芯片,28个引脚

方波键盘保留串口2

硬盘软盘打印机IOW18.2HzA0CS8259A总线A0数据线

IORRDWR片选译码IR0IR1IR2IR3IR4IR5IR6IR7A5~A9D0~D7D0~D7VccSP/ENCAS0CAS1CAS2GND+5V20~3FH用于多片8259A级连情况INTAINT

INTA

INTR串口1

定时器2.8259A的编程结构SP/ENCAS0CAS1CAS2IORIOW总线D0~D7数据线D0~D7INTAINTRA0片选译码A5~A9CSA0RD

INTAWRINT×

××

1×I3I4ICW1芯片控制

ICW2中断类型号

ICW3主从片连接关系

ICW4方式控制0111A010010100OCW1中断屏蔽寄存器IMR

00

OCW2优先级设置、发EOI

01

OCW3特殊屏蔽,查询方式设置处理部分控制部分00000000

ISR当前中断服务寄存器PR优先级裁决器VCCGND100A0IR0IR1IR2IR3IR4IR5IR6IR7IRR中断申请寄存器00000000

2.8259A的编程4个初始化命令寄存器ICW1、ICW2ICW3、ICW43个操作命令寄存器OCW1(IMR)OCW2、OCW3当前中断服务寄存器ISR中断申请寄存器IRR

8259A内部有9个可读写的寄存器8259A的编程结构×

×

×1L×

I3I4ICW1

芯片控制

000ICW2

中断类型号

ICW3

主从片关系000

ICW4

方式控制处理部分控制部分00000000ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000

中断屏蔽寄存器IMROCW2

10010100

00

01

OCW3OCW18259A中断控制器初始化命令字(ICW1-ICW4)决定8259A的工作方式通常是在计算机系统启动时在初始程序设置,一旦设定,一般在系统工作过程不再改变。操作命令字(OCW1,OCW2,OCW3)在应用程序中设定,动态地控制CPU处理中断的过程ISR和IRR存放当前8259A的状态

通过读取ISR和IRR的内容,可了解当前8259A工作情况分两步:

(1)处理外设中断申请,决定是否向CPU发中断申请信号。(2)若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号。3.8259A的工作过程中断屏蔽寄存器IMR决定IRR中的中断申请是否进入优先级裁决器PR。IMR对应位为0,允许中断申请进入优先级裁决器, 为1,不允许进入,中断申请被IMR屏蔽。中断申请寄存器IRR锁存外部的中断申请。若IR0~IR7引脚上有中断申请,则将IRR相应位置1当前中断服务寄存器ISR记录CPU正在响应的中断。

ISR中的某位为1,表示CPU正在响应此级中断,

ISR中的某位为0,表示CPU没有或已响应完此级中断,优先级裁决器PR据新进入的中断申请和ISR的内容,

决定是否发中断申请信号。

如果进入的中断申请比ISR中记录的中断优先级高,则通过8259A的INT引脚向CPU发出中断请求信号;如果进入的中断申请不比ISR中记录的中断优先级高,同级或低级,则不向CPU发中断请求信号。(1)处理外设中断申请,决定是否向CPU发中断申请信号①

中断申请寄存器IRR锁存外部的中断申请。若IR0~IR7引脚上有中断申请,则将IRR相应位置1IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器00000000

10010100INTR11②中断屏蔽寄存器IMR决定IRR中的中断申请是否进入优先级裁决器PR。IMR对应位为

0,允许中断申请进入优先级裁决器,为1,不允许进入,中断申请被IMR屏蔽。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器00000000

10010100INTR11③

当前中断服务寄存器ISR记录CPU正在响应的中断。ISR中的某位为1,表示CPU正在响应此级中断,即正在执行此中断源的中断子程;ISR中的某位为0,表示CPU没有或已响应完此级中断,即不在执行此中断源的中断子程IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器00000000

10010100INTR11④优先级裁决器PR据新进入的中断申请和ISR的内容,决定是否发中断申请信号。

如果进入的中断申请比ISR中记录的中断优先级高,则通过8259A的INT引脚向CPU发出中断请求信号;如果进入的中断申请不比ISR中记录的中断优先级高,同级或低级,则不向CPU发中断请求信号。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器00000000

10010100INTR11(2)若发中断申请信号,且CPU响应,则在CPU中断响应周期送出中断类型号

CPU接收到INTR上的中断申请信号后:如果IF标志为0,则CPU不响应此中断申请信号,

即中断申请被IF屏蔽。如果IF标志为1,则处理完当前的指令后,进入中断响应周期通过INTA引脚发出两个负脉冲信号,从数据总线上获取中断类型号,进入中断响应的过程。向量类型

INTACLKAD7~AD0T1T2T3T4第一个中断响应周期T1T2T3T4第二个中断响应周期

8088CPU中断响应周期时序①将ISR中相应位置1,表示CPU响应此级中断,执行此中断源的中断子程。8259A在接收到第一个INTA中断响应信号后:001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级裁决器IRR中断申请寄存器10000001

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置10010100IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RDWR

INTAINTD0~D7INTR01②把IRR中对应的位清0,清除IRR中锁存的中断申请信号。①通过数据线,将被响应申请的中断类型号送给CPU。类型号由ICW2提供,在初始化8259A时已设定好。8259A在接收到第二个INTA中断响应信号后:001

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7PR优先级裁决器IRR中断申请寄存器10000001

ICW1

芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置10010100IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RDWR

INTAINTD0~D7INTR01②CPU获得中断类型号后,进入CPU响应中断的过程,执行中断子程,处理中断源申请的功能。①取中断类型号N②当前PSW的内容入栈③清IF、TF标志为0④当前CS的内容入栈⑤当前IP的内容入栈⑥取内存单元(0:N×4)字内容送IP取中断子程⑦取内存单元(0:N×4+2)字内容送CS入口地址此时CS:IP指向中断程序的入口,开始执行中断程序。保存现场CPU响应中断过程:执行完中断子程中最后一条指令IRET后,返回被中断处,继续执行被中断的程序。三、8259A的编程1.8259A的编程2.8259A的编程方法

(1)设置中断屏蔽字(2)发中断结束命令EOI4个初始化命令寄存器ICW1、ICW2ICW3、ICW43个操作命令寄存器OCW1(IMR)OCW2、OCW3当前中断服务寄存器ISR中断申请寄存器IRR

8259A内部有9个可读写的寄存器1.8259A的编程

1

I3I4ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制处理部分控制部分00000000

ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000

中断屏蔽寄存器IMROCW2

10010100

00

01

OCW3OCW18259A中断控制器8259A有两个I/O端口地址A0=0偶地址端口A0=1奇地址端口

对9个寄存器的读写均通过这两个端口实现写入数据的特征位写入的先后顺序区分是对哪个寄存器进行操作根据

1

I3I4ICW1

芯片控制

ICW2

中断类型号

ICW3

主从片关系

ICW4

方式控制处理部分控制部分00000000

ISR当前中断服务寄存器PR优先级裁决器IRR中断申请寄存器00000000

中断屏蔽寄存器OCW2

10010100

00

01

OCW3OCW18259A中断控制器D0~D7A0CSRDWR80111A0100A0(1)通过中断屏蔽寄存器IMR的读写,设置中断屏蔽字(2)通过OCW2操作命令寄存器,发中断结束EOI命令2.8259A的编程方法8259A有多种工作方式,这些工作方式均可编程选择,使用相当灵活。通过往寄地址端口写入IMR内容实现对应位为0,允许该级中断申请进入对应位为1,禁止该级中断申请进入(1)设置中断屏蔽字IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTR新增允许IR2的中断申请INAL,21H;读入原IMR的内容ANDAL,11111011B;D2=0,允许IR2的中断申请OUT21H,AL;写入IMR禁止IR4的中断申请INAL,21H;读入原IMR的内容ORAL,00010000B;D4=1,禁止IR4的中断申请OUT21H,AL;写入IMR例已知IBMPC/XT系统中8259A的奇地址端口地址为21H设置完成后的结果:IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制00000000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010000INTR(2)发中断结束命令EOI由8259A的工作过程可知:ISR中的内容是优先级裁决器进行裁决的重要依据CPU响应某级中断后,8259A自动将ISR的对应位置1,如果CPU已执行完中断子程,而ISR中的对应位仍为1,8259A的优先级裁决器仍会据ISR的内容做裁决,从而会屏蔽同级或低级的中断申请。在中断响应后,对ISR中相应位的清0很重要,它是8259A认为中断结束的标志。IORIOW总线数据线D0~D7INTAA0片选译码A5~A9CSA0RD

INTAWRINTD0~D7

ICW1

芯片控制

ICW2中断类型号

ICW3

主从片关系

ICW4方式控制101

00000

ISR当前中断服务寄存器IR0IR1IR2IR3IR4IR5IR6IR7OCW1

中断屏蔽寄存器IMR

00

OCW2

优先级、发EOI

OCW3特殊屏蔽设置PR优先级裁决器IRR中断申请寄存器10000001

10010100INTR一、初始化8259A时,设置8259A工作方式为自动清0方式,则在CPU响应中断后,硬件自动将ISR的对应位清0。清ISR内容的方法有两种:二、初始化8259A时,设置8259A工作方式为非自动清0方式,需在中断子程中,通过软件方式清0。方法是:通过往OCW2写入20H实现,即由偶地址端口写入:

EOI00100000特征位,表示对OCW2操作20H编程在中断子程IRET返回前,发中断结束命令EOI例

已知IBMPC系统中,8259A的偶地址端口地址为20H;

BIOS初始化8259A时,设置8259A工作方式为非自动清0方式。intsubPROC、、、、、、、、、

MOVAL,20H;将中断结束命令字20H送AL

OUT20H,AL;写入OCW2中

IRET;中断返回intsubENDP四、8259A在IBMPC/XT系统中的应用1.8259A与系统的连线。2.BIOS初始化程序对8259A的设置。1.与系统的连线+5V

CLKRESETREADYMN/MXVCCRDQS0QS1LOCKTESTHIGHNMIGNDGND地址锁存器8282(两片)STB

数据收发器OE8286T

MRDC8288MWTC总线IORC控制器IOWCINTA8259A及有关电路DT/RDENALE地址总线数据总线控制总线PC总线A15~A8S6~S3/A19~A16AD7~AD08088CPUS

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论