第9中断控制器、计数定时控制器及DMA控制器.ppt

第9中断控制器、计数定时控制器及DMA控制器.ppt

  1. 1、本文档共137页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 中断控制器、计数/定时控制器及DMA控制器 9.1 可编程中断控制器8259A 9.2 可编程计数/定时控制器8253 9.3 可编程DMA控制器8237A 习题 9.1 可编程中断控制器8259A 中断系统是冯·诺依曼结构计算机的一项重要技术,尤其为解决当前高速运算CPU与低速外部设备信息交换之间的矛盾。8086系列有功能很强的中断系统,它可通过8259A可编程中断控制器来实现。 9.1.1 8259A芯片内部结构 8259A可编程中断控制器包括以下8部分,芯片内部结构如图9.1所示。8259A芯片有28条引脚,双列直插式封装,各引脚的信号功能如图9.2所示。 1. 数据总线缓冲器 这是一个双向8位3态缓冲器,由它构成8259A与CPU之间的数据接口,是8259A与CPU交换数据的必经之路。 2. 读/写控制电路 用来接收来自CPU的读/写控制命令和片选控制信息。由于一片8259A只占两个I/O端口地址,可用末位地址码A0来选端口,端口的其他高位地址作为片选信号CS输入。当CPU执行OUT指令时,WR信号与A0配合,将CPU通过数据总线(D7~D0)送来的控制字写入8259A中有关的控制寄存器。 当CPU执行IN指令时,RD信号与A0配合,将8259A中内部寄存器内容通过数据总线(D7~D0)传送给CPU。 3. 级联缓冲/比较器 一片8259A只能接收八级中断从IR7~IR0输入,当引入的中断超过8级时,可用多片8259A级联使用,构成主从关系,对于主8259A,级联信号CAS2~CAS0是输出信号,对于从8259A,CAS2~CAS0是输入信号。SP/EN是一个双功能信号,当8259A处于缓冲状态时,EN有效,表示允许8259A通过缓冲存储器输出;EN无效,表示CPU写8259A。当8259A处于非缓冲状态时,SP用作表明主从关系,SP=1表示是主8259A,SP=0表示是从8259A。 4. 中断请求寄存器IRR 这是一个8位寄存器,用来存放由外部输入的中断请求信号IR7~IR0。当某一个IRi端呈现高电平时,该寄存器的相应位置“1”,显然最多允许8个中断请求信号同时进入,这时,IRR寄存器将被置成全“1”。 5. 中断服务寄存器ISR 这是一个8位寄存器,用来记录正在处理中的中断请求。当任何一级中断被响应,CPU正在执行它的中断服务程序时,ISR寄存器中相应位置“1”,一直保持到该级中断处理过程结束为止。多重中断情况下,ISR寄存器中可有多位被同时置“1”。 6. 中断屏蔽寄存器IMR 这是一个8位寄存器,用来存放对各级中断请求的屏蔽信息。当该寄存器中某一位置“1”时,表示禁止这一级中断请求进入系统,通过IMR寄存器可实现对各级中断的有选择的屏蔽。 7. 优先权判别器PR 用来识别各中断请求信号的优先级别。当多个中断请求信号同时产生时,由PR判定当前哪一个中断请求具有最高优先级,于是系统首先响应这一级中断,转去执行相应的中断服务程序。当出现多重中断时,由PR判定是否允许所出现的中断去打断正在处理的中断而被优先处理。一般处理原则是允许高级中断打断低级中断,而不允许低级中断打断高级中断,也不允许同级中断互相打断。 8. 控制电路 它是8259A内部的控制器。根据中断请求寄存器IRR的置位情况和优先权判别器PR的判定结果,向8259A内部其他部件发出控制信号,并向CPU发出中断请求信号INT和接收来自CPU的中断响应信号INTA,控制8259A进入中断服务状态。实际上8259A芯片是在控制电路控制之下构成一个有机的整体。  9.1.2 8259A芯片的工作方式 8259A有两种中断触发方式:电平触发方式和边沿触发方式,可由软件来定义。当定义为电平触发方式时,从IR7~IR0输入的有效信号应为高电平,而 且必须保持有效到响应它的第一个INTA信号的前沿,否则这个IRi信号有可能被丢失;但是也不允许IRi信号太长,如果在中断服务寄存器ISR相应位复位后该IRi信号还继续有效,则8259A就可能重新响应这一中断请求而出现重复中断现象。为避免这种情况产生,在ISR某一位被复位时应将相应的IRi信号置成无效。 采用这种电平触发方式还有一个问题必须注意,即如果通过一个IRi端引入多个中断请求,它们由软件进行排队;那么当这个IRi端上一个中断请求的有效期间,另一个中断请求又产生时,将有可能丢失第2个中断请求信号,从这个意义上讲是不允许发生中断请求的电平信号持续时间太长,但也不能太短,这在使用中必须注意。 当8259A被定义为边沿触发方式时,不会产生上述的丢失中断请求的现象,这时当IRi端上出现由低电平到高电平的正跳变时,表示中断请求信号有效,最好用负脉冲的后沿来实现。采用这种边沿触

文档评论(0)

annylsq + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档