计算机应用基础5(最新)_第1页
计算机应用基础5(最新)_第2页
计算机应用基础5(最新)_第3页
计算机应用基础5(最新)_第4页
计算机应用基础5(最新)_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

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

文档简介

第五章中断技术 5 1基本概念5 280X86的中断系统5 38259A可编程中断控制器5 48259A在PC系统中的应用 5 1基本概念一 中断二 中断的基本过程三 中断源四 多重中断 一 中断中断是一个过程 它是指CPU在正常运行程序时 由于内部 外部事件 由主程序转到为中断事件服务的程序中去 服务完毕 再返回执行原程序 这一过程称为中断 8086 8088中断系统可以处理256种中断类型 中断可以分为 硬件中断 由外部硬件产生的中断 软件中断 由程序预先安排的中断 中断的特征 具有随机性 二 中断的基本过程分为四个阶段中断请求 中断判优 中断响应 中断服务 中断返回 1 中断请求 外设先 通过接口 发送 中断请求 信号给CPU CPU检查 中断请求INTR 输入线 CPU有权决定是否响应中断 中断允许 若允许请求 则中断允许触发器IF置 1 使用STI指令开中断 若不允许申请 关中断 触发器IF 0 用CLI指令 没有获得允许向CPU发出中断请求 则称为中断被屏蔽 中断屏蔽 不允许中断请求的情况 如 在实时控制时 需采集一段连续数据 为防止数据丢失 不允许其他中断请求 又 执行管理程序中某些重要程序 CLI指令进行屏蔽 外设及其端口的中断请求方式 边沿请求 电平请求 中断请求保持时间 应保持到表明该事件正在被处理或已被处理时 2 硬件判优 1 并行判优网络 P246图7 12矢量优先级控制器原理框图 2 链式判优网络 P246图7 13链式判优注 中断请求判优 能否向CPU请求中断 中断响应判优 当前中断请求与CPU正处理任务的判优 中断返回判优 解决中断嵌套问题 优先级设置 固定优先 循环优先 指定优先 2 中断响应在中断响应过程中应解决以下4个问题 保护断点 保护现场 如标志寄存器或其他寄存器 CPU关中断 不允许此时被新的中断源打断 CPU控制权的转移 中断响应过程的关键 其实质是如何由中断源得到相应服务程序的入口地址的问题 常用方法是采用中断向量 即由所响应的中断源在中断响应时向CPU提供自己的中断向量号 CPU根据中断向量号就能够找到中断服务程序的入口地址 进而转入中断服务程序 过程如下 CPU在当前指令执行结束时 响应中断 进入中断响应周期 发出两个中断回答信号INTA完成一个中断响应周期 进行断点及标志保存如 段地址 CS 偏移地址 IP 以及标志FR压入堆栈 读取中断类型号 找到中断源 装入中断服务程序的入口地址 新CS IP 3 中断服务执行中断服务程序 以完成中断源提出的处理要求 中断服务程序是软件编程问题 与子程序的编写原则类似 用STI指令开中断 以实现中断嵌套 并对服务程序中所用的寄存器预先保护 若中断响应中CPU不是自动保护的话 而在服务程序后面加入恢复现场的语句 转入中断服务程序后 其服务程序的内容有 a 与CPU交换数据 进行I O操作 b 外部期望CPU给以控制 进行参数修改 在程序开头 将可能使用的寄存器内容进栈 即保护现场 在服务程序的末尾 将入栈的寄存器内容弹出 即恢复现场 4 中断返回中断返回就是控制权由中断服务程序转移到被中断程序的过程 执行中断返回指令IRET 大多数中断返回指令还有其他的附加功能 例如部分或全部恢复CPU的现场 除程序计数器外 还有标志寄存器FR等 有些CPU的中断返回指令可自动恢复全部通用寄存器的内容 中断服务程序结束 执行中断返回 自动将保存在堆栈中的标志FR 断点 IP CS 依次弹出并装入 返回到中断前的地址 断点地址 开始继续执行主程序 三 中断源发出中断请求的外设或引起中断的内部原因称为中断源 分内部中断和外部中断 内部中断也称为软件中断 它是来自CPU内部 包括INTn产生的中断 除法错 溢出中断 单步中断 外部中断又称为硬件中断 其中断源是CPU外部的某种事件 分为 非屏蔽中断和可屏蔽中断 屏蔽是指CPU拒绝响应中断请求 不许打断CPU执行的主程序 非屏蔽中断 由NMI Non MaskableInterrupt 进入 不受IF屏蔽 整个系统中仅有一个非屏蔽中断 一般处理系统的重大故障 如系统掉电处理 CPU接收到非屏蔽中断请求后 立即停下当前工作转非屏蔽中断处理子程序 该子程序就是要在晶振停振前对现场作紧急处理 保护现场数据到非易失性存储器中 启动备用电源 可屏蔽中断 正常情况下 由INTR进入 只有IF 1时 STI 才被响应 IF 0时屏蔽该请求 CPU在执行完当前指令后响应中断 中断源优先级从高到低为 INTn 除单步中断 NMI INTR 单步中断 CPU识别中断的方法 两种向量中断 在CPU响应中断后 由中断控制器将服务程序入口地址送到CPU 程序查询中断 采用软件查询技术来确定发出中断请求 四 多重中断 中断嵌套 主程序 80X86有256级中断 可以被分为四大类 CPU自定义中断 1 中断服务程序的入口地址 中断向量CPU响应中断后 中断源提供地址信息 由此地址信息对程序的执行进行导向 引导到中断服务程序中去 故把这个地址信息称为中断向量 中断向量包括中断服务程序的段基址CS 偏址IP共4个字节 中断向量表 所有的中断向量集中存放到存储器的某一区域 这一区域称之为中断向量表 二 80X86的中断类型码及中断向量表 中断向量表 0BA9 03FF 1024个单元 0000 03FF共1024个字节存放256个向量 2 中断向量 中断向量指针与中断类型号中断向量 中断服务程序入口地址中断向量指针 指出中断向量存放在中断矢量表中的位置 或地址 在PC系列中中断向量指针由中断类型号提供的 即向量地址 0000 类型号 4 如 硬盘 INT13H 它的向量地址 0000 13H 4 0000 004CH004CH开始连续4个单元中用来存放 INT13H 的中断向量 中断号 向量地址 中断向量硬盘13H 13H 4 4CH 0070 0FC9 三 硬中断 见下表 1 不可屏蔽中断NMI 通常用于处理紧急 灾难性事件 RAM奇偶校验错PCK I O通道校验错I OCHCK 协处理器8087运算错INT响应时间 在当前机器周期之后立即响应 2 可屏蔽中断INTRINTR中断可以被CPU用指令CLI来禁止 由STI允许 中断响应条件 IF 1 INTR 1中断响应时间 当前指令执行完以后 所以 INTR高电平信号需要一定的保持时间 INTR中断响应过程如下 CPU的中断响应要用2个时钟周期 分别向引脚发两个负脉冲 第1个表示接受该中断 外设接到第2个负脉冲后 通过低8位数据总线向CPU送中断类型码n CPU可由此获得该中断源的处理程序的入口地址 2个时钟周期间用2 3个空闲状态隔开 M 80 X86 IP CS PSW INTR1 INTA2 类型码N3 中 断 矢 量 表 零 页 地 址 空 间 4 个 字节 TYPE0 TYPE1 IP CS 6 N 4 SS 9 PA 20 位 入口 中断 服务 程序 STI CLI 10 IRET11 IF TF清零5 7 断点 现场恢复 12 4断点 现场 进堆栈 8 中 断 响 应 过 程 INTR 四 80X86的中断响应总线周期 当 CPU收到INTR中断请求 当前一条指令执行完 且中断允许标志位IF 1那么 CPU进入中断响应周期 它通过总线控制器发出二个连续中断应答信号完成一个中断响应周期 在中断响应周期的两个工作 1 第一个INTA脉冲时 通知中断源 其中断请求已被响应 准备发送类型码 此时 CPU产生LOCK信号 使总线处于封锁状态 防止DMA占用总线 2 在第二个INTA CPU通过数据总线低8位读取类型码 同时 LOCK信号撤除 总线解封 CPU在每个指令周期的最后一个T状态检测可屏蔽中断请求线INTR 若INTR引脚有一个高电平 且标志寄存器中断允许标志IF 1时 CPU在执行完当前的指令后 执行中断响应周期 CPU对可屏蔽中断请求的响应过程要执行两个连续的INTA总线周期 每个总线周期包括4个时钟周期 中断操作 CPU对各种中断的响应过程 1 执行2个中断响应总线周期 读取中断类型码 并计算中断向量地址暂存 可屏蔽中断专有 2 写周期 FR入栈 3 IF TF清零 即屏蔽INTR中断和单步中断 4 2个写周期 保护断点入栈 顺序压入CS IP 5 2个读周期 根据中断向量号 查中断向量表 把入口地址值装入CS和IP中 转入中断处理程序 P252图7 17 执行IRET指令 从堆栈中弹出三个字 FR的内容和断点地址 中断处理子程序的结构模式 1 一系列入栈指令保护各reg值 2 若允许中断嵌套 用STI开中断 使IF 1 以允许高级别请求进入 3 中断处理具体内容 4 用CLI设置关中断 使IF 0 禁止其他中断进入 5 给中断命令寄存器送EOI 6 一系列出栈指令恢复各reg值 7 最后一条中断返回指令IRET返回主程序 恢复IP CS和FR 中断处理子程序与一般的子程序的区别 前者最后一条指令是中断返回指令IRET 功能是恢复IP CS FR 后者是返回指令 若是可被程序调用的子程序 该指令功能是恢复IP CS 5 38259A可编程中断控制器 一 可编程的中断控制器芯片8259A的功能二 8259A的内部结构 28条引线 三 8259的引脚及其功能四 对8259的端口寻址及其操作 读 写基本操作 五 8259A工作方式六 8259A的级联使用七 8259的初始化编程 一 可编程的中断控制器芯片8259A的功能1 一片8259芯片可响应8级INTR中断请求 通过级连INTR可扩展至64级 2 可对各级INTR请求进行优先权管理 8259具有完全嵌套 循环优先级 特定屏蔽等多种优先权管理方式 3 对每一级中断请求进行均可依需要给予屏蔽或开放 4 当CPU响应INTR中断请求后 8259可提供相应的中断类型码 从而使CPU迅速转入中断服务程序入口 5 可通过编程手段 设置8259的8种不同工作方式 二 8259A的内部结构 28条引线 8259由8个主要部分组成 按下面三部分划分 1 与CPU接口部分 WR与A0配合 将D7 D0的控制字写入控制寄存器 完成OUT操作 RD与A0配合 将8259的内容通过D7 D0写入CPU 完成IN操作 A0 0 8259偶地址A0 1 8259奇地址 1 数据总线 D7 D0 2 读 写逻辑 RD 与A0配合 将8259的内容通过D7 D0写入CPU 完成IN操作 WR 与A0配合 将D7 D0的控制字写入控制寄存器 完成OUT操作 CS 片选信号 由高位地址线 A0确定 CS有效 CPU可对8259进行读写操作 A0 一般接地址线的A1 选择内部寄存器 8259A占2个端口地址 A0 0 A0 1 3 控制逻辑 8259A的控制核心 接收IRR和PR信号 向内部其他部件发控制信号 向CPU发INT和接收 控制8259A进入中断服务状态 INT 向8086发中断请求 接CPU的INTR引角 中断响应信号 2 与外部硬件 中断源 连接部分 4 中断请求寄存器 IRR 一片8259有8条INTR中断请求线IR0 IR7 每一条请求线对应一个触发器来存放中断请求信号 记录该级IRi中断源有请求 有中断请求时 置IRR相应位为1 当中断请求被响应时 IRR相应位复位 5 级联缓冲 比较器一片8259A可接收8级中断 超过8级时由多片8259A级联构成主从关系使用 CAS2 CAS0 主8259A输出级联地址 从8259A输入级联地址 P265图7 19从片的INT输出接到主片的一个IR输入 在中断响应期间 若主8259判定所响应的是由某一从片的中断请求 则主片在CAS0 2上发该从片识别号 从片INT所接主片的IRi 并由各从片接收 从片将自己的号相比较 若一致的话 应在第二个INTA响应周期 把自己片内中断源的向量号通过D7 D0送给CPU 注意 当系统的从片数目小于8时 一定不要将从片的INT接到主片的IR0上 因为非级联的IR有请求时 主片在级联上的驱动信号为000 若真的从8259接到主IR0 它响应中断发出的向量号与主片发出的向量号冲突 SP EN 8259A处于缓冲状态 通过总线收发器与复用总线相连 时 EN有效 0 8259A向CPU输出 相当于读 无效 1 CPU写8259A 处于非缓冲状态时 SP表明主从关系 0 接地 为从8259A 1 接高电平 为主8259A 3 内部工作寄存器 6 正在服务寄存器ISR 用于记录已被获准的中断请求 即将与IR对应的IS位置位 注意 ISR除存放正在被服务的中断源外 还包括尚未服务完而中途被别的中断源暂时中止的中断 CPU正在执行中断请求服务时 ISR相应位 1 直至该中断结束 由于可能有多重中断 ISR可能有多位为1 例 ISR5 1 若该级中断未响应完 IR3申请中断 IR3优先级高于IR5 所以ISR3 1 进入多重中断 IR5挂起 执行中断的服务程序 ISR3 1 ISR5 1 当IR3的中断完成 ISR3 0 ISR5 1 继续执行IR5的服务程序 直至结束 7 中断屏蔽寄存器IMR的每一位可对IRR中相应的中断源进行屏蔽 如果禁止某IR提出中断请求 就将其中在IMR中的相应位置 1 IMR对于较高优先权的IR实行屏蔽并不影响较低优先权的IR的输入 IMRi 1禁止中断 对其中断不予理睬 IMRi 0允许中断IMR00000011IRR01001011ISR00001000检查哪些屏蔽 再利用PR比较优先级别 最后决定ISR 8 优先权分析器PR 对保存在IRR IMR以及ISR的各个中断请求经过判断 确定其中一个为最高优先权 然后在中断响应周期时间将它选通到中断服务寄存器中 中断响应它决定ISRi为1 结束中断时决定哪个ISR清0 CAS0CAS1CAS2SP EN 三 8259的引脚及其功能8259有28个引脚 具体如下 8259的中断响应过程 1 当有一条或多条中断请求引脚信号有效时 即IR7 0相应引脚为 1 中断请求寄存器IRR的相应位被置为 1 2 IRR与IMR相应位比较后 封锁或发送中断请求给PR3 PR分析后 把当前最高优先级的中断请求由INT送至CPU4 若CPU处于开中状态 IF 1 则在当前指令执行完后 向8259发回连续两个INTA信号 5 接到第1个INTA后 8259A将中断请求源 对应于各IRi 中优先权最高的对应的ISR位置位 然后将IRR中相应的IRi位复位 6 接到第2个INTA后 8259A把中断类型号送上数据总线 Type码N 用户在对8259初始化编程时设定 由中断请求线IRi的进制编码决定 由8259自动插入填写 该中断类型码的生成 7 CPU读取中断类型码N后 用N 4查中断矢量表 获取服务程序入口地址有关信息 IP和CS值 转入服务程序入口执行程序 8 中断响应周期完成后 8259中断工作结束 被置位的ISR中的相应位复位 其中断方式有两种 当8259工作于AEOI模式 自动结束方式 当CPU送出的INTA脉冲结束时 其后沿便在 4 中被置位的IS位复位 清零 非自动结束方式 在中断服务程序结束处写一中断结束命令 置EIO为 1 相应IS位才会被复位 至此 8259的一次中断响应过程完成 从8259各I O端口读状态字 中断类型码及查询字对8259各I O端口写入初始化命令字 工作方式命令字操作是由RD WR控制信号进行控制 而对各端口的寻址则是由CS和A0确定的 具体I O端口寻址及操作情况如下 一片8259只占两个端口地址 也就是说8259只有两个I O端口 奇数口和偶数口P243图7 8 四 对8259的端口寻址及其操作 读 写基本操作 对8259的端口寻址及其基本操作 读 写基本操作 注意 8259只有两个端口 由A0位确定 1 奇数口0 偶数口由奇 偶数端口及控制字中的某些特定位来确定命令字往那个R中送 DB7 0 DB7 0 五 8259A工作方式8259通过编程可选择多种工作方式 1 中断类型号两个中断响应周期 第一周期 8259A冻结IRR 判优 若最高优先级中断来自从片 则准备在主片的CAS2 0上送出该IR号 第二周期 ISR相应位置1 并送类型号到D7 D0 类型号 高5位编程确定 低3位对应IR7 IR0 P258图7 20 2 中断触发方式8259A有两种中断触发方式 1 电平触发方式 高电平是有效的中断请求信号 保持时间 最短 第一个INTA前沿 若在此前IR变为无效 则第二个响应周期送的矢量号对应IR7 故在IR7的服务程序中应检查8259A的状态 若无中断请求 应返回被中断的程序 因而IR7的保持时间应更长 最长 ISR相应位复位前 另 从一个IR端引入多个中断请求时 由软件排队 中断请求有效期间 不能接收新的中断请求 故电平触发保持时间也不能过长 2 边沿触发方式 由低电平到高电平的跳变是有效的中断请求信号 高电平状态至少保持到第一个信号前沿 以免误认为IR7 故最好用负脉冲来请求 利用ICW1实现对8259A中断触发方式的设置 3 优先级管理方式 4种优先级固定优先 所有IR请求都有固定级别 且不随中断事件出现和处理而改变 IR0最高 IR7最低 1 全嵌套方式 8259A初始化后自动进入的基本工作方式8259A各IRi引入的中断请求具有固定的优先级 优先级从IR0到IR7 依次降低 ISR寄存器的第i位为1时 表示CPU正处理从IRi引入的中断请求 此时 8259A允许优先级比IRi高的其他中断请求进入 并暂时中止当前正在处理的中断进行优先处理 对优先级与IRi相同或比IRi优先级低的其他中断 则禁止其进入 中断处理结束后 CPU发送EOI 使8259A将ISR寄存器中相应位清0 P259图7 22 2 特殊全嵌套方式与普通全嵌套方式基本相同 不同的是 当CPU正处理某一级中断请求时 允许中断优先级更高甚至同级的中断请求进入 P261图7 23一般用在8259A级联系统中 此时可将主片编程设定为特殊全嵌套方式 从而可以响应来自同一从片的其他中断请求 此种中断请求在主片看来仍属与当前正在处理中断的同一级 具体方法 在主8259的中断源IR处理中 中断返回前先对从8259发出EOI命令 使当前正处理的优先级ISR 0 此后判断从8259的ISR中是否还有1 若有 不给主8259发EOI 若全为0 给主8259发EOI 实质 主8259中同级或更高级中断源可中断正处理的程序 3 自动循环方式 改变优先级别任何一级中断请求被处理完后 CPU向8259A发送EOI命令 8259A接收到这个EOI命令后 将ISR寄存器中优先级最高的置1位清0 并重新赋给它最低优先级 而将最高优先级赋给比它低一级的中断请求 其他中断请求的优先级则以循环方式类推 例如 假设当前ISR中3 5两位为1 即CPU当前正处理从IR3和IR5来的中断请求 当从IR3来的中断请求被处理完毕后 CPU给8259A发送EOI命令 8259A就将ISR的第3位清0 假设当前第3位的优先级大于第5位 并将最低优先级赋给IR3 而将最高优先级赋给IR4 这样 各级中断的优先级从高到低依次为IR4 IR5 IR6 IR7 IR0 IR1 IR2 IR3 4 特殊循环方式比前两种灵活 用户根据要求用置优先权命令指定最低优先级 例如设置IRi为最低优先级 那么最高优先级被赋给IRi 1 其他各级按循环方式类推 4 中断结束方式 三种中断中断请求处理结束 作结束处理 将ISR中的相应位清0 1 自动中断结束方式 中断结束后 CPU不给8259发送EOI命令 来自IRi的中断请求被响应后 将ISR寄存器中的相应位置1 CPU进入中断响应总线周期 而在第二个中断响应信号INTA结束时 自动将ISR中的相应位清0 这种中断结束方式 CPU不需在中断处理结束时给8259A发送任何信息 EOI 8259A不知道中断在什么时候被CPU处理完毕 当下一个中断请求到来时 即使新进入的中断请求的优先权比已响应的前一个中断请求的优先权低 并且前一个中断请求尚未被CPU处理完毕 这个后来的并具有较低优先级的中断请求也将被响应 这是不合理的 并可能会产生严重后果 因此 适于中断源少且单片8259 设置方法是对8259A初始化时 使初始化命令字ICW4的AEOI位为1即可 2 普通中断结束方式 全嵌套方式 中断结束后 发送一个EOI命令 当CPU处理完一个中断请求时 需向8259A发送一个EOI命令 8259A接收到这个EOI命令后 就将ISR寄存器中最高优先级的置1位清0 相当于结束了当前正在处理的中断 可能造成这种工作方式出错的是在中断服务程序中修改了中断优先级 如将全嵌套方式修改为非全嵌套方式 设置方式是通过向8259A发出操作命令字OCW2实现的 并要使OCW2中的EOI 1 SL 0 R 0 P261图7 23 3 特殊中断结束方式 非全嵌套方式用ISR寄存器无法确定当前正在处理哪一级中断 即不能用普通中断结束方式实现中断结束处理 而必须采用特殊中断结束方式 结束方式通过向8259A发出一条特殊中断结束命令来实现的 这个命令中指出了要清除ISR的置1位中的哪一位 当操作命令字OCW2中的EOI 1 SL 1且R 0时 就是一条特殊中断结束命令 此时 OCW2中的L2 L1 L0这3位指出要清除ISR的哪一位 例P262图7 25 5 中断屏蔽方式中断优先级的管理采用中断屏蔽的方式 将中断屏蔽寄存器相应位置位屏蔽某一级或几级中断 分为两种情况 1 普通屏蔽方式将IMR中的某一位或几位置 1 即可将相应的中断请求屏蔽 例如 将IMR中第2位置 1 则从IR2来的中断请求被屏蔽 2 特殊屏蔽方式大多数系统下 当一个中断请求被处理时 禁止同级或较低级的中断响应 但有时希望可以响应较低级的中断请求 此时 就要采用特殊屏蔽方式 特殊屏蔽方式实现 操作命令字OCW3中的ESMM 允许特殊屏蔽方式 和SMM 特殊屏蔽方式 同时为l 并将IMR寄存器的对应于本级中断的位 置1 这样 除本级中断以外 所有没被屏蔽的中断请求 较低优先级或较高优先级 到达时都会得到响应 此时优先级顺序无效 主要是为在处理较高级中断时能够响应较低级中断提供方便 在处理完成之后 可通过清除IMR的相应屏蔽位 并发出OCW3 ESMM 1 SMM 0 便可退出特殊屏蔽方式 P262图7 24 六 8259A的级联使用 1 硬件连接一片8259A只能管理8级中断 如果有多于8级的中断 可以用多片8259A构成级联方式 主片与从片的CAS0 CAS2相连 每片从片的INT连接到主片相应的IRi上 主片的INT则与CPU相连 主片与从片的区分在于主片的SP EN端接 1 信号 而从片则接 0 信号 8259A级联方式连接 P256图7 19引脚信号 IRi SP EN 主SP接电源 从SP接地 CAS2 CAS0 INT INTA 2 中断处理过程 中断源 中断请求 从片 中断请求 主片 中断请求 CPU 中断响应 主片 输出级联地址 从片 从片 输出中断类型码 CPU 执行中断服务程序 非自动EOI方式结束时送二个EOI 主片 从片 复位ISR 3 优先级管理 两级级联最多可管理64级中断 1主8从 问题 1主4从可引入几级中断 36级 优先级顺序 对8259A未采用循环方式改变各引脚优先级时 接入优先级高引脚的从片优先级高于接入优先级低引脚的从片 特殊完全嵌套方式举例说明 设主片IR6接一从片 从片IR7来一中断请求并被CPU处理 从片IR0又来一中断 若主片ISR置1的优先级最高者即为IR6 则应响应此中断 选讲 处理过程中二片8259A的IRR和ISR状态变化如下 从IRR 10000000主IRR 01000000主IRR 全0主ISR 01000000从IRR 全0从ISR 10000000从IRR 00000001主IRR 01000000主IRR 全0主ISR 01000000从IRR 全0从ISR 10000001中断处理结束 从ISR 10000000从ISR 全0主ISR 全0级联方式下 主8259A应设为特殊完全嵌套方式 启动8259开始工作 向8259送入2 4个字节的初始化命令字 ICW1 4 对8259工作方式进行设量 向8259送出3个字节的操作命令字 OCW1 3 InitialigationCommandWord OperationCommandWord 向8259相应端口送入2 4个字节的初始化命令字 初始化命令字输出顺序如下 一 对8259的初始化编程顺序 1 SNGL为 1 0 由ICW1中的D1位说明ICW4需要否 由ICW1中的D0位决定2 4个命令字中 ICW1ICW2是必须的 而ICW3 ICW4是由工作方式来确定是否需要 说明 二 各初始化命令字的格式及其含义1 ICW1 中断请求触发方式的设定格式如下 边沿触发 单片 要ICW4ICW1 00010011B 13HMOVDX 偶数地址MOVAL 13HOUTDX AL 当某IRI中断请求被CPU响应后 在系统的第二个INTA周期8259须向CPU提供8位的TYPE码 其高5位由ICW2的D7 D3位提供 其低3位由IRi的二进制编码决定 在CPU读取TYPE码前 由8259自动填入到DB7 0的D2D1D0三位数据总线上 INTR中断源的TYPE码 ICW2的 高5位 低3位 IRi的编码 2 ICW2 用于中断类型码的提供 编程举例 在PC机中 硬盘中断源的类型码的高5位由用户或系统在ICW2中设定 ICW2内容为08H 其中断请求线与8259的IR5相连 类型码的形成过程如下 TYPE码高5位已获得 D7D6D5D4D3D2D1D000001 用户初始化编程 MOVAL 08H ALICW2内容OUT21H AL ALICW2对应端口 A0 1 CPU响应硬盘中断请求后 8259在INTA2送低3位至ICW2对应端口中 将IR5对应101连同ICW2的高5位一齐送到DB7 0上 得到硬盘中断TYPE码为0DH 3 ICW3 中断级联方式的设定 ICW3初始化命令字用于8259的级联 若系统中只有一片8259A 则不需要设置命令字ICW3 若有多片8259级联 则主 从8259片都必须设置ICW3命令字 且主 从片的ICW3格式有所区别 具体如下 2 ICW3的格式 说明 当由多片8259A构成级联中断控制器结构时 与中断请求线IRi相连的8259A叫做从8259 与CPU的INTR引脚相连的那一片8259A叫做主8259A 级联将中断源由8扩至64级 编程举例 若主8259的IR3和IR5两输入端分别连接了从8259A片 则有主8259的ICW3的值为00101000B 28H MOVAL 28H 主ICW3ALOUT21H AL AL主ICW3对应端口A0 1 从8259的从ICW3的设定过程与主ICW3相同例如 有主8259的IR6和IR1分别连接了从片8259 则有 从片A的ICW3 00000001B 01H 与主片IR1相连从片B的ICW3 00000110B 06H 与主片IR6相连编程如下 MOVAL 01H OUT21H AL MOVAL 06H OUT21H AL 级联方式下CPU对从片中断请求的响应1 从IRi经判优 最终到达CPU的INTR引脚 2 CPU响应INTR请求 发出INTA 给所有8259 主及从 3 主8259通过级联线CAS2 0向所有从片送出优先权最高的中断源所在的从8259的标识码符 4 各从片将CAS2 0上来的ID2 0码与自己的ID2 0码核对 进行比较以后 相符的从8259就在INTA2周期送出中断类型码 5 在CPU发出INTA2时 从DB7 0上读取TYPE码 CPU INTRINTAWRRD DB 8 CSA0SP ENIR08259从INTINTAIR7WRRDCAS2 0 CSA0SP ENNIR08259从INTINTAIR7WRRDCAS2 0 8259中断级联方式的连线 CSA0SP ENIR08259主INTIR7INTAWRRDCAS2 0 4 ICW4格式

温馨提示

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

评论

0/150

提交评论