第九章:中断技术
- 格式:docx
- 大小:22.60 KB
- 文档页数:12
第九章Cortex-M3异常和中断9.1Cortex-M3异常91C t M39.2NVIC与中断控制929.1.1 异常类型异常。
CM3支持为所有能打断正常执行流的事件都称为CM3支持为数众多的系统异常和外部中断。
异常是另一种形式的中断,它是由内部fault引起的,或者内核的SysTick、SVCall等。
而中断是由随机的外部事件引发的。
件引发的编号为1~15的对应系统异常;编号为16~255的对应外部中断。
除了个别异常的优先级被定死外,其它异常的优先级都是可编程的。
可编程的当前运行的异常编号,是由特殊寄存器IPSR或NVIC的中断控制状态寄存器来给出的。
断控制状态寄存器来给出的异常表异常号异常类型优先级描述0N/A N/A没有异常在运行1复位-3 (最高)复位2NMI-2 不可屏蔽中断(外部NMI 输入)3硬件fault-1各种fault情况4内存管理fault可编程内存管理fault;MPU 访问非法地址5总线fault可编程总线fault,比如预取终止6用法fault可编程由于程序fault或尝试访问协处理器导致的异常7-10保留N/A—11SVCall可编程系统服务调用12调试监视器可编程调试监视器(续)13保留N/A—14PendSV可编程可挂起系统设备申请15SysTick可编程系统时钟定时器16外部中断#0可编程外部中断17外部中断#1可编程外部中断…………255外部中断#239可编程外部中断当一个被使能的异常发生时,如果它不能够被立即执行,它将被挂起(pending)。
9.1.2 优先级定义在CM3中优先级对于异常来说很关键的它决定一个 在CM3中,优先级对于异常来说很关键的,它决定个异常是否能被屏蔽,以及在未被屏蔽的情况下何时可以响应。
应优先级的数值越小,则优先级越高。
CM3支持中断嵌套,使得高优先级异常会抢占(preempt)低优先级异常。
3个系统异常:复位、NMI以及硬fault有固定的优先级,并且它们的优先级号是负数,从而高于所有其它异常。
第9章S7-200 PLC的基础及应用一、S7-200 PLC的硬件1.基本单元S7-200系列包括CPU221、CPU222、CPU224、CPU224XP和CPU226共5种型号的基本单元。
图1 CPU224 DC/DC/DC外形图2.扩展单元1)数字量I/O扩展单元S7-200系列PLC提供了多种数字量I/O扩展单元,包括EM221、EM222、EM223扩展单元。
可提供8点、16点或32点数字量I/O点,来满足不同的控制需要。
除CPU221外,其他CPU模块均可以配接多个扩展模块,连接时CPU模块放在最左侧,扩展模块用扁平电缆与左侧的模块相连。
具体数字量输入/输出模块如表1所示。
表1 数字量扩展模块2)模拟量扩展单元S7-200PLC有3种模拟量扩展模块,如表2所示,转换位数都为12位。
表2 模拟量扩展模块3)热电偶/热电阻模块EM231热电偶/热电阻模块是最常用的模块,具有冷端补偿电路。
EM231热电偶输出的电压范围为±80mV,模块输出15位加符号位的二进制数。
EM231热电偶可以用于J、K、E、N、S、T和R型热电偶,用模块下方的DIP开关来选择热电偶的类型。
EM231热电阻的接线方式有2线、3线和4线3种,4线方式的精度最高,2线方式受接线误差的影响精度最低;EM231热电阻模块可以通过DIP开关来选择热电阻的类型、接线方式、测量单位和开路故障的方向。
4)通讯扩展模块EM277 PROFIBUS-DP模块是常用的通讯扩展模块,通过EM277 PROFIBUS-DP扩展模块可将S7-200CPU 连接到PROFIBUS-DP 网络;CP243-2通讯处理器是AS-i主站连接部件,专门用于S7-200(CPU 22×),最多可连接31个AS-i从站,连接的同时显著增加了S7-200可利用的I/O点数。
3.相关设备S7-200系列PLC提供了文本显示器TD-200和TD-200C,它们可以显示两行,每行20个字符,每两个字符的位置可以显示1个汉字,通过它们可以查看、监控和改变应用程序的过程变量。
IBMPC汇编语言程序设计第二版答案在IBMPC汇编语言程序设计第二版中,你将学习到关于汇编语言的基本概念和技巧,以及如何在IBMPC上进行程序设计。
本文将为你提供该教材的答案,以帮助你更好地理解和掌握相关知识。
第一章:引言本章主要介绍了汇编语言的概念和历史背景,以及为什么学习汇编语言在计算机科学领域中至关重要。
课后习题包括:1. 解释汇编语言的概念和作用。
2. 证明学习汇编语言的重要性。
第二章:基本概念本章讨论了汇编语言的基本概念,包括寄存器、内存、指令、操作数等。
课后习题包括:1. 列出IBMPC的主要寄存器及其作用。
2. 解释内存和指令的概念。
3. 指出指令中的操作数是什么以及如何使用它们。
第三章:汇编语言程序的结构本章介绍了汇编语言程序的结构,包括程序开始和结束的标记、数据段和代码段的定义等。
课后习题包括:1. 解释并举例说明程序开始和结束标记的作用。
2. 编写一个简单的汇编语言程序,包含数据段和代码段的定义。
第四章:数据传送和运算指令本章详细讨论了数据传送和运算指令,并提供了具体的例子和实践习题。
课后习题包括:1. 解释MOV指令的功能和用法。
2. 使用ADD指令完成两个数相加的程序。
第五章:程序控制指令本章讲解了程序控制指令,如条件和无条件转移指令、循环指令等。
课后习题包括:1. 说明条件转移指令如何工作。
2. 使用循环指令编写一个计算阶乘的程序。
第六章:子程序本章介绍了子程序的概念和使用方法,以及如何传递参数和返回值。
课后习题包括:1. 解释子程序的作用和优势。
2. 编写一个带有参数和返回值的子程序。
第七章:栈与堆栈本章详细讨论了栈的概念和操作,以及堆栈的使用方法。
课后习题包括:1. 说明栈和堆栈的区别。
2. 编写一个使用堆栈实现函数调用的程序。
第八章:位操作与逻辑运算本章介绍了位操作和逻辑运算的指令,以及如何使用它们进行位级别的操作。
课后习题包括:1. 解释位操作指令的功能和应用。
第九章:中断技术一、选择题1、中断向量表存放在存储器的(B )中.A)FFC00H—FFFFFH B)00000H—0003FFHC)EEC00H—FFFFFH D)EEBFFH一FFFFFH 2、Intel 8086/8088中断向量表中的类型21H是(MS--DOS系统调用)。
”3、PC中确定硬件中断服务程序的入口地址是(中断控制器发出的类型码)。
4、如果有多个中断同时发生,系统将根据中断优先级响应优先级最高的请求。
若要调整中断时间的响应次序,可以利用(中断屏蔽)。
5、下列一起CPU中断的4种情况中,由硬件提供中断类型的是( C )。
A、INTnB、NMIC、INTRD、INTO6、若计算机系统有五级中断,预先安排的优先级从高到低为1—>2—>3—>4—>5。
在操作过程中利用屏蔽技术,处理中断4时屏蔽3,5级中断,则在响应中断时从高到低的顺序是( B )。
A、1—>2—>3—>4—>5B、1—>2—>4—>3—>5C、1—>2—>3—>5—>4D、1—>4—>2—>3—>57、一般情况下PC中的硬中断服务程序执行的是(A )。
A、外部中断请求CPU完成的任务B、主程序中安排的中断指令C、主程序中安排的转移指令D、主程序中安排的调用指令8、为实现多重中断,保护段点和现场应使用(堆栈)。
9、下列(恢复现场前)操作前应该进行开中断。
10、执行返回指令,退回中断服务程序,这时返回地址来自(堆栈区).11、若DMAC每传送一个字节后,就检测DREQ,若无效,则挂起;若有效则继续传送,这是一种DMA方式中的(请求)传送方式。
12、在程序控制传送方式中,哪种传送可提高系统的工作效率( C )?A)无条件传送B)查询传送C)中断传送D)前三项均可13、用DMA方式传送数据时,是由(硬件控制器)控制的14、若微处理器可采用存储器映象编址,那么一条SUB(减法)指令可访问的地址空间为(整个地址空间)。
15、8086CPU在进行I/O写操作时,M/IO和DT / R必须是(L,H )。
二、填空题1、Intel 8259A是可编程中断控制器或优先权中断控制器。
2、8259A可管理_8级优先经中断源,通过组联,最多可管理64级优先级中断源。
3、8259A内部中断请求触发器可以用正跳/边沿触发和高电平/电平触发方式。
4、8259A内部中断屏蔽寄存器是8位,其内容是由微处理器设定。
5、8259A中断服务寄存器某位为1时,表明微处理器正在为之服务,若某位为0时,说明微处理器不为之服务。
6、8259A 常IRO 优先级最高,IR7优先级最低,但也可通软件加以修改。
7、8259A应用于8086 微处理器8259A引脚A0与地址总线A1相连;8259A应用于8088处理器时A0地址总线A0相连。
8、8259A 工作于缓冲方式时,SP/EN是输出方向,当工作于非经冲方式时,SP/EN是输入方向。
9、若8259A是主片时引脚SP/EN是高电平,若8259A是从片时则引脚SP是0电平。
10、8259A级联应用中只有_1片为主片,最多不能超过9片,其余为从片。
11、8259A内部有4个初始化命令寄存器.装入ICW1-ICW4命令字。
12、8259A内部有3个操作命令寄存器,它们是OCW1-OCW3_.13、8259A结束命令有普通EOI和特殊EOI两种。
三、判断题1、中断控制器8259A内部的中断屏蔽寄存器其中某一位为1,则对应的中断请求位被屏蔽。
(√)2、8259A最多可管理64级优先级中断源,即是能管理64片8259A。
X;改正:…,即是能管理8位8259A)3、微处理器向8259提供的标识码即是中断类型码。
X;改正:……不是……。
4、当一个请求被判别为较高优先级时,通过控制逻辑向微处理器发出中断请求信号INT,若微处理器响应中斯并获得响应信号INTA时,使ISR中相应位置作X;改正:……并发出响应信号INTA时,使ISR中相应位置1.5、主片8259A在第一个INTA响应周期内通过CAS0-CAS2送出三位识别码,以8259A将在第二个INTA响应用期内,把中断类型码送到数据总线(√)四、简答题1、简述微机系统的中断处理过程。
【解答】(1)中断请求:外设需要进行中断处理时,向CPU提出中断请求。
(2)中断响应:CPU执行完现行指令后,就立即响应非屏蔽中断请求。
可屏蔽中断请求,CPU若要响应必须满足三个条件。
(3)中断处理:保护现场、开中断、中断服务。
(4)中断返回:CPU执行IRET中断返回指令时,自动把断点地址从堆栈中弹出到CS和IP 中,原来的标志寄存器内容弹回Flags,恢复到原来的断点继续执行程序。
2、软件中断和硬件中断有何特点?两者的主要区别是什么?【解答】硬件中断由外部硬件产生,是由CPU外部中断请求信号触发的一种中断,分为非屏蔽中断NMI和可屏蔽中断INTR。
软件中断是CPU根据某条指令或者对标志寄存器的某个标志位的设置而产生的,也称为内部中断。
通常有除法出错中断、INTO溢出中断、INT n中断、断点中断和单步中断等。
两者的主要区别:硬件中断由外部硬件产生,而软件中断与外部电路无关。
3、8086的中断分哪两大类?各自有什么特点?中断矢量和中断矢量表的含义是什么?8086一共可处理多少级中断?【解答】8086的中断分为外部中断和内部中断两种:外部中断由外部硬件产生,由CPU 外部中断请求信号触发,分为非屏蔽中断NMI和可屏蔽中断INTR。
内部中断是为了处理程序运行过程中发生的一些意外情况或调试程序而提供的中断。
8086的中断系统能够处理256个不同的中断,每一个中断安排一个编号,范围为0~255,称为中断类型。
每种中断类型对应的中断服务程序的入口地址称为中断矢量(或中断向量)。
把系统中所有的中断矢量按中断类型从小到大的顺序放到存储器的特定区域,该区域称为中断矢量表。
每个中断矢量在中断矢量表中占用4字节,CPU响应中断后通过将中断类型×4得到中断矢量在中断矢量表中的首地址。
8086CPU允许中断嵌套,具体能嵌套多少级中断,受堆栈深度的限制。
4、简述8086的中断类型,非屏蔽中断和可屏蔽中断有哪些不同之处?CPU通过什么响应条件来处理这两种不同的中断?【解答】8086的中断系统能够处理256个不同的中断源,并为每一个中断安排一个编号,范围为0~255,称为中断类型。
硬件中断分为非屏蔽中断和可屏蔽中断,非屏蔽中断不受中断允许标志位IF的影响,在IF=0关中断的情况下,CPU也能在当前指令执行完毕后就响应NMI上的中断请求。
可屏蔽中断:CPU将根据中断允许标志位IF的状态决定是否响应。
如果IF=0,表示CPU关中断;如果IF=1,表示CPU开中断,CPU执行完现行指令后会转入中断响应周期。
5、已知8086系统中采用单片8259A来控制中断,中断类型码为20H,中断源请求线与8259A的IR4相连,计算中断向量表的入口地址。
如果中断服务程序入口地址为2A310H,则对应该中断源的中断向量表的内容是什么?【解答】偏移地址“中断类型×4”为中断向量在中断向量表中的首地址,即EA=20H×4=80H,因为在8086系统中规定存储空间00000H~003FFH(共1KB)用来存放中断向量表,则20H型中断的中断向量在中断向量表中的入口地址为00000H+80H=00080H。
中断服务程序入口地址为2A310H,则对应该中断源的中断向量表的内容是任何能转换成物理地址2A310H的逻辑地址,设段地址为2000H,则偏移地址为A310H,则该中断源在中断向量表的内容是:(00080H)=2000H,(00081H)= A310H。
6、8259A对中断优先权的管理和对中断结束的管理有几种处理的方式?各自应用在什么场合?【解答】8259A对中断优先权的管理可分为以下4种情况:(1)完全嵌套方式:是8259A最常用的工作方式。
(2)自动循环方式:一般用在系统中多个中断源优先级相同的场合。
(3)中断屏蔽方式:这种方式能在中断服务程序执行期间动态地改变系统的优先结构。
(4)特殊完全嵌套方式:一般用在8259A级联系统中。
8259A结束中断处理的方式有:(1)一般EOI方式:只有在当前结束的中断总是尚未处理完的级别最高的中断时,才能使用这种结束方式。
(2)指定EOI方式:适合于在任何情况下使用。
(3)自动EOI方式:只有在一些以预定速率发生中断,且不会发生同级中断互相打断或低级中断打断高级中断的情况下,才使用自动EOI方式。
7、中断控制电路功能?答:(1)能控制多个中断源,实现中断传送,任何一个中断源提出中断请求,该中断控制电路必须都能向微处理器发出中断请求信号。
(2)能对多个中断源同时发出的中断请求进行优先级判别。
(3)实现中断嵌套。
(4)能够提供对应中断源的中断类型码。
8、8086中断类型?答:8086中断是由外部中断和内部中断组成。
外部中断是由可屏蔽中断和非屏蔽组成。
(l)可屏蔽中断:INTR请求信号是由8259A发出的请求,它与中断源相连,表示要求服务。
当IF=l,微处理器执行完当前指令则给子响应。
(2)非屏蔽中断:请求信号是NMI,如当电源掉电存储器读写出错、总线奇偶错等。
通知微处理器进行处理、NMI级别高于INTR。
部中断有单步中断、除法出错、溢出中断、单字节断点中断。
内部中断指令INTn,n是中断类型码。
9、内部中断有何特点?答:(1)中断类型码或者包含在指令中,或者是预先规定的。
(2)不执行中断响应周期。
(3)除单步中断外,任何内部中断无法禁止。
(4)除单步中断外,任何内部中断的优先级都比外部中断高,其序列为:除法出错、INTn、INTO、NMI、INTR、单步。
(5)内部中断指令放在程序中某一位置,所以中断是可预知的,不具有随机性。
10、8259A主要功能?答:1)8259A可以管理8级优先权管理。
通过8259A级联,可以管理64级优先权的中断源。
2)任何一级中断源都可以被屏蔽,使该级中请求暂时被挂起,直到取消屏蔽时为止。
3)向处理器提供可编程的标识码,对于8086/8088微处理器而言就是中断类型码。
这个功能使得没有提供中断类型码的接口芯片如8255A 、8253等可以借助8259同样可以采用中断I/O方式进行中断I/O方式进行管理。
4)具有多种中断优先级管理方式,如完全嵌套方式,自动循环方式,特殊循环方式、特殊屏蔽方式和查询方式等。
11、8259A内部是由哪几部分组成?答:8259A内部是由8个基本部分组成。
8位中断请求寄存器(IRR),用来存放从外设发来的中断请求IR0—IR7,该寄存器有两种触发方式:边沿触发和电令从发方式。