1.硬件的可靠性设计
单片机应用系统可靠性设计中,先应考虑硬件设计的可靠性。
(1)应考虑元件的失效问题,如元件本身的缺陷和工艺问题。
(2)要特别注意元器件的正确选择、使用和替换。①对于电阻和电容,要考虑其标称值和误差、额定功率、频率特性及耐压值等;②对于CMOS集成电路,应注意输入电压不能超过其电源电压,也不能低于0V,未用的输入端必须与电源或地端相接,而输出端则不许短路,在焊接时如用交流电烙铁则应先切断电源,利用余热进行焊接;③对于TTL集成电路,其电源不能超过5+0.25V,未用的门电路的输入端应并接到该片要使用的输入端上,输出端则接高电平,并注意加上适当的去耦电容等。
(3)应考虑环境条件对硬件参数的影响,如温度、湿度、电源及各种干扰等。因此,元器件的选择应遵循降额使用的原则,留出一定的余地。在结构中要控制工作环境的条件,如通风、除湿、除尘等,注意对噪声的抑制,必要的时候可以考虑采用冗余设计。
2.软件的可靠性设计
在单片机应用系统中,软件就是系统的监控程序。软件和硬件是密切相关的,软件错误主要来自设计上的错误。要提高软件的可靠性,必须从设计、测试和长期使用等方面来考虑。因此,在设计中一定要十分认真。
(1)要正确地使用中断。由于监控系统中中断处理是很常用的设计方法,在主程序和中断程序的安排上应考虑时间分配问题,可以采用定时中断或随机事件中断。
(2)要将整个系统软件根据功能划分为若干个相对独立的模块,这样便于多人分工编写和程序的调试。
(3)根据现场技术指标和具体的控制精度要求选取适当的控制策略,有些测控因素关联度较大的对象,应采用多种控制策略。同一控制对象的不同调节参数可以采用不同的控制算法。但是,软件的可靠性设计没有统一的模式,应根据各个具体的硬件系统和测控对象灵活地采用不同的方法。
3.系统的抗干扰设计
(1)干扰源及干扰途径。单片机系统中的干扰有多种类型。干扰的主要来源有:
1)来自空间辐射的干扰。可控硅逆变电源、变频调速器、发射机等特殊设备在工作时会产生很强的干扰,在这种环境中单片机系统难以正常运行。
2)来自电源的干扰。各种开关的通断、火花干扰、大电机启停等现象在工业现场很常见,这些来自交流电源的干扰对单片机系统的正常运行危害极大。
3)来自信号通道的干扰。在实际的应用系统中,测控信号的输入/输出是必不可少的。在工业现场中,这些I/O信号线、控制线有时长达几百米,不可避免地会把干扰引入到系统中。如果受控对象是强干扰源,如可控硅、电焊机等,则单片机系统根本就无法运行。
(2)硬件抗干扰措施。根据干扰的产生及传输特点,在硬件上可以采取措施有:
1)硬件屏蔽。将系统安装在对电磁辐射干扰具有屏蔽作用的金属机箱中,并进行正确接地,可以有效地抑制强电设备产生的空间辐射干扰。
2)光电隔离。对于开关量信号用光电耦合器隔离以后再进行输入/输出,对于模拟量信号可选用光电隔离器或变压器隔离后再进行输入/输出,并使用双绞线或屏蔽线进行信号传输,这样就可以有效地克服信号传输通道带来的干扰。(www.xing528.com)
3)电源滤波。对于来自电源的干扰,可采用低通滤波器以及带有屏蔽层的电源变压器来进行抑制。
4)电源去耦。对于系统中每一片集成电路,在电源和地之间都加上去耦电容,既是本芯片的蓄能电容,还能抑制高频噪声。
5)在满足要求的前提下尽量用较低的时钟频率和低频的器件。
6)合理布置元件在线路板上的位置,把模拟电路、高速数字电路和产生噪声的功率驱动部分合理地分开,各部件之间的引线尽量短,对各种输入/输出线分类整理,以减少寄生电容的干扰。
7)系统中芯片的未用端不要悬空,应根据实际情况接到电源端、地端或已用端。
8)尽量不用IC插座,而将集成电路直接焊接在电路板上。
(3)软件抗干扰措施。
1)在程序中插入空操作指令实现指令冗余。系统在工作时容易因干扰而使PC指向程序存储器的非代码区,从而导致“死机”。为此可以在程序中插入一些单字节的空操作指令NOP,失控的程序遇到该指令后得到调整而转入正常。
2)对未用的中断向量进行处理。在程序中对未用的中断都编写出相应的错误处理程序,若因干扰触发了这些中断,则执行完简单的出错处理程序后可以正常返回。
3)采用超时判断克服程序的死锁。在系统的数据采集部分,如A/D转换结果采用查询方式读取,若因干扰使A/D转换结束标志无效,程序就会进入死循环。针对类似情况,可在程序中采用超时判断,若系统在一定的时间内采不到有效的标志,就自动放弃本次采样,从而避免程序死锁的发生。
4)采用软件陷阱。当程序因干扰而“跑飞”时,可在非程序区设置陷阱,强迫PC进入一个指定的地址,执行一段专门对死机进行处理的程序,使系统恢复正常。软件陷阱可安排在未使用的中断区和未使用的大片ROM空间,可由以下3条指令构成:
NOP
NOP
LJMP ERR
5)采用看门狗。当程序“跑飞”而前述方法又没有捕捉到时,可以用看门狗来恢复系统的正常运行。具体设计时可以用软件实现,也可以用专用的看门狗芯片(如MAX693、X25045等)来实现。软件方法是用单片机中未用的定时器进行定时,在主程序每一次循环的特定时刻刷新定时器的时间常数,若定时器因系统死机而得不到刷新,就会产生溢出而引起中断,在其中断服务程序中进行出错处理后转入正常运行。看门狗芯片也相当于定时器,系统在每一次循环中用一根口线使芯片复位,若芯片因系统异常而得不到复位,其接到MCU复位端的溢出信号就能使系统恢复正常运行。
6)采用数字滤波。为了提高数据采集的可靠性,减小虚假信息的影响,可以采用数字滤波的方法,如程序判断滤波、中值滤波、滑动平均值滤波、防脉冲干扰平均值滤波、一阶滞后滤波等。也可以对数据进行非线性补偿和误差修正,提高数据精度。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。