历史上的今天
返回首页

历史上的今天

今天是:2024年09月04日(星期三)

正在发生

2019年09月04日 | 51单片机系列知识6--中断系统(1)

2019-09-04 来源:eefocus

中断系统


一、


几个概念


① 中断:教材p51


② 中断源:产生中断的请求源


③ 中断级:根据中断源(所发出的时时事件)的轻重缓急,规定的优先级别


④ 中断嵌套:CPU在处理一个中断源请求时候,响应了更高一级中断的请求,待处理完后,再继续执行原来的低级中断处理程序,这样的过程称为中断嵌套。


⑤ 中断系统:实现中断功能的部件。


⑥ 多级中断系统:能够实现中断嵌套的中断系统。


1、 中断源


51单片机有5个中断源:2个是INTO、INT1(P3.2、P3.3)上输入的外部中断源;3个内部中断源,定时器∕计数器T0、T1的溢出中断源和串行的发送、接受中断。


这些中断源分别所存在TCON、SCON的相应位中。TF0、TF1、TI∕RI等内部中断源的中断标志。


2、 中断控制


中断控制包括使能控制和优先级控制。对应的特殊功能寄存器分别为IE和IP。


具体阐述见教材p53-54


CPU在接受到同样优先级的几个中断请求源时,一个内部的硬件查询序列确定优先服务于哪一个中断申请


中断源                             中断优先级


外中断0                 


定时器T0中断                         降


外中断1                               低


定时器T1中断


串行口中断


CPU不会在同一时刻接受到几个中断请求(一般不会),通常中断请求源会有一个极短的产生的先后顺序,那么为什么还要提出同一优先级优先服务哪个中断请求源的解决方法了?因为CPU相应中断并不是及时的。


3、 中断响应过程及中断处理


0. 中断处理的过程可归纳为中断请求、中断响应、中断处理及中断返回四部分


从CPU的角度考虑则为:中断查询、中断响应、中断处理、中断返回。


① CPU在每个机器周期顺序检查每一个中断源,在机器周期的S6采样并按优先级处理所有被激活的中断请求,如果没有被下述条件阻止,将在下一个机器周期的状态I(S1)响应激活了的最高级中断请求。


l CPU正在处理相同的或更高优先级的中断;


l 现行的机器周期不是所执行指令的最后一个机器周期;


l 正在窒息感的指令是中断返回指令(RETI)或是对IE、IP的写操作指令(执行这些指令后至少再执行一条指令后才会响应 )


② 中断查询的丢弃:上述条件有一个存在,CPU将会丢弃中断查询结果;若一个都不存在,将在紧接着的下一个机器周期执行中断查询的结果


③ 中断响应的处理:


由硬件完成的工作:置位响应优先级状态触发器→执行一条硬件子程序调用,使控制器转移到相应入口→请“0”中断请求源申请标志(RI∕TI)除外→程序计数的内容压入堆栈(但不保护PSW)→被响应的中断服务程序的入口地址送程序计数器PC→CPU执行中断处理程序一直到RETI指令为止→清“0”响应中断时所置位的优先级状态触发器→从堆栈中弹出顶上的两字节到程序计数器PC→CPU重新执行被中断的程序。


由软件完成的工作:CPU响应中断结束后即转至中断服务程序的入口。从中断服务程序的第一条指令开始到返回指令为止,这个过程称为中断处理或中断服务。不同的中断源服务的内容及要求各不相同,其处理过程也就有所区别。一般情况下,中断处理包括两部分内容:一是保护现场,二是为中断源服务。


l 关于中断源查询结果的执行与丢弃


l RI、TI由软件清零的原因是:


下面接下一页补充


4、 外中断的响应时间


外中断从产生中断请求到开始执行中断服务程序的第一条指令之间,最少需要三个完整的机器周期。原因:


INT0和INT1电平在每个机器周期的S5P2被采样锁存到IE0、IE1中,这个新置入的IE0、IE1状态等到下一个周期才被查询电路查询到。如果中断被激活且满足响应条件,


现场通常有PSW、工作寄存器、专用寄存器。如果在断服务程序中要用到这些寄存器则在进入中断服务之前应将它们的内容保护起来称保护现场,同时在中断结束,执行RET1之前恢复现场。


中断服务程序是针对中断源的具体要求进行处理。


其次,用户应注意以下几点:


a、 各中断源的入口矢量地址之间,只相隔8个单元,一般中断服务程序是容纳不下的,因而最常用的方法是在中断入口矢量地址单元存放一条无条件转移指令,二转至存储器的其他任何空间。


b、 若要执行当前中断程序前,禁止更高优先级中断,应用软件关闭CPU中断,或屏蔽更高级中断源的中断,在中断返回前再开放中断。


c、 在保护现场和恢复现场时,为了不使现场信息收到破坏或造成混乱,一般在此情况下应关CPU中断,使CPU暂不响应新的中断请求。这样就要求在编写中断服务程序时,应注意在保护现场之前要关中断,在保护现场后允许高优先级中断打断它,则应开中断。同样在恢复现场之前要关中断,恢复之后再开中断。


CPU接着执行一条硬件程序调用指令以转到相应的服务程序入口,该调用指令本身需要两个机器周期。故至少三个机器周期后才执行中断服务程序。


外中断响应:


①CPU在每一个机器周期的S5P2检查1NT0、1NT1电平→


②CPU在每一个机器周期的S6顺序检查中断源,采样并按优先级处理→


③判断中断请求是否被前面所列出的三个条件之一阻止→被阻止则转⑤,没有被阻止则转④


④ CPU执行硬件子程序调用指令→①


⑤ CPU丢弃查询结果,等待CPU下次查询→①


△等待时间分析:


对各种请求,在没有阻止时,一般等待三个机器周期。a 若CPU在执行同级或高级中断,额外等待的时间明显取决于别的中断服务程序的处理过程。b 若正在处理的指令没有执行到最后的机器周期,所需的额外等待时间不会多于3个机器周期。c 如果正在执行的指令为RETI或访问IE、IP的指令,额外的等待时间不会多于5个机器周期。


△ 是否存在,在某一中断源,进行等待时又有更高级或同级中需优先完成的中断源加入等待,那么先等待执行的中断是否需要等待更长的时间,以上的分析则在该情况下失去意义?因为CPU在每一个机器周期都顺序检查每一个中断源


外中断源触发方式的选择


推荐阅读

史海拾趣

CSR plc(剑桥硅晶无线电)公司的发展小趣事

2009年,CSR plc以1.36亿美元成功收购了SiRF技术控股公司。这一收购为CSR plc带来了GPS和A-GPS的知识产权组合、航位推算和位置中心平台等重要技术资源,使其在世界无晶圆半导体厂商中的地位得到了进一步巩固。此次收购也让CSR plc的客户群体得到了极大的扩展,包括世界排名前七位的手机制造商中的六家,以及世界前五位的个人导航设备制造商等。

Bussmann (Eaton)公司的发展小趣事

随着电子技术的快速发展,对电路保护的要求也越来越高。为了满足市场需求,Bussmann于1992年开始研发芯片保险丝。这款新型保险丝将可熔性材料沉降到陶瓷基底上,具有体积小、安装方便等优点,能够广泛应用于印刷电路板等电子设备中。芯片保险丝的推出不仅进一步提升了Bussmann的技术实力,也为其在电子行业打开了新的市场空间。

Genisco Electronics公司的发展小趣事
设置完善的故障保护机制,如过载保护、短路保护、欠压保护等,确保在设备故障或异常情况下能够及时切断电源,防止事故扩大。
川土(Chipanalog)公司的发展小趣事

随着业务的不断发展,川土微电子开始在全国范围内进行战略布局。公司不仅在上海设立了总部和研发中心,还在其他地区设立了办事处和生产基地。此外,川土微电子还积极与多家封测厂合作建立了封测专线,确保了产品的质量和供应的稳定性。

Chemi-Con公司的发展小趣事

Chemi-Con公司的历史可以追溯到XXXX年,当时铝电解电容器在日本首次成功实现产品化。这不仅是电子行业的一个里程碑,也是Chemi-Con公司传奇故事的起点。公司创始人凭借对技术的深刻理解和市场的前瞻性,敏锐地捕捉到了铝电解电容器的巨大潜力,并决定将其作为公司的主营业务。在创业初期,Chemi-Con面临着资金、技术和市场等多方面的挑战,但创始人凭借着坚定的信念和不懈的努力,带领公司逐步攻克难关,奠定了在铝电解电容器领域的领先地位。

常忆科技(CHINGIS)公司的发展小趣事

展望未来,常忆科技将继续坚持创新驱动的发展战略。公司将不断加大在研发和创新方面的投入,推动产品技术的持续升级和迭代。同时,常忆科技还将积极拓展新的应用领域和市场空间,以满足更多客户的需求。

为了实现可持续发展,常忆科技还将注重环境保护和社会责任。公司将致力于推广绿色环保的生产方式和产品应用,为社会的可持续发展做出贡献。在未来的发展中,常忆科技有望凭借其卓越的技术实力和创新精神,继续在电子行业中书写新的辉煌篇章。

问答坊 | AI 解惑

照Vxworks6.6评估版的无限期license安装的PowerPC无法使用SMP功能

从Windriver下载的PowerPC试用光盘(DVD-R138214.1-1-00),用了Windriver的试用license和Vxworks6.6评估版的无限期license,均无法选择安装SMP功能组件.看风河网上有一个单独的SMP试用版本(Linux LiveCD),可以在VxSim中试用SMP功能,但是没有针对PowerP ...…

查看全部问答>

Protel PCB 转SCH全攻略 无法操作

我按照“Protel PCB 转SCH全攻略.pdf”一文,在Omninet中,由PCB图(我是用protel99se画的图)生成了:2.edf文件,而在E-Studio软件中,不能打开2.edf文件,因为E-Studio软件,只默认*.xml文件,当打开格式选择 *.ed*格式后,“open\"打开变为灰色 ...…

查看全部问答>

矩阵式键盘扫描问题,扫描正确与否跟扫描端口的顺序有关吗?

我做了一个矩阵式键盘,单片机的P00~P04作为列线输出,p20~P24作为行线输入,扫描的顺序如果是从p00~p04列顺序扫描,会出现p00列的值有可能与p04列的值相同,而扫描顺序如果是p04 p00~p03顺序扫描就不会出现这样的问题。另外,我还尝试了P01 p00 p0 ...…

查看全部问答>

嵌入式方面都涉及哪些知识?

我马上就要开始学习嵌入式方面的知识了,之前我对嵌入式一窍不通,想在开始学习之前自己先了解一些! 想知道嵌入式方面的知识都包括什么? 我还想问一下:linux应用程序开发及相关的内容包括在嵌入式范围内么??? 先谢谢各位了!!!…

查看全部问答>

年后想换职的朋友进来看下哦^^(待遇丰厚,保证心动!!)

-精C++,嵌入式编程,Unix, MFC, Vxworks -工作经验2年以上 -学历要求本科以上 -英语听说读写熟练 薪资丰厚,有意者请尽快联系MSN;linxin710@hotmail.com…

查看全部问答>

请问一下在wince应用层的程序调用DeviceIoControl后,系统处理的流程是怎样的?

请问一下在wince应用层的程序调用DeviceIoControl后,系统处理的流程是怎样的? 比如我在应用程序里调用flash驱动,在createfile成功后,调用DeviceIoControl。接下来,系统由DeviceIoControl调用了哪个函数呢,直到最后调用FMD_OEMIoControl函数 ...…

查看全部问答>

可控硅问题求助

公司现在有个项目,要求使用可控硅控制交通灯,没有接触过可控硅,现在有几个问题想问问前辈们。 1.现在可控硅关断之后会有漏电流,交通灯会闪(亮度不是很明显)。R8和C6是否能去掉? 2.看到一些文章说工业电很不干净需要保护可控硅,不知道怎么 ...…

查看全部问答>