一、
几个概念
① 中断:教材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在每一个机器周期都顺序检查每一个中断源
外中断源触发方式的选择
上一篇:cc2530裸机编程系列笔记1--定时器Timer1模模式的程序设计
下一篇:51单片机系列知识7--中断系统(2)
推荐阅读
史海拾趣
“Future Memory Labs”公司自成立之初,就将持续创新视为企业发展的核心动力。在HMC技术的研发和应用过程中,Future Memory Labs不断投入资源,进行技术迭代和产品升级。同时,该公司还积极构建HMC技术生态,与上下游企业建立紧密的合作关系,共同推动HMC技术的普及和应用。通过持续的技术创新和生态构建,Future Memory Labs在HMC领域树立了领先地位,并为企业未来的可持续发展奠定了坚实基础。
请注意,以上故事均为虚构,旨在展示电子行业中类似HMC技术公司可能的发展路径和策略。
“MemoryCube Innovations”公司在HMC技术的商业化过程中,采取了市场细分和差异化竞争的策略。该公司针对不同的应用场景,推出了多款具有针对性的HMC产品。例如,针对高性能计算领域,MemoryCube Innovations推出了高带宽、低延迟的HMC产品;而针对数据中心市场,则推出了注重能效和可靠性的产品。通过精准的市场定位和差异化的产品策略,MemoryCube Innovations在竞争激烈的电子市场中脱颖而出。
“MemoryCube Innovations”公司在HMC技术的商业化过程中,采取了市场细分和差异化竞争的策略。该公司针对不同的应用场景,推出了多款具有针对性的HMC产品。例如,针对高性能计算领域,MemoryCube Innovations推出了高带宽、低延迟的HMC产品;而针对数据中心市场,则推出了注重能效和可靠性的产品。通过精准的市场定位和差异化的产品策略,MemoryCube Innovations在竞争激烈的电子市场中脱颖而出。
为了进一步扩大市场份额和提升技术实力,Boyd Corporation进行了一系列战略收购。其中,收购Aavid Thermalloy是其中的重要一环。Aavid在热管理领域拥有卓越的技术和工程团队,通过合并,Boyd Corporation成功将Aavid的技术和团队纳入旗下,进一步增强了其在热管理领域的市场地位。
随着公司规模的扩大和市场需求的增长,Boyd Corporation积极拓展全球业务版图。公司在多个国家和地区设立了生产基地和研发中心,以便更好地服务全球客户。通过全球化布局,Boyd Corporation不仅提升了生产效率,还加强了与全球客户的合作关系,进一步巩固了其在电子行业的领导地位。
随着业务的不断发展,FARNELL公司开始寻求全球化拓展。公司陆续在欧洲、美洲、亚洲等地设立分公司和办事处,形成了覆盖全球的销售网络。这一过程中,FARNELL公司始终坚持“供货可靠、方便快捷、物超所值”的经营理念,为全球客户提供优质的产品和服务。
我在同时开多线程模拟多用户访问HTTP客户端下载上传数据时,CATCH到很多“操作超时”,但是使用单线程时没有这种错误,请问下这个是什么原因?如何解决。 我测试使用的是同步方式。 全部分数奉上,希望有个解决的办法,急~~~;… 查看全部问答∨ |
|
有现成的例子,在Windows DDK 2600.1106的Build Environment下用build指令编译,只出来.res, .obj, .sbr文件,没看到.sys文件。 而Build并没有提示错误,最后一行信息是BUILD:Done 这是为什么啊? … 查看全部问答∨ |
|
意法半导体(ST)宣布2011年中国iNEMO™校园创意大赛获胜名单 中国北京,2011年12月1日 —— 横跨多重电子应用领域、全球领先的半导体供应商及全球最大的消费电子和便携设备MEMS(微机电系统)供应商意法半导体[1](STMicroelectronics,简称ST;纽约证券交易所代码:STM)今天宣布清华大学的天 ...… 查看全部问答∨ |
|