36艺术教育完成3000万元Pre-A轮融资,星火资本投资
06-18
在提高硬件系统抗干扰能力的同时,软件抗干扰因其设计灵活、节省硬件资源、可靠性好而越来越受到人们的重视。
下面以MCS-51单片机系统为例,研究微机系统软件的抗干扰方法。
1 软件抗干扰方法研究 在工程实践中,软件抗干扰研究的主要内容有: 1、消除模拟输入信号的噪声(如数字滤波技术); 2.当程序运行混乱时,如何让程序回到正轨。
本文针对后者提出了几种有效的软件抗干扰方法。
1.1 指令冗余 CPU 取指令过程是先取操作码,再取操作数。
当PC受到干扰、出现错误时,程序就会偏离正常轨道,“乱飞”。
当某条双字节指令飞来飞去时,如果取指时指令落在操作数上,而操作数被误认为是操作码,程序就会出错。
如果三字节指令“飞”,出错的概率会更大。
在关键地方人为地插入一些单字节指令,或者重写有效的单字节指令,称为指令冗余。
通常在双字节指令和三字节指令之后插入两个以上字节的NOP。
这样,即使飞行程序飞到了操作数,由于无操作指令NOP的存在,也阻止了后续指令作为操作数执行,程序自动走上正轨。
此外,在系统流程中起重要作用的RET、RETI、LCALL、LJMP、JC等指令前插入两个NOP,也可以让随机飞行的程序走上正轨,保证这些重要指令的执行。
1.2拦截技术 所谓拦截是指将飞行程序引导至指定位置,然后对错误进行处理。
软件陷阱通常用于拦截飞行程序。
因此,首先要合理设计疏水阀,其次要将疏水阀布置在合适的位置。
1.2.1 软件陷阱设计 当飞行程序进入非程序区时,多余的指令将不起作用。
通过软件陷阱,拦截飞行程序,引导其到达指定位置,然后处理错误。
软件陷阱是指用于将捕获的飞行程序引导至复位入口地址H的指令。
通常在EPROM的非程序区填充以下指令作为软件陷阱: NOP NOP LJMP H 机器码为00。
1.2.2 陷阱排列 通常在程序中未使用的EPROM空间填00。
最后一项填00。
当随机飞行程序落入该区域时,将自动进入轨道。
陷阱指令也可以填充用户程序区中模块之间的空缺单元。
当所使用的中断因干扰而被打开时,在相应的中断服务程序中设置软件陷阱可以及时捕获错误的中断。
例如,虽然应用系统不使用外部中断1,但外部中断1的中断服务程序可以是以下形式: NOP NOP RETI 返回指令可以是“如果故障诊断程序和系统自恢复程序设计可靠、完整,则使用“LJMP H”作为返回命令直接进入故障诊断程序,尽早处理故障。
考虑到程序内存的容量,一般1K空间内可以有效拦截2-3个软件陷阱。
1.3 软件“看门狗”技术 如果一个out。
控制程序进入“死循环”,通常采用“看门狗”技术来使程序跳出“死循环”,通过不断检测程序循环运行时间,如果发现程序循环时间超过。
最大循环运行时间,则认为系统已陷入“死循环”,需要进行错误处理。
“看门狗”技术可以通过硬件或软件来实现。
在工业应用中,严重的干扰有时会破坏中断模式控制字并关闭中断。
那么系统就无法定时“喂狗”,硬件看门狗电路出现故障。
软件看门狗可以有效解决此类问题。
在实际应用中,笔者采用了环中断监控系统。
用定时器T0监视定时器T1,用定时器T1监视主程序,主程序监视定时器T0。
采用这种环形结构的软件“看门狗”具有良好的抗干扰性能,大大提高了系统的可靠性。
对于需要频繁使用T1定时器进行串行通信的测控系统,定时器T1不能被中断,可以通过串口中断进行监控(如果使用MCS-52系列单片机,也可以用T2代替) T1 用于监控)。
这类软件“看门狗”的监控原理是:在主程序、T0中断服务程序、T1中断服务程序中设置一个运行观察变量。
假设是MWatch、T0Watch、T1Watch。
主程序每循环一次,MWatch 加 1。
同样,T0 和 T1 中断服务程序执行一次,T0Watch 和 T1Watch 都加 1。
在 T0 中断服务程序中,检测 T1Watch 的变化,判断 T1 是否为运行正常。
在T1中断服务程序中,检测MWatch的变化来判断主程序是否正常运行。
主程序中检测T0Watch的变化来判断T0是否正常。
工作。
如果检测到观察到的变量发生异常变化,例如应该加1却没有,那么就会进入错误处理程序进行排查。
当然,应充分合理地考虑主程序的最大循环周期以及定时器T0和T1的计时周期。
由于篇幅限制,不再提供更多细节。
2 系统故障处理及自恢复程序设计 单片机系统因干扰而复位或断电后复位属于异常复位。
应进行故障诊断,并能自动恢复异常复位前的状态。
2.1异常复位的识别 程序的执行总是从H开始。
程序从H开始有四种可能: 1.系统上电复位; 2、软件故障复位; 3、看门如果狗超时,没有喂狗,硬件会复位; 4、任务正在执行,断电后会重新上电。
除第一种情况外,四种情况均属于异常复位,需要进行识别。
2.1.1 硬件复位和软件复位的识别 这里的硬件复位是指上电复位和看门狗复位。
硬件复位对寄存器有影响。
例如复位后,PC=H,SP=07H,PSW=00H 等待。
软件复位对SP和SPW没有影响。
因此,对于微机测控系统,程序正常运行时,应将SP地址设置为大于07H,或者系统正常运行时,将PSW的第5位用户标志位设置为1。
那么当系统复位时,只需检测PSW.5标志或者SP值即可判断是否是硬件复位。
图1是使用PSW.5作为上电标志来识别硬件和软件复位的程序流程图。
图1 硬、软件复位识别流程图 另外,由于硬件复位时片内RAM的状态是随机的,而软件复位片内RAM以维持复位前的状态,因此其中之一片上或两个单元作为上电标志。
假设使用40H作为上电标志,上电标志字为78H。
如果系统复位后40H单元的内容不等于78H,则认为是硬件复位。
否则,认为是软件复位,直接进行错误处理。
如果使用两个单元作为开机标志,则这种识别方法的可靠性更高。
2.1.2 上电复位和看门狗故障复位的识别 上电复位和看门狗故障复位都是硬件复位,所以要正确识别它们,一般需要使用非易失性RAM或EEROM。
系统正常运行时,设置有断电保护的观察单元。
系统正常运行时,在定时喂狗中断服务程序中将观察单元保持为正常值(设置为AAH),并在主进程中将该单元清零。
因为观察单元在断电时可以得到保护,所以在开机时可以通过检测该单元是否为正常值来判断看门狗是否复位。
2.1.3 正常上电复位和异常上电复位的识别 测控系统中系统断电等意外情况引起的上电复位和正常上电复位的识别对于过程控制系统尤其重要。
例如,在以时间为控制标准的测控系统中,完成一次测控任务需要1小时。

当测控进行50分钟后,系统电压异常,导致复位。
此时如果系统复位,从头开始测控,会造成不必要的时间消耗。
因此,可以通过监控单元来监控当前系统的运行状态和系统时间,并将控制过程分解为多个步骤或时间段。
每个步骤完成或每个时间段运行后,将监控单元设置为停机允许值。
不同的任务或者任务的不同阶段有不同的价值。
如果系统正在执行测控任务或正在执行一定时间,监控单元将被设置为异常关闭值。
那么系统复位后,可以根据该单元确定系统原来的运行状态,并可以通过跳转到错误处理程序来恢复系统原来的运行状态。
2.2异常复位后系统自恢复操作的程序设计 一些顺序要求严格的过程控制系统,无论系统是否异常复位,一般都需要从失控的模块或任务中恢复。
因此,测控系统必须对重要的数据单元和参数进行备份,如系统运行状态、系统过程值、当前输入输出值、当前时钟值、观测单元值等,这些数据必须定期备份,如有修改也应立即备份。
当确定系统出现异常复位时,必须先恢复一些必要的系统数据,如显示模块的初始化、片外扩展芯片的初始化等。
测控系统参数恢复,包括显示界面恢复等。
然后恢复复位前的任务、参数、运行时间等,然后进入系统运行状态。
需要注意的是,要真正恢复系统的运行状态,需要对重要系统数据进行极其细致的备份以及数据可靠性检查,以保证恢复数据的可靠性。
其次,对于多任务、多过程的测控系统,数据恢复需要考虑恢复的顺序。
笔者实际应用的数据恢复流程如图2所示。
图2 系统自恢复程序流程图 图中恢复基本系统数据,就是将备份数据取出来,覆盖原来的数据。
当前系统数据。
系统的基本初始化是指芯片、显示、输入输出方式等的初始化,需要注意的是输入输出的初始化不能引起误动作。
任务在复位前的初始化是指任务的执行状态、运行时间等。
3 结论 其他一些常用的软件抗干扰方法,如数字滤波、RAM数据保护和纠错等,限于篇幅,本文不再讨论。
在工程实践中,通常将几种抗干扰方法结合使用,相互补充,以达到更好的抗干扰效果。
从根本上来说,硬件抗干扰是主动的,而软件抗干扰是被动的。
认真周到地分析干扰源,结合软硬件抗干扰,完善系统监控方案,设计出稳定可靠的单片机系统是完全可行的。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-18
06-18
06-21
最新文章
使用电子管有哪些注意事项?如何检查电子管之间是否短路?
博通支付1200万美元和解SEC财务欺诈指控
八名运营商高管确认加入虚拟运营商
内蒙古农牧区雷电灾害成因分析及防雷对策
北京联通将5G应用于世园会远程医疗急救
TD-SCDMA最后一轮冲刺测试启动,产业前景更加光明
专访阿里云总裁王健:云计算服务平台梦想成真
USB2.0控制器CY7C68013的接口设计与实现