|
2009年11月4日
1 引言 在运行的过程中,所谓中断是指当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的一个过程称之为中断。以8051为例,中断系统含有5个中断源,分别是外部中断0请求(INT0),外部中断1请求(INT1),定时/计数器0溢出中断请求(T0),定时/计数器1溢出中断请求(T1)以及串行口中断请求(Tx/Rx)。既然系统含有5个中断源,就有可能出现数个中断源同时提出中断请求的情况,这样,设计人员必须事先根据它们的轻重缓急来为每个中断源确定CPU对其的响应顺序。然而,对于中断优先级寄存器IP来说,只可能设定两级优先,即控制位为1时对应的中断源为高级中断,反之,控制位为0时对应的为低级中断。这样就出现一个问题:如果一个中断正在执行,如何才能让它响应同级甚至是低级中断请求呢? 2 中断多优先级的扩展 根据8051的结构特点,其中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出 CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。遍历系统所提供的111条指令,只有RETI可以达到此目的。该指令可在CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面可从当前栈顶弹出断点地址送入程序计数PC,从而返回主程序。 3 软件扩展方法 3.1 高级中断源响应低级中断源的软件设计 现以当前IE=84H(开放外部中断1及总控制位),IP=04H设定INT1为高优先级 正在执行外部中断1服务子程序为例来进行说明。如欲响应串行口中断,也就是要实现高级中断源响应低级中断源,设计时可加入如下代码而无须改变IP寄存器的内容: PUSH IE ;IE内容入栈保护 MOV IE , #10010000B ;开放串行口中断 CALL PP ;继续执行原中断子程序,但可 随时响应串行口中断请求 ... POP IE ;恢复原IE内容 RETI PP: RETI 3.2 同级中断源之间的响应 上述代码体现了高级中断源(INT1)响应低级中断源(串行口)的软件实现方法。但是, 8051系统共含有5个中断源,因此必须解决同优先级中断之间的嵌套问题,具体源程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP X0 ;INT0入口地址 ORG 000BH LJMP T0 ;T0入口地址 ORG 0013H LJMP X1 ;INT1入口地址 ORG 001BH LJMP T1 ;T1入口地址 ORG 0023H LJMP SS ;串行口入口地址 MAIN: MOV IE ,#9FH ;开放所有中断 MOV IP,#03H ;设定INT0、T0为高优先级 SJMP $ X0: PUSH DPL PUSH DPH MOV DPTR,#X0RL PUSH DPL PUSH DPH RETI ;(PC)=X0RL,清"高优先级生效" 触发器,此时可响应其它中断请求 X0RL:· ;INT0子程序的真实入口地址 · · · POP DPH POP DPL RETI T0: PUSH DPL PUSH DPH MOV DPTR,#T0RL PUSH DPL PUSH DPH RETI ;(PC)=T0RL,清"高优先级生效" 触发器,此时可响应其它中断请求 T0RL: · ;T0子程序的真实入口地址 · · · POP DPH POP DPL RETI X1: PUSH DPL PUSH DPH MOV DPTR,#X1RL PUSH DPL PUSH DPH RETI ;(PC)=X1RL,清“高优先级生效” 触发器,此时可响应其它中断请求 X1RL: · ;INT1子程序的真实入口地址 · · · POP DPH POP DPL RETI T1: PUSH DPL PUSH DPH MOV DPTR,#T1RL PUSH DPL PUSH DPH RETI ;(PC)=T1RL,清"高优先级生效" 触发器,此时可响应其它中断请求 T1RL: · ;T1子程序的真实入口地址 · · · POP DPH POP DPL RETI SS: PUSH DPL PUSH DPH MOV DPTR,#SSRL PUSH DPL PUSH DPH RETI ;(PC)=SSRL,清"高优先级生效" 触发器,此时可响应其它中断请求 SSRL: · ;串行口子程序的真实入口地址 · · · POP DPH POP DPL RETI 上述程序利用IP寄存器给出了两级优先级,其中INT0、T0为高优先级,INT1、T1串行口为低优先级。为使某中断能响应同级甚至低级中断,只要在中断服务子程序中用RETI指令清除相应的不可寻址的“优先级生效”触发器即可。程序一开始的两条PUSH指 令的作用是对原始数据进行入栈保护(如此时DPTR中的数据不需保留,则这两条压栈指令也可不要,相应的弹栈指令也可不要),然后将其真实子程序入口地址入栈,并经RETI出栈后弹给PC指针,以便在执行完RETI后正确执行真实子程序。当该中断服务子程序执行完毕后,RETI将返回主程序断点处以继续执行原来程序。 4 结束语 本文所阐述的多优先级扩展方法是纯软件方法,该方法只需在程序中加入为数不多的相应代码,便可进行各种中断嵌套(如同优先级响应或高优先级响应低优先级等)。此方法的代价是要花费更多的中断响应时间,但相对于添加硬件扩展的方法而言,这点代价还是值得的。
posted @ 2009-11-4 10:46:22 pcbshejiic 评论 (0) | 编辑
2009年11月4日
1 引言 在运行的过程中,所谓中断是指当CPU正在处理某件事情的时候,外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是CPU暂时中止当前的工作,转去处理所发生的事件。中断服务处理完该事件以后,再回到原来被中止的地方继续原来的工作,这样的一个过程称之为中断。以8051为例,中断系统含有5个中断源,分别是外部中断0请求(INT0),外部中断1请求(INT1),定时/计数器0溢出中断请求(T0),定时/计数器1溢出中断请求(T1)以及串行口中断请求(Tx/Rx)。既然系统含有5个中断源,就有可能出现数个中断源同时提出中断请求的情况,这样,设计人员必须事先根据它们的轻重缓急来为每个中断源确定CPU对其的响应顺序。然而,对于中断优先级寄存器IP来说,只可能设定两级优先,即控制位为1时对应的中断源为高级中断,反之,控制位为0时对应的为低级中断。这样就出现一个问题:如果一个中断正在执行,如何才能让它响应同级甚至是低级中断请求呢? 2 中断多优先级的扩展 根据8051的结构特点,其中断系统中含有两个不可寻址的“优先级生效”触发器。一个用于指出 CPU是否正在执行高优先级的中断服务程序,这个触发器为1时,系统将屏蔽所有的中断请求;另一个则指出CPU是否正在执行低优先级中断服务程序,该触发器为1时,将阻止除高优先级以外的一切中断请求。由此可见,若要响应同级甚至是低级中断请求,必须使得该“优先级生效”触发器清零。但该触发器又是不可寻址的,所以无法用软件直接清零。遍历系统所提供的111条指令,只有RETI可以达到此目的。该指令可在CPU执行该指令时,一方面清除中断响应时所置位的“优先级生效”触发器,另一方面可从当前栈顶弹出断点地址送入程序计数PC,从而返回主程序。 3 软件扩展方法 3.1 高级中断源响应低级中断源的软件设计 现以当前IE=84H(开放外部中断1及总控制位),IP=04H设定INT1为高优先级 正在执行外部中断1服务子程序为例来进行说明。如欲响应串行口中断,也就是要实现高级中断源响应低级中断源,设计时可加入如下代码而无须改变IP寄存器的内容: PUSH IE ;IE内容入栈保护 MOV IE , #10010000B ;开放串行口中断 CALL PP ;继续执行原中断子程序,但可 随时响应串行口中断请求 ... POP IE ;恢复原IE内容 RETI PP: RETI 3.2 同级中断源之间的响应 上述代码体现了高级中断源(INT1)响应低级中断源(串行口)的软件实现方法。但是, 8051系统共含有5个中断源,因此必须解决同优先级中断之间的嵌套问题,具体源程序如下: ORG 0000H LJMP MAIN ORG 0003H LJMP X0 ;INT0入口地址 ORG 000BH LJMP T0 ;T0入口地址 ORG 0013H LJMP X1 ;INT1入口地址 ORG 001BH LJMP T1 ;T1入口地址 ORG 0023H LJMP SS ;串行口入口地址 MAIN: MOV IE ,#9FH ;开放所有中断 MOV IP,#03H ;设定INT0、T0为高优先级 SJMP $ X0: PUSH DPL PUSH DPH MOV DPTR,#X0RL PUSH DPL PUSH DPH RETI ;(PC)=X0RL,清"高优先级生效" 触发器,此时可响应其它中断请求 X0RL:· ;INT0子程序的真实入口地址 · · · POP DPH POP DPL RETI T0: PUSH DPL PUSH DPH MOV DPTR,#T0RL PUSH DPL PUSH DPH RETI ;(PC)=T0RL,清"高优先级生效" 触发器,此时可响应其它中断请求 T0RL: · ;T0子程序的真实入口地址 · · · POP DPH POP DPL RETI X1: PUSH DPL PUSH DPH MOV DPTR,#X1RL PUSH DPL PUSH DPH RETI ;(PC)=X1RL,清“高优先级生效” 触发器,此时可响应其它中断请求 X1RL: · ;INT1子程序的真实入口地址 · · · POP DPH POP DPL RETI T1: PUSH DPL PUSH DPH MOV DPTR,#T1RL PUSH DPL PUSH DPH RETI ;(PC)=T1RL,清"高优先级生效" 触发器,此时可响应其它中断请求 T1RL: · ;T1子程序的真实入口地址 · · · POP DPH POP DPL RETI SS: PUSH DPL PUSH DPH MOV DPTR,#SSRL PUSH DPL PUSH DPH RETI ;(PC)=SSRL,清"高优先级生效" 触发器,此时可响应其它中断请求 SSRL: · ;串行口子程序的真实入口地址 · · · POP DPH POP DPL RETI 上述程序利用IP寄存器给出了两级优先级,其中INT0、T0为高优先级,INT1、T1串行口为低优先级。为使某中断能响应同级甚至低级中断,只要在中断服务子程序中用RETI指令清除相应的不可寻址的“优先级生效”触发器即可。程序一开始的两条PUSH指 令的作用是对原始数据进行入栈保护(如此时DPTR中的数据不需保留,则这两条压栈指令也可不要,相应的弹栈指令也可不要),然后将其真实子程序入口地址入栈,并经RETI出栈后弹给PC指针,以便在执行完RETI后正确执行真实子程序。当该中断服务子程序执行完毕后,RETI将返回主程序断点处以继续执行原来程序。 4 结束语 本文所阐述的多优先级扩展方法是纯软件方法,该方法只需在程序中加入为数不多的相应代码,便可进行各种中断嵌套(如同优先级响应或高优先级响应低优先级等)。此方法的代价是要花费更多的中断响应时间,但相对于添加硬件扩展的方法而言,这点代价还是值得的。
posted @ 2009-11-4 10:41:16 pcbshejiic 评论 (0) | 编辑
2008年9月27日
闪存芯片价格走低,韩国抱怨日本继续征收DRAM储存芯片反补贴关税,WTO争议解决团队表示,将组织一个检查小组,对日本政府是否遵从早期世界贸易组织宣布的取消对韩国DRAM储存芯片征收关税的决定进行检查。
2007年11月世界贸易组织争议解决团队宣布决定称,对韩国出口到日本的DRAM储存芯片,日本必须取消其征收27.2%的反补贴关税……
posted @ 2008-9-27 14:22:23 pcbshejiic 评论 (0) | 编辑
2008年9月17日
据Digitimes网站报道,MEMS市场近来愈烧愈旺,继联电MEMS大军已正式组成后,台积电MEMS军团成员最近再添一名新兵,据了解,原本便已是台积电在CMOS标准制程晶圆代工市场中相当重要的合作伙伴 世界先进,如今也将与台积电一同携手,开拓MEMS晶圆代工市场……
posted @ 2008-9-17 14:34:17 pcbshejiic 评论 (0) | 编辑
2008年9月10日
PIC 系单片机和MCS51系列单片机解密方法不同,PIC系单片机解密方法比较复杂,MCS51系列MCU解密比较简单。虽然MCS51系列的单片机解密比较简单,但是并不是说任何人都能解密,芯片解密是一项比较复杂的技术,只有专业技术人才,才能对其解密……
posted @ 2008-9-10 14:00:46 pcbshejiic 评论 (0) | 编辑
2008年9月3日
本文出自:PCB抄板资料站
台湾印刷电路板设计(PCB设计) 4 大手机板厂上半年受到汇损、淡季及原物料价格高涨冲击,包括华通、欣兴 (3037)、楠梓电(2316)及耀华 (2367) 等上半年业绩表现不佳,尤其华通及楠梓电呈现亏损;有电路板设计专家指出,第三季尽管旺季订单延后,不过毛利率及业绩将会较第二季明显成长。
华通第二季虽然没有汇兑损失,不过受到淡季影响,产能利用率大幅下滑,毛利率跟着骤降,第二季毛利率1.64%,远低于第一季毛利率8.66%的水平,税后亏损1.26亿元;上半年毛利率大降至7.65%,较去年同期16.5%明显下滑,每股税后亏损0.15元。
华通表示,进入第三季后,手机板订单逐渐明朗且转趋乐观,订单能见度拉长到 1个半月,产能利用率也从6成提升至8成,初估第三季营收有机会达到两位数的成长。
posted @ 2008-9-3 11:16:56 pcbshejiic 评论 (0) | 编辑
2008年8月27日
本文出自:PCB抄板资料站
要想跟上世界先进的印制电路板设计制造技术水平,就必须了解目前国外在这方面的发展动态。
国外在关键工艺技术发展动向
1、 底片制作及图形转移工艺
底片制作及图形转移质量,直接影响制作精细电路图形的品质。所以,在制作底片时普遍采用计算机辅助设计系统(CAD),进行PCB设计并与计算机辅助制造系统(CAM)接口通过数据转换制作出高精度、高分辨率的光绘底片。由于导线密度高,导线宽度与间距0.10-0.05mm,为保证底片导线图形的精度和准确度,以及电路图形成像质量,要求工作间的洁净度较高,通常采用万级或千级,才能确保底片成像的高质量。
posted @ 2008-8-27 11:00:09 pcbshejiic 评论 (0) | 编辑
2008年8月7日
“台湾地区可能要对大陆开放12英寸半导体生产,没想到会这么快。”昨天芯片解密专家对《第一财经日报》说。
芯片解密专家指出近日马英九多次在公开场合表示,正考虑放松台企向大陆出口半导体设备的控制规定,9月开始可能允许台企在大陆直接设立12英寸半导体工厂。此前台湾地区半导体企业曾争抢大陆8英寸半导体工厂项目落地。不过,此次他们却并没有对这一政策欢呼雀跃。
posted @ 2008-8-7 14:19:51 pcbshejiic 评论 (0) | 编辑
2008年7月23日
北京时间7月18日硅谷动力网站从国外媒体处获悉:周四,欧盟委员会扩大了对英特尔公司的垄断指控,称为了打压竞争对手,英特尔向零售商支付回扣,要求他们不要销售使用AMD芯片的电脑。
继欧盟委员会去年提出的垄断指控之后,这一次,指控项目再次增加。英特尔将面临欧盟进一步调查和惩罚。
欧盟委员会在一份声明中说,调查表明,英特尔公司的各种手段相互呼应,都服从于一个整体上排挤AMD、限制对手进入市场的一个垄断战略。
posted @ 2008-7-23 10:42:51 pcbshejiic 评论 (0) | 编辑
2008年7月22日
上半年印刷电路板设计(PCB板设计)市况不如预期,下半年还是不明朗,还传出德宏工业停工,公司11日强调仅是强制员工例行排休;6月营收创今年单月新低的霖宏科技则表示是因举办员工旅游及年中盘点所致。
约70文件印刷电路板设计、集成电路(IC)基板相关产业厂商,在今年接单不如预期、电子业传统「五穷六绝」的影响,6月营收表现并不好,但真正陷入谷底的厂商也有限。
6月营收创今年新低的有景硕科技、精成科技、建荣工业、高技企业、霖宏及华韡电子,景硕生产IC基板,高技、霖宏是PCB设计厂,华韡、建荣生产PCB设计上游原物料电子级玻纤布及铜箔基板(PCB设计),精成科有PCB板设计及PCB组装加工(Assembly)。
posted @ 2008-7-22 18:08:50 pcbshejiic 评论 (0) | 编辑
|