以单片机为核心的工控计算机软件
摘 要:分析以单片机为核心的工控计算机软件抗电磁干扰途径和软件执行的结构特点,介绍软件编制中常采取的自监视法、互监视法的软件抗干扰措施,有效保证工控系统抗干扰能力。
关键词:单片机;工控计算机软件;抗干扰
软件抗干扰就是CPU在软件运行过程中对自己进行监视和检测,及时诊断机器运行故障并修复错误,确保程序正确运行的编程方法。
1 工控计算机软件的结构特点及干扰途径
在不同的工控系统中,软件虽然完成的功能不同,但就其结构来说,一般具有如下特点:①实时响应:及时处理控制系统中的随机发生事件。②周期运行:软件在初始化完成后,随之进入主程序循环运行。③中断响应优先级判断:优先响应高优先级中断请求。④中断嵌套:低优先级中断执行过程中,可以优先执行更高级的中断请求。⑤模块化关联:软件由多个任务模块组成,各模块相互关联,相互依存。⑥可操控性:允许操作人员干预系统的运行,调整工作参数。
在工业现场环境的干扰下,工控软件可能受到破坏,导致工业控制系统失控,其表现是:①干扰叠加在模拟量信号上,导致模拟量数据采集误差加大或超出量程。②由于干扰导致主频晶振频率的偏离和不稳定,从而致使定时器/计数器的中断频率变化,引起记数错误、时钟异常。③通讯时序的异常或干扰信号的叠加,都会引起通讯不正常。④程序计数器PC值改变:被干扰后的PC值是随机的,因此引起程序执行混乱;输入/输出接口状态受到干扰,造成控制状态混乱,系统发生“死锁”;RAM数据区受到干扰,导致RAM区数据改变或丢失。
2 软件运行过程中的自监视法
计算机CPU内部都具有看门狗定时器,利用定时中断来监视程序运行状态。看门狗定时器的中断时间大于主程序正常运行一个循环的时间,在主程序循环中执行一次看门狗定时器常数刷新操作。因此,只要程序正常运行,看门狗定时器不会出现定时中断。而当程序运行失常,不能及时刷新看门狗定时器时间常数时,就会导致定时中断。在看门狗定时中断服务程序中将程序系统软复位,从而防止程序跑飞。
1)监测程序计数器PC值
计算机正常运行,其PC值一定在程序区内。在一个经常要产生外部中断的某个中断服务程序中,读取转入该中断时压入堆栈的断点地址。如果该地址在程序区内,则认为PC值正常,否则一定是程序跑飞了。此时,程序跳转到机器的重启动入口或者复位入口,机器重新启动。
2)主循环程序和中断服务程序相互监视
主循环程序和中断服务程序以及中断服务程序之间多设计几个监视对,相互监视,增加程序的抗干扰性能。每个监视对要定义一个RAM单元,通过对其计数/清零的方法表达相互监视信息。
3)程序代码校验
实时控制程序代码通常都采用EPROM固化运行,有时可能因芯片质量问题或者因静电干扰也会出现极个别的单元错误。常用的校验方式,可以采用“累加和校验”或者“BCH校验”。当采用BCH校验时,其分组附加的冗余字节可以集中在程序区之外的某个EPROM区域里。校验方法是在某个短小而且经常发生的中断服务程序内安排一个校验模块,可以设计成每次循环校验一部分程序代码,分若干次校验完成。如果校验发现错误,应当立即向工控网络主站报告或者以自身报警的办法告知操作人员,以便及时处理。
4)RAM数据校验
在实时控制过程中,干扰经常导致冲毁RAM中的数据,由于RAM中保存的是各种原始数据、标志、变量等,如果被破坏,会造成系统出错或无法运行,RAM的大部分内容是为了进行分析、比较而临时存放的,不允许丢失的数据只占极少部分。因此,在软件中,常采取对少数不允许丢失的数据进行“校验”和“设标志”,称为“校验法”和“设标法”。具体做法为:将RAM工作区重要区域的始端和尾端各设置一个标志码“0”或“1”,对RAM中固定不变的数据表格设置校验字。
程序在执行过程中,每隔一定的时间通过事先设计的查错程序来检查其各标志码是否正常。如果不正常,程序可重新复位或利用数据冗余技术通过抗干扰处理程序来进行修正;冗余数据表的一般设计原则是:各数据表应相互远离分散设置,减少冗余数据同时被冲毁的概率;数据表应尽可能远离栈区,减少由于操作错误造成堆栈数据被冲的可能。
3 实时控制系统的互监视法
1)软件冗余
对于条件控制系统,将控制条件的一次采样、处理控制输出,改为循环采样、处理控制输出。
2)在中断子程序中重复设置输出状态寄存器单元
当干扰侵入输出通道造成输出状态破坏时,系统可以及时查询当前输出状态寄存器单元的输出状态信息,及时纠正错误的输出状态。
3)设置自检程序
在系统内的特定部位或某些内存单元设状态标志,在运行中不断循环测试,以保证系统中信息存储、传输、运算的高可靠性。
4 其它常采用的软件抗干扰方法
1)特殊功能寄存器重复设定
为防止干扰改变CPU内部寄存器或者接口芯片的功能寄存器,把可能中断的类型、中断的优先级别、串行口、并行口的设定修改,可以采取在主程序的循环中,重复设定不影响其当前连续工作的特殊功能寄存器值,避免偶然不测发生。
2)重要数据备份法
对一些关键数据,至少有两个以上的备份副本,当操作这些数据时,可以把主、副本进行比较,如其改变,就要分析原因,采取预先设计好的方法处理。还可以把重要数据采用校验和或者分组BCH校验的方法进行校验。这两种方法一并使用则更可靠。
3)数字滤波法
实时数据采集系统,为了消除传感器通道中的干扰信号,在硬件措施上常采取有源或无源RLC网络,构成模拟滤波器对信号实现频率滤波。软件常用的数值、逻辑运算处理方法有算术平均值法、比较取舍法、中值法、一阶递推数字滤波法等,实现频率滤波。
5 结语
基于硬件抗干扰设计的完善、软件抗干扰编制的尽可能细致,努力赋予软件高度的智能,把硬件和软件有机地结合起来,工业控制系统才能经得起长期现场考验。
参考文献:
[1]吴兴纯,赵金燕,杨秀莲,等.单片机运用系统的软件抗干扰技术研究与分析[J].电子设计工程,2011,(16).
[2]孙金风,韩庆,邬述晖.单片机系统软件抗干扰技术研究[J].自动化技术与应用,2009,(07).