|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
摘要:针对单片机应用系统实时性强,干扰因素较多的特
, |+ F W! N8 U5 J# \9 O! r0 B* r点,本文介绍了几种实用的抗干扰措施,在硬件抗干扰方面. k9 c4 h: S( y `, F
阐述了供电系统的设计、电路板的合理布局以及输入输入
`, J! e. d! f9 `# a6 b: w8 r干扰的抑制,软件方面给出了软冗余技术、软件陷阱技术以. ?4 m/ ?. h; }+ s$ |6 ~
及“看门狗”技术的几个实例。' C; V8 Z; r+ Y1 E- j4 B4 B
关键词:抗干扰;单片机;硬件;软件
! D9 x j, x/ V5 C% x1引言6 \; i5 n" p) W' O
单片机应用系统的抗干扰设计是系统设计的重要内容之
' V9 @5 x J& t5 j一,抗干扰性能的好坏将决定系统能否在复杂的电磁环境下稳
8 |+ g( @7 y9 _5 Z0 e5 T9 ]定可靠地工作,从而决定了系统的实际使用价值.特别是在各种+ H6 n$ E z( M- S' L" O
实时控制的远距离系统中,由于现场环境恶劣,干扰因素较多, n; r3 {; S5 L/ C7 Z, K
系统不可避免地要受到其他电磁设备的干扰,若仅按常规设计
1 @3 ?, j I! F( x6 E( Z* X, K/ l0 _就很难保证系统的正常运行。因此,抗干扰问题是设计者必须充$ T% s. b3 p; x4 o; F9 Z
分考虑和解决的,下面从硬件和软件两个方面谈谈抗干扰设计。
, o; W7 ]0 G2 g7 f2硬件抗干扰设计0 |8 l7 z6 Q! s. ^9 b
2.1供电系统
) ^& @- B' a1 v+ T! h h& a为了防止从电源系统引入干扰,首先采用交流稳压器保证9 V' c1 A/ j4 M: D
供电系统的稳定性,防止电源的过压和欠压。其次,电源滤波和 ]7 A. I/ w% t
退耦是抑制电源干扰的主要方式,可将电源变压器的初级隔离' w; o5 l1 y3 R6 |
起来,使混入初级的噪声干扰不致进入次级;使用隔离变压器滤
O! M' \9 i9 ?6 J. J) }掉高频噪声,低通滤波器滤掉工频干扰。
9 \ Q7 _7 v8 H5 ^' f* u当系统中使用继电器、磁带等电感设备时,数据采集的供电- u, @, R8 Z3 A. i/ Q% r
电路应与继电器的供电电路分开,以避免在供电线路之间的干
& }' P6 y. z; L8 F3 Y扰,即如图1所示。' F7 z3 ]6 Q2 z1 t% c! R$ s
对单片机系统的主机部分使用单独的稳压电路,必要时输# ]: y* ^' Z+ }3 O; S
入、输出供电分别采用DC.-DC模块,避免各个部分之间的干扰。
) t" N7 T6 s1 {2 V+ E; |2.2印制电路板5 R! ]$ y7 t. @+ ]$ R
①注意合理布置印制电路板上的器件,遵循器件之间电气$ s# n3 E8 e% G* }5 ?
干扰小和易于散热的原则。7 \. ~) [" j9 [0 K
②电路板要合理划分,模拟电路区、数字电路区功率驱动
0 `2 Y& {; @7 F区等要尽量分开,地线不能相混,要分别和电源端的地线相连。
, Q/ t- W0 a' c, b, s! H# H6 L* h
( h( q' M. a+ B$ Y' v6 G& G③布线时尽量不要构成环路,特别避免沿印制电路板周围5 S q" d: q- Y3 c! J
做成环路,不要出现长段的窄线并行,旁路电容的引线不能很' P% l; `& f, b# D. Q
长:单元电路的输出和输入应当用地线隔开:电源线和地线的走
: b& h$ H2 p" ~) Z5 i& u/ P向尽量和数据传输的方向- -致,并加宽宽度提高电路板的抗千
. a+ I. }4 b9 i% t( R扰能力.
3 ^# r7 s, L5 }6 f6 U# ? f3 N9 }图1分别供电的系统示意图
' h. o# T; i' ^% E0 f/ }" X) h+ ?1 I' E④原则上每个Ic都要加去耦电容,并靠近Ic的电源脚和
. _; z) \# |' m* H' l接地脚. .
. p: ~- U6 N6 n$ C2.3输入输出干扰的抑制1 s7 |0 v+ L. k4 K( h4 C, I* M
输入输出信号加.上光电耦合器隔离,可以将主机部分和前
3 u' z! l4 N; Y Y8 J9 H2 F向、后向通道及其他部分切断电路的联系,有效地防止千扰进入
8 U- f! @# M8 U! w, m8 L% t \主机系统。
/ l- h# o) X6 I: @$ K* y, ]. G' D在单片机实时系统信号的长线传输过程中,要注意使用双
! J8 J# k3 M/ u1 m( m* k( I绞线,提高系统的抗噪声能力.同时对传输线要进行阻抗匹配,/ Q( b2 _+ l0 T" I: k
可以在传输线的始端申联电阻.末端并联电阻,以实现匹配,提
( b/ R, H/ g) o9 }( H" J高系统的抗干扰能力.% a/ [6 m6 }4 h; ~
3软件抗干扰设计/ F; x% A: Z3 F) N4 u& \
为了提高测控系统的可靠性,仅靠硬件抗干扰措施是不够, t2 {9 K' ^9 V8 @ I- a
的,还需采用适当的软件抗千扰技术,软件抗干扰技术是当输入
t; Q! ~* p, U. d9 k信号受干扰后去伪求真或系统受干扰后使系统恢复正常运行的4 h6 ] w; c" ~+ m; h8 p) n) B
-种辅助方法。对抑制输入信号的干扰主要采用数字滤波技术,( X* t" T! U; \9 Y7 f
通过软件去除噪声对数据采集结果的影响。系统受干扰后会使
6 e; @0 O! `# S2 f- y4 _9 @4 }0 S4 ]得程序失控,失控原因大都可以归结为程序计数器PC的内容
3 A5 I W( {, k发生变化,引起程序跑飞“或陷入死循环, CPU执行了一系列错
2 y9 v$ j5 v% v1 c4 _! Y误的指令从而导致系统失控,可以采用软件冗余、软件陷阱和8 I( m. A; B; n4 r, p: p
看门狗“技术等使程序纳入正规.: |7 T+ v5 P' f) a0 f p$ G# p
3.1软件冗余技术& i4 B1 c1 e9 N/ ?' [ P
MCS- 51所有指令都不超过三个字节,且多为单字节指令,
/ K: ^0 @. f8 K- Y: u' t' d! {* I指令由操作码和操作数组成,操作码指明CPU完成什么样的操1 z( H1 p" B* J g# c# F1 F) K8 F
作,单字节指令仅有操作码,隐含操作数.CPU受到干扰后,PC* l+ h6 I& P/ X! N! U/ _6 q0 V
内容发生变化,当程序弹飞到某- - 单字节指令时,便自动纳入正
! t" _& L& G9 c A+ G5 f规.当跑飞”到某一双字节或三字节指令时,若恰恰在取指令时
( c/ S6 `. D/ m4 D9 q刻落到其操作数上,CPU就将操作数当作操作码来执行,引起程" S: \6 N5 \: t% v0 N
序混乱.因此软件设计应多采用单字节指令,并在关键的地方人
5 }) F) U; d8 a) y' k- O为的插入一些单字节指令NOP,或将有效的单字节指令重写,
2 w( |; E w! f7 g这称作指令冗余.在实际软件设计中,往往在双字节和三字节指
, H- P, e6 Z5 M* j. f令之后插入两个NOP指令,可以保证程序跑飞”后其后面的指
0 r9 a, W: t7 k令不会拆散,后面的程序可以正常运行.在那些对程序流向起决8 u1 g0 j" T, L5 A7 S8 E# H
定作用的指令,如RETRETI ACALL.LJMPJZ.JNC等之前也
: `4 [3 i, Z' n0 C' i+ r% a
+ w8 b8 [: M) u
( H# ^3 q. l7 ?, ]( K/ D/ a: N% Q, [5 T0 }6 O$ u- m6 j
附件下载:
" T, ?7 V7 s" E" `9 f/ I5 A( p& x( z! V1 d0 s' X; C+ U
|
|