微型计算机接口技术第2章 中断

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
字节的扫描码。 ④该扫描码被送入并行口PA口,同时产生中断请求信号IRQ1。 断向量,找到后,进入相应的中断服务程序(键盘中断)。
软 ⑤如果CPU响应此中断,则在中断向量表中查找与IRQ1对应的INT 09H的中 件
⑥键盘中断服务程序读PA口,从而得到按键的扫描码,并将之转换成相应 执 的ASCII码,对于没有ASCII码的键(如 CTRL,ALT…),则其ASCII码值 为0。
§1 PC机中断系统
三、8259A中断控制器
8259中断控制器用于管理PC机的硬件中断,在接口技术中的中断编程也就 是对8259中断控制器的编程设置。 1.8259功能 Intel 8259A是与8080/8085系列以及8088/8086系列兼容的可编程中断控制 器,它的主要功能有: (1)具有8级优先权控制,通过级连后可扩展至64级优先权控制。 (2)每一级中断都可以独立被屏蔽或允许。 (3)在中断响应周期,8259A可提供中断向量,从而快速地转入中断服务 程序。 (4)8259A有多种工作方式,可通过程序来选择。
§1 PC机中断系统
2、外部中断
不由CPU内部引发,而是因外界条件触发的中断。 在80X86系列CPU中,有两条外部中断请求线:NMI和INTR,它们分别对应 了80X86系统的两种类型的外部中断:不可屏蔽中断和可屏蔽中断。 (1)不可屏蔽中断 之所以为说不可屏蔽,指的是这种中断不受CPU标志寄存器中IF位的影响, 无论何时,当NMI线上有一个跳变信号时,则无论标志寄存器的IF为何值, CPU自动转入执行不可屏蔽中断。 它主要是为了处理某些计算机系统故障而设计的,如存储器奇偶校验出错、 I/O通道数据奇偶校验出错和80X87协处理器(NPU)错等。 (2)可屏蔽中断 可屏蔽中断(INTR)又称硬件中断。它是由外部IO设备产生中断请求,通过中 断控制器8259管理的一类中断。当在INTR线上出现中断请求(INTR=1)时, 处理器(CPU)是否响应要取决于标志寄存器中的IF标志位,若IF=l,则CPU就 响应该中断请求;若IF=0,CPU就不响应该中断请求。 在汇编语言中可以使用STI、CLI指令来打开和关闭处理器(CPU)的中断。
行 ⑦中断服务程序将ASCII码值与扫描码送入键盘缓冲区。
§1 PC机中断系统
二、中断优先权
硬件中断,即可屏蔽中断,主要用于实现计算机系统对IO外设的管理。在 IBM PC系列的计算机系统中硬件中断是通过中断控制器8259A的INT线来向 处理器(CPU)的INTR线提出中断请求的,IO外设则连接到8259A中断控制器 的中断请求线IRQ n上。 在8088CPU的计算机(PC/XT)系统中,用一片中断控制器8259A管理8级硬 件中断,各级硬件中断IRQn所对应的外部设备如下图所示,其中IRQ0的优 先权最高,IRQ7的优先权最低。
第二章
一、80X86的中断方式
PC机常用接口芯片
§1 PC机中断系统 中断是80X86计算机系统的主要管理方式之一,也是处理器与外设之间通信 的最有效的方法之一。 根据产生中断的中断源的不同,中断可分为两类:内部中断和外部中断 1、内部中断 又叫软件中断。其中断源在CPU的内部,主要是由INT指令、运算过程中的 错误、设置的断点以及单步执行而引起的中断。PC机中主要有以下三种: (1)INT指令:当CPU执行INT N(如INT 21H、INT 10H等)指令时会自动 产生一个内部中断,并调用系统中的相应中断服务程序来完成中断功能。 INT指令中的操作数N即为中断类型号。DOS中允许调用的中断共有256个。
4.8259A的工作方式
8259A有多种工作方式,这些工作方式都可以通过编程来设置。下面,我们 先对8259A的工作方式进行简单的介绍: 1、设置优先权的方式
(1)普通全嵌套方式(全嵌套方式):为8259A最常用的工作方式。 在此方式下,8259A的中断优先权顺序固定为 IR0、IR1、IR2、…、 IR7 , IR0 的中断优先权最高。当 CPU 响应中断后(即 ISR 相应位置位期 间),与之同级或更低级的中断不被响应。 (2)特殊全嵌套方式:与普通全嵌套方式基本相同,二者区别是:在特 殊全嵌套方式下,当处理某一级中断时,如果有同级的中断请求,则 8259A也可以响应。特殊全嵌套方式一般用在8259A级联的系统中。在这 种情况下,主片的8259A设置为特殊全嵌套方式,这样,当从片的某一中 断请求正被处理时,可以响应来自从片的更高优先级的中断。 (3)优先权自动循环方式:在此方式下,优先级队列是在变化的。初始 化时优先级顺序为IR0、IR1、IR2、…IR7,IR0的中断优先权最高。当一 个中断被响应之后,它的优先级自动降为最低,而原来比它低一级的中断 则升至最高级。例:当IR4中断被响应后,则中断优先级顺序为: IR5、 IR6、IR7、IR0、IR1、IR2、IR3、IR4 (4)优先权特殊循环方式:与优先权自动循环方式相比,只有一点不同: 在优先权特殊循环方式中,初始化时的最低优先级是由编程确定的。
2、结束中断处理的方式
当中断源的服务结束时,必须给8259A一个中断结束命令,以使ISR中的相 应位复位(以响应其他的中断)。这个使ISR中的相应位复位的动作就是中 断结束处理。
(1)自动中断结束方式(AEOI-Auto End of Interrupt)
在这种方式下,系统一进入中断过程,8259A 就自动将ISR中的相应位复位。 (2)普通中断结束方式 这种方式配合全嵌套方式使用。当CPU向8259A发出普通中断结束EOI(End of Interrupt)时,8259A就会把ISR中的相应位复位。 3、中断触发方式 按信号要求不同,有两种触发中断的方式:
§1 PC机中断系统
二、中断优先权
在以80286以上中央处理器的计算机系统中,整个系统的硬件中断由两片 8259A中断控制器构成,可管理16级硬件中断(1RQ0—IRQl5),各硬件设备 的中断定义也做了适当的修改,如下图所示。
它们的优先权顺序为(从高到低):IRQ0-IRQl-IRQ2-IRQ8…-IRQl5IRQ3…IRQ7。如上图所示,IRQ2是扩展从8259A的中断请求线,因此,使 系统的硬件中断变为15级。为保持16 级硬件中断,在BIOS中采用软件重定 向的方法(针对IRQ2),保留其中断请求,保证系统的16级硬件中断。
在此方式下,当编程使IMR的某位置位,就会同时引发ISR的对应位 复位的操作。这样,就达到了在处理中断服务程序期间,开放其它优先级 别较低中断的目的。
5.8259A的编程:
对8259A的编程可分为初始化编程和工作方式编 程两种;其中初始化编程由CPU向 8259A 送 2~4 个 字 节 的 初 始 化 命 令 字 I C W ( Init Command Word),在8259A开始正常工作前, 必须用初始化命令字使其处于起始点;工作方 式编程是由CPU向8259A送三个字节的工作方式 命令字OCW(Operation Command Word),以 规定 8259A 的工作方式。工作方式命令字可在 8259A初始化后的任何时间写入。
8259A的内部由8个功能模块组成,如下图所示。
读写控制逻辑: CPU 对8259A 的读写操作除 INTA 信号作特殊操作外,一般的读写操 优先权电路:用于判定当前的中断请求是否输入到 CPU,当中断优先权高于 CPU 正 中断屏蔽寄存器( IMR ): IMR对IRR中相应的中断请求起屏蔽作用,用户 中断请求寄存器( 正在服务寄存器( IRR ISR ):在中断响应之后的第一个 ):用于保存外设在 IR0~IR7 线上提出的中断请求, INTR周期将ISR中与 IRR 作由 CS、IR0~IR7 WR、RD线上的外设产生的触发信号来置位,其内容可用 、A0等几个输入线控制,使 8259A可以接收 CPU写入的初始化命 在服务中断的优先权,则当前中断终止正在服务中断,并响应当前中断请求;若当 可根据需要允许某些中断发生(相应位置 0)或禁止某些中断(相应位置 1)。 由连接在 对应的中断源置位,表明该中断源正处在被服务中, ISR的复位需要用中断 OCW2命 令字( ICW )和操作命令字( OCW ),向 CPU 送出状态信息。 CS 、 WR 、 RD 、 A0 组 前中断优先权低于 CPU的正在服务中断,则等待CPU完成当前中断后再响应该中断。 令读出。 结束命令 OCW2 。 来执行。 合功能如表 2.1所示。 所谓优先权高低也就是中断类型编码的大小。
§1 PC机中断系统
3、80X86系统的内部中断和外部中断见下图:
§1 PC机中断系统 4、软件中断与硬件中断之间的联系 在这里,以键盘中断为例:当用户在键盘是按下某键时,计算机系统的响应 的全过程为:
硬 ①当有键按下时,由键盘中的识别芯片8048扫描到,并产生相应的扫描码。 件 ②该扫描码经过一个并~串转换器转换为串行信号后经键盘线送入微机。 触 ③键盘—微机接口中有一串~并转换器,将接收到的串行信号重新还原为一 发
2.8259A引脚及结构 Intel 8259A为28脚双列直插式芯片,见右图: 主要引脚功能如下: (1)IR0~IR7:从外设来的中断请求由 这些引脚输入到8259A。在边沿触发方式 中,IR应有由低到高的上升沿,此后保持 为高电平,直到被响应;在电平触发方式 中,IR应输入高电平直到被响应为止。 (2)INT:当8259A接到外设的中断请求, 对CPU提出中断请求线,该引脚连接到 CPU的INTR上。 (3)INTA:CPU接到中断请求后送回的 中断应答信号。在中断响应周期中,第一 个INTA用于通知8259A中断请求已被响应; 第二个INTA作为特殊的读操作信号,读取 8259提供的中断类型。 (4)CAS0~CAS2:主8259A与从8259A 的级连线,对于主8259A该引脚为输出, 从8259A为输入。
8259A有两种屏蔽中断的方式:
(1)普通屏蔽方式
在此方式中,将IMR的某一位置1,则它对应的中断就被屏蔽。 (2)特殊屏蔽方式
当一个中断被响应时,将使ISR中的对应位置1,只要中断服务程序没 有结束,8259A将禁止所有优先级比它低的中断。为了能在中断服务 程序期间响应其它优先级更低的中断,因此引入了特殊屏蔽方式。
(2)处理器(CPU)的错误:处理器(CPU)在执行程序时,若出现某些错误(如: 溢出OVERFLOW、除数为零等),为及时处理这些错误,CPU就以中断方式 终止程序执行,等待操作人员修改错误。 (3)为调试程序设置的中断:在调试程序时,为了检查程序执行的中间结 果或寻找程序中存在的问题,往往在程序中适当的位置设置断点或使程序单 步运行,以便发现或查找程序中的问题。如DEBUG中的单步运行(T命令)
(1)边沿触发方式:
ቤተ መጻሕፍቲ ባይዱ
在此方式下,8259A将中断请求输入端出现的信号的上升沿作为中断请求信号。 (2)电平触发方式:
在此方式下,8259A将中断请求输入端出现的高电平信号作为中断请求信号。 这时,应注意及时撤除高电平,否则,有可能引起不应有的第二次中断。
4、屏蔽中断的方式
8259A内部的中断屏蔽寄存器IMR的每一位对应了一个中断请求。可以通 过编程使IMR的任一位或几位置0或置1,从而允许或禁止相应中断。
3.8259A响应中断的过程:
(1)当有一条或若干条中断请求输入线(IR0..IR7)变高,则使中断请求寄存器 的相应位置位。
(2)若中断请求线中至少有一条是中断允许的,即在中断屏蔽寄存器中至 少相应位是没有被屏蔽的(相应位为0),则由INT引脚向CPU送出中断请求 信号。 (3)若CPU处于开中断状态(IF=1),则在当前指令执行完成后,用INTA 信号作为响应。 (4)8259A在收到CPU的INTA信号后,使最高优先级的正在服务寄存器ISR 中的相应位置位,而IRR中相应的位复位。 (5)8086/8088启动另一个中断响应周期,输出另一个INTA脉冲,在这个脉 冲周期中,8259A向数据总线输送一个8位的指针,而CPU读取此向量后把它 乘以4,就可以从中断向量表中取出中断服务程序的入口地址。 (6)由此,中断响应周期结束,CPU转至中断服务程序。若8259A工作在 AEOI方式(AUTO End of Interrupt),在第二个INTA脉冲结束时,使中断源 在ISR中的相应位复位。否则,直到中断服务程序结束,发出EOI(End of Interrupt)命令,才使ISR中的相应位复位。
相关文档
最新文档