术。噪声失敏率NTOUT是在实际系统中,采取噪声控制后,系统或电路对噪声失敏的时间概率,
NTOUT可由下式估算:
TLOP为系统运行总时间,通常为系统开机时间;TOP为MCU中CPU的运行时间或电路系统的工作状态时间;
TLOP-TOP为单片机CPU停止运行或外围电路被关断的时间。
(2)噪声失敏控制的软件技术
①按噪声失敏设计最有效的程序结构。尽量减少应用程序中的循环等待;尽量集中安排任务和任务中的有效运行时间;及时关断不在有效运行的电路单元。
②MCU的休眠与掉电。通常,与CPU停止运行的低功耗方式主要有关断CPU时钟的休闲ID方式和关断系统时钟的掉电PD方式。
③外围电路关断。外围电路可通过电源供电的关断控制。具有关断功能的外围电路,可采取引脚控制关断或编程控制的办法,使之进入失敏状态。
3.2 程序失控的回复技术
(1)程序失控后的快速冻结与回复
①WDT(Watch Dog Timer)的失控回复。如图2所示。在程序失控后,程序跳逸出正常路径,无法对WDT清零,致使WDT溢出。溢出端输出信号使MCU复位。
②指令的失控恢复。如89C51中采用LJMP0000H的软件陷阱时,将输入陷阱的失控程序强行跳转到复位入口0000H处。
(2)失控回复后的处理
①回复状态检测。回复是指程序失控后又转回到正常路径的起点,即复位入口地址。程序失控回复后要进行回复状态检测,以判断是上电复位还是WDT复位或指令拉回。通常采用的检测方法是利用上电标志。有些单片机内没有上电标志,可利用上电复位时SRAM的随机态与信号复位或程序拉回时,SRAM中数据不变的特点来判别。系统上电后,在SRAM区写入特殊上电标志数据。待回复后先检查上电标志是否存在,若存在即为WDT复位或指令拉回。
②回复后的初始化处理。图3是上电复位与程序失控回复初始化处理框图。0000H是MCU的复位入口,程序启动后,首先判断是上电复位(冷启动),还是程序失控回复(热启动)。上电复位是开机操作,要建立上电标志,并进行系统的完全初始化。程序失控回复应进行相关资源的检查与修复,以防止运行出错。另外根据系统的特点,需要保留一些过程数据。
不得进行完全初始化时,只进行部分初始化。
3.3 安保、自检与修复技术
在高可靠性等级的单片机应用系统中,软件设计中应有安保、自检与自修复软件。
(1)安保程序设计。安保设计要求有非正常响应时,对象的完全性保障和系统的可持续运行。为了能在系统出现非正常响应时,立即获得安全保护,应设置关键部位的失控检测,如I/O口输出状态实时检测;机器人轨迹检测等。检测到非正常响应后,应快速进入安保状态设置,首先使系统进入安全态,然后保护系统的关键资源不受侵害,以保证系统具有后续运行的操作的能力。
(2)实际系统中的自检。在实际的单片机应用软件中,应充分利用其智能化特点,设置各种自检程序以提高其可靠性与安全性。通常,应用系统中的自检程序有自诊断,失控后的回复检查和程序关键处的查验。程序自诊断通常是开机后对系统的例行检查;失控回复后的检查重点是数据区,I/O状态,SFR状态,外围电路的状态等。程序关键处的查验有界限检查、冗余性检查与逻辑性检查。
3.4 系统的结构冗余
由于系统结构的简化,电路的集成趋势,器件成本的下降,逻辑控制能力的提高,在关键部位可采取冗余的备份结构来提高系统的可靠性。图4为实际应用中某监控系统的具有独立仲裁器的双机冗余系统。仲裁器的输入逻辑接收两个系统的输出数据与故障信息;输出逻辑接收比较器A、B的比较结果和故障处理信号发生器的切换信号。仲裁器的故障判断原理如下:对两个同步工作系统输出的数据进行比较,比较结果一致表明两个系统均无故障;比较结果不同表明,必有一个系统出现故障,然后强令两个系统进入自检程序,用预先设定的参数进行测试,并与预定结果比较,相符者为正常开机,不符者为故障机。若为暂时性故障,重新复位即可排除,若为永久性故障则输出故障信号并进入单机运行。
4 结束语
可靠性是一个综合性、经验性较强的问题,是单片机控制器能否成功应用的关键问题。上述提高单片机应用系统可靠性的软件技术与方法应用于多项应用工程,使多项工程在高可靠性硬件基础上,保障了最少的软件错误以及在软件出错后仍保证系统正常运行或安全运行。
参考文献:
[1]杨华舒,复涛.单片计算机系统抗干扰的软件途径[J].电子技术应用,2001,(3).
[2]何立民.单片机高级教程[M].北京:北京航空航天出版社,2001.
|