智能电表设计中的抗干扰措施
扫描二维码
随时随地手机看文章
摘要:文章分析了智能电表设计中可能出现的各种问题,并介绍了相应的软硬件抗干扰措施。对从事电表的研发人员有重要的指导意义。
关键词:智能电表;软硬件;抗干扰
一、引言
智能电表的设计,由于微控制器的引入,对设计者提出了更高的要求。这是因为由于电源等引入的干扰可能导致程序指针跳飞,从而引起不可预测的后果,诸如电量数据的丢失、改变或死机等。像家用电脑和普通仪器仪表对死机等现象是允许的,可以通过人工复位,重新设置等手段来恢复,求长年连续的挂网运行,如果运行中出现任何异常现象,均要求能自动恢复正常工作。然而,在工程实际中,噪声和干扰是不可避免的。目前,大多数智能电表都应保证在干扰较强的现场运行,因此如何提高智能电表的抗干扰能力,保证其在规定条件下正常运行,以及防止仪表内部产生的噪声对外部的辐射,是智能仪表设计中必须考虑的问题,也是关键问题。
二、硬件抗干扰设计
在智能电表研制的初期,我们发现这样一种现象,电表带上电感性负载(比如电扇)时,在电扇快速插拔的瞬间,容易导致智能电表中单片机数据的丢失或死机。如果从设计上不能把智能电表的抗干扰问题解决好,后果将会非常严重。
(1)电源的抗干扰措施
实践证明,系统失效和硬件损坏大都是由各种干扰引起的,而90%以上的干扰来自于电源。可见这种来自电源的干扰对系统的影响相当大,因此应充分考虑电源对单片机的影响。电源做得好坏,直接影响整个电路的抗干扰能力的好坏。目前有以下几种电源可供选择:第一种阻容分压式,它采用简单的电阻电容分压、滤波。但这种电源稳压性能差、电源波动大、带负载能力小、电网干扰极易串入,一般不采用这种方式。第二种开关电源,这种电源稳压性能好、纹波小,但成本较高且对外界电网干扰比较严重,也不宜采用。第三种线性电源,这种电源由220V经交流变压、整流、滤波及稳压得到,稳压性能好、隔离特性好,价格适中,在目前应用广泛的多用户电表设计中大都采用这种方式。对这种电源的抗干扰措施有以下几个方面。
(2)电源检测及看门狗电路
分析及实践表明,对来自电网的干扰不仅要采取硬堵的办法,还要采取容错措施。使用电源检测及看门狗电路的目的,就是当电源电压出现干扰脉冲或单片机受干扰程序运行异常时,产生一复位信号使单片机复位。看门狗电路实质上是一个单稳电路。当程序运行正常时,单片机定时给单稳电路输入触发信号,使单片机输出保持暂稳态:当干扰异常时,单片机不能给触发信号,单稳输出回到稳态引起单片机硬件夏位:看门狗不仅对来自电网方面的干扰起作用,而且对来自空间等其他方面的干扰也起作用。然而如果没有电源检测电路,只有看门狗电路,在电网干扰下,即使不带电感性负载,当电源快速合闸时,也有可能导致死机。实践证明,采用电源检测及看门狗电路之后,死机观象得到了有效地克服。
(3)串行E2PROM的选择
因为电表数据存储的可靠性至关重要,为了保证在掉电时以及在因干扰导致单片机复位时,智能电表中的主要数据和参数不丢夫,存储器的选择上要有所考虑。使用并行存储器.虽然有速度快的特点,但读写信号容易受到干扰从而造成错误。而采用串行E2PROM存储器时,其读写时序相当严格,受到干扰出错的几率就小得多。
(4)布线布局上的抗干扰设计
在用电负荷很小时,220V的电压与几个μV的小信号会共集于一块电路板上,如果电源布局不当,有用信号会被噪声所淹没,以多用户电表为例,在布线布局上的抗干扰措施有:
当然,这些布线与布局的抗干扰设计一般不能由自动布线软件来实现,必须有设计者亲自参与并设计有关电路。
三、软件抗干扰设计
在提高硬件系统抗干扰能力的同时,软件抗干扰以其设计灵活、节省硬件资源、可靠性好越来越受到重视。因此,除了采取硬件抗干扰方法外,还要采取如下软件抗干扰措施。
(1)指令冗余技术
当指针受到干扰出现程序跑飞时,可能会出现将操作数数值改变及将操作数误当作操作码的情况。当“跑飞”到某双字节或三字节指令的操作数上时,会将操作数当作操作码,程序将出错,因此可在双字节和三字节指令之后插入两个或三个单字节NOP指令,这可保证其后的指令不被拆散。对程序流向起决定作用的指令(如浸水使柔软、RETI、ACALL、LCALL、LJMP、JZ、JNZ、JC、.INC等)和对系统工作状态起重要作用的指令(如SETB、EA等)之前插入两条NOP指令,可保证跑飞程序迅速纳入轨道;或者在其后面重复写上这些指令,以确保这些指令的正确运行。
(2)软件陷阱
当微处理器受到各种干扰时,若PC指针跳到非程序区,可能会陷入某种循环不能跳出。如果循环中无清WDT指令,在给定看门狗定时器条件下,经过一定时间 WDT起作用,将PC指针复位,工作恢复正常。如果循环中包含了清WDT的指令,则产生死机。对于后者可在非程序区放置软件陷阱加以解决。
软件陷阱有三条指令组成:
安排软件陷阱的位置有:
未使用的中断区。如果设计的智能电表未使用全部的中断向量区,则可在剩余的中断区安排软件陷阱,以便能捕捉到错误的中断。未使用的大片EPROM空间。对于单片机未编程的空间,其初始值为OFFH。OFFH对51指令来说,相当于单字节指令MOV R7,A。当程序跑飞入该区后,不仅无法迅速入轨,而且破坏R7的内容。因此在该区每隔一段地址设一个陷阱,就一定能捕捉到跑飞的程序。在表格的最后安排陷阱。注意表格中不应被放入。在程序区。前面曾指出,跑飞的程序在用户程序内部跳转时可用指令冗余加以解决,也可以设置一些软件陷阱,能更有效地抑制程序跑飞。可以将陷阱指令放置在各模块之间的空余单元里。在正常运行中不执行这些陷阱指令,一旦程序跑飞落入这些陷阱区,马上将乱飞的程序拉入正确轨道。由于软件陷阱都安排在正常程序执行不到的地方,故不会影响程序的执行效率。所以在EPROM容量允许的条件下,这种陷阱多一点为好。(3)“看门狗”措施
如果跑飞的程序落入一个临时构成的死循环中时,冗余指令和软件陷阱都将无能为力,这时可以采用复位的方法使系统恢复正常。“看门狗”电路的功能就是对 CPU进行实时检测,当CPU落入死循环之后,能及时发现并使整个系统复位。在软件编程中,设置约1秒访问一次看门狗芯片,当程序跑飞或大于1.4秒(设置的超时时间)没有访问看门狗芯片,X5045将输出复位脉冲,直至程序正常运行。
(4)保证EEPROM数据写入的可靠性措施
需要注意的是,看门狗如果起作用说明程序计数器内容被破坏,因此其它寄存器或片内公羊的内容也有被破坏的可能,会导致把错误的数据写入EEPROM。在电表工作中,每产电量改变0.1度写入一次EEPROM,如果出现将错误的数据写入EEPROM,这是不允许的。采取以下措施可很好的解决此问题:
(5)串行通信数据的冗余校验
在抄表通信过程中,由于信道上各种因素的影响,所传输的信号受一定程度的干扰,PC机、集中器、电表间的性能参数不完全一致,在串行通信中仅靠奇偶校验是不够的。而采用国际上较为流行的传输码校验方法——循环冗余码校验(CRC),可收到了很好的效果。CRC是一种多用于同步通讯方式中的差错检出方式,在该方式中,将所传数据系列看成高次多项式G(x),将此多项式用预先规定的生成多项式P(x)去除,再将其余数码BCC附加在所传数据的尾部一并传送:在接收方,用同样的生成多项式去除,若除得结果为零,则可判断所接收到的数据是正确的。在发送端的一方,即电表先将发送数据转换,连同原数据一同发给集中器,集中器不做校验,直接发给PC机,在接收端,PC机用高级语言实行CRC算法解码;以确定数据的真伪。经实验证明,冗余校验使误码率大为降低,确保了数据传输的可靠性。
另外在软件的编制过程中应注意在执行各功能子模块之前,可先进行功能标志冗余判断,以增强其程序运行可靠性。
四、结束语
在电表设计中,为了少走弯路和节省时间,应充分考虑抗干扰性能的要求,避免在设计完成后再去进行抗干扰的补救措施。因此电表设计开发者应从抑制干扰源,切断干扰传播路径,提高敏感器件的抗干扰性能等方面采取各种措施来提高系统性能。在抗干扰设计中,软件抗干扰是被动措施,而硬件抗干扰是主动措施,只要认真分析系统所处环境的干扰来源以及传播途径,采用两者相结合的方法,就能保证系统长期稳定可靠地运行。
参考文献:
[1]徐爱均等.智能化测量控制仪表原理与设计[M]。北京航空航天大学出版社,1995
[2]王幸之等.单片机应用系统抗干扰技术[M]。北京航空航天大学出版社,2000
[3]邱玉春等EEPROM器件在电度表中的应用。电测与仪表,2000