DSP软件方面的电磁干扰主要表现在以下几个方面:(1)不正确的算法产生错误的结果,最主要的原因是由于计算机处理器中的程序指数运算是近似计算,产生的结果有时有较大的误差,容易产生误动作;(2)由于计算机的精度不高,而加减法运算时要对阶,大数“吃掉”了小数,产生了误差积累,导致下溢的出现,也是噪声的来源之一;(3)由于硬件方面的干扰引起的计算机出现的诸如:程序计数器PC值变化、数据采集误差增大、控制状态失灵、RAM数据受干扰发生变化以及系统出现“死锁”等现象。
1. 采用拦截失控程序的方法
(1)在程序设计时应多采用单字节指令,并在关键处插入一些空操作指令,或将有效单字节指令重复几次,这样可保护其后的指令不被拆散,使程序运行走上正轨;(2)加入软件陷阱:当PC值失控使程序失控后,CPU进入非程序区,这时可用一条引导指令,强迫程序进入初始入口状态,进入程序区,可每隔一段设置一个陷阱;(3)软件复位:当程序“走飞”时,运行监视系统,使系统自动复位而重新初始化。
2. 设立标志判断
定义某单元为标志,在模块主程序中把该单元的值设为某个特征值,然后在主程序的最后判断该单元的值是否不变,若不同了则说明有误,程序就转入错误处理子程序。
3. 增加数据安全备份
重要的数据用两个以上的存储区存放,还可以用大容量的外部RAM,将数据作备份。永久性数据制成表格固化在EPROM中,这样既能防止数据和表格遭破坏,又能保证程序逻辑混乱时不将数据当指令去运行。 |