当前位置:首页 > 单片机 > 单片机
[导读]1. 引言单片机应用系统的抗干扰设计是系统设计的重要内容之一,抗干扰性能的好坏将决定系统能否在复杂的电磁环境下稳定可靠地工作,从而决定了系统的实际使用价值。特别是在各种实时控制的远距离系统中,由于现场环

1. 引言

单片机应用系统的抗干扰设计是系统设计的重要内容之一,抗干扰性能的好坏将决定系统能否在复杂的电磁环境下稳定可靠地工作,从而决定了系统的实际使用价值。特别是在各种实时控制的远距离系统中,由于现场环境恶劣,干扰因素较多,系统不可避免地要受到其他电磁设备的干扰,若仅按常规设计就很难保证系统的正常运行。因此,抗干扰问题是设计者必须充分考虑和解决的,下面从硬件和软件两个方面谈谈抗干扰设计。

2. 硬件抗干扰设计

2.1 供电系统

为了防止从电源系统引入干扰,首先采用交流稳压器保证供电系统的稳定性,防止电源的过压和欠压。其次,电源滤波和退耦是抑制电源干扰的主要方式,可将电源变压器的初级隔离起来,使混入初级的噪声干扰不致进入次级;使用隔离变压器滤掉高频噪声,低通滤波器滤掉工频干扰。

当系统中使用继电器、磁带等电感设备时,数据采集的供电电路应与继电器的供电电路分开,以避免在供电线路之间的干扰,即如图1所示。

对单片机系统的主机部分使用单独的稳压电路,必要时输入、输出供电分别采用DC-DC模块,避免各个部分之间的干扰。

2.2 印制电路板

①  注意合理布置印制电路板上的器件,遵循器件之间电气干扰小和易于散热的原则。

②  电路板要合理划分,模拟电路区、数字电路区、功率驱动区等要尽量分开,地线不能相混,要分别和电源端的地线相连。

③  布线时尽量不要构成环路,特别避免沿印制电路板周围做成环路,不要出现长段的窄线并行,旁路电容的引线不能很长;单元电路的输出和输入应当用地线隔开;电源线和地线的走向尽量和数据传输的方向一致,并加宽宽度提高电路板的抗干扰能力。

④  原则上每个IC都要加去耦电容,并靠近IC的电源脚和接地脚。

2.3 输入输出干扰的抑制

输入输出信号加上光电耦合器隔离,可以将主机部分和前向、后向通道及其他部分切断电路的联系,有效地防止干扰进入主机系统。

在单片机实时系统信号的长线传输过程中,要注意使用双绞线,提高系统的抗噪声能力。同时对传输线要进行阻抗匹配,可以在传输线的始端串联电阻、末端并联电阻,以实现匹配,提高系统的抗干扰能力。

3. 软件抗干扰设计

为了提高测控系统的可靠性,仅靠硬件抗干扰措施是不够的,还需采用适当的软件抗干扰技术,软件抗干扰技术是当输入信号受干扰后去伪求真或系统受干扰后使系统恢复正常运行的一种辅助方法。对抑制输入信号的干扰主要采用数字滤波技术,通过软件去除噪声对数据采集结果的影响。系统受干扰后会使得程序失控,失控原因大都可以归结为程序计数器PC的内容发生变化,引起程序"跑飞"或陷入死循环,CPU执行了一系列错误的指令从而导致系统失控,,可以采用软件冗余、软件陷阱和"看门狗"技术等使程序纳入正规。

3.1 软件冗余技术

MCS-51所有指令都不超过三个字节,且多为单字节指令,指令由操作码和操作数组成,操作码指明CPU完成什么样的操作,单字节指令仅有操作码,隐含操作数。CPU受到干扰后,PC内容发生变化,当程序弹飞到某一单字节指令时,便自动纳入正规。当"跑飞"到某一双字节或三字节指令时,若恰恰在取指令时刻落到其操作数上,CPU就将操作数当作操作码来执行,引起程序混乱。因此软件设计应多采用单字节指令,并在关键的地方人为的插入一些单字节指令NOP,或将有效的单字节指令重写,这称作指令冗余。在实际软件设计中,往往在双字节和三字节指令之后插入两个NOP指令,可以保证程序"跑飞"后其后面的指令不会拆散,后面的程序可以正常运行。在那些对程序流向起决定作用的指令,如RET、RETI、ACALL、LJMP、JZ、JNC等之前也插入2条NOP指令,可保证跑飞的程序迅速进入正确的控制轨道。

3.2 软件陷阱技术

软件冗余技术适用于干扰后PC指向不正确的程序区,当跑飞程序进入非程序区(如EPROM未使用的空间)或表格区时,使用冗余指令的措施已不再适用,可采用软件陷阱的办法拦截跑飞程序,将其迅速引向一个指定的位置,执行一段对程序运行出错的处理程序。软件陷阱可采用以下形式:
 NOP
 NOP
 LJMP ERROR     ;ERROR为指定地址,安排有出错处理程序

软件陷阱可安排在下面几个区域。

①未使用的中断向量区。

当干扰使未使用的中断开放,并激活这些中断时,就会引起系统程序的混乱,如果在这些地方设置陷阱,就能及时捕捉到错误中断。

②未使用的EPROM区。

假设使用了一片2764,但程序并没有用完这个2764区域,这些非程序区可以用0000020000数据填满,020000是指令LJMP 0000H的机器码,当跑飞程序进入此区后,便会迅速自动进入正确轨道。

③数据表格区。

由于表格中内容和检索值有一一对应关系,在表格中安排陷阱将会破坏其连续性和对应关系,应在表格区的尾部设置软件陷阱。

④程序区。

前面已介绍,跑飞的程序在用户程序内部跳转时可用指令冗余技术加以解决,也可以设置软件陷阱,更有效地抑制程序跑飞。程序设计常采用模块化设计,模块化的程序是由一序列执行指令构成的,一般不能在这些指令串中间任意安排陷阱,否则正常执行的程序也可能被抓走,可以将陷阱指令分散放置在各模块之间的空余单元中。正常程序中不执行这些陷阱指令,但当程序跑飞一旦进入陷阱区,马上将程序拉回正确轨道。陷阱的多少视用户程序的大小而定,一般每1K字节有几个陷阱就够了。

⑤非EPROM芯片空间

MCS-51有64K程序系统空间,一般除了EPROM芯片占用的地址外,还剩余大片未编程的EPROM空间。当PC跑飞进入这些空间时,读入数据为0FFH,对51系列而言,相当于指令MOV R7,A,将修改R7的内容。

当CPU读程序存储器时,会产生一个PSEN的低电平信号,可利用该信号和EPROM的地址译码信号产生选通信号,引起一个空闲的中断,在中断服务程序中设置软件陷阱,将跑飞程序拉入正规。图2是一个实例。

3.3 "看门狗"技术

PC受到干扰引起程序失控,有可能使程序进入"死循环",指令冗余和陷阱技术都不能解决这个问题,通常采用"看门狗"技术(Watchdog)。该技术就是不断监视程序循环运行的时间,若发现时间超过已知的循环设定时间,即认为进入死循环,然后强迫程序返回到0000H入口地址,在0000H安排出错处理程序,使系统纳入正规。"看门狗"技术既可由硬件实现,也可以由软件来实现,二者还可以结合使用。

在实际应用中,有各种专用芯片例如MAX813815等能够完成"看门狗"功能,这些芯片集成了电压监控电路、备用电池和切换电路以及Watchdog 电路,功能齐全,应用非常广泛。在实时测控系统中,为了根据系统的需要来设定定时时间,也可采用图3所示8254构成的"看门狗"电路,该电路使用 8254的一个计数器,工作在方式1,定时时间可以由程序设定。

由图3可以看出,无论8254输出端OUT有正的上升沿还是系统上电复位的上升沿都将使系统复位,但两者的含义是不同的。方式1的特点是OUT端输出负脉冲的宽度为写入8254的计数初值,在8254计数期间,若GATE端有重触发信号,则重新装入计数初值计数,亦即输出保持为低电平。因此可设定8254 的计数初值,使其输出负脉冲的宽度稍大于程序正常运行的时间,然后在程序运行的适当位置上设置指令,使P1.0口向8254发来触发脉冲,这样当程序正常运行时,OUT端一直输出低电平,若程序"跑飞"后P1.0口不能正常送来触发信号,则计时时间到后,OUT端变为高电平,形成复位脉冲,使系统复位。由 D触发器7474构成的电路是用来区别是上电复位还是失控后的自动恢复复位的。

4. 结论

单片机实际应用系统抗干扰的根本在于硬件结构,软件抗干扰起到的是补充作用,在系统设计时只有二者兼顾,相互结合、互补才能达到较好的抗干扰效果。

参考文献
[1]  孙传友. 测控系统原理与设计[J]. 北京:北京航空航天大学出版社, 2004.4
[2]  艾玲梅. 单片机测控系统抗抗干扰技术[J]. 陕西工学院学报,2003.6
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

广州2023年9月22日 /美通社/ -- 日前,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(以下简称"TÜV莱茵")顺...

关键字: 研讨会 中国汽车 汽车产业 指令

深圳2023年8月10日 /美通社/ -- 近日,源自德国的第三方检测认证机构TÜV南德意志集团 (NB 0123) (以下简称"TÜ...

关键字: 网络安全 指令 BSP ST

(全球TMT2023年7月20日讯)7月19日,第二十届中国制造业数字化转型高峰论坛在西安举行。中之杰智能与现场嘉宾共同分享企业转型方法,探索数智化最佳实践,为制造业高质量发展集势聚能。中之杰智能打造了颠覆性创新产品...

关键字: 建模 双模 中国制造业 指令

单片机的功能是由指令系统体现的。所以,寻址方式和指令系统是衡量微型机的重要指标。

关键字: 单片机 指令 寻址方式

单片机将中央处理器(CPU)、存储和输入输出集成在一个芯片上。可以说,单片机就是微机,只是它的功能和我们平时用的电脑不一样,不是我们用的。像电脑一样强大。计算机可以一个一个地运行应用程序,单片机可以根据工程师的指令编写可...

关键字: 单片机 寄存器 指令

对新手PLC编程入门,或刚毕业的大学生,或多或少对PLC编程有所了解。学习PLC编程常见的方法就是通过相关的辅导书籍来学习,当然,随着PLC培训班的兴起,去PLC编程培训学校学习也是一种很好的学习方法。

关键字: plc 算术运算 指令

ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序...

关键字: ARM 处理器 指令

在指令“MOV A,#12H”中,立即数#12H是源操作数,紧随操作码74H之后存放在ROM中。该指令执行时,单片机先从ROM中读取操作码74H,对操作码74H解码后,确定要进行的操作是将一个8位立即数送入累加器A,接下...

关键字: 单片机 指令 寻址方式

开关量输入/输出通道和模拟量输入/输出通道,都是干扰窜入的渠道,要切断这些渠道,就要去掉外部与输入/输出通道之间的公共地线,实现彼此电气隔离以抑制干扰脉冲。最常用的隔离器是光电耦合器,其内部结构 图 9.5(a), 图...

关键字: 单片机 串模干扰 抗干扰

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在...

关键字: 汇编语言 指令 单片机
关闭
关闭