中断技术、DMA控制器及定时器计数器.ppt

上传人:少林足球 文档编号:3890322 上传时间:2019-10-05 格式:PPT 页数:43 大小:469.02KB
返回 下载 相关 举报
中断技术、DMA控制器及定时器计数器.ppt_第1页
第1页 / 共43页
中断技术、DMA控制器及定时器计数器.ppt_第2页
第2页 / 共43页
中断技术、DMA控制器及定时器计数器.ppt_第3页
第3页 / 共43页
中断技术、DMA控制器及定时器计数器.ppt_第4页
第4页 / 共43页
中断技术、DMA控制器及定时器计数器.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《中断技术、DMA控制器及定时器计数器.ppt》由会员分享,可在线阅读,更多相关《中断技术、DMA控制器及定时器计数器.ppt(43页珍藏版)》请在三一文库上搜索。

1、第八章 中断技术、DMA控制器及定时器/计数器,主 要 内 容,中断的基本原理 中断的实现方法 中断控制器8259A DMA控制器8237 计数器/定时器8253,中 断 的 基 本 原 理,所谓中断,就是指当CPU正在执行程序时,外设(或其它中断源)向CPU发出请求,CPU暂停当前程序的执行,转向该外设服务(或称中断服务)程序,当中断服务程序运行结束后,返回原程序继续执行的过程。,中 断 的 基 本 原 理,中断过程 包括:中断请求,中断判优,中断响应,中断处理,中断返回五个过程。 中断优先权 软件查询法 是在CPU响应中断后,用软件查询以确定是哪些外设申请中断,并判断它们的优先权,中 断

2、的 基 本 原 理,硬件优先权排队电路 中断优先权排队电路 可用硬件编码器和比较器组成的优先权排队电路,中 断 的 基 本 原 理,硬件优先权排队电路 链式优先权排队电路也称雏菊花链 将所有的中断源排成一个链。各中断源在链中的前后顺序是根据中断源优先级别的高低来排列。排在链前面的优先级最高。,中 断 的 基 本 原 理,中断响应 中断响应的条件: 有中断请求信号 中断请求没有被屏蔽 中断是开放的 CPU在现行指令执行结束时响应中断,中 断 的 基 本 原 理,中断响应 关中断 保存断点 保护现场 给出中断服务程序入口地址,并转入该服务程序 恢复现场 从中断返回,8086 8088 中 断 系

3、统,8086/8088的中断源 8086/8088系统的中断源分为外部中断(中断源来自CPU外部)和内部中断(来自CPU内部的中断) 内部中断 除法溢出中断0号中断 单步中断1号中断 INT指令中断 溢出中断4号中断,8086 8088 中 断 系 统,外部中断 非屏蔽中断 非屏蔽中断的优先权高于可屏蔽中断。其中断请求信号是发生在NMI上的电压跳变(边沿触发)。 可屏蔽中断 出现在INTR线上的请求信号是电平触发的。只有当中断允许标志位IF为1时,CPU才能响应INTR的中断请求。如果IF为0,即使INTR端有中断请求信号CPU也不会响应。这种情况称为中断屏蔽。,8086 8088 中 断 系

4、 统,中断向量表 8086/8088系统支持最多256个中断,对应每一个中断,都有一个中断服务程序,该中断服务程序的入口地址称为中断向量。每个中断向量占用4个字节,前两个字节为服务程序的IP(偏移量),后两个字节为服务程序的CS(段地址)。,8259A 中 断 控 制 器,8259A的结构及逻辑功能 功能 管理和控制80x86的外部中断请求 实现中断判优 提供中断向量 屏蔽中断输入 使用单片8259A可以管理8级中断,采用级联方式,最多可管理64级中断,8259A 中 断 控 制 器,结构,8259A 中 断 控 制 器,结构 中断请求寄存器IRR 优先级分析器 中断服务寄存器ISR 中断屏蔽

5、寄存器IMR 数据总线缓冲器 读/写逻辑 级联缓冲器,8259A 中 断 控 制 器,8259A的引脚,8259A 中 断 控 制 器,中断响应过程 (1)外部设备在中断请求输入线(IR7 IR0)上发了中断请求,使中断请求寄存器IRR的相应位置位。 (2)IRR的内容与IMR的内容相“与”,结果送给优先级分析器。中断优先级分析器把优先级最高的中断请求送到控制电路。 (3)控制电路将接收到的中断请求向CPU输出INT信号。,8259A 中 断 控 制 器,中断响应过程 (4)若CPU是处在开中断状态,则在当前指令执行完以后,接收到INT信号,输出一个中断响应脉冲,进入第一个中断响应周期。 (5

6、)8259A的脚上收到脉冲信号,就将最高优先级所对应的IRR位清除,并将对应的ISR位置位。 (6)CPU启动第二个中断响应周期,输出另一个脉冲,在这个周期8259A向数据总线输出一个中断向量码。 (7)CPU读取该中断向量码,把它乘以4,得到中断服务程序入口地址,转入该中断服务程序。这样一个中断响应周期就完成了。,8259A 中 断 控 制 器,8259A的编程 8259A的初始化编程 由CPU向8259A写初始化命令字ICW 初始化命令字ICW的格式及功能如下 1、ICW1 2、ICW2,8259A 中 断 控 制 器,3、ICW3 4、ICW4,8259A 中 断 控 制 器,8259A

7、的工作方式编程 1、OCW1是中断屏蔽命令字,D7D0分别控制对应的IRQ7IRQ0上的中断请求被屏蔽还是开放。“1”是屏蔽,“0”是开放。 2、OCW2是用来设置中断优先级循环方式和发送EOI命令。通过偶地址写OCW2且命令字的D4D3位都是“0”,标志着是对OCW2设置,若D4D3位是01则是OCW3,D4为1则是ICW1。,8259A 中 断 控 制 器,3、OCW3用于控制读中断状态、查询及屏蔽方式,此时要求8259A的引脚A0为0即偶地址。 例:设8259A初始化后屏蔽IR2,设置特殊屏蔽方式,允许开放优先级低的中断。设端口地址为20H和21H。,8259A 中 断 控 制 器,82

8、59A的操作方式 查询方式 中断屏蔽 缓冲模式 中断嵌套模式 中断优先权旋转 中断结束命令 读8259A状态 8259A的级联,可 编 程 DMA 控 制 器 8237A,利用DMA方式传送数据时,数据的传送过程完全由硬件控制,这种电路称为DMA控制器(DMAC)。需要数据传送时,DMAC向CPU提出申请,CPU让出总线控制权,由DMAC直接控制地址总线、数据总线和控制总线,让存储器与高速的外部设备直接交换数据,CPU不再干预,这样大大减少了中间过程,提高了数据传送速度。,可 编 程 DMA 控 制 器 8237A,8237A的结构和功能 引脚信号,可 编 程 DMA 控 制 器 8237A,

9、内部结构 8237A有4个独立的DMA通道,24个内部寄存器。,可 编 程 DMA 控 制 器 8237A,内部寄存器 基址寄存器和当前地址寄存器 基字节计数寄存器和当前字节计数寄存器 暂时地址寄存器 状态寄存器 命令寄存器 暂存寄存器 方式寄存器 屏蔽寄存器 请求寄存器 8237A的先后触发器 此触发器保证16位寄存器的读写操作,以先低字节后高字节的顺序操作。,可 编 程 DMA 控 制 器 8237A,8237A的工作方式 单字节传送方式 DMA传送时,仅传送一个字节。 块传送方式 块传送方式由一个DMA请求启动传送整个一个数据块,在整个数据传送期间,系统总线一直被DMAC所控制,每传送一

10、个数据,计数寄存器的值减1。 请求传送方式 在请求传送方式下8237A被编程为连续传送,直至遇到T/C或外部来的 为止,或者直到DREQ不再有效为止。 级联方式 多个8237A进行级联时,将其中一个DMAC作为主片,其他作为从片。,可 编 程 DMA 控 制 器 8237A,8237A初始化编程 设置方式寄存器 PC机BIOS在初始化时,将方式寄存器初始化为单字节传送方式、地址递增、通道0为读传送、自动预置(方式字为58H)、通道1、2、3为校验传送、禁止自动预置,其方式字为41H、42H、43H。 设置命令寄存器 初始化必须设置命令寄存器,以确定其工作时序、优先级方式、DREQ和DACK的有

11、效电平及是否允许工作等。 清除先后触发器 先/后触发器是一个指针,当它为0时,对低字节进行操作,当它为1时,对高字节进行操作。,可 编 程 DMA 控 制 器 8237A,设置地址和字节计数器 8237A每个通道有四个16位的寄存器。这四个寄存器是基地址寄存器和当前地址寄存器以及基本字节计数寄存器和当前字节计数寄存器。 清除屏蔽寄存器 屏蔽寄存器是一个4位寄存器,每一位代表一个通道。当它为1时,向该通道的DMA请求被禁止;为0时,则允许。,可 编 程 定 时 器 计 数 器 8253,8253的结构和功能 8253采用N沟道MOS工艺制成,有三个独立的16位计数器,只需要一组5V电源。 825

12、3的内部结构,可 编 程 DMA 控 制 器 8237A,8253的内部结构 数据总线缓冲器 它是8位双向三态缓冲器,可直接连接到数据总线上。初始化编程时,CPU写入8253的方式控制字和计数初值、CPU从计数器中读取的当前计数值都经这里传送。 读/写控制逻辑 产生相应的控制信号,来选择读/写操作的端口及控制数据的传送方向。 计数器0、1、2 三个计数器的内部结构相同,但相互独立。计数器从时钟输入端接收时钟脉冲或事件计数脉冲。 控制字寄存器 控制字寄存器是8位的,只能写不能读。写入的内容包括计数器的工作方式或计数器的初值,可 编 程 定 时 器 计 数 器 8253,8253的引脚信号 825

13、3的功能 定时 计数,可 编 程 定 时 器 计 数 器 8253,8253的方式控制字 (1)SC1、SC0:用于选择计数器 SC1 SC0 选择的计数器 0 0 计数器0 0 1 计数器1 1 0 计数器2 (2)RW1、RW0:读/写控制位 RW1 RW0 操作 0 0 计数器锁存 0 1 读/写低字节 1 0 读/写高字节 1 1 先读/写低字节,后读/写高字节,可 编 程 定 时 器 计 数 器 8253,(3)M2、M1、M0:方式选择位 M2 M1 M0 方式选择 0 0 0 方式0 0 0 1 方式1 0 1 0 方式2 0 1 1 方式3 1 0 0 方式4 1 0 1 方式

14、5 (4)BCD:选择计数格式。BCD=1,十进制计数。BCD=0,二进制计数。,可 编 程 定 时 器 计 数 器 8253,8253的工作方式 方式0计数结束产生中断 在这种方式下,写入控制字之后,输出端OUT为低电平作为初始电平,并且在计数值到达0之前一直保持低电平。当计数到达0时,输出端OUT为高电平,并且一直保持高电平,除非写入新的计数值。,可 编 程 定 时 器 计 数 器 8253,方式1可重复触发的单稳态触发器 写入控制字之后,输出端OUT以高电平作为起始电平,计数初值送到初值寄存器后,再经过一个时钟周期,便送到计数执行部件。另一方面,门控信号GATE上升沿到来时,边沿触发器触

15、发,下一个时钟脉冲时,输出端OUT变为低电平,并在计数到达0以前一直保持低电平。,可 编 程 定 时 器 计 数 器 8253,方式2一分频器 写入控制字之后,输出端OUT变为高电平作为初始状态,当计数初值写入初值寄存器后,下一个时钟脉冲时,计数器初值被写到计数执行部件,然后计数执行部件作减1计数。减到1(不是减到0)时,输出OUT变为低电平。,可 编 程 定 时 器 计 数 器 8253,方式3方波发生器 写入控制字之后,输出端OUT出现高电平作为起始电平。计数初值送到初值寄存器后,下一个时钟脉冲到来时,计数执行部件获得初始计数值,并开始作减1计数。当计数计到一半时,输出变为低电平,计数器继

16、续作减1计数,计数到终值时,输出变为高电平,从而完成一个周期。之后,马上自动进入下一个周期。由此不断进行下去,产生周期为N个时钟脉冲宽度的输出。,可 编 程 定 时 器 计 数 器 8253,方式4软件触发的选通 写入控制字之后,输出端 OUT变为高电平作为初始电平,计数初值送到初值寄存器,再经过一个时钟周期,计数执行部件获得计数初值,并开始计数。当计数器减到0的时候,输出端OUT变为低电平,此低电平持续一个时钟周期,然后又自动变为高电平并一直维持高电平。一般将此负脉冲作为选通信号。当计数值N被送到计数初值寄存器后,在下一个时钟周期,计数初值被送到计数执部件,之后,计数执行部件作减1计数,又经

17、过N个时钟周期后,才输出一个负脉冲作为选通脉冲。,可 编 程 定 时 器 计 数 器 8253,硬件触发的选通 写入控制字之后,输出端OUT出现高电平作为起始电平。写入计数值之后,必须有门控信号GATE的上升沿到来,才在下一个时钟周期将计数初值送到计数执行部件。此后,计数执行部件作减1计数,计数到达0的时候,输出端出现一个宽度为1个时钟周期的负脉冲,然后又自动变为高电平,并将持续不变。此输出负脉冲可以用作选通脉冲,它是通过硬件电路产生的门控信号上升沿触发后得到的,所以叫硬件触发的选通脉冲。,可 编 程 定 时 器 计 数 器 8253,8253的初始化编程 系统初始化时,由BIOS对8253进

18、行初始化,并进行检查,程序如下: 1.对计数器0的初始化 CLI ;关中断 MOV AL,36H ;选择计数器0,双字节,方式3,二进制计数的控制字 OUT 43H,AL ;送控制字寄存器 MOV AL,0 ;置初值为0 OUT 40H,AL ;把低字节(LSB)送到定时器(计数器)寄存器 OUT 40H,AL ;把高字节(MSB)送到定时器(计数器)寄存器,可 编 程 定 时 器 计 数 器 8253,8253的初始化编程 2对计数器1的初始化 MOV AL,54H ;选择计数器1,写低字节,方式2,M进制计数的控制字 OUT 43H,AL ;送控制字寄存器 MOV AL,18 ;赋值给低字节 OUT 41H,AL ;送计数器1,可 编 程 定 时 器 计 数 器 8253,8253的初始化编程 3对计数器2的初始化 MOV AL,10110110 ;选择计数器2,以双字节写,方式3,二进制计数的控制字 OUT 43H,AL ;送控制字寄存器 MOV AX,533H ;确定1000HZ的除数 OUT 42H,AL ;把低字节(LSB)送到定时器(计数器)2寄存器 MOV AL,AH ; OUT 42H,AL ;把高字节(MSB)送到定时器(计数器)2寄存器,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1