单片机软硬件抗干扰技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机软硬件抗干扰技术
在工业控制、智能仪表中都普遍采用了单片机,单片机抗干扰措施提到重要议事日程上来。单片机抗干扰措施不解决,其它工作也是白费劲。要解决单片机干扰问题,必须先找出干扰源,然后采用单片机软硬件技术来解决。
干扰源:主要来自外部电源、内部电源,印制板排版走线互相干扰,周围电磁场干扰,外部干扰一般通过IO口输入等
按干扰的传播路径可分为传导干扰和辐射干扰两类。
所谓传导干扰是指通过导线传播到敏感器件的干扰。高频干扰噪声和有用信号的频带不同,可以通过在导线上增加滤波器的方法切断高频干扰噪声的传播,有时也可加隔离光耦来解决。电源噪声的危害最大,要特别注意处理。所谓辐射干扰是指通过空间辐射传播到敏感器件的干
扰。一般的解决方法是增加干扰源与敏感器件的距离,用地线把它们隔离和在敏感器件上加蔽罩。
影响单片机系统可靠安全运行的主要因素主要来自系统内部和外部的各种电气干扰,并受系统结构设计、元器件选择、安装、制造工艺影响。这些都构成单片机系统的干扰因素,常会导致单片机系统运行失常,轻则影响产品质量和产量,重则会导致事故,造成重大经济损失。
形成干扰的基本要素有三个:
(1)干扰源。指产生干扰的元件、设备或信号,用数学语言描述如下:du/dt,di/dt大的地方就是干扰源。如:雷电、继电器、可控硅、电机、高频时钟等都可能成为干扰源。
(2)传播路径。指干扰从干扰源传播到敏感器件的通路或媒介。典型的干扰传播路径是通过导线的传导和空间的辐射。
(3)敏感器件。指容易被干扰的对象。如:A/D、D/A变换器,单片机,数字IC,弱信号放大器等。
1 干扰的分类
1.1 干扰的分类
干扰的分类有好多种,通常可以按照噪声产生的原因、传导方式、波形特性等等进行不同的分类。按产生的原因分:
可分为放电噪声音、高频振荡噪声、浪涌噪声。
按传导方式分:可分为共模噪声和串模噪声。
按波形分:可分为持续正弦波、脉冲电压、脉冲序列等等。
1.2 干扰的耦合方式
干扰源产生的干扰信号是通过一定的耦合通道才对测控系统产生作用的。因此,我们有必要看看干扰源和被干扰对象之间的传递方式。干扰的耦合方式,无非是通过导线、空间、公共线等等,细分下来,主要有以下几种:
(1)直接耦合:
这是最直接的方式,也是系统中存在最普遍的一种方式。比如干扰信号通过电源线侵入系统。对于这种形式,最有效的方法就是加入去耦电路。
(2)公共阻抗耦合:
这也是常见的耦合方式,这种形式常常发生在两个电路电流有共同通路的情况。为了防止这种耦合,通常在电路设计上就要考虑。使干扰源和被干扰对象间没有公共阻抗。
(3)电容耦合:
又称电场耦合或静电耦合。是由于分布电容的存在而产生的耦合。
(4)电磁感应耦合:
又称磁场耦合。是由于分布电磁感应而产生的耦合。
(5)漏电耦合:
这种耦合是纯电阻性的,在绝缘不好时就会发生。
为叙述方便,我们分硬件、软件抗干扰措施来讲:
以MSC-51系列的8031单片机为例,给出了在软硬件设计的不同阶段,对于不同干扰应采取的一些措施。
2单片机系统软件的抗干扰
一般来讲,窜入微机测控系统的干扰,其频谱往往很宽,采用硬件抗干扰措施,只能抑制某个频率段的干扰,仍有一些干扰会进入系统。因此,除了采取硬件抗干扰方法外,还要采取软件抗干扰措施。
(二)软件抗干扰措施
1.多用查询代替中断,把中断源减到最少,中断信号连线不大于0.1米,防止误触发、感应触发
2.A/D转换采用数字滤波,平均法,比较平均法等,防止突发性干扰
3.MCS-51单片机空单元写上00H,最后放跳转指令到ORG 0000H,因干扰程序走飞,可能抓回去
4.多次重复输出,输出信号保持在RAM中,防止干扰信号输出
5.开机自检自诊断,RAM中重要内容要分区存放,经常进行比较检查,机器不能带病工作
6.表格参数放在EPROM中,检验和存于最后单元,防止EPROM内容被修改7.加看门狗,软件走飞可从头开始
8.开关信号延时去抖动
9.IO口正确操作,必须检查口执行命令情况防止外部故障不执行控制命令10.通讯应加奇偶校验或查询表决比较等措施,防止通讯出错
2.1模拟输入信号抗干扰
叠加在系统模拟输入信号上的噪声干扰,会导致较大的测量误差。但由于这些噪声的随机性,可以通过数字滤波技术剔除虚假信号,求去真值。常用方法如下:
(1)算术平均滤波法算术平均滤波法就是连续取N个值进行采样,然后求其平均值。该方法适应于对一般具有随机性干扰的信号进行滤波。这种滤波法的特点是:N值较大时,信号的平滑度好,但灵敏度低;当N值较小时,平滑度低,但灵敏度高。
(2)递推平均滤波法
该方法是把N个测量数据看成一个队列,队列的长度为N,每进行一次新的测量,就把测量结果放入队尾,而扔掉原来队首的一次数据。计算N个数据的平均值。对周期性的干扰,此方法有良好的抑制作用,平滑度高,灵敏度低。但对偶发脉冲的干扰抑制作用差。
(3)防脉冲干扰平均值滤波法
在脉冲干扰比较严重的场合,如果采用一般的平均滤波法,则干扰将会“平均”到结果中去,故平均值法不易消除由于脉冲干扰而引起的误差。为此,在N个采样数据中,取掉最大值和最小值,然后计算N-2个数据的算术平均值。为了加快测量速度,N一般取值为4。
2.2“死机”现象的克服
当干扰通过总线或其他口线作用到CPU时,就会造成程序计数器PC值的改变,引起程序混乱,使系统失控。因此,在设计单片机系统时,如何发现CPU受到干扰,并尽可能无扰地使系统恢复到正常工作状态是软件设计应考虑的主要问题。
无论何种控制系统,一般讲,死机现象都是不允许的。克服死机现象最有效的办法就是采用单片机工加了硬件看门狗电路后仍然有死机现象,分析原因,可能有以下方面:
(1)因为某种原因,程序混乱后,看门狗电路虽然发出了复位脉冲,但在程序刚刚正常还来不及发出一个脉冲信号,此时程序再次被干扰,而这时看门狗电路已处于稳态,不能再发出复位脉冲。
(2)程序进入死循环,在该死循环中,恰好又有看门狗监视I/O口上操作的指令。而该I/O口仍有脉冲信号输出,看门狗检测不到这种异常情况。
(3)在有严重干扰时,中断方式控制字有时会受到破坏,导致中断关闭。
可见,只用硬件看门狗电路是无法确保单片机正常工作的。因此,可采用以下方法作为补充。
(1)软件“看门狗”的应用
选用定时器T0作为看门狗,将T0的中断定义为最高级中断。看门狗启动后,系统必须及时刷新T0的时间常数。
(2)指令冗余技术
①NOP的使用
在8031单片机指令系统中所有指令都不超过3个字节。因此,在程序中连续插入3条NOP指令,有助于降低程序计数器发生错误的概率。
②重要指令冗余
对于程序流向起决定作用的指令(如RET,RETI,ACALL,LJMP,JZ等)和某些对系统工作状态有重要作用的指令(如SETBEA等)的后面,可重复写下这些指令,以确保这些指令的正确执行。
(3)软件陷阱法
单片机系统程序跑飞意味着CPU执行不正确流程程序。而当乱飞程序进入非程序区,采用冗余技术无法使程序纳入正确轨道,此时可采用软件陷阱法,拦截