第6章接口技术06-中断_第1页
第6章接口技术06-中断_第2页
第6章接口技术06-中断_第3页
第6章接口技术06-中断_第4页
第6章接口技术06-中断_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

1、第第6 6章章 微型计算机的中断系统微型计算机的中断系统教学重点n 了解中断的基本概念了解中断的基本概念n 掌握掌握8086 CPU的中断系统的中断系统n 了解8259A的中断工作过程和工作方的中断工作过程和工作方式式6.1中断的基本概念n中断:中断:在在CPU执行程序的过执行程序的过程中出现了某种紧急程中出现了某种紧急或异常的事件或异常的事件(中断请中断请求求),CPU需暂停正在需暂停正在执行的程序,转去处执行的程序,转去处理该事件理该事件(执行中断服执行中断服务程序务程序),并在处理完,并在处理完毕后返回断点处继续毕后返回断点处继续执行被暂停的程序,执行被暂停的程序,这一过程称为中断。这一

2、过程称为中断。继续执行断点主程序中断服务程序有中断请求中断处理返回断点断点断点:指返回主程序时执行的第一条指令的地址。:指返回主程序时执行的第一条指令的地址。中断源n引发中断的事件都称为中断源。通常,中断引发中断的事件都称为中断源。通常,中断源有以下几种:源有以下几种:外部设备的要求,例如外部设备的要求,例如I/O接口电路的请求、实接口电路的请求、实时时钟中断等时时钟中断等由硬件故障引起的,例如电源掉电、硬件损坏等由硬件故障引起的,例如电源掉电、硬件损坏等由软件引起的,例如程序错、运算错、设置断点由软件引起的,例如程序错、运算错、设置断点程序调试或中断指令(程序调试或中断指令(INT 21H)

3、等)等中断处理过程n中断请求中断请求n中断判优中断判优n中断响应中断响应n中断处理中断处理n中断返回中断返回中断请求n中断请求是中断源向中断请求是中断源向CPU发出的请求中断的发出的请求中断的要求。要求。n中断请求是中断过程的第一步。中断请求是中断过程的第一步。n当中断源发出中断请求信号被中断系统接收当中断源发出中断请求信号被中断系统接收后,就进入中断判优过程。后,就进入中断判优过程。返回返回中断判优n中断请求是随机发生的,当系统具有多个中断源时,有中断请求是随机发生的,当系统具有多个中断源时,有时会同时出现多个中断请求,时会同时出现多个中断请求,CPU只能按一定的次序予只能按一定的次序予以响

4、应和处理,这个响应的次序称为中断优先级。以响应和处理,这个响应的次序称为中断优先级。n对于不同级别的中断请求,一般的处理原则是:对于不同级别的中断请求,一般的处理原则是: (1) 不同优先级的多个中断源同时发出中断请求,按优先级不同优先级的多个中断源同时发出中断请求,按优先级由高到低依次处理。由高到低依次处理。 (2) 低优先级中断正在处理,出现高优先级请求,应转去处低优先级中断正在处理,出现高优先级请求,应转去处理高优先级请求,服务结束后再返回原优先级较低的中断服理高优先级请求,服务结束后再返回原优先级较低的中断服务程序继续执行。务程序继续执行。(3) 高优先级中断正在处理出现低优先级请求,

5、可暂不响应。高优先级中断正在处理出现低优先级请求,可暂不响应。 (4) 中断处理时,出现同级别请求,应在当前中断处理结束以中断处理时,出现同级别请求,应在当前中断处理结束以后再处理新的请求。后再处理新的请求。 返回返回中断响应nCPU在每条指令执行的最后一个时钟周期检测其在每条指令执行的最后一个时钟周期检测其中断请求输入端,判断有无中断请求。中断请求输入端,判断有无中断请求。n中断响应的条件为:中断响应的条件为:有中断请求信号且应保持到它被响应为止。有中断请求信号且应保持到它被响应为止。CPU处在开中断状态,即处在开中断状态,即CPU内部的中断允许触发内部的中断允许触发器的状态为器的状态为1,

6、对,对8086CPU,应设置应设置IF=1。(指令为指令为STI)此时无更高级中断请求。(否则先处理高级中断)此时无更高级中断请求。(否则先处理高级中断)CPU至少要在现行指令执行完时才有可能响应中断。至少要在现行指令执行完时才有可能响应中断。nCPU响应中断后,系统将自动完成以下几件响应中断后,系统将自动完成以下几件事:事:关中断关中断o一旦进入中断处理,立即清除中断请求信号。这样可一旦进入中断处理,立即清除中断请求信号。这样可以避免一个中断请求被以避免一个中断请求被CPU多次响应。多次响应。保存断点保存断点oCPU一旦响应中断,将自动保护断点和标志寄存器一旦响应中断,将自动保护断点和标志寄

7、存器FR的内容,以确保中断处理结束后能正确返回到源程序。的内容,以确保中断处理结束后能正确返回到源程序。形成中断入口地址形成中断入口地址oCPU响应中断后,根据判优逻辑提供的中断源的识别,响应中断后,根据判优逻辑提供的中断源的识别,以某种方式获得中断服务程序的入口地址,转到该中以某种方式获得中断服务程序的入口地址,转到该中断程序去处理。断程序去处理。返回返回中断处理n中断处理通常由中断服务程序完成。中断处理通常由中断服务程序完成。用户编写的用于用户编写的用于CPU为中断源进行中断处理的程序为中断源进行中断处理的程序称为中断服务程序。称为中断服务程序。n中断服务程序中必须作以下几项工作:中断服务

8、程序中必须作以下几项工作:保护现场保护现场o所谓现场,指中断前一刻所谓现场,指中断前一刻CPU各寄存器的内容。凡不希望各寄存器的内容。凡不希望被破坏的寄存器数据,均应依次压栈保护。被破坏的寄存器数据,均应依次压栈保护。执行中断服务程序执行中断服务程序o这是整个中断过程中唯一的实质性环节,也是中断的目的这是整个中断过程中唯一的实质性环节,也是中断的目的所在。所在。 恢复现场恢复现场o中断服务结束后,用出栈指令把保护现场时的有关寄存器中断服务结束后,用出栈指令把保护现场时的有关寄存器内容恢复,并保证堆栈指针恢复到进入中断处理时的指向。内容恢复,并保证堆栈指针恢复到进入中断处理时的指向。返回返回中断

9、返回n执行完中断服务程序,返回到原先被中断的执行完中断服务程序,返回到原先被中断的程序,此过程称为中断返回。程序,此过程称为中断返回。n为了能正确返回到原来程序的断点处,在中为了能正确返回到原来程序的断点处,在中断服务程序的最后应专门放置一条中断返回断服务程序的最后应专门放置一条中断返回指令指令IRET。n中断返回指令的作用实际上是恢复断点,也中断返回指令的作用实际上是恢复断点,也就是保护断点的逆过程。就是保护断点的逆过程。 返回返回IRET 和RET的区别n中断返回指令中断返回指令IRET和一般子程序返回指令和一般子程序返回指令RET的区别是:的区别是:nIRET除恢复断点地址外(除恢复断点

10、地址外(CS,IP),还恢复),还恢复标志寄存器标志寄存器FR的内容。而的内容。而RET仅恢复断点地仅恢复断点地址。址。6.2 8086中断结构n8086的中断系统采用向量中断机制的中断系统采用向量中断机制n能够处理能够处理256个中断个中断n用中断向量号用中断向量号0255区别区别n可屏蔽中断还需要借助专用中断控制可屏蔽中断还需要借助专用中断控制器器Intel 8259A实现优先权管理实现优先权管理6.2.1 8086的中断类型非屏蔽中断源非屏蔽中断源中断逻辑中断逻辑INTO指令指令单步单步中断中断除法除法错误错误INT N指令指令CPUINTRNMI可屏蔽中断源可屏蔽中断源8259A中断中

11、断控制器控制器IR0IR1IR2IR3IR4IR5IR6IR7外外设设中中断断源源 INTAn内部中断(软件)内部中断(软件)除法错中断除法错中断指令中断指令中断溢出中断溢出中断单步中断单步中断n外部中断(硬件)外部中断(硬件)非屏蔽中断非屏蔽中断可屏蔽中断可屏蔽中断1. 内部中断n内部中断是由于内部中断是由于8086内部执行程序出现异内部执行程序出现异常引起常引起的程序中断的程序中断n利用内部中断,微处理器为用户提供了发利用内部中断,微处理器为用户提供了发现、调试并解决程序执行时异常情况的有现、调试并解决程序执行时异常情况的有效途径效途径n例如,例如,ROM-BIOS和和DOS系统利用内部中

12、系统利用内部中断为程序员提供了各种功能调用断为程序员提供了各种功能调用内部中断的中断向量号已定内部中断的中断向量号已定2. 外部中断n外部中断是由于外部中断是由于8086外部提出中断请求引外部提出中断请求引起起的程序中断的程序中断n利用外部中断,微机系统可以实时响应外利用外部中断,微机系统可以实时响应外部设备的数据传送请求,能够及时处理外部设备的数据传送请求,能够及时处理外部意外或紧急事件部意外或紧急事件 非屏蔽中断n通过非屏蔽中断请求信号向微处理器提出的中断请通过非屏蔽中断请求信号向微处理器提出的中断请求,微处理器无法禁止,将在当前指令执行结束予求,微处理器无法禁止,将在当前指令执行结束予以

13、响应,这个中断被称为非屏蔽中断以响应,这个中断被称为非屏蔽中断n8086的非屏蔽中断的向量号为的非屏蔽中断的向量号为2,非屏蔽中断请求,非屏蔽中断请求信号为信号为NMIn非屏蔽中断主要用于处理系统的意外或故障。例如:非屏蔽中断主要用于处理系统的意外或故障。例如:电源调电前的数据保护电源调电前的数据保护存储器读写错误的处理存储器读写错误的处理 可屏蔽中断n外部通过可屏蔽中断请求信号向微处理器提出的外部通过可屏蔽中断请求信号向微处理器提出的中断,微处理器在允许可屏蔽中断的条件下,在中断,微处理器在允许可屏蔽中断的条件下,在当前指令执行结束予以响应,同时输出可屏蔽中当前指令执行结束予以响应,同时输出

14、可屏蔽中断响应信号,这个中断就是可屏蔽中断断响应信号,这个中断就是可屏蔽中断n8086的可屏蔽中断请求和响应信号分别是的可屏蔽中断请求和响应信号分别是INTR和和INTA*;由;由IF标志控制可屏蔽中断是否允许响应;标志控制可屏蔽中断是否允许响应;向量号来自外部中断控制器向量号来自外部中断控制器n8086通常需要配合中断控制器通常需要配合中断控制器8259A共同处理可共同处理可屏蔽中断屏蔽中断n可屏蔽中断主要用于主机与外设交换数据可屏蔽中断主要用于主机与外设交换数据IF控制可屏蔽中断的响应控制可屏蔽中断的响应中断标志IF的状态nIF0:可屏蔽中断不会被响应:可屏蔽中断不会被响应关中断、禁止中断

15、、中断屏蔽关中断、禁止中断、中断屏蔽系统复位,使系统复位,使IF0任何一个中断被响应,使任何一个中断被响应,使IF0执行指令执行指令CLI,使,使IF0nIF1:可屏蔽中断会被响应:可屏蔽中断会被响应开中断、允许中断、中断开放开中断、允许中断、中断开放执行指令执行指令STI,使,使IF1n执行指令执行指令IRET恢复原恢复原IF状态状态明确明确IF标志的状态是关键标志的状态是关键6.2.3 8086的中断响应过程NMIN软件中断软件中断INTRTF=1中断响应周期中断响应周期读中断向量号读中断向量号下条指令下条指令现行指令现行指令IF1NNNNYYYYY查询中断的顺序,查询中断的顺序,决定了各

16、种中断源的优先权决定了各种中断源的优先权n软件中断软件中断除法错中断除法错中断指令中断指令中断溢出中断溢出中断n非屏蔽中断非屏蔽中断n可屏蔽中断可屏蔽中断n单步中断单步中断高高低低6.2.3 8086的中断响应过程(续)Y还有还有NMITEMP1标志寄存器入栈标志寄存器入栈TEMPTF,IFTF0CS:IP入栈入栈获取中断向量获取中断向量执行服务程序执行服务程序弹出弹出CS:IP弹出标志寄存器弹出标志寄存器返回被中断程序返回被中断程序(1)(2)(3)(4)(5)NNY(6)n8086各种中断源的优先权,各种中断源的优先权,实际上是指被识别出来的先后实际上是指被识别出来的先后n多种中断同时请求

17、时,多种中断同时请求时,最先响应的则可能是最先响应的则可能是单步中断或单步中断或NMI中断中断6.2.3 中断向量和中断向量表n中断向量:中断服务程序的入口地址(首地址)中断向量:中断服务程序的入口地址(首地址)n逻辑地址含有段地址逻辑地址含有段地址CS和偏移地址和偏移地址IP(32位)位)n每个中断向量的低字是偏移地址、高字是段地址,每个中断向量的低字是偏移地址、高字是段地址,需占用需占用4个字节个字节n8086微处理器从物理地址微处理器从物理地址00000H开始,依次安排开始,依次安排各个中断向量,向量号也从各个中断向量,向量号也从0开始开始n256个中断占用个中断占用1KB区域,就形成区

18、域,就形成中断向量表中断向量表向量号为向量号为N的中断向量的的中断向量的物理地址物理地址N4例例1:某中断源中断类型号为:某中断源中断类型号为10H,中断源的中断向量为,中断源的中断向量为1218H:046AH,用用简图表示该中断源的中断向量在中断向量表中存放情况。简图表示该中断源的中断向量在中断向量表中存放情况。解:解:1) 该中断向量在中断向量表中的首地址为:该中断向量在中断向量表中的首地址为: 10H400040H。占用的。占用的4个内部单元地址为个内部单元地址为 00040H00043H 2) 该中断向量在中断向量表中的存放简图为:该中断向量在中断向量表中的存放简图为:12H18H04

19、H6AH00043H00042H00041H00040H补充例补充例2:在中断向量表中:在中断向量表中30H开始的开始的4个单元中依次存放内容个单元中依次存放内容为为12H、34H、56H、78H,该中断源中断类型号为多少?中断向该中断源中断类型号为多少?中断向量为多少量为多少(以逻辑地址和物理地址两种形式表示)?以逻辑地址和物理地址两种形式表示)?解:解:1 中断源中断类型号为中断源中断类型号为: 30H/4=48/4=12=0CH (注意!注意!30H=48) 2) 中断向量为:中断向量为: 7856H:3412H (逻辑地址形式)(逻辑地址形式) 其物理地址为其物理地址为7B972H.。

20、 78560H + 3412H 7B972H6.3 8259A中断控制器nIntel 8259A是可编程中断控制器是可编程中断控制器PICn可用于管理可用于管理Intel 8080/8085、8086/8088、80286/80386的可屏蔽中断的可屏蔽中断n8259A的基本功能的基本功能一片一片8259A可以管理可以管理8级中断,可扩展至级中断,可扩展至64级级每一级中断都可单独被屏蔽或允许每一级中断都可单独被屏蔽或允许在中断响应周期,可提供相应的中断向量号在中断响应周期,可提供相应的中断向量号8259A设计有多种工作方式,可通过编程选择设计有多种工作方式,可通过编程选择6.3.1 8259

21、A的内部结构和引脚D7D0INTAINT中断请求寄存器中断请求寄存器中断屏蔽寄存器中断屏蔽寄存器数据数据总线总线缓冲器缓冲器IR0IR7读读/写写控制控制逻辑逻辑级联级联缓冲器缓冲器比较器比较器RDWRA0CSCAS0CSA1CAS2SP/EN优先权判别电路优先权判别电路中断服务寄存器中断服务寄存器控制逻辑控制逻辑1. 中断控制n中断请求寄存器中断请求寄存器IRR保存保存8条外界中断请求信号条外界中断请求信号IR0IR7的请求状态的请求状态Di位为位为1表示表示IRi引脚有中断请求;为引脚有中断请求;为0表示无请求表示无请求n中断服务寄存器中断服务寄存器ISR保存正在被保存正在被8259A服务

22、着的中断状态服务着的中断状态Di位为位为1表示表示IRi中断正在服务中;为中断正在服务中;为0表示没有被服务表示没有被服务n中断屏蔽寄存器中断屏蔽寄存器IMR保存对中断请求信号保存对中断请求信号IR的屏蔽状态的屏蔽状态Di位为位为1表示表示IRi中断被屏蔽(禁止);为中断被屏蔽(禁止);为0表示允许表示允许2. 与处理器接口 A0 RD* WR* CS*功能功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1 1 0 1写入写入ICW1、OCW2和和OCW3写入写入ICW2ICW4和和OCW1读出读出IRR、ISR和查询字和查询字读出读出IMR数据总线高阻状态数据总线高阻状

23、态数据总线高阻状态数据总线高阻状态3. 中断级连n一个系统中,一个系统中,8259A可以级连,有一个主可以级连,有一个主8259A,若干个(最多若干个(最多8个)从个)从8259An级连时,主级连时,主8259A的三条级连线的三条级连线CAS0CAS2作作为输出线,连至每个从为输出线,连至每个从8259A的的CAS0CAS2n每个从每个从8259A的中断请求信号的中断请求信号INT,连至主,连至主8259A的一个中断请求输入端的一个中断请求输入端IRn主主8259A的的INT线连至线连至CPU的中断请求输入端的中断请求输入端nSP*/EN*在非缓冲方式下,规定该在非缓冲方式下,规定该8259A

24、是主片是主片(SP*1)还是从片()还是从片(SP*0)动画动画示例示例6.3.2 8259A的中断过程CAS0CAS2D0D7SP/ENIR0IR7CPU响应周期响应周期8259A工作波形工作波形INT第一个周期第一个周期T1 T2 T3 T4ALECLK 第二个周期第二个周期T1 T2 T3 T4第一个前保持为高电平第一个前保持为高电平 INTALOCK动画动画6.3.3 8259A的工作方式普通全嵌套方式普通全嵌套方式特殊全嵌套方式特殊全嵌套方式自动循环方式自动循环方式特殊循环方式特殊循环方式优先权固定方式优先权固定方式优先权循环方式优先权循环方式设置优先权方式设置优先权方式普通中断结束

25、方式普通中断结束方式特殊中断结束方式特殊中断结束方式自动中断结束方式自动中断结束方式非自动中断结束方式非自动中断结束方式结束中断处理方式结束中断处理方式屏蔽中断源方式屏蔽中断源方式普通屏蔽方式普通屏蔽方式特殊屏蔽方式特殊屏蔽方式中断触发方式中断触发方式边沿触发方式边沿触发方式电平触发方式电平触发方式数据线连接方式数据线连接方式缓冲方式缓冲方式非缓冲方式非缓冲方式1. 设置优先权方式n普通全嵌套方式普通全嵌套方式8259A的中断的中断优先权顺序固定不变优先权顺序固定不变,从高到低依次为,从高到低依次为IR0、IR1、IR2、IR7中断请求后,中断请求后,8259A对对当前请求中断中优先权最高的当

26、前请求中断中优先权最高的中断中断IRi予以予以响应响应,将其向量号送上数据总线,对应,将其向量号送上数据总线,对应ISR的的Di位置位,至到中断结束(位置位,至到中断结束(ISR的的Di位复位)位复位)在在ISR的的Di位置位期间,位置位期间,禁止再发生同级和低级优先权禁止再发生同级和低级优先权的中断的中断,但允许高级优先权中断的嵌套,但允许高级优先权中断的嵌套n特殊全嵌套方式特殊全嵌套方式n优先权自动循环方式优先权自动循环方式n优先权特殊循环方式优先权特殊循环方式2. 结束中断处理方式什么是什么是8259A的中断结束?的中断结束?8259A利用中断服务寄存器利用中断服务寄存器ISR判断:判断

27、:n某位为某位为1,表示正在进行中断服务;,表示正在进行中断服务;n该位为该位为0,就是该中断结束服务。,就是该中断结束服务。这里说明如何使这里说明如何使ISR某位为某位为0,不反映不反映CPU的工作状态。的工作状态。2. 结束中断处理方式n自动中断结束方式自动中断结束方式n普通中断结束方式普通中断结束方式配合全嵌套优先权方式使用配合全嵌套优先权方式使用当当CPU用输出指令往用输出指令往8259A发出普通中断结束发出普通中断结束EOI命令命令时,时,8259A就会把所有正在服务的中就会把所有正在服务的中断中优先权最高的断中优先权最高的ISR位复位位复位n特殊中断结束方式特殊中断结束方式配合循环

28、优先权方式使用配合循环优先权方式使用CPU在程序中向在程序中向8259A发送一条特殊中断结束发送一条特殊中断结束命令,这个命令中指出了要清除哪个命令,这个命令中指出了要清除哪个ISR位位3. 屏蔽中断源方式n普通屏蔽方式普通屏蔽方式将将IMR的的Di位置位置1,则对应的中断,则对应的中断IRi被屏被屏蔽蔽,该中断请求不能从,该中断请求不能从8259A送到送到CPU如果如果IMR的的Di位置位置0,则允许,则允许IRi中断产生中断产生n特殊屏蔽方式特殊屏蔽方式将将IMR的的Di位置位置1,对应的中断,对应的中断IRi被屏蔽被屏蔽的同时,使的同时,使ISR的的Di位置位置04. 中断触发方式n边沿

29、触发方式边沿触发方式8259A将中断请求输入端出现的将中断请求输入端出现的上升沿作为中断请求信号上升沿作为中断请求信号n电平触发方式电平触发方式中断请求端出现的高电平是有中断请求端出现的高电平是有效的中断请求信号效的中断请求信号5. 数据线连接方式n缓冲方式缓冲方式8259A的数据线需加缓冲器予以驱动的数据线需加缓冲器予以驱动8259A把把SP*/EN*引脚作为输出端,输出允引脚作为输出端,输出允许信号,用以锁存或开启缓冲器许信号,用以锁存或开启缓冲器n非缓冲方式非缓冲方式SP*/EN*引脚为输入端引脚为输入端若若8259A级连,由其确定是主片或从片级连,由其确定是主片或从片 6.3.4 82

30、59A的编程n初始化编程初始化编程8259A开始工作前,必须进行初始化编程开始工作前,必须进行初始化编程给给8259A写入写入初始化命令字初始化命令字ICWn中断操作编程中断操作编程在在8259A工作期间工作期间可以写入可以写入操作命令字操作命令字OCW将选定的操作传将选定的操作传送给送给8259A,使之按新的要求工作,使之按新的要求工作还可以读取还可以读取8259A的信息,以便了解他的的信息,以便了解他的工作状态工作状态1. 初始化命令字ICWn初始化命令字初始化命令字ICW最多有最多有4个个n8259A在开始工作前必须写入在开始工作前必须写入n必须按照必须按照ICW1ICW4顺序写入顺序写

31、入nICW1和和ICW2是必须送的是必须送的nICW3和和ICW4由工作方式决定由工作方式决定流程流程D7D6D5D4D3D2D1D0ICW11LTIMSNGLIC4D7D6D5D4D3D2D1D0表示可以任意表示可以任意为为1为为0都可以(建议为都可以(建议为0) 1只能为只能为1,作为标志,作为标志中断触发方式:中断触发方式:LTIM1,电平触发方式,电平触发方式LTIM0,边沿触发方式,边沿触发方式 规定单片或级连方式:规定单片或级连方式:SNGL1,单片方式,单片方式SNGL0,级连方式,级连方式是否写入是否写入ICW4IC41,要写入,要写入ICW4IC40,不写入,不写入ICW4,

32、即,即ICW4规定的位全为规定的位全为0ICW2T7T6T5T4T3D7D6D5D4D3D2D1D0设置中断向量号设置中断向量号nT7T3为中断向量号的高为中断向量号的高5位位n低低3位由位由8259A自动确定:自动确定:nIR0为为000、IR1为为001、IR7为为111ICW3S7S6S5S4S3S2/ID2S1/ID1S0/ID0D7D6D5D4D3D2D1D0级连命令字级连命令字n主片主片8259A:Si1对应对应IRi接有从片;接有从片;否则否则IRi没有连接从片没有连接从片n从片从片8259A:ID0ID2编码说明从片编码说明从片INT引脚接到主片哪个引脚接到主片哪个IR引脚引脚

33、ICW4000SFNMBUFM/SAEOIPMD7D6D5D4D3D2D1D0嵌套方式:嵌套方式:n特殊全嵌套方式(特殊全嵌套方式(SFNM1)n普通全嵌套方式(普通全嵌套方式(SFNM0)数据线的缓冲方式:数据线的缓冲方式:n缓冲方式(缓冲方式(BUF1)n非缓冲方式(非缓冲方式(BUF0) 主片主片/从片选择:从片选择:n主片(主片(M/S=1)n从片(从片(M/S=0)中断结束方式:中断结束方式:n自动中断结束(自动中断结束(AEOI1)n非自动中断结束(非自动中断结束(AEOI0)微处理器类型:微处理器类型:n16位位80 x86( PM1)n8位位8080/8085( PM0)2.

34、操作命令字OCWn8259A工作期间,可以随时接受操作命工作期间,可以随时接受操作命令字令字OCWnOCW共有共有3个:个:OCW1OCW3n写入时没有顺序要求,需要哪个写入时没有顺序要求,需要哪个OCW就写入那个就写入那个OCWD7D6D5D4D3D2D1D0OCW1M7M6M5M4M3M2M1M0D7D6D5D4D3D2D1D0屏蔽命令字屏蔽命令字内容写入中断屏蔽寄存器内容写入中断屏蔽寄存器IMRDiMi对应对应IRi,为,为1禁止禁止IRi中断;中断;为为0允许允许IRi中断。各位互相独立。中断。各位互相独立。OCW2RSLEOI00L2L1L0D7D6D5D4D3D2D1D0R、SL和

35、和EOI配合使配合使用用产生中断结束产生中断结束EOI命命令和改变优先权顺序令和改变优先权顺序L2L0的的3位编码位编码指定指定IR引脚引脚 OCW30ESMMSMM01PRRRISD7D6D5D4D3D2D1D0ESMM、SMM设置中断屏蔽方式设置中断屏蔽方式P、RR和和RIS规定随后读取的规定随后读取的状态字状态字含义含义3. 读取状态字nCPU可读出可读出IRR、ISR、IMR和查询字和查询字nA0为低,由为低,由OCW3中中RR和和RIS位设定读位设定读取取IRR或或ISR,由,由OCW3中中P位设定读取位设定读取查询字查询字n而而A0引脚为高电平时读取的都是引脚为高电平时读取的都是I

36、MRn查询字反映查询字反映8259A是否有中断请求是否有中断请求D7D6D5D4D3D2D1D0查询字IW2W1W0D7D6D5D4D3D2D1D0中断位中断位I位为位为1,有外设请求中断有外设请求中断W2W0的编码的编码当前中断请求的当前中断请求的最高优先级最高优先级4. 命令字和状态字的区别方法 利用读写信号区别写入的控制寄存器和利用读写信号区别写入的控制寄存器和读出的状态寄存器读出的状态寄存器 利用地址信号区别不同利用地址信号区别不同I/O地址的寄存器地址的寄存器 由控制字中的标志位说明是哪个寄存器由控制字中的标志位说明是哪个寄存器 由芯片内顺序控制逻辑按一定顺序识别由芯片内顺序控制逻辑

37、按一定顺序识别不同的寄存器不同的寄存器 由前面的控制字决定后续操作的寄存器由前面的控制字决定后续操作的寄存器接口电路中常用的方法接口电路中常用的方法n例例.某某8086系统中系统中,使用单片使用单片8259A,IR0IR7上的中断请求信号为上升沿上的中断请求信号为上升沿触发触发,需要设置需要设置ICW4,8个可屏蔽中断个可屏蔽中断(IR0IR7)的的类型号为类型号为08H0FH,端口地址为端口地址为2CH、2EH,编写设置编写设置ICW1、ICW2和和ICW4的程序片断。的程序片断。n解:解:ICW1=0 0 0 1 0 0 1 113Hn 无关位无关位 标志位标志位 边沿触发边沿触发 无意义

38、无意义 单片单片 设置设置ICW4n ICW1 送往偶地址。送往偶地址。n ICW2=08H, ICW2送往送往奇地址奇地址。n ICW4= 0 0 0 0 0 0 1 1 =03Hn n 标志位标志位 普通全嵌套普通全嵌套 非缓冲非缓冲 自动中断自动中断 8086n 方式方式 方式方式 结束方式结束方式 系统系统n ICW4送往送往奇地址奇地址。n三个初始化命令字装入的三个初始化命令字装入的顺序必须为:为:ICW1、ICW2、ICW4。n (1) ICW113H(送往(送往“偶地址偶地址”2CH)n (2) ICW2 =08H(送往(送往“奇地址奇地址”2EH)n (3) ICW4 =03H

39、(送往(送往“奇地址奇地址”2EH) 8259A编程举例nMOV AL,13H 如果如果8259A的端口地址为的端口地址为562CH和和nOUT 2CH,AL 562EH,则程序片断应为:则程序片断应为:nMOV AL,08H MOV AL,13HnOUT 2EH,AL MOV DX,562CHnMOV AL,03H OUT DX, ALnOUT 2EH,AL MOV AL,08Hn MOV DX,562EHn OUT DX, ALn MOV AL,03Hn OUT DX, AL 一点说明: 从中断响应过程可知,在8088CPU中,不同类型的中断在响应时获得中断向量的方法是不相同的,而在获得了

40、中断向量之后的过程则是相同的。其中最复杂的是INTR中断。要用好可屏蔽中断INTR,必须做好以下三件事: 1)在硬件上选择接口地址,然后将8259连接到总线上,各外设的中断请求接到IR0IR7上,编写8259的初始化程序,规定每个中断源的中断向量码中断向量码,选择好中断类型号中断类型号。 2)针对中断源的要求编写相应的中断服务程序。 中断服务程序的一般结构(假定AX、BX、 CX需要保护)保护现场(将需要保护的寄存器压入堆栈)STI(可选);恢复现场IRET中断处理例如:PUSH AXPUSH BXPUSH CXPOP CXPOP BXPOP AX3)填写中断向量表。即:将中断服务程序的入口地

41、址即)填写中断向量表。即:将中断服务程序的入口地址即中断中断向量向量填入中断向量表中。填入中断向量表中。中断服务程序的入口地址即中断向量中断服务程序的入口地址即中断向量包括入口的段地址和偏移量地址。包括入口的段地址和偏移量地址。中断类型号中断类型号4作为存放中作为存放中断向量的首地址。断向量的首地址。例如:编程者为例如:编程者为IR2中断源编写的中断服务程序已由编程者安中断源编写的中断服务程序已由编程者安排好排好,从地址从地址4050H:1066H开始存放,中断类型号为开始存放,中断类型号为62H.中断服务程序的入口地址即中断向量为多少?中断服务程序的入口地址即中断向量为多少?中断向量在表中存

42、放的首地址为多少?中断向量在表中存放的首地址为多少?中断服务程序的入口地址即中断向量为:4050H:1066H 中断向量在表中存放的首地址:62H4188H中断向量表应如下填写: 0018BH 40H 0018AH 50H 00189H 10H 00188H 66H3)将中断向量直接写入中断向量表的程序片断。 0018BH : 40H MOV AX, 00H0018AH : 50H MOV ES, AX00189H : 10H MOV BX, 60H*4 ;中断类型号乘4 BX00188H : 66H MOV AX, 1066H ;中断服务程序入口地 ;址偏移量 AX MOV ES:BX,AX

43、 ;装入偏移量地址 MOV AX, 4050H ;中断服务程序入口 ;地址的段基址 AX MOV ES:BX+2, AX ;装入段基址图 IBM PC/XT与8259A接口IR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7中断控制器INT日时钟键盘保留串行口 2串行口 1硬盘软盘打印机A0地址 A0INTACS(片选)CSWRRD数据 D7 D0编程/中断类型码INTRCPU总线控制器IORIOWINTAINTAS2S1S0SP/ENCAS2CAS1CAS0 5VNCS2S1S08259A在在IBM PC/XT上的应用上的应用 在在I/O地址空间中,分配给地址空间中,分配给8259A的的I/O端口地址为端口地址为20H和和21H。对对8259A的初始化规定:的初始化规定: 边沿触发方式,

温馨提示

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

评论

0/150

提交评论