0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

你可能不知道单片机软件抗干扰技术有多么优秀!

jf_35136247 2023-05-13 18:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

电子仪器设备的抗干扰技术是一门博大精深的领域。大部分的电子设备所在的工作环境往往比较恶劣,干扰严重,这些干扰会严重影响设备的正常工作,使其不能正常运行,比如空调就工作在高温、大电流、强干扰(电机)的环境下。

因此,为了保证这些设备能在实际应用中可靠地工作,必须要周密考虑和解决抗干扰的问题。除了在硬件上考虑抗干扰的问题,我们也可以在软件上做一些抗干扰的措施,来提高系统的抗干扰能力。

下面简单介绍了几个抗干扰的措施,起一个抛砖引玉的作用,希望各位同事可以在工作中加以应用和完善。

一、数字量输入输出中的软件抗于扰

数字量输入过程中的干扰,其作用时间较短,因此在采集数字信号时,可多次重复采集,直到若干次采样结果一致时才认为其有效。例如通过A/D转换器测量各种模拟量时,如果有干扰作用于模拟信号上,就会使A/D转换结果偏离真实值。

这时如果只采样一次A/D转换结果,就无法知道其是否真实可靠,而必须进行多次采样,得到一个A/D转换结果的数据系列,对这一系列数据再作各种数字滤波处理,最后才能得到一个可信度较高的结果值。如果对于同一个数据点经多次采样后得到的信号值变化不定,说明此时的干扰特别严重,已经超出允许的范围,应该立即停止采样并给出报警信号。

如果数字信号属于开关量信号,如限位开关、操作按扭等,则不能用多次采样取平均值的方法,而必须每次采样结果绝对一致才行。这时可编写一个采样子程序,程序中设置有采样成功和采样失败标志,如果对同一开关量信号进行若干次采样,其采样结果完全一致,则成功标志置位;否则失败标志置位。后续程序可通过判别这些标志来决定程序的流向。

单片机控制的设备对外输出的控制信号很多是以数字量的形式出现的。单片机给出一个正确的数据后,由于外部干扰的作用有可能使输出装置得到一个被改变了的错误数据,从而使输出装置发生误动作。对于数字量输出软件抗干扰最有效的方法是重复输出同一个数据,重复周期应尽量短。这样输出装置在得到一个被干扰的错误信号后,还来不及反应,一个正确的信号又来到了,从而可以防止误动作的产生。

在程序结构上,可将输出过程安排在监控循环中。循环周期取得尽可能短,就能有效地防止输出设备的错误动作。需要注意的是。经过这种安排后输出功能是作为一个完整的模块来执行的,与这种重复输出措施相对应。

软件设计中还必须为各个外部输出设备建立一个输出暂存单元,每次将应输出的结果存入暂存单元中,然后再调用输出功能模块将各暂存单元的数据一一输出,不管该数据是刚送来的,还是以前就有的。

这样可以让每个外部设备不断得到控制数据,从而使干扰造成的错误状态不能得以维持。在执行输出功能模块时,应将有关输出接口芯片的初始状态也一并重新设置。

因为由于干扰的作用可能使这些芯片的工作方式控制字发生变化,而不能实现正确的输出功能,重新设置控制字就能避免这种错误.确保输出功能的正确实现。

二、程序执行过程中的软件抗于扰

前面述及的是针对输入输出通道而言的,干扰信号还未作用到CPU本身,CPU还能正确地执行各种抗干扰程序。如果干扰信号已经通过某种途径作用到了CPU上,则CPU就不能按正常状态执行程序,从而引起混乱,这就是通常所说的程序“跑飞”。

程序“跑飞”后使其恢复正常的一个最简单的方法是使CPU复位,让程序从头开始重新运行。很多单片机控制的设备中都有设置人工复位电路。人工复位一般是在整个系统已经完全瘫痪,无计可施的情况下才不得已而为之的。因此在进行软件设计时就要考虑到万一程序“跑飞”,应让其能够自动恢复到正常状态下运行。

程序“跑飞”后往往将一些操作数当作指令码来执行,从而引起整个程序的混乱。采用“指令冗余”是使“跑飞”的程序恢复正常的一种措施。

所谓“指令冗余”,就是在一些关键的地方人为地插入一些单字节的空操作指令NOP。当程序“跑飞”到某条单字节指令上时,就不会发生将操作数当成指令来执行的错误。对于MCS51单片机来说,所有的指令都不会超过3个字节,因此在某条指令前面插入两条NOP指令,则该条指令就不会被前面冲下来的失控程序拆散,而会得到完整的执行,从而使程序重新纳入正常轨道。通常是在一些对程序的流向起关键作用的指令前面插入两条NOP指令。应该注意的是在一个程序中“指令冗余”不能使用过多,否则会降低程序的执行效率。

采用“指令冗余”使“跑飞”的程序恢复正常是有条件的,首先“跑飞”的程序必须落到程序区,其次必须执行到所设置的冗余指令。如果“跑飞”的程序落到非程序区(如 EPROM中未用完的空间或某些数据表格等),或在执行到冗余指令之前已经形成了一个死循环,则“指令冗余”措施就不能使“跑飞”的程序恢复正常了。这时可以采用另一种软件抗干扰措施,即肠胃“软件陷阱”。

“软件陷阱”是一条引导指令,强行将捕获的程序引向一个指定的地址,在那里有一段专门处理错误的程序。假设这段处理错误的程序入口地址为ERR,则下面三条指令即组成一个“软件陷阱”:

NOP

NOP

JR ERR

如果“跑飞”的程序落到一个临时构成的死循环中时,冗余指令和软件陷阱都将无能为力。这时可以采用人工复位的方法使系统恢复正常,实际上可以设计一种模仿人工监测的“程序运行监视器”,俗称“看门狗”(WATCHDOG)。

WATCHDOG有如下特征:

(1)本身能独立工作,基本上不依赖于 CPU。CPU只在一个固定的时间间隔内与之打一次交道,表明整个系统“目前尚属正常”。

(2)当CPU落入死循环之后,能及时发现并使整个系统复位。

目前有很多单片机在内部已经集成了片内的硬件WATCHDOG电路,使用起来更为方便。也可以用软件程序来形成WATCHDOG。

例如可以采用单片机一个多于不用的定时器来形成10ms的软件WATCHDOG。软件WATCHDOG启动后,系统工作程序必须每隔小于10ms的时间重新设置定时器的计数初值。如果程序“跑飞”后执行不到这条指令,则在10ms之内即会产生一次定时器溢出中断,则定时器中断程序就可以处理系统“意外”的情况。

采用软件WATCHDOG有一个弱点,就是如果“跑飞”的程序使某些操作数变形成为了修改定时器功能的指令,则执行这种指令后软件WATCHDOG就会失效。因此软件WATCHDOG的可靠性不如硬件高。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45340

    浏览量

    663626
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    怎么学好单片机

    程之后,怎么嵌入单片机? 初学者学了编程语言的之后,又或者搞纯软件想转单片机的人,都会有个共同的特点就是,下一步不知道如何入手? 那么我就会问,
    发表于 12-04 07:16

    如何巧妙甚至避免单片机干扰问题

    在电子设计中,干扰的存在一直是工程师最头痛的,干扰会导致电路发生异常,重则导致产品无法正常使用,因此,必须要巧妙甚至避免干扰问题,是许多工程师的重中之重,今天本文将谈谈单片机如何避免。
    发表于 11-26 06:48

    单片机应用系统的可靠性设计介绍

    是紧密相关的。要使整个系统具有较高的可靠性,除了在尽可能提高硬件可靠性的前提下,软件的可靠性设计也是必不可少的,必须从设计、测试及长期使用等方面来解决软件可靠性。单片机系统的
    发表于 11-25 06:21

    提高单片机抗干扰能力的十个细节

    信号可作为设备的响应回答和指令信号(如行程开关、启动按钮等)。 数字信号接口部分是外界干扰进入单片机系统的主要通道之一。 在工程设计中,对数字信号的输入/输出过程采取的抗干扰措施
    发表于 11-25 06:12

    单片机的误区

    1.去背寄存器 寄存器不用死记硬背,,当我们去使用单片机外设的时候就要去配置,千万别去记寄存器,华维单片机编程的导师做开发这么多年了,一个寄存器都记不住。 何况,单片机的寄存器非常多,
    发表于 11-14 07:46

    什么单片机比较耐用

            在工业控制、户外设备、医疗仪器等场景中,单片机的耐用性直接决定了设备的稳定运行与维护成本。耐用的单片机通常具备宽温工作范围、强抗干扰能力、稳定的电源适应性和长寿命的硬件设计。深圳市安
    的头像 发表于 07-31 13:48 556次阅读

    单片机定制开发的设计思路

    。开发团队需与客户充分沟通,明确设备的应用场景、功能目标、性能指标以及成本预算等。例如,在工业控制设备中,单片机可能需要具备较强的抗干扰能力和实时数据处理功能;而在消费电子领域,低功耗和小型化往往是重点考量因素
    的头像 发表于 07-17 11:14 590次阅读
    <b class='flag-5'>单片机</b>定制开发的设计思路

    聚徽深度解析国内工控平板电脑的工业级抗干扰技术如何实现?

    在工业自动化与智能制造领域,工控平板电脑作为核心人机交互终端,其抗干扰能力直接决定了生产系统的稳定性与可靠性。国内厂商通过技术创新与场景适配,构建了从硬件设计到软件优化的全链路抗干扰
    的头像 发表于 07-11 18:11 592次阅读

    单片机C语言入门指导(非常通俗易懂!)

    这一切都没什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。 现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单
    发表于 06-16 16:32

    干货|抗干扰天线的性能怎么测试?

    前几个章节我们介绍了卫星导航抗干扰天线的选型、抗干扰天线能不能同时做RTK差分的内容。抗干扰天线选型指南,如何选择满足自己需求的抗干扰天线为
    的头像 发表于 05-14 11:23 1898次阅读
    干货|<b class='flag-5'>抗干扰</b>天线的性能怎么测试?

    球压试验装置:可能不知道的电气安全卫士

    球压试验装置,简单来说,是一种用于评估材料在高温和压力共同作用下抗形变能力的专业设备 。其核心测试原理基于一个看似简单却极为精妙的设计:将一个规定直径(通常为 5mm)的钢球,在特定压力(一般为 20N±0.2N )下,压在被测试材料表面,并将整个装置置于设定高温的烘箱中保持一段时间(常见为 60 分钟) 。测试结束后,通过测量材料表面留下的压痕直径,来判断
    的头像 发表于 04-24 13:33 857次阅读
    球压试验装置:<b class='flag-5'>你</b><b class='flag-5'>可能不知道</b>的电气安全卫士

    晶振受到电磁干扰单片机的影响

    单片机可以正常运行的一个因素就是晶振的稳定性。在工作过程中,晶振可能会受到电磁干扰的影响,导致单片机发生故障,甚至出现死机的情况。
    的头像 发表于 03-20 18:01 996次阅读

    单片机程序调试黑宝书,写得不错很实用!【推荐下载】

    不对”。如果提过类似问题,或者不知道程序该怎么 Debug,就请读本文了。 如果刚开始学习单片机可能觉得本文不着边际,那么请先死记这些
    发表于 03-04 13:31

    红外感应单片机在智能卫浴的抗干扰性分析

    一、自身优势带来的抗干扰潜力 自带恒流驱动电路 :XD08M3232单片机自带恒流驱动电路,这一特性可能有助于增强其在智能卫浴环境中的抗干扰性。因为恒流驱动电路可以使相关感应部件的工作
    发表于 12-14 15:41

    接近感应单片机在烟雾报警器抗干扰性的总结

    一、电源干扰方面 功耗稳定 XD08M3232单片机在8MHz@3.3V运行时功耗典型值为5mA,稳定的功耗使其在烟雾报警器电源波动(如电池电量变化或外部充电设备不稳定)时,自身运行状态受影响
    发表于 12-10 19:14