(15)8259A 可编程中断控制器6.2.2_第1页
(15)8259A 可编程中断控制器6.2.2_第2页
(15)8259A 可编程中断控制器6.2.2_第3页
(15)8259A 可编程中断控制器6.2.2_第4页
(15)8259A 可编程中断控制器6.2.2_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

6 2 28259A可编程中断控制器 中断管理包括 中断请求信号的产生和锁存环节 中断请求的屏蔽环节 中断判优环节 中断源的识别环节 向CPU传递识别码 中断向量号 的环节 中断请求信号的撤除环节 中断管理可以由若干块芯片来实现 与可以采用可编程接口芯片来实现 8259A就是一块在计算机系统中 用得相当普遍的一种中断管理芯片 它不仅可以完成上面所提及的各种操作 还具备更强的 更多的功能 具有更方便 更灵活的特性 从功能的角度 认识和学习8259A 功能 1 一片8259A可以管理8个中断源的识别和判优 一片8259可以级连8片8259A 可以管理64个中断源的识别和判优 2 对于每一个由8259管理的外中断 均可独立屏蔽或非屏蔽3 能够向CPU提供中断源的识别码 中断类型号 4 具有多种优先级管理方式 1 8259A内部的结构和引脚功能 8259A与总线的连接 1 引脚功能P174图6 15 D0 D7 8259A数据线 通过D0 D7 设置8259A的工作模式 外设的中断类型号也必须通过数据线送给CPU CS片选信号 A0 端口选择信号8259A内部有两个可寻址的端口 偶地址端口和奇地址端口 双功能引脚 工作在级联方式时 主8259A的这条引脚接高电平 从8259A接低电平 CAS0 CAS1 CAS2 CAScadelines 级联线 了解即可 主从片的CAS0 CAS1 CAS2对应连接 IR0 IR7中断请求输入引脚 8个外设的中断请求信号分别连接在这些引脚上 每一个引脚可以扩展一片8259A SP EN SlaveProgram ENablebuffer 了解即可 从编程 使能缓冲线 注意 外设的中断请求不是直接提交给CPU的 而是通过中断控制器经过管理后 再传递给CPU的INTR引脚的 2 内部结构 1中断请求寄存器IRRInterruptRequestRegister功能 存放中断请求信号直到CPU响应中断为止 80X86计算机系统设定的是上升边方式 2中断屏蔽寄存器IMRInterruptMaskRegister功能 用于屏蔽某IR0 IR7引脚上的中断请求信号 使之不能被传递给CPU 某位为1 则屏蔽对应引脚上的中断请求 为0 允许 IMR与IRR的各个位一一对应 例 IR0 IR3 IR7引脚上有中断请求信号 要求只屏蔽IR7引脚上的中断请求 则对屏蔽寄存器送入屏蔽字10000000即可 R7引脚R3引脚R0引脚 1 1 1 IMR7IMR3IMR0 1 0 0 IMR IRR IRR7IRR3IRR0 如果我们希望确保IR3引脚上的信号不被屏蔽 允许中断请求信号能够传送到CPU 而又要求其它各个引脚上屏蔽 开放的状态不变 可以采用如下指令 3中断服务寄存器ISRInterruptServiceRegisterISR与IRR的各个位一一对应功能 记录CPU正在为之服务的是哪一个中断源 ISR2上的1 一直要保持到该中断源的中断处理结束为止 当8259A收到中断结束命令后 ISR2才被清0 表明连接在IR2上的外设的中断服务已经结束 有两个以上的 1 表明有中断嵌套 CPU响应IR2中断 回送中断应答信号 8259的INTA引脚收到第一个中断响应信号 使ISR某位 如ISR2 置1时 把IRR中某位 如IRR2 清0 设IR2引脚有中断请求 IRR2 1 第二个中断响应信号 启动8259把选中的中断源的中断类型号回送给CPU IRR7IRR2IRR0 IR7引脚IR6IR5IR4IR3IR2IR1IR0引脚 IRR IMR ISR 6读写逻辑 7数据总线缓冲器 通过这一环节 可以使8259A的数据线直接与CPU的DB连接而不用增加其它电路 8级联缓存器 比较器 了解 在多片8259A级联的情况下 用于存放和比较从8259A的级联选择代码 CPU响应中断时 通过CS2 CS0对从8259A输出级联选择代码 选出发中断请求的从8259A 从8259A则通过CS2 CS0接受来自主8259A的选择代码 9初始化命令寄存器和操作字命令寄存器两组可编程控制寄存器 用于设定或改变8259A的工作方式和控制方式 2 8259A的中断优先权管理方式 P175 8259A有五种优先级管理方式 所有的优先级管理方式均可通过编程来设置 1 全嵌套方式 亦称固定优先级方式 重点 8259最常用 默认 的工作方式 80 x86初始化时 使8259采用这种工作方式 即 初始化后 中断优先级固定 IR0 IR7 中断被响应时 8259把中断类型号送给CPU并使ISR 中断服务寄存器 中对应位置1 2 特殊全嵌套方式 了解 一般用在8259的级连系统中 从 通过 主 传递中断请求 特殊 表现在 1 2P175 3 优先级自动循环方式优先级不固定处理完的中断的优先级自动降为最低 4 优先级特殊循环方式指定优先级顺序方式 例如 指定IR6为最低 则优先级如下 IR7IR0IR1 IR5IR6 5 特殊屏蔽方式通常 当一个中断被响应时 禁止同级和较低级别的中断请求 特殊屏蔽方式 只屏蔽同级 允许高级和低级中断请求 给 低级 创造被响应的机会 3 8259A处理过程分两步 1 处理外设中断申请 决定是否向CPU发中断申请信号 2 若发出中断申请信号 且CPU响应 则在CPU中断响应周期送出中断类型号 转课件 15 1 8259处理过程 详细说明 8259A的中断工作过程1 IR0 IR7引脚上出现一个或多个中断请求信号 将使中断请求寄存器IRR的相应位置1 如 IRR2 1 这些请求信号将保存到各自的中断请求被CPU响应为止 2 只要中断请求线有一条是开放的 如 IMR2 0 则8259A通过INT引脚向CPU发出中断请求 3 CPU在每一条指令的最后一个机器周期采样INTR引脚 发现INTR引脚上出现有效信号 且IF 1 CPU处于开中断状态 同时又没有其它高级中断请求 如NMI CPU将在当前指令执行完后 响应中断 具体的动作是 发出两个INTA信号作为中断响应 表示接受中断请求 4 当8259A接收到第一个INTA信号时 判优 把优先级最高的中断源 假设为IR2 对应的ISR位 ISR2 置1 表示CPU正在为该中断源服务 此时如果CPU正在执行其它中断源的中断服务程序 如ISR7 1 应当比较优先级 以决定能不能进行中断嵌套 同时把IRR中的对应位清0 如 IRR2 0 表示该中断源的这次中断已经响应 5 当8259A接收到第二个INTA信号时 通过DB把中断源的中断类型号 如 0AH 送到CPU 同时使8259A的INT无效 CPU把中断类型号x4 在中断向量表的连续4个单元中 取出中断服务程序的入口地址 转入中断服务程序 6 什么时候清除ISR的1 如果工作在AEOI AutomaticEndOfInterrupt自动中断结束 模式 则在第二个INTA脉冲结束时 清ISR 只能用于使用一片8259且无中断嵌套的情况 否则 在中断服务程序结束时 发出EOI指令 清除ISR 4 8259A的编程 P176 转15 28259初始化编程 8259A的应用编程 1初始化编程由于8259对外只提供两个可寻址的端口 而命令字有七个 只有遵循规定的顺序和设置特征位才能区分 注意 顺序 特征位 功能 格式 P177图6 16 1 写初始化命令字ICW1功能 规定触发方式 给出有关级联的信息 送入偶地址 D4是特征位 固定为1 写入偶地址的命令字不止一个 实际上只看D3 D1 D0 D7 D6 D5 D2 8080 8085才用 D3 触发方式 1高电平 0上升边LTIM LevelTriggeredMode 电平触发模式 D1 Single 1单片 0多片级连D0 IC4 1要送ICW4 0不送ICW4 低3位为IR0 IR7的引脚顺序号 2 写初始化命令字ICW2功能 规定中断向量号 高5位 必须写入奇地址 00020H是引脚IR0的中断向量号00121H是引脚IR1的中断向量号22H 23H 24H 25H 26H 27H分别是IR2 IR7的中断向量号 直接看实例 如果高5位设定为00100 注意 80X86PC的主片8259A的中断向量号已经设定为 08H 0FH 连接到IR0引脚上的中断源的中断向量号就是08H IR1 09H IR7 0FH 中断实验中将要用到中断向量号是0BH 3 写初始化命令字ICW3级连命令字 单片则不用ICW3 功能 在8259A级联中 标识主 从片 必须写入奇地址 单8259A不用ICW3 对于主片 每一位对应一个IRi引脚上的连接情况 如果M0 1 则表明在主片的IR0引脚上连接有从片 如果ICW3 F0H 则表明IR7 IR6 IR5 IR4引脚上有从片 而余下4条引脚上没有从片 对于从片 ICW3相当于是一个标识码 如果某一从片连接在主片的IR0引脚上 则从片把自己的ICW3的低3位设为 000 高5位固定为0 连接在IR7引脚上 则设为111 4 写初始化命令字ICW4功能 CPU种类 8080 8085 8086 8088 中断嵌套 结束方式D0 指明系统中使用的是何种CPU 8086以上则D0设置为1 PM Micro ProcessorModeD1 中断结束方式选择D1 1自动EOI 自动使中断服务寄存器ISR复位 在第二个INTA信号结束时 AEOI AutomaticEndOfInterrupt D1 0正常EOI 在程序中送出EOI指令后 才使ISR复位80X86在初始化时 已经把8259的D1设为0 D3数据缓冲器 BUFffer 选择 1表示8259A与DB之间有缓冲器 此时 由D2确定主片 1 和从片 0 而不是由引脚SP EN的电平高低来确定主 高 从 低 片 略 D4 确定中断嵌套方式 D4 0 一般嵌套方式 固定优先级方式 上电自动设置为该方式 IR0 最高 IR7 最低 80X86在初始化时 已经把8259的D4设为0 D4 1 特殊全嵌套方式 用于多片8259A SFNM SpecialFullyNestedMode特殊全嵌套方式 在有两片8259A的PC机中 如果连线方式如图示 8259A提供了4个初始化命令字 ICW1 ICW4 并且规定了严格的初始化步骤 我们可以不作为重点 对微机系统中的8259A的初始化是在微机启动后由BIOS自动完成的 从系统的安全角度 用户不应当再对其初始化 一般不改变其初始化设置 很显然 我们的学习重点不是怎样对8259A进行初始化 重要的是必须掌握微机系统在对8259A初始化之后 确定了哪些中断管理方式 用户只有严格遵守这些规定 才能开发新的中断应用 80X86设定的中断管理方式 1 边沿触发产生中断请求2 常规屏蔽方式 IMR中某一位置1 屏蔽相应的中断请求 3 一般完全嵌套方式 优先级固定 IR0最高 IR7最低 4 常规中断结束方式 要送 常规中断结束命令字 于是 对于使用微机系统中的8259A的应用编程就只有三项工作 1 根据需要 把一个中断屏蔽字写入中断屏蔽寄存器 奇地址 2 中断服务程序结束 执行IRET之前必须对8259A的偶地址写入一个中断结束命令字 该命令字的一般格式为 20H 3 把中断服务程序的入口地址填写到中断向量表的正确位置 IR7引脚IR6IR5IR4IR3IR2IR1IR0引脚 中断请求寄存器IRR 中断屏蔽寄存器IMR IMR7IMR2IMR0 IRR7IRR2IRR0 IR7 IR2 IR0 3个中断源有中断请求 但IR0被屏蔽 实际上IR2的优先级比IR0高了 如果全为0 则全部开放中断源 如果全为1 则屏蔽全部中断源 2 写操作命令字OCW2 中断方式命令字 写入偶地址 功能 设置优先级方式和中断结束方式 书P178误为奇 D4 D3必须是00 作为OCW2的标志D7 D6 D5三位联合实现各种优先级和中断结束方式 P179表6 2 由于PC机已经固定设置为常规中断结束方式 非特殊中断结束方式 所以在8种设置中 必须介绍非特殊EOI EndOfInterrupt 00100000非特殊标志位在D6 0时中断结束这3位的设置无效 一般设为0 OCW2 20H OCW2操作命令字必须写入偶地址 即写入8259A的20H口 于是在中断服务程序的结束部分 必然有以下固定指令 MOVAL 20H 设置中断结束方式 EOI OUT20H AL 把中断结束方式命令送8259AIRET 中断返回 必须掌握 非特殊中断结束方式 在返回指令IRET之前必须写一条OCW2命令 以结束中断 特殊循环方式 指定优先级通过指定某中断源为最低优先级的方式来动态设置优先级 例如 设定OCW2 11000110 特殊循环优先级设置标志IR6IR6为最低 则优先级为 IR7IR0IR1 IR5IR6 3 写操作命令字OCW3写入偶地址 书P179误为奇 如何读取IRR ISR IMR的内容 功能 设置 撤消特殊屏蔽方式 只屏蔽同级 允许高级和低级中断请求 设置中断查询方式访问8259A的IRR ISR IMR的当前状态 D7 通常设为0 无定义 D6 ESMMEnableSpecialMaskMode 1 允许SMM位设置特殊屏蔽模式 0 SMM位无意义D5 SMMSpecialMaskMode当ESMM 1时 SMM 1 8259进入特殊屏蔽模式SMM 0 禁止8259进入特殊屏蔽模式D4 0 D3 1 标志D2 PPoll 1设置为中断查询方式 通过查询方式来获得外设的中断请求信息 D1 RRReadinterruptRequestregister 1读中断请求寄存器D0 RISReadInterruptServiceregister 1读中断服务寄存器 当P D2 0 RR D1 1 RIS D0 0 从偶地址读IRRRR D2 1 RIS D2 1 从偶地址读ISR 读中断请求寄存器ISR的内容 000010110BH 读ISR MOVAL 0BH OCW3 读8259AOUT20H AL OCW3送偶地址 进入读状态INAL 20H ISR的内容读入AL 标志位 不查询中断 读中断屏蔽寄存器IMR8259A规定 直接从奇地址读入的内容就是IMRINAL 21H 中断实验要用到本指令 当P 1使8259A进入中断查询方式 8259A并非只能工作在中断方式 也可以工作在查询方式 下

温馨提示

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

评论

0/150

提交评论