历史上的今天

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

正在发生

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

发布者:素心轻语 来源: eefocus关键字:51单片机  中断系统  请求源 手机看文章 扫描二维码
随时随地手机看文章

中断系统


一、


几个概念


① 中断:教材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在每一个机器周期都顺序检查每一个中断源


外中断源触发方式的选择


关键字:51单片机  中断系统  请求源 引用地址:51单片机系列知识6--中断系统(1)

上一篇:cc2530裸机编程系列笔记1--定时器Timer1模模式的程序设计
下一篇:51单片机系列知识7--中断系统(2)

推荐阅读

   全面屏手机的普及,可以说迅雷不及掩耳,并且随着升降式前置摄像头结构以及COF封装的柔性OLED的出现,屏占比越来越高,还突破了93%。很多厂商都以达到90%屏占比为一个分水岭,可是大家通过肉眼可以发现,不少手机边框厚度似乎接近,但是却有蛮大的屏占比数据的差别,这里面到底有什么算法上的不同吗?左边是坚果R1,右边是魅族16th,从视觉上来说其...
最近,各大上市车企都陆续发布了2019年上半年财报,车图腾收集整理了12家车企,包含德系三巨头戴姆勒、宝马、奥迪,以及长城、吉利、比亚迪等9家中国自主车企的主要经营指标以及研发投入数据。三个指标 折射全球车企转型节点2019年上半年,国内市场遭遇了严峻的“寒冬”,分析表格发现,即使是头部车企长城、吉利、比亚迪也面临着挑战。而通过对比德系三...
北京视觉自主移动机器人开发商ForwardX Robotics宣布其ForwardX Max 500机器人已获得CE标志认证,现已通过认证可在欧洲使用。CE标志表明,Max 500视觉自主移动机器人(vAMR)现在遵守欧盟关于健康,安全和环境保护的指令和标准。“ ForwardX Robotics高级产品总监Viktor Wang说:“我们的Max 500 vAMR使仓库和制造工厂能够自动化危险,耗时的任务...
文/陈根两周前,造车的特斯拉突然成为了机器人圈内的热点,马斯克在特斯拉AI Day的结尾以一个彩蛋的形式宣布特斯拉正在开发的人形机器人,立时引起人们的热议。马斯克提到,这款人型机器人最早会在2022年投放市场,而就机器人行业发展现状来看,这无疑又是一个激进的目标。上周,特斯拉公开招聘与机器人相关的职位,包括机械工程师-执行器集成、机械工程师-制动器...

史海拾趣

问答坊 | AI 解惑

小弟冒死将老师的课件分给大家,课件分章节,大家按需下载.

小弟冒死将老师的课件分给大家,课件分章节,大家按需下载.…

查看全部问答∨

项目团队中个别人员工作积极性不高,怎样解决?

项目成员工作不主动,处于混日子的状态。怎样解决员工工作积极性?…

查看全部问答∨

有谁知道这个错误

有谁知道这个错误!有谁知道在WINCE下面出现SDNdis: Failed to get active path key这个错误提示是什么原因?…

查看全部问答∨

EVC4 网络通信问题--操作超时

我在同时开多线程模拟多用户访问HTTP客户端下载上传数据时,CATCH到很多“操作超时”,但是使用单线程时没有这种错误,请问下这个是什么原因?如何解决。 我测试使用的是同步方式。 全部分数奉上,希望有个解决的办法,急~~~;…

查看全部问答∨

为什么build不出sys文件?

有现成的例子,在Windows DDK 2600.1106的Build Environment下用build指令编译,只出来.res, .obj, .sbr文件,没看到.sys文件。 而Build并没有提示错误,最后一行信息是BUILD:Done 这是为什么啊? …

查看全部问答∨

想用ST的PWM做DA,滤波怎么选参数好

我对DA的速度要求不高,10Hz以内就够了,但是纹波比较担心现在是PWM后运放怎么做滤波,高手给支个招,参数怎么选。…

查看全部问答∨

意法半导体(ST)宣布2011年中国iNEMO™校园创意大赛获胜名单

    中国北京,2011年12月1日 —— 横跨多重电子应用领域、全球领先的半导体供应商及全球最大的消费电子和便携设备MEMS(微机电系统)供应商意法半导体[1](STMicroelectronics,简称ST;纽约证券交易所代码:STM)今天宣布清华大学的天 ...…

查看全部问答∨

新手求助

我是新手,各位仁兄可有FPGA的程序编译器?…

查看全部问答∨

给力

楼主好样的 加油  祝你顺利…

查看全部问答∨

新手来报到。。求解惑,汇编的。。不知道断点是在哪里

ORG                 0000H                        LJMP        MAIN             ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved