单片机开发软件抗干扰技术
电子仪器设备的抗干扰技术是一个广泛而深刻的领域。大多数电子设备的工作环境往往相对较差,干扰严重,这将严重影响设备的正常运行,使其不能正常运行,如空调在高温、大电流、强干扰(电机)环境中工作。因此,为了确保这些设备能够在实际应用中可靠地工作,电子产品制造商必须仔细考虑和解决抗干扰问题。除了考虑硬件上的抗干扰问题外,我们还可以在软件上采取一些抗干扰措施,以提高系统的抗干扰能力。下面简要介绍了几种抗干扰措施,发挥了吸引玉石的作用,希望同事能在工作中应用和改进。
1.数字输入输出中的软件抗干扰
数字量输入过程中的干扰作用时间较短,因此在采集数字信号时可以重复多次采集,直到几次采样结果一致。例如通过A/D当转换器测量各种模拟量时,如果对模拟信号有干扰作用,就会使转换器A/D偏离真实值的转换结果。这个时候如果只采样一次A/D如果转换结果,就不可能知道它是否真实可靠,但必须进行多次采样才能得到一个A/D数据系列转换结果,对这一系列数据进行各种数字滤波处理,Z之后可以得到更高可信度的结果值。如果同一数据点多次采样后获得的信号值变化不确定,则表明此时干扰特别严重,超出允许范围,应立即停止采样并发出报警信号。如果数字信号属于开关量信号,如限位开关、操作按钮等。,那么平均值不能通过多次采样来采样,但每次采样的结果必须jue对一致。此时,可以编制采样子程序。该程序设置了采样成功和采样失败的标志。如果对相同的开关量信号进行多次采样,且采样结果完全一致,则成功标记位置;否则,失败的标志位置。程序的流向可以通过判断这些符号来确定。
许多由单片机开发和控制的电子产品制造商设备的外部输出控制信号以数字量的形式出现。单片机给出正确的数据后,输出装置可能会因外部干扰而获得更改的错误数据,从而导致输出装置的错误动作。对于数字输出软件,抗干扰Z的有效方法是重复输出相同的数据,重复周期应尽可能短。这样,输出装置在获得干扰错误信号后没有时间反应,并且再次出现正确的信号,从而防止误操作。
在程序结构中,输出过程可以安排在监控周期中。如果循环周期尽可能短,可以有效防止输出设备的错误动作。需要注意的是。在这种安排之后,输出功能是作为一个完整的模块执行的,这与这种重复的输出措施相对应。在软件设计中,还必须为每个外部输出设备建立一个输出临时存储单元,每次将输出结果存储在临时存储单元中,然后调用输出功能模块逐个输出每个临时存储单元的数据,无论数据是新发送的还是以前存在的。通过这种方式,每个外部设备都可以不断地获取控制数据,从而使干扰造成的错误状态无法维持。在执行输出功能模块时,还应重置输出接口芯片的初始状态。因为干扰的作用可能会改变这些芯片的工作模式来控制单词,而不能实现正确的输出功能,从而确保输出功能的正确实现。
二、程序执行过程中的软件抗干扰
以上是针对输入和输出通道的,干扰信号尚未作用于CPU本身,CPU各种抗干扰程序也可以正确执行。如果通过某种方式作用了干扰信号CPU上,则CPU你不能按照正常状态执行程序,从而造成混乱常被称为程序“跑飞”。程序“跑飞”一个简单的方法就是让它恢复正常CPU复位,让程序从头开始重新运行。手动复位电路设置在许多由单片机控制的设备中。手动复位通常是在整个系统完全瘫痪且无法完成的情况下进行的。因此,在进行软件设计时,我们应该考虑程序“跑飞”应使其能自动恢复正常运行。
程序“跑飞”之后,一些操作数通常作为指令代码执行,导致整个程序混乱。“指令冗余”是使“跑飞”一种恢复程序正常的措施。“指令冗余”在一些关键位置人工插入一些单字节空操作指令NOP。当程序“跑飞”当涉及到单字节指令时,不会出现将操作数作为指令执行的错误。MCS对于51单片机,所有指令不超过3个字节,因此在指令前插入两个字节NOP对于指令,指令不会被前面失控的程序分解,而是会完全执行,从而使程序重新进入正常轨道。通常在一些对程序流动起关键作用的指令前面插入两个指令NOP指令。应该注意的是,在一个程序中“指令冗余”不能用太多,否则会降低程序的执行效率。
采用“指令冗余”使“跑飞”有条件复正常是有条件的,首先,“跑飞”程序必须落在程序区域,然后必须执行设置的冗余指令。“跑飞”非程序区域(如EPROM未使用的空间或某些数据表等。),或者在执行冗余指令之前形成一个死循环,然后,“指令冗余”不能采取措施“跑飞”这个程序已经恢复正常了。此时可采用另一种软件抗干扰措施,即肠胃“软件陷阱”。“软件陷阱”这是一个引导指令,强行将被捕获的程序引导到一个指定的地址,在那里有一个程序来处理错误。