第9章中断控制器计数定时控制器及DMA控制器郑学坚周斌《微型计算机原理及应用》

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1电子信息类专业学科基础课程物理与电子信息学院1授课教师:侯俊钦微机原理第九章中断控制器、计数/定时控制器及DMA控制器2第9章中断控制器计数/定时控制器及DMA控制器章节目录可编程中断控制器8259A可编程计数/定时控制器8253123可编程DMA控制器8237A31可编程中断控制器8259A8259A的主要功能专门处理和管理中断事务的接口芯片基本功能接受中断申请;并为中断分配指定中断类型码判优及嵌套管理中断屏蔽管理中断结束管理其他功能单片8259A可以连接8个中断源多片8259A级联后,可以接入最多64个中断源经判优后,最终选择一个送INTR引脚通过数据总线,自动地向CPU发送中断类型号基本功能具有多种不同的管理策略称为:8259的工作方式其工作状态和操作方式,可通过编辑和输入命令字的方式进行设置、确定和更改称为“可编程”41可编程中断控制器8259A名称输入/输出功能CS输入片选信号WR输入写命令信号RD输入读命令信号D7-D0输入/输出双向数据总线CAS0-CAS3输入/输出级联总线SP/EN输入/输出主从定义/缓冲器方向INT输出8259A中断申请IR0-IR7输入外设的中断请求INTA输入中断响应信号A0输入A0地址线8259A的外部结构及引脚功能5级联信号从设备编程/缓冲器允许引脚内部寄存器选择。A0=0:ICW1,OCW2,OCW3A0=1:ICW2~ICW4,OCW1片选信号读、写信号1可编程中断控制器8259A中断请求中断响应数据线中断请求输入8259AINTAVCCA0IR7IR6IR3IR2IR4IR5IR1IR0INTENSP/CAS228272625242322212019181716151234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GND8259A的外部结构及引脚功能68259A的内部结构及功能1可编程中断控制器8259A6内部数数据总线中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)IR07654321中断屏蔽寄存器IMR数据总线缓冲级联缓冲比较读/写控制逻辑CAS0CAS1CAS2控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑INTINTACSENSP/RDWRA0D7-D0888位的寄存器,用来接收来自IR0~IR7上的中断请求信号,当收到请求信号时就在IRR的相应位置位。外设产生中断请求的方式有两种:一种是边沿触发方式,另一种是电平触发方式。用户可根据需要通过编程来设置。中断请求信号输出入线,高电平有效。与外设的中断请求信号相连,接收来自外设的中断请求。固定优先级方式下IR0优先权最高,IR7优先权最低。8位的寄存器,用来存放中断屏蔽字,它是由用户通过编程(操作命令字OCW1)来设置的。IMRi与IRi一一对应,当IMR中第i位置位时,就屏蔽了来自IRi的中断请求,使锁存于IRRi位的中断请求不能送达优先权裁决电路参加排队,也就是说,禁止了IRi的中断请求获得服务的机会。这样用户就可以根据需要设置IMR的值,从而改变系统原有的中断优先级。它是用来管理和识别各个中断源的优先级的,也分为两种情况。其一,根据优先级的规定,判别同时送达优先权电路的中断源(IRRi=1且IMRi=0的位)那一个级别最高。其二,根据当前服务寄存器的状态和新进入中断优先权裁决电路的中断请求,判别新的中断请求的级别是否更高,以决定是否进入中断嵌套。标记了CPU正在为哪些中断源服务,这又分为两种情况:其一,若CPU不处于中断服务状态,有未被屏蔽的中断请求,CPU满足中断响应条件,将响应这些请求中级别最高的中断。如经中断优先权裁决电路裁决IRi的中断请求被响应,当8259A收到第一个中断响应信号时将使ISRi置“1”,而IRRi清“0”。ISRi置1表明CPU正在为IRi端的中断请求服务;而IRRi由1变0则表示IRi端的中断请求已被响应。其二,若CPU正在为中断源服务,比如正在为IR6端的中断请求服务中,如果IR0又申请中断且没被屏蔽,按8259A的默认优先级IR0高于IR6,因而CPU会暂停IR6的中断处理而响应IR0的中断请求,这样ISR0也被置1,此时IRS0、IRS6均为1,这表明IR0、IR6的中断服务均未结束。从该意义上而言,ISR的每一位都是“中断服务的标志位”。71可编程中断控制器8259A例:如果当前IRR=35H,问有哪几个中断请求尚未被响应?00110101IR7IR6IR5IR4IR3IR2IR1IR0IRR例:如果当前ISR=45H,问有哪几个中断请求已经被响应?如果按照IR0的中断优先级最高,IR7的中断优先级最低排序,当前正在相应的是哪一级中断?ISR01000101IR7IR6IR5IR4IR3IR2IR1IR0当IR6有中断请求时,没有更高级的请求,给与响应。如果按照IR0的中断优先级最高,IR7的中断优先级最低排序,当IR2有中断请求时,优先级高于IR6,中断IR6,给与响应。当IR0有中断请求时,优先级高于IR2,中断IR2,给与响应。有三个中断请求已经被响应(IR6,IR2,IR0),当前正在执行的是IR0的中断服务。81可编程中断控制器8259AISR寄存器中断屏蔽寄存器IMR中断请求优先级编码器中断请求寄存器IRR比较器B0B1B2ABA0A1A2ISR编码ISR7ISR6ISR5ISR4ISR3ISR2ISR1ISR0INTD0……D7IR0IR1IR2IR3IR4IR5IR6IR7中断优先权裁决电路91可编程中断控制器8259A9内部数数据总线中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)IR07654321中断屏蔽寄存器IMR数据总线缓冲级联缓冲比较读/写控制逻辑CAS0CAS1CAS2控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑INTINTACSENSP/RDWRA0D7-D088有一组初始化命令字寄存器(ICW1~ICW4共4个)和一组操作命令字寄存器(OCW1~OCW3共3个),这7个寄存器均由用户根据需要通过编程来设置。控制逻辑可以按照编程所设置的工作方式来管理8259A的全部工作。在IRR中有未被屏蔽的中断请求位时,它可以输出高电平的INT信号向CPU申请中断。在中断响应期间,它使得ISR的相应位置位,并控制向CPU发送相应的中断类型码。在中断服务结束时,它按照编程指定的方式进行结束处理。101可编程中断控制器8259A10内部数数据总线中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)IR07654321中断屏蔽寄存器IMR数据总线缓冲级联缓冲比较读/写控制逻辑CAS0CAS1CAS2控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑INTINTACSENSP/RDWRA0D7-D0888位的双向三态缓冲器,用作8259A与系统数据总线的接口。用来传输初始化命令字、操作命令字、状态字和中断类型码。111可编程中断控制器8259A11内部数数据总线中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)IR07654321中断屏蔽寄存器IMR数据总线缓冲级联缓冲比较读/写控制逻辑CAS0CAS1CAS2控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑INTINTACSENSP/RDWRA0D7-D088它接收来自CPU的读/写命令,完成规定的操作。具体动作由片选信号CS,地址输入信号A0,以及读(RD)和写(WR)信号共同控制。121可编程中断控制器8259A12内部数数据总线中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)IR07654321中断屏蔽寄存器IMR数据总线缓冲级联缓冲比较读/写控制逻辑CAS0CAS1CAS2控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑INTINTACSENSP/RDWRA0D7-D088在级联方式的主−从结构中用来存放和比较系统中各8259A的从设备标志(ID)。其中CAS0~CAS2是8259A相互间连接用的专用总线,用来构成8259A的主−从式级联控制结构。SP/EN在缓冲方式下产生总线启动信号,以控制总线缓冲器的接收和发送.131可编程中断控制器8259A●级联缓冲/比较器一个系统中,8259A可以级联,有一个主8259A,若干个(最多8个)从8259A级联时,主8259A的三条级连线CAS0~CAS2作为输出线,连至每个从8259A的CAS0~CAS2每个从8259A的中断请求信号INT,连至主8259A的一个中断请求输入端IR主8259A的INT线连至CPU的中断请求输入端SP*/EN*在非缓冲方式下,规定该8259A是主片(SP*=1)还是从片(SP*=0)141可编程中断控制器8259ASP/EN:主从片设定/允许缓冲信号,双向双功能,低电平有效。8259数据线与系统数据总线间连接方式采用非缓冲方式(即直接相连,无数据总线驱动器)时,作为输入。主8259接高电平,从8259接低电平。8259数据线与系统数据总线间连接方式采用缓冲方式(即有数据总线驱动器)时,作为输出,用于启动数据总线驱动器。如果工作在缓冲方式并且有级连应用时,作为输出,用于启动数据总线驱动器。主从片的设置用软件解决。●级联缓冲/比较器151可编程中断控制器8259A输入:作为主片时接+5V作为从片时接地8259工作于非缓冲方式161可编程中断控制器8259A8259工作于缓冲方式数据缓冲器输出:作为数据缓冲器的选通信号171可编程中断控制器8259ACAS0IR0CAS1IR1CAS2IR2IR3-INTAIR4IR5INTIR6IR7-SP/-ENCAS0-INTACAS1CAS2INTIR0IR1-SP/-ENIR7CAS0IR0CAS1IR1CAS2IR2IR3-INTAIR4IR5INTIR6IR7-SP/-EN-INTAINTR+5V8259级联工作示意图输出得到响应的从片编号181可编程中断控制器8259A8259A的多片级连方式过程:8259A中断控制器支持级连工作方式,在级连的系统中,由一个主片和若干个从片组成(最大9片可构成64级中断源)。当从片中产生中断请求时,CPU响应中断后,在第一个中断响应负脉冲,由主片通过CASx向从片发出相对应的中断源位置号,在第二个中断响应负脉冲,由被选中的从片向数据总线输出中断类型码。191可编程中断控制器8259A8259级联工作示意图201可编程中断控制器8259A211可编程中断控制器8259A中断向量表物理地址单元内容INT4AH地址单元内容IP=1806HCS=F000HF000:180600000H类型0中断处理程序入口地址MOVAL,300:0124类型49H中断向量00001H0:01250:0126向量地址:4AH*4=0128H0:012700004H类型1中断处理程序入口地址0:012806H0:012918H0:012A00H0:012BF0H00008H…………………………………………0:012C类型4BH中断向量0:012D0:012E0:012F中断处理服务程序IRET003FFH类型FFH中断处理程序入口地址软件中断的工作过程221可编程中断控制器8259A内部数数据总线中断服务寄存器(ISR)中断优先级分析器(PR)中断请求寄存器(IRR)IR07654321中断屏蔽寄存器IMR数据总线缓冲级联缓冲比较读/写控制逻辑CAS0CAS1CAS2控制电路初始化命令寄存器组操作命令寄存器组内部控制逻辑INTINTACSENSP/RDWRA0D7-D088中断请求寄存器D7D6D5D4D3D2D1D000000000111D4D2D0中断屏蔽寄存器D7D6D5D4D3D2D1D000000100D4D0D0去往CPU①请求阶段8259A的工作过程231可编程中断控制器8259A②响应阶段中断请求寄存器D7D6D5D4D

1 / 149
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功