《微机第九章8259》由会员分享,可在线阅读,更多相关《微机第九章8259(58页珍藏版)》请在金锄头文库上搜索。
1、 郝新红3#教学楼 102室,电话:4850(II)微机原理(II)教材:“微型计算机原理及应用(第三版)郑学坚 周斌 编著” 清华大学出版社的后半部分参考书: (1)单片机原理与应用设计张毅刚 、彭喜元 编著 电子工业出版社 2008.4 普通高等教育“十一五”国家级规划教材。(2)单片微型计算机原理、应用及接口技术(第2版)张迎新 等编著 国防工业出版社 2004.1主要内容: (48学时)第 9章:中断控制器、计数/定时器及DMA控制器(6学时) 第10章: A/D及D/A转换 (4学时) 第13章: MCS-51单片计算机(30学时)(1) 结构 (6学时)(2) 指令系统 (6学时)
2、(3) 程序设计 (6学时)(4) 中断系统 (3学时)(5) 定时/计数器 (3学时) (6) 串行口 (3学时)(7) 单片机系统扩展 (3学时) 实验学时:8学时(MCS-51单片机)中断的基本概念复习(P99)9.1 可编程中断控制器8259A9.2可编程计数/定时控制器82539.3可编程DMA控制器8237A第九章 中断控制器、计数/定时控制器及 DMA 控制器 重点:n1.中断、中断类型、中断向量和中断向量表n2 中断的响应过程n3 中断的优先级与中断嵌套一、 中断的基本概念不论哪种中断都遵循同样的中断处理过程中断源中断请求当 前 程 序中断服务程序程序断点中断返回中断响应中断:
3、处理器暂停执行当前程序,转而处理随机发生的事件,处理 完毕后再返回到断点处继续执行原来程序一、 中断的基本概念中断向量、中断类型码和中断向量表 中断处理子程序的入口地址称为中断向量 (CS:IP)四个字节 8086系统中最多可以有256种中断,为了区别 给每个中断分配一个中断号即中断类型码 系统规定256种中断向量共1024个字节存放在 RAM的最低端的1K单元中,这1K单元就构成 了一张中断向量表(P101)一、 中断的基本概念中断的类型1.外部可屏蔽中断外部可屏蔽中断是处理器响应各种外部硬件中断的最 常用的方法,通过CPU的INTR引脚引入; 外部可屏蔽中断受CPU内部的中断允许标志位IF
4、的控 制; CPU以电平触发方式接受INTR请求,当每条指令结 束时,若INTR为高电平且IF=1,则CPU响应相应I/O接 口的中断请求; CPU只有一个INTR引脚可以接受外部可屏 蔽中断请求,为了管理众多的外部中断源,微 机系统中采用可编程中断控制器8259A。PC系 列机通过两片8259A级连可以响应15个外部中 断源.8259A芯片的级联使用CPU1 02. 外部非屏蔽中断为外部紧急请求提供服务的中断,通过CPU的NMI引脚 产生;NMI输入是上升沿触发的,只要NMI输入端上出现由0 到1的跳变,一个中断服务请求就被锁存在CPU中,与 IF标志的状态无关;二. 可屏蔽中断的响应过程(
5、P102) 从数据总线上读取中断类型码并存入 内部暂存器; 将标志寄存器FR的值推入堆栈; 将TF置0,禁止单步操作,将IF置0,使CPU处于关中断状态,屏蔽其他中断; 断点的CS、IP进栈; 根据前面得到的中断类型码,到中断向量表中找到中断向量,再根据中断向量转入相应的中断处理子程序;二. 可屏蔽中断的响应过程 中断指令STI开中断指令 将标志寄存器中的中断标志位IF置1 ,允许CPU响应来自INTR引脚的中 断请求;CLI关中断指令 将标志寄存器中的中断标志位IF清0,使 CPU不响应来自INTR引脚的中断请求;INT n软件中断指令 n为中断号。调用n号中断服务程序 将标志寄存器FR的值
6、进栈将TF置0,禁止单步操作,将IF置0,使CPU 处于关中断状态; 断点处的CS、IP值进栈从中断向量表取n号中断向量 IP、CS转向n号中断服务程序二. 可屏蔽中断的响应过程 中断指令IRET中断返回指令 中断服务程序的出口指令,从栈顶弹出6 个字节依次写入IP、CS和标志寄存器在执行IRET之前必须保证栈顶是断点地 址,否则执行IRET指令将导致系统瘫痪二. 可屏蔽中断的响应过程 中断指令三. 中断的优先级与中断嵌套通常一个系统有多个中断源,而CPU同一时刻只 能响应一个中断源的请求,那么当多个中断源同时请 求中断服务时,应该先响应哪一个,有一个次序安排 的问题。按中断源的轻重缓急程度确
7、定的优先级别, 称为优先级。内部中断和异常软件中断外部非屏蔽中断外部可屏蔽中断优先级递增由中断类型而确定的固定中断优先级:当CPU正在响应某一中断源的请求,执行 为其服务的中断服务程序时,如果有优先级 更高的中断源发出请求,CPU将中止正在执 行的中断服务程序而转入为新的中断源服务 ,等新的中断服务程序执行完后,再返回到 被中止的中断服务程序,这一过程称为中断 嵌套。中断嵌套可以有多级,具体级数原则上不限, 只取决于堆栈深度。三. 中断的优先级与中断嵌套1#中断请求响应返回1#中断 服务程序2#中断请求响应返回2#中断 服务程序3#中断请求响应返回3#中断 服务程序原主程序中断优先级3#2#1
8、#三. 中断的优先级与中断嵌套9.1 可编程中断控制器8259A中断系统的功能: 1. 可解决高速运算CPU与低速外设信息交换之间的矛盾 ; 2. 用于响应突发事件; 9.1 可编程中断控制器8259A本次课需要掌握的内容:1.8259A是什么芯片?它的功能是什么? 2. 中断管理的核心问题是什么?3. 中断管理要管那些内容? 如何管理?4.它的内部有几个寄存器?其作用是什么?5. 初始化编程(ICW1ICW4、OCW1OCW3)6. 口地址的确定与相同地址控制命令字的识别。9.1 可编程中断控制器8259A的功能8086 CPU 只有一个可屏蔽输入端INTR,而实际使用中可能 需要多个外中断
9、;8259A的功能就是在有多个中断源的系统中:判断外部的中断请求信号IRi是否有效; 判断是否合乎电气特性;判断是否被屏蔽;进行优先级判断,选中当前优先级最高的中断请求,将此中断 请求及类型码送到CPU;当CPU响应中断,并进入中断子程序的处理过程后,还要对后续 的中断信号进行管理,判断是否有更高级的中断请求处理,另外 还要根据结束方式来确定中断优先权是否变更,如何变更等。中断优先权管理是中断管理的核心问题(P228)8259A就是一种可编程中断控制器,用于管理扩展的可屏蔽中断信 号。管理的主要内容为: 1、中断触发方式(边沿、电平触发)2、优先权管理方式(完全嵌套、自动循环方式、中断屏蔽方式
10、)3、中断结束方式(普通、自动和特殊EOI方式)4、中断屏蔽方式(普通、特殊屏蔽方式)5、总线连接方式(缓冲、非缓冲方式)以上需管理的内容通过初始化编程设定,由功能寄存器完成对应 的操作;EOI: END OF INTERRUPTF9.1.1 8259A 芯片内部结构9.1 .1 8259A芯片的内部结构1. 数据总线缓冲器(处理D7D0来的信号)2.读/写控制电路(RD、WR、A0、CS)3.级联缓冲比较器(CAS0CAS2、SP/EN)4.控制电路(INT、INTA)5. 功能寄存器: (1)中断请求寄存器IRR(IR0IR7) (2)中断服务寄存器ISR (3)中断屏蔽寄存器IMR (4
11、)优先权判别器PR。F8259A的内部结构框图(P 226 图9-1)IRR(中断请求寄存器): 存放外部输入的中断请求信号 ,IRi=1时,该寄存器的相应位置1;ISR(中断服务寄存器): 记录正在处理中的中断请求;IMR(中断屏蔽寄存器): 存放对各级中断请求的屏蔽信息 (由OCW1写入);PR(优先级判别器): 用来识别各中断请求信号的优先级 别;一般处理原则:允许高级打断低级,不允许低级打断高级, 也不允许同级中断互相打断. (注)A0:选择内部寄存器的端口地址。 在标准AT机中,使用两片8259构成主从式中 断系统(主要应该掌握PC机是如何设置的) 主8259的端口地址: 20H,2
12、1H 从8259的端口地址: A0H,A1HSP/EN:双功能信号,非缓冲状态时为SP,缓冲状态时为ENSP表明主从关系, SP=1表示主8259A, SP=0表示从8259AEN=0表示允许8259A通过缓冲存储器输出F8259A的引脚与功能结构9.1.2 8259A芯片的工作方式8259A就是一种可编程中断控制器,用于管理中 断信号。管理的主要内容为: (1)、中断触发方式(边沿、电平触发) P228 8259A有两种中断触发方式:边沿触发方式和电平触发 方式,可用软件来定义;电平触发方式:高电平有效,但持续时间不能太长也不 能太短; 边沿触发方式:低电平到高电平的正跳变,最好用负脉 冲的
13、后沿;2.中断类型码的形成在响应中断的第二个INTA信号有效期间8259A将中断类 型码通过数据总线传送给CPU。(P82)1 0 0 0 1 X X X D7 D6 D5 D4 D3 X X XD7D3由用户通过软件设定, D2D0对应8259A的中断 信号输入引脚, 显然由同一片8259A引入的中断请求的类 型码是连续的. 例如,定义D7D3为10001时, 该8259A芯 片引入的8级中断类型码为88H-8FH.初始化时设置9.1.2 8259A芯片的工作方式三. 优先权管理方式 1.优先权完全嵌套方式 (1) 固定中断级别, IR0最高, IR7最低;(2) 有三种结束方式(如何使IS
14、R中的对应位清0, 不需确定新级别):普通EOI(结束)方式:当任何一级中断结束时,只传送一个结束命令, 8259A收到这个命令后自动将ISR中级别最高的置”1”位清0特殊EOI方式:中断级别随EOI命令传送给8259A, 8259A则将ISR 中对应级别的置”1”位清0. 可在任何情况下使用自动EOI方式:在第2个中断响应信号INTA结束时,自动将ISR中对 应位清0(不管是否结束, 因而可能会出问题)9.1.2 8259A芯片的工作方式2.优先权自动循环方式: (1)中断级别循环确定; (2)有三种结束方式(ISR中相应位清0,并确定新的中断级别): 普通EOI循环方式将ISR中级别最高的
15、置”1”位清0, 并将其赋予 最低优先级,其余中断级别依次向前提高一个级别. 自动EOI循环方式:在第2个中断响应信号INTA结束时,自动将ISR 中对应位清0,并立即改变各中断的优先级. 普通与自动EOI的区别在于CPU是否给8259A结束信号. 特殊EOI循环方式:用户可以将最低优先级赋予任一指定的中断 源。9.1.2 8259A芯片的工作方式3. 中断屏蔽方式 CLI 指令使 IF=0 ,CPU 屏蔽INT引脚来的中断;普通屏蔽方式: 将IMR中的某一位或某几位屏蔽;特殊屏蔽方式: 在处理中断时,仅对本级中断进行屏蔽, 避免自己 打断自己.4、总线连接方式(缓冲、非缓冲方式)9.1.3
16、8259A芯片的级联使用n当中断源多于8个时可将8259A级联使用nP2338259A芯片的级联使用CPU1 09.1.4 8259A芯片的控制字及其工作方式1.初始化编程写入控制字及确定工作方式2. 初始化分为两部分,即写预置命令字ICW (initial command word)和 操作命令字OCW (operate.)3.每片8259A包含2个内部端口地址(由A0确定), 其余高位地址线用 于产生8259A的片选信号CS4. 预置命令字共4个(ICW1ICW4), 不是任何情况下都需要设置4 个; 5. ICW1、ICW2必须 的,ICW3是级连时用的,ICW4在8086系统 中需要设置的;6. ICW1对应A0=0, ICW2、ICW3、ICW4对应A0=1; 7. ICW2要紧跟ICW1.ICW框图ICW1(设定触发方式、单级/级联、是否需要ICW4)ICW2(确定中断类型码