嵌入式系统断电保护:超级电容UPS方案设计与实测

发布时间:2026/6/5 18:38:29

嵌入式系统断电保护:超级电容UPS方案设计与实测 1. 项目概述与核心需求解析在嵌入式系统和物联网设备的设计中一个经常被忽视但又至关重要的环节是“优雅地应对断电”。想象一下你正在运行一个工业数据采集节点或者一个智能家居网关突然市电中断。如果系统直接“宕机”不仅可能导致当前正在处理的关键数据丢失更糟糕的是可能破坏文件系统或EEPROM中的配置信息导致设备“变砖”需要人工干预才能恢复。这绝不是危言耸听而是许多现场工程师都踩过的坑。因此为微控制器设计一个“断电保护”或“掉电保持”电路其核心目标并非让设备在无市电情况下长时间工作而是提供一个短暂的“时间窗口”。在这个窗口内例如10秒系统能够感知到主电源失效并立即执行一系列预设的“临终操作”停止当前任务、将运行状态和关键数据保存到非易失性存储器、向网络发送最后的“心跳”或告警信息最后安全地进入休眠或关机状态。当电源恢复时系统可以从保存的状态中恢复或者至少知道上次是“安全退出”的从而避免数据损坏。要实现这个目标传统上我们会想到UPS不间断电源或备用电池。但对于一个成本敏感、空间受限的嵌入式设备来说一个完整的UPS模块显得过于庞大和昂贵而使用可充电电池如锂离子电池则引入了充电管理、寿命、温度范围以及潜在的运输和环保法规问题。这时超级电容就成为了一个极具吸引力的选择。它本质上是一个容量巨大的电容器具有充电快、循环寿命长可达百万次、工作温度范围宽、无需复杂管理电路等优点。虽然其能量密度远低于电池但对于“维持10秒”这种短时、小功率的备份需求来说它恰恰是“对症下药”。我最近完成的一个项目正是基于这个思路设计并验证了一个为5V/3.3V微控制器系统提供10秒断电保护的超级电容UPS方案。整个方案的核心思路是利用一个简单的二极管-电阻充电电路将超级电容作为储能单元在主电源正常时为其充电当主电源掉电时超级电容通过另一条二极管路径向负载放电维持系统电压。下面我将从设计思路、器件选型、理论计算、实测验证到优化空间完整地拆解这个项目。2. 系统架构与设计思路拆解2.1 整体电源链路与监测点选择一个典型的嵌入式设备电源链路可能是这样的220VAC → 24VDC开关电源 → 5VDC DC-DC模块 → 3.3V LDO或DC-DC → 微控制器及其他芯片。理想的断电检测点当然是交流输入端一旦市电消失系统可以立即获知并开始执行保护流程。但在很多实际产品中出于成本、隔离或空间考虑我们无法或不方便在高压交流侧做检测。因此一个更务实的方案是在直流侧进行监测。在本项目中我们选择在24VDC总线进行掉电检测。为什么不选5V或3.3V呢原因在于从24V到5V的DC-DC转换模块内部通常有较大的储能电容在主电源断开后这些电容会维持24V总线电压一段时间几十到几百毫秒。如果我们等到5V或3.3V电压开始跌落才检测掉电留给系统执行保护操作的时间就所剩无几了。在24V总线监测可以为我们争取到更早的预警时间。然而储能元件超级电容放置在哪里又是一个关键决策。理论上可以放在24V、5V或3.3V任何一级。我们需要权衡放在24V级优点是可以利用DC-DC模块的转换效率放电电流较小对超级电容的容量要求相对较低。但需要高压24V的超级电容这类电容体积大、成本高、可选型号少。放在3.3V级最接近负载效率最高。但3.3V的超级电容放电截止电压可能低至2.5V或更低需要确保后级所有器件包括MCU、存储器、传感器等都能在这个低压下正常工作这增加了系统设计的复杂性。放在5V级这是一个折中的选择。5V是系统中一个常见的中间电压为3.3V LDO供电。选择5V超级电容其工作电压范围例如从4.7V放到3.0V经过LDO后仍能为3.3V系统提供一个相对稳定的输入范围。同时5V-6V规格的超级电容是市场上的主流产品选择多、成本适中、体积可控。经过综合评估我们最终决定将超级电容备份系统放置在5V电源轨上。系统架构简图如下[220VAC] - [24VDC电源] - [掉电检测电路] - [5V DC-DC模块] ---- [超级电容充电电路] - [超级电容组] | -- [5V转3.3V LDO] - [MCU及外设] | [超级电容] - [放电二极管] ----------------------------------------当24V输入正常时5V DC-DC模块工作一方面通过LDO为3.3V系统供电另一方面通过充电电路为超级电容充电。当24V输入掉电被检测到或自然消失导致5V输出开始下降5V DC-DC模块停止工作。此时超级电容储存的电能通过放电二极管继续为5V总线供电从而维持3.3V系统的运行直到电容电压降至设定阈值以下。2.2 超级电容充电电路为何选择最简单的方案给超级电容充电最“正确”的方式是使用专用的超级电容充电管理IC。这类芯片可以提供恒流充电、电压钳位、充电状态指示等功能能快速、安全地将电容充满。市面上如TI、ADI、Maxim等公司都有相关产品。但在本项目中我们却选择了一个极其简单的方案二极管串联限流电阻。原因主要有三点成本与复杂度专用充电IC及其外围电路会增加BOM成本和PCB面积。对于追求极致性价比和紧凑性的消费级或工业级产品每一分钱和每一平方毫米都至关重要。充电时间非关键我们的应用场景是“断电保护”而不是“快速充能循环”。设备绝大多数时间处于上电状态有充足的时间几分钟甚至几十分钟让超级电容慢慢充满。因此对充电速度没有严格要求。降低电容应力延长寿命超级电容的寿命与其工作电压和温度强相关。从AVX等厂商的寿命曲线图可以看出在额定电压下温度每升高10°C寿命大约减半而在相同温度下工作电压每降低0.1V寿命可以显著延长。使用简单的二极管充电方案由于二极管存在正向压降约0.5V-0.7V实际加到超级电容两端的电压会比电源电压低。这相当于人为地降低了电容的工作电压对延长其使用寿命是有益的。当然这个简单方案也有明显缺点充电电流不恒定随电容电压升高而减小、充电效率不高、电容无法被充至电源电压。但权衡利弊在本项目的约束条件下成本敏感、空间小、充电时间充裕其优点更为突出。3. 核心器件选型与参数计算3.1 超级电容选型容量、电压与品牌选型的出发点是系统需求负载特性微控制器系统在备份期间的功耗。假设MCU、必要的外设和存储器在备份模式下工作电流为I_backup 100mA这是一个相对宽松的估计实际需根据具体芯片和数据手册核定。备份时间T_backup 10秒。电压窗口起始电压V_start主电源正常时5V总线电压。考虑到二极管压降超级电容上的电压约为4.7V计算见后。终止电压V_end为保证3.3V LDO还能输出稳定的3.3V其输入电压即5V总线电压不能太低。假设LDO的Dropout电压为0.3V则5V总线最低电压V_out_min 3.3V 0.3V 3.6V。我们再留一些余量设定V_out_min 3.0V这意味着LDO可能已退出稳压区但系统仍能短暂工作。对应到超级电容由于放电二极管压降电容最低电压V_cap_min V_out_min V_diode 3.0V 0.22V ≈ 3.22V。有了这些参数我们可以从两个角度计算所需电容容量1. 恒流负载近似计算这是最直观的计算方法假设在放电过程中负载电流恒定。 公式C I * T / (V_start - V_end)代入C 0.1A * 10s / (4.7V - 3.22V) ≈ 0.1 * 10 / 1.48 ≈ 0.676 F这个计算结果表明理论上约0.68F的电容就够了。2. 恒功率负载近似计算实际上当总线电压下降时开关电源或LDO为了维持输出功率恒定其输入电流会增大。用恒功率模型更接近真实情况。假设系统在3.3V时功耗为0.33W100mA * 3.3V考虑到LDO效率5V总线需要提供的功率略高估算为P_load ≈ 0.4W。 公式C 2 * P * T / (V_start² - V_end²)代入C 2 * 0.4W * 10s / (4.7² - 3.22²) ≈ 8 / (22.09 - 10.37) ≈ 8 / 11.72 ≈ 0.683 F两种计算方法结果非常接近都指向约0.68F。注意理论计算与工程余量上述计算是理想情况。实际中必须考虑诸多因素电容本身的容量偏差通常是-20%到80%、等效串联电阻ESR导致的压降、二极管压降随电流温度的变化、电路板漏电流、以及最关键的——负载电流可能远大于预估的100mA。例如在保存数据到Flash时MCU和Flash的峰值电流可能达到几十甚至上百毫安且Flash写入本身需要时间几十毫秒。因此必须留足余量。工程经验法则将理论计算值乘以一个安全系数通常为2到3倍。这里我们选择2.5倍0.68F * 2.5 ≈ 1.7F。基于此我们初步选择标称值为2.5F的超级电容这为我们提供了充足的余量。品牌方面AVX是超级电容领域的知名供应商其SCM系列产品性能可靠数据手册详尽故选择其SCMS22H255PRBB0型号2.5F 6V。选择6V耐压而非5V是为了提供更高的电压裕度进一步提升可靠性。3.2 二极管与充电电阻选型充电回路二极管D_charge作用防止主电源掉电时超级电容的电能倒灌回5V DC-DC模块。选型要点正向压降Vf要小以减少充电电压损失额定电流要大于最大充电电流。选择选用肖特基二极管如1N5819其Vf典型值约0.5V1A。放电回路二极管D_discharge作用在主电源正常时隔离超级电容防止其影响5V总线的电压精度掉电时导通为负载供电。选型要点正向压降Vf要尽可能小以最大化超级电容的可用电压反向漏电流要小。选择选用低压降的肖特基二极管如SS34其Vf典型值约0.22V1A。实测中这个微小的压降对系统效率提升明显。限流充电电阻R_charge作用限制超级电容的初始充电电流防止对5V电源造成过大冲击。计算最大充电电流发生在电容电压为0时。假设我们希望最大充电电流 I_charge_max 0.5A。 电阻值 R (V_supply - V_diode - V_cap) / I_charge_max。初始时V_cap0V_supply为5VV_diode为0.5V。R ≈ (5.0 - 0.5 - 0) / 0.5 9Ω。 考虑到电阻功耗P I² * R在0.5A时P 0.25 * 9 2.25W需要一个功率较大的电阻。为了降低电阻发热和成本我们可以接受更小的充电电流。例如设定 I_charge_max 0.2A则R ≈ (4.5) / 0.2 22.5Ω功耗P 0.04 * 22.5 0.9W选择一个22Ω/1W的电阻更为合适。充电时间会变长但如之前所述这对我们不是问题。充电时间估算电容充电至电源电压的99%所需时间约为5 * R * C。对于2.5F电容和22Ω电阻T_charge ≈ 5 * 22 * 2.5 275秒 ≈ 4.6分钟。这个时间在可接受范围内。4. 电路设计与实测验证4.1 完整电路原理图与关键点分析基于以上选型我们可以绘制出完整的电路原理图此处用文字描述主供电路径24V输入经DC-DC模块如LM2596-5.0转换为5V。5V输出端接一个1N5819D1作为充电隔离二极管。充电路径D1阳极5V端通过一个22Ω/1W的限流电阻R_charge连接到超级电容C_super 2.5F/6V的正极。电容负极接地。放电路径超级电容正极通过一个SS34D2连接到负载端即5V总线。D2的阴极接负载。负载与监测负载端连接5V转3.3V的LDO为MCU系统供电。在24V输入、5V总线放电二极管后、超级电容正极这三个关键点可以放置测试点或通过ADC进行电压监测。保护与稳定在超级电容两端并联一个5.1V的齐纳二极管Dz作为过压保护防止异常情况下电容电压超过其额定值。在5V总线上对地接一个相对较大的电容如100uF电解电容和一个小电容0.1uF陶瓷电容用于稳定电压、滤除高频噪声。在超级电容两端并联一个高阻值泄放电阻如100kΩ用于在系统完全断电后安全地释放电容中残余的电能方便维修和测试。关键电压关系理论值主电源正常时5V DC-DC输出V_5V 5.0V超级电容电压V_cap V_5V - Vf_D1 - (V_5V - Vf_D1 - V_cap)/R_charge * R_charge稳态时电流为0忽略电阻压降≈5.0V - 0.5V 4.5V。实际上由于漏电流电容电压会无限接近4.5V。负载端电压V_load V_5V 5.0V因为D2反向截止不导通。主电源掉电时5V DC-DC输出迅速降至0V。D1反向截止。超级电容通过D2向负载放电。V_load V_cap - Vf_D2。随着放电进行V_cap下降V_load也随之下降。4.2 实测搭建与数据记录我使用面包板和常用元件搭建了测试电路。为了模拟不同负载使用了可编程电子负载仪。同时用一台双通道示波器分别监测超级电容电压CH1和负载端电压CH2并设置触发条件为负载端电压低于4.5V时开始记录。实测数据与理论对比测试条件理论计算备份时间实测备份时间 (至3.0V)备注空载N/A 300秒仅测量电容自放电电压下降极慢100mA恒流负载14.8秒16.1秒实测优于理论因电容实际容量可能为正偏差0.4W恒功率负载11.8秒13.5秒符合预期满足10秒需求且有裕量峰值负载200mA脉冲N/A电压跌落深度约0.15V测试MCU启动Flash写入时的瞬时压降在可接受范围关键波形观察充电过程上电后超级电容电压从0V开始以指数曲线上。由于有22Ω限流电阻初始充电电流被限制在约0.2A充电曲线平滑无电压过冲。约4分钟后电压达到4.48V之后缓慢趋近4.5V。放电过程断开24V输入瞬间负载端电压CH2有一个非常短暂微秒级的下拉随后被超级电容通过D2迅速抬回下拉幅度约0.05V这是D2从截止到导通的切换时间及线路电感所致对MCU无影响。随后两条电压曲线V_cap和V_load几乎平行下降始终保持约0.22V的差值即D2的正向压降。电压监测点实测证明监测负载端电压V_load是判断系统是否处于备份供电状态的最直接方式。当V_load从稳定的5.0V开始下降时即可触发MCU的中断启动断电保护流程。4.3 实测中的“坑”与解决方案问题上电瞬间MCU误复位现象在首次上电或热插拔24V电源时偶尔会发生MCU复位。排查用示波器观察3.3V电源轨发现上电过程中有一个短暂的电压跌落跌破了MCU的复位阈值。根因超级电容容量很大在上电瞬间相当于短路尽管有22Ω限流电阻但仍会从5V总线抽取一个较大的冲击电流峰值约0.2A导致5V总线电压被瞬间拉低进而影响后级LDO的输出。解决在5V DC-DC模块的输出端增加一个大容量的储能电容如470uF电解电容。这个电容可以为上电瞬间的超级电容充电提供瞬时电流缓冲电压跌落。同时确保MCU的复位电路有适当的延时例如使用RC复位电路或带有复位延时功能的复位IC避开上电初期的电压不稳定期。问题放电末期系统行为异常现象当超级电容电压降至3.3V左右时系统有时会“卡死”而非正常进入休眠。排查检查代码发现断电保护流程中包含了通过SPI向外部Flash写入数据的操作。当电压降低时Flash芯片的工作电压可能已接近其最低要求导致写入失败或超时程序阻塞。解决优化软件流程。将断电保护分为两个阶段第一阶段电压 3.6V执行关键操作如保存核心运行状态到MCU内部EEPROM或FRAM这些存储器通常工作电压范围更宽。第二阶段电压降至3.6V-3.0V仅执行最简操作如发送最后一条状态消息如果通信模块仍能工作然后立即进入深度睡眠或执行软件复位。务必避免在低压下进行复杂的、耗时的外设操作。问题二极管发热现象在持续以150mA负载测试时放电二极管D2SS34的封装有点烫手。计算二极管功耗P Vf * I。Vf约0.22V I0.15AP0.033W对于SMA封装的SS34功耗约0.5W来说远未到极限。根因实际测量Vf在150mA时约为0.3V功耗P0.045W。发热主要来自测试时连续充放电二极管本身散热条件面包板不佳。解决在正式PCB设计中将D2的焊盘面积适当加大并考虑通过过孔连接到背面地铜皮辅助散热。对于更大电流的应用可以考虑使用DFN等散热更好的封装或并联多个二极管。5. 性能评估与优化方向探讨经过实测使用一颗2.5F/6V的AVX超级电容配合简单的二极管-电阻充电电路完全可以实现为100mA级别的微控制器系统提供超过10秒的断电保护。方案成本极低核心元件仅超级电容、两个二极管、一个电阻电路简单可靠达到了设计目标。5.1 方案优缺点总结优点成本极低BOM成本可能不到传统电池或专用UPS方案的十分之一。电路简单无需编程无需复杂的管理IC可靠性高。寿命长超级电容的循环寿命远超电池适合需要频繁充放电或长期待机的场合。环保免维护没有电池的记忆效应、漏液风险也无需考虑回收问题。宽温工作通常支持-40°C到70°C甚至更宽的范围适合工业环境。缺点与局限能量密度低仅适用于短时间秒级到分钟级的备份。如需更长备份时间电容体积和成本会急剧上升。电压衰减放电过程中输出电压持续下降需要后端系统能承受一定的电压变化范围。充电管理简单恒流/恒压充电不精确充电时间较长且无法充分利用电容容量因二极管压降。5.2 潜在优化方案如果项目有更高的要求可以在现有基础上进行优化采用理想二极管或负载开关问题肖特基二极管虽然有低压降但在大电流下仍有0.3V-0.5V的损耗。对于低电压系统这个损耗占比很高。方案使用“理想二极管”控制器如TI的LM5050驱动MOSFET。MOSFET的导通电阻Rds_on可以低至几毫欧其压降V I * Rds_on远低于二极管。例如0.1A电流下5mΩ的MOSFET压降仅0.5mV几乎可以忽略不计。这能显著提升放电效率延长备份时间或允许使用更小的电容。增加升压Boost放电电路问题输出电压随电容电压下降而下降限制了电容能量的利用率电容需要放到更低电压才能释放更多能量。方案在超级电容和负载之间加入一个低静态电流的升压DC-DC转换器。即使超级电容电压跌落到2V甚至更低升压电路也能输出稳定的5V。这可以榨干超级电容的最后一分能量将有效备份时间延长30%-50%。代价是增加了电路的复杂性和成本并且升压电路本身有转换效率损失通常85%-95%和静态电流消耗。使用专用充电管理IC问题简单电阻充电慢且无法将电容充至最高电压。方案使用如LTC3225、MAX17701等超级电容充电器IC。它们可以提供可编程的恒流充电并精确控制充电终止电压如5.0V实现快速、安全的充电并能提供充电状态指示。这适用于需要快速恢复备份能力的应用。软件层面的优化动态功耗管理一旦检测到掉电MCU应立即关闭所有不必要的外设ADC、通信接口、指示灯等将CPU降频甚至切换到超低功耗模式如果支持仅保留必要的逻辑和存储器操作。这能大幅降低备份期间的电流从而延长备份时间。分级保存策略将需要保存的数据按重要性分级。最先保存最关键、数据量小的状态信息到片内EEPROM。如果时间允许再保存次要的、数据量大的日志信息到外部Flash。6. 工程实践建议与注意事项电容的并联与均压如果需要更大的容量可以将多个超级电容并联。切记不要轻易将超级电容串联以提高电压串联使用时由于电容容值的差异会导致分压不均可能使某个电容过压损坏。如果必须串联必须为每个电容并联均压电阻阻值通常为几百欧姆到几千欧姆这会引入持续的漏电流。并联是更安全简单的扩容方式。漏电流不容忽视超级电容的漏电流比普通电解电容大得多典型值在几微安到几百微安。在计算备份时间时需要将电容自身的漏电流加上负载电流。在长期不通电的存储状态下漏电流会慢慢放光电能。在设计复位或上电检测电路时需要考虑这个因素。ESR的影响超级电容的等效串联电阻ESR会影响其瞬间大电流放电能力。在数据手册中ESR通常与容量成反比。选择低ESR的电容可以减少大电流脉冲负载下的电压跌落。例如在MCU启动无线模块发射的瞬间低ESR电容能更好地维持电压稳定。安全放电在调试或维修时务必确保超级电容已完全放电。尽管电压不高5V但数法拉的容量储存的能量足以产生火花或损坏精密仪器。可以在电容两端并联一个放电电阻如1kΩ/0.25W或者设计一个通过按钮控制的放电电路。PCB布局要点大电流路径充电和放电回路的走线应尽可能短而宽以减少寄生电阻和电感。电容摆放超级电容应尽量靠近其供电的负载即5V转3.3V的LDO输入端。去耦电容在超级电容的引脚处、LDO的输入和输出端就近放置足够且类型合适的去耦电容如大容量钽电容或电解电容并联小容量陶瓷电容以滤除噪声和提供瞬时电流。这个超级电容UPS方案以其极致的简洁和低成本解决了嵌入式系统断电保护中的一个经典问题。它再次印证了在工程设计中往往不是最复杂、最先进的方案才是最好的而是最贴合项目约束条件成本、空间、时间、可靠性的方案才是最优解。在实际部署前强烈建议在目标负载和真实环境下进行完整的寿命测试和极端情况测试如高温、低温、频繁断电以确保其长期稳定可靠。

相关新闻