7 S08复位和中断
- 格式:ppt
- 大小:159.00 KB
- 文档页数:13


中断知识点总结
一、中断的基本概念
中断是一种计算机系统响应外部事件的机制,当外部事件发生时,CPU能够立即停止当前处理的任务,转而执行中断服务程序。中断能够提高系统的实时响应能力,使得CPU能够在处理多任务的情况下,能够及时地响应外部事件。中断在计算机系统中起到了非常重要的作用。
二、中断的分类
1、外部中断
外部中断是指由CPU外部设备发出的中断,通常包括定时中断、I/O中断等。定时中断是由计时器或者RTC产生的中断信号,用于实现定时任务。I/O中断是由外设发出的中断信号,用于通知CPU外设有数据需要处理。
2、内部中断
内部中断是指由CPU内部产生的中断,比如除法错误中断、非法指令中断等。这些中断是由CPU自身产生的,用于通知CPU当前指令执行出现了错误或者异常情况。
3、软中断
软中断是由软件自身产生的中断,通过系统调用或者异常处理指令产生。软中断通常用于实现系统调用和异常处理,使得软件能够以一种可控制的方式响应外部事件。
三、中断的处理流程
中断的处理流程一般包括中断响应、中断处理和中断返回三个阶段。
1、中断响应
当外部事件发生时,CPU能够立即停止当前任务,转而执行中断服务程序。CPU会保存当前的程序状态,包括程序计数器、寄存器等,然后转向中断服务程序的起始地址开始执行。
2、中断处理
中断服务程序执行具体的中断处理操作,比如处理外设输入输出、处理异常错误等。中断服务程序执行完成后,CPU会回复之前保存的程序状态,然后恢复当前任务的执行。
3、中断返回
中断返回是指CPU从中断服务程序返回到之前的任务中。CPU会恢复之前被中断的任务的程序状态,然后继续执行之前被中断的指令,从而实现对中断的处理。 四、中断的实现方式
1、硬件中断
硬件中断是通过硬件设备产生中断信号,通常是通过中断控制器将中断信号发送给CPU。中断控制器能够对多个外部中断进行管理,使得CPU能够正确响应外部事件。
ARM异常中断处理概述
1、 中断的概念
中断是一个过程,是 CPU在执行当前程序的过程中因硬件或软件的原因插入了另一段程序
运行的过程。因硬件原因引起的中断过程的出现是不可预测的, 即随机的,而软中断是事先
安排的。
2、 中断源的概念
我们把可以引起中断的信号源称之为中断源。
3、 中断优先级的概念
ARM处理器中有7种类型的异常,按优先级从高到低的排列如下:复位异常( Reset)、数据
异常(Data Abort )、快速中断异常(FIQ)、外部中断异常(IRQ)、预取异常(Prefetch
Abort )、 软件中断(SWI)和未定义指令异常(Undefined instruction )
ARM体系异常种类
F面是ARM的7种异常
异常类型 处理器模式' 执行底地址) 执行高地址门
复位异常(Reset)卫 特枫戦 0x00000000 OxFFFFOOOO
未定义指令异常(UM亡fin亡d internet 未定浊令中止模式心 0x00000004 0xFFFF0004
软中断异常(北 特枫戦 0x00000008 OxFFFFOOOS
预取异常(Prefetch Abort) 数据谊可中止模式' OxOOOOOOOC OxFFFFOOOC
数据异常(DataAbort)护 数据访1可中止模式' 0x00000010 OxFFFFOOlO
外部中断谙求(IRQ) 外部中断谙求模式' OxOOOOOOlS OxFFFFOOlS
快速中断请求(FIQ)沪 快速中断请求模式' OxOOOOOOlC OxFFFFOOlC
当异常发生时,处理器会把 PC设置为一个特定的存储器地址。这一地址放在被称为向量表
(vector table )的特定地址范围内。向量表的入口是一些跳转指令,跳转到专门处理某个异 常或中断的子程序。
当异常产生时,ARM core:
拷贝 CPSR 至U SPSR_vmode>
PLC和变频器和变频器(()搜集整理
S7S7--200 PLC 200 PLC 中断的处理方法中断的处理方法中断的处理方法 摘 要:中断处理在PLC所组成的控制系统中经常出现,其处理方法及应用是否恰当,对整个控制系统是非常关键的。本文针对中断的处理及应用,阐述了一些方法和经验。 关键词关键词::PLC;中断;方法 一、引言引言 中断是对PLC外部事件或内部事件的一种响应和处理。它包括:中断事件、中断处理程序、中断控制指令三个部分。 中断事件是产生中断的原因。有通信中断、外部I/O中断、高速计数器中断、定时中断四类。当中断事件发生,PLC中止当前主程序扫描,将PLC控制权交给中断处理程序。执行完毕中断处理程序中最后一条指令,自动将控制权交还PLC主程序。 本文以S7-200 PLC为例,介绍几点PLC中断应用的方法和经验,S7-200的中断连接指令(ATCH)用于在中断处理程序和中断事件之间建立关联。在中断连接指令中,EVNT操作数代表中断事件的中断事件号,INT操作数代表关联的中断处理程序号。通过这个关联建立中断事件和中断处理程序的连接,当EVNT指定的中断事件发生时,PLC就能够自动执行与之建立关联的中断处理程序。 中断允许指令(ENI)用于所有中断事件和与之关联的中断处理程序的连接,允许PLC中断执行。中断控制指令包括:中断允许指令(ENI)、中断禁止指令(DISI)、中断分离指令(DTCH)。 二、S7S7--200 PLC200 PLC中断的几个注意点中断的几个注意点中断的几个注意点 1、执行中断处理程序,仅是一次扫描刷新,不是程序的完整执行 当中断事件发生时,执行与之关联的中断处理程序,这种操作仅是一次扫描刷新,不是程序的完整执行,类似程序一个扫描周期。 PLC和变频器和变频器(()搜集整理
中断由事件驱动在启动中断程序之前,必须使中断事件(可以是通信I/O口定时中断源)与发生该事件时您希望执行的程序建立联系。使用"中断连接"指令(ATCH)建立中断事件(由中断事件号码指定)与程序段(由中断例行程序号码指定)之间的联系。将中断事件附加于中断例行程序时,该中断自动被启用(但是此时必须中断必须是打开的要不中断都处于等待状态)。如果您使用全局禁止中断指令(DISI)禁止所有的中断,中断事件的每次出现均被排队等候,直至使用全局启用中断指令重新启用中断。使用"中断分离"指令(DTCH)可中断分离事件与中断例行程序之间的联系,从而禁止单个中断事件。"分离"指令使中断返回未激活或被忽略状态。了解S7-200如何处理中断程序作为对关联的内部或外部事件的应答,执行中断例行程序,中断程序的调用不是由程序调用的,而是在中断发生时由操作系统调用的。在中断程序中不能更改其它程序使用的存储器,而最好使用全局或局部变量。一旦中断例行程序的最后一条指令被执行,控制被返回至主程序。您可以用执行"从中断指令有条件返回"指令(CRETI)的方法退出例行程序。使用中断例行程序指南和限制中断程序为特殊内部或外部事件提供快速反应。您应当优化中断例行程序,通过将中断例行程序保持为短小和简明扼要,可加快执行的速度,使其他程序不会受到长时间的延误。如果未能做到这一点,无法预料的情形可能导致主程序控制的装置出现非正常操作状况。限制不得在中断程序中使用DISI、ENI、HDEF、LSCR和END指令。中断的系统支持由于触点、线圈和累加器逻辑可能受中断的影响,系统保存和重新载入说明累加器和指令操作状态的逻辑堆栈、累加器寄存器和特殊内存位(SM)(也就是说在中断程序执行时将将其它的存储器值进行保护,中断执行完后再进行恢复)。这样可避免因分支至中断例行程序和从中断例行程序分支而导致的主程序中断。(当连接上中断后,中断定时器开始计时,达到定时时间后执行中断程序,)在主程序和中断例行程序之间共享数据您可以在主程序和一个或多个中断例行程序之间共享数据。因为无法预测S7-200何时可能生成中断,最好限制中断程序和程序中其他位置使用的变量数目。由于主程序中指令执行中断时中断例行程序采取的措施,会导致共享数据一致性故障。使用中断例行程序局部变量表,以确保中断例行程序仅使用临时内存,并且不覆盖程序其他位置使用的数据。您可以使用各种编程技巧,以确保在主程序和中断例行程序之间正确地共享数据。这些技巧限制存取共享内存位置的方法,或者使用共享内存位置预防出现指令序列中断。**对于共享单一变量的STL程序:如果共享数据是单字节、字或双字变量,且程序在STL中写入,则可用在非共享内存位置或累加器中存储共享数据操作数的直接数值的方法,确保正确的共享存取。**对于共享单一变量的LAD程序:如果共享数据是单字节、字或双字变量,且程序在LAD中写入,则可用建立仅使用"移动"指令(MOVB、MOVW、MOVD、MOVR)存取共享内存位置常规的方法,确保正确的共享存取。尽管很多LAD指令由STL指令的可中断序列组成,这些"移动"指令却是由单个STL指令组成,此类指令的执行不受中断事件的影响。**对于共享多个变量的STL或LAD程序:如果共享数据由各种相关的字节、字或双字组成,则可使用中断禁止/启用指令(DISI和ENI)控制中断例行程序的执行。在主程序中共享内存位置操作即将开始的点,禁止中断。一旦所有影响共享位置的措施均完成后,重新启用中断。在中断被禁止的时间内,不得执行中断例行程序,因此无法存取共享内存位置;但是,此种方法会导致对中断事件的延迟应答。从中断例行程序调用子程序您可以从中断程序调用一个子程序。在被调用的中断例行程序和子程序之间共享累加器和逻辑堆栈。S7-200支持的中断类型**通讯端口中断:S7-200生成允许程序控制通讯端口的事件。**I/O中断:S7-200生成用于各种I/O状态不同变化的事件。这些事件允许程序对高速计数器、脉冲输出或输入的升高或降低状态作出应答。**基准中断:S7-200生成允许程序按照具体间隔作出应答的事件。通讯端口中断可用程序控制S7-200的串行通讯端口。此种操作通讯端口的模式被称作自由端口模式。在自由端口模式中,程序定义波特率、每个字符的位、校验和协议。可提供"接收"和"传送"中断,协助您进行程序控制的通讯。详情请参阅"传送和接收"指令。I/O中断I/O中断包括上升/下降边缘中断、高速计数器中断和脉冲链输出中断。S7-200可生成输入(I0.0、I0.1、I0.2或I0.3)上升和/或下降边缘中断。可为每个此类输入点捕获上升边缘和下降边缘事件。这些上升/下降边缘事件可用于表示在事件发生时必须立即处理的状况。高速计数器中断允许您对诸如以下之类的条件作出应答:当前值达到预设值,可能与转轴旋转方向逆转对应的计数方向的改变或计数器外部复原。每种此类高速计数器事件均允许针对按照可编程逻辑控制器扫描速度控制的高速事件采取实时措施。脉冲链输出中断发出输出预定数目脉冲完成的立即通知。脉冲链输出的最常见用法是步进器电机控制。您可以用将中断例行程序附加在相关I/O事件上的方法,启用上述每种中断。时间基准中断时间基准中断包括定时中断和定时器T32/T96中断。您可以使用定时中断基于循环指定需要采取的措施。循环时间被设为从1毫秒至255毫秒每1毫秒递增一次。您必须在SMB34中将定时中断的循环时间设为0,在SMB35中将定时中断的循环时间设为1。每次定时器失效时,定时中断事件将控制传输给适当的中断例行程序(就是定时时间到了,执行中断程序)。通常您使用定时中断控制模拟输入取样或定期执行PID环路。当您将中断例行程序附加在定时断事件上时,则启用定时中断,且计时开始。在附加的过程中,系统捕获循环时间数值,因此其后对SMB34和SMB35所作的改动不会影响循环时间。欲改动循环时间,您必须修改循环时间数值,然后将中断例行程序重新附加在定时中断事件上。重新附加时,定时中断功能从以前的附件中清除所有的累计时间,并开始用新数值计时。时间中断被启用后,则持续运行,每当指定的时间间隔失效时,执行中断连接例行程序。如果您退出RUN(运行)模式或分离定时中断,定时中断被禁止。如果全局禁止中断指令被执行,定时中断继续进行。每次定时中断出现均排队等候(直至中断被启用或队列已满)。定时器T32/T96中断允许对指定时间间隔完成及时作出应答。仅在1毫秒分辨率接通延时(TON)和断开延时(TOF)定时器T32和T96中支持此类中断。否则T32和T96按照正常情况作业。一旦中断被启用,在S7-200中执行的正常1毫秒定时器更新的过程中,当现用定时器的当前值等于预设时间数值时,即执行中断连接例行程序。您用将中断例行程序附加至T32/T96中断事件的方法,启用此类中断。中断优先级别和入对等候S7-200在中断各自的优先级别群组内按照先来先服务的原则为中断提供服务。在任何时刻,只能执行一个用户中断例行程序。一旦一个中断例行程序开始执行,则一直执行至完成。不能被另一个中断例行程序预先排空,即使是更高优先级别的例行程序。正在处理另一个中断时发生的中断入队等待处理。每个中断队列最大条目数队列CPU221/222/224CPU224XP/226/226XM通讯队列48I/O中断队列1616定时中断队列88一般而言出现的中断数目会超出队列能够容纳的数目。因此,队列溢出内存位(识别已经丢失的中断事件类型)由系统保持。下表显示中断队列溢出位。您应当仅在中断例行程序中使用这些位,因为当队列排空时这些位会被复原,控制被返回主程序。中断队列溢出位说明(0=无溢出,1=溢出)SM位通讯队列SM4.0I/O中断队列SM4.1定时中断队列SM4.2可采用下列一种方法建立中断例行程序:?从"编辑"菜单,选择插入(Insert)>中断(Interrupt)。?从指令树,用鼠标右键点击"程序块"图标并从弹出菜单选择插入(Insert)>中断(Interrupt)。?从"程序编辑器"窗口,从弹出菜单用鼠标右键点击插入(Insert)>中断(Interrupt)。程序编辑器从先前的POU显示更改为新中断例行程序。在程序编辑器的底部会出现一个新标记,代表新中断例行程序。一个程序中总共可有128个中断。在各自的优先赋值范围内,PLC采用先来先服务的原则为中断提供服务。在任何时刻,只能执行一个用户中断例行程序。一旦一个中断例行程序开始执行,则一直执行至完成。不能被另一个中断例行程序预先排空,即使是更高优先级别的例行程序。正在处理另一个中断时发生的中断入队等待处理。注释:编辑器自动插入无条件POU终止指令(END用于OB1,RET用于SBR,RETI用于INT),以下显示一个范例。