可能来自软件,这可能会造成混乱。在本文中,我们将探讨单片机如何在电路保护中发挥作用。
在设计用于单片机的电路保护电路时,必须首先考虑基础知识。这在某种程度上预示着,连接到导体且暴露于外界的任何数字引脚(例如连接器)均需使用齐纳二极管和限流电阻器进行适当保护。如果模拟输入也连接到外部导体,则还一定要有齐纳二极管和限流措施。
由于其CMOS特性,单片机设计也对嘈杂的电源轨敏感(嘈杂的电源线会导致逻辑门无法正确操作)。因此,使用正确类型的去耦电容器很重要。大容量电容器(例如极化电容器)可用于处理外围设备和大功率设备的突然功率需求。另一方面,小型无极性电容器可用于减少电源轨上的开关噪声。
通常需要在单片机的每对电源引脚上放置等效串联电阻(ESR)值低的小型无极性电容器。例如,PIC18F45K22具有两对输入电源(VDD和VSS),每对输入电源应直接连接一个低值陶瓷电容(例如10nF)。
到目前为止,上述保护方法通常是被动的,只能应对电涌。别的形式的电路保护又如何呢?
尽管电压和电流浪涌会损坏单片机,但不可靠的电源和电源中断无疑会造成更大的损坏(只是物理意义上而言)。通常,在降低的电压下工作时,电路很少受到损坏,但是涉及数字逻辑的电路的行为可能会出乎意料。
从局外人的角度来看,以单片机为基础的电路在降低的电压下运行仍旧能驱动显示器并运行固件(因此似乎能够顺利工作),但是来自外部源(例如I2C设备)的数据可能会变得不可靠,因为它们会不能在正确的电压水平下运行。这会导致错误的可靠性感。如果电路在控制安全设备,则只有一半电路在工作,否则有导致非常严重伤害的危险。
虽然通常能够最终靠使用外部分立元件(例如保险丝和二极管)来减轻过电压和电流,但降低功率(称为掉电)的难度却更大。
一种方法是设计专用电路,该电路能在小电压电平下运行并主动监视电源轨。这种方法的问题就在于,它可能会增加设计价格和最终PCB的复杂性。但是,通常有很多资源可能会减轻设计师的成本。那就是单片机本身。基于单片机的设计通常具有备用的外设,引脚,存储器和处理时间。这在某种程度上预示着设计人员无需在设计中包含别的组件就可以执行有源电路健康情况监视。一些单片机包含掉电外设,这可能会引起复位并设置标志以向固件指示已检测到掉电。
下面为基于单片机的电路保护的基本布局,仅需要两个硬件即可。备用模拟输入和内部带隙基准。当带隙基准电压源提供基准电压时,需要用模拟输入来测量外部VDD电压。由于ADC通常是如何工作的,因此不能低估带隙基准的重要性。ADC将产生一个二进制输出,其值与ADC和ADC的两个参考电压成正比。如果ADC参考为电源轨,则VDD电源轨的ADC读数将始终为最大值。带隙基准的使用为ADC提供了一个电压基准,该基准与电源电压无关,因此允许单片机测量电源电压。
另外,我们大家可以使用掉电检测电路,但这只在电源足以运行单片机而非外部硬件的情况下有用。遗憾的是,该方法无法保护单片机以免掉电。在掉电情况下,需要专用的掉电检测电路或具有自己的掉电检测系统的单片机。对于许多设计人员而言,在产品成本,组件数量和PCB面积方面,使用额外的外部电路通常过于昂贵。因此,最好使用带有内置掉电检测外设的单片机。
现在,单片机都带有掉电检测,一旦检测到掉电,就会复位MCU,并设置一个特殊的CPU标志来通知用户发生了掉电复位。由于MCU执行复位操作,因此必须首先执行特殊的处理程序,该处理程序检查CPU标志(包括掉电标志)。如果设置了该标志,则能采用特定的措施,例如关闭外围设备并显示警告灯。