恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
电子保险丝+MCU的工业电源路径保护设计实战
首页
资讯中心
/
电子保险丝+MCU的工业电源路径保护设计实战
电子保险丝+MCU的工业电源路径保护设计实战
发布时间:2026/10/7 11:04:45
做嵌入式硬件这些年我学到最“扎心”的一件事就是电源路径永远是系统可靠性的第一道关卡。你在MCU里写了再多的异常处理逻辑电源一抖提前复位或者线路短路把板子烧穿所有软件功夫都白费。所以工业级板卡上我几乎都会在电源入口放一颗电子保险丝最近几个项目里用得最顺手的是TI的TPS259483AYWPR配合Microchip的PIC18F86J55来做系统级监控与交互。TPS259483AYWPR负责把过压、过流、浪涌、短路都拦在源头PIC18F86J55负责读状态、控制使能、记录故障和上报。这套组合特别适合在12V或24V工业电源边上的嵌入式控制模块、小型IO节点、通信扩展板这类场景体积小、成本可控、保护响应快而且从纯硬件保护到软硬件协同保护留了很大的设计自由度。下面这篇文章就围绕这套方案从设计思路、参数计算、参考电路到调试故障完整拆一遍。1. 设计思路为什么是“电子保险丝MCU”组合1.1 工业电源路径到底在保护什么工业控制柜里的电源环境比普通消费级电路恶劣得多。看似稳定的24V电源实际上会有电机启停造成的电压跌落有继电器通断产生的电感尖峰有远端长线缆耦合进来的瞬时过压还有接线端子被误短接、负载侧绝缘破损等导致的硬故障。这些情况下如果电源入口只靠一颗普通电容和防反接二极管危险电流就会直接灌进板卡内部把稳压器、MCU、通信芯片一并带走。所以电源路径保护要做的事情不只是“切断”而是分成好几层防过压把外部瞬态尖峰限制在后级能承受的范围或者直接主动断开路径防过流和短路限制进入负载的电流让故障电流不超过板卡能承受的强度防浪涌上电瞬间给大电容充电的电流往往比正常电流大很多倍需要把它平滑到可控范围防反接和防倒灌在很多双电源或热插拔场景里反向电流通路也需要被重点照顾可诊断系统最好还能告诉自己“为什么断了”是过压、过流还是过热维护人员不用拿万用表一块块排查。TPS259483AYWPR这类电子保险丝和普通保险丝最大的区别就是把上面这些响应全部集成到一颗芯片内部。它的响应时间在微秒到毫秒级别远快于普通玻璃管熔断而且阈值可以通过电阻和电容来设定不用根据负载电流去换不同规格的保险丝。这个特性对批量生产特别友好只需要改一颗电阻的阻值就能适配1A到5A的不同产品形态BOM变化小、验证周期短。1.2 和传统保险丝、PTC、理想二极管方案对比很多工程师的第一反应是在入口放自恢复保险丝或普通保险丝再配合TVS做钳位。这个思路本身没错但在工业现场有几个很难接受的短板。普通保险丝有个严重的响应速度问题在过流不太大的时候保险丝可能要等上百毫秒甚至几秒才熔断。对后级开关电源和芯片来说这个时间窗口里电压可能已经垮掉、电流已经严重过载芯片内部已经出现了损伤。更何况熔断之后必须人工更换在无人值守的工业现场非常不现实。PTC虽然能自恢复但漏电流大、动作慢电阻随温度漂移也很明显。在12V或24V系统里PTC的压降造成的功率损耗会比一颗集成MOSFET的电子保险丝高不少而且它的动作阈值受环境温度影响夏天和冬天表现完全不一样很难做到精确。“理想二极管”控制器是解决防反接方向的好工具它能代替二极管来降低导通损耗但对过流和过压的处理能力有限通常还需要额外搭配断路器或限流电路BOM反而更复杂。电子保险丝把这些需求合在了一起内部有一颗低导通电阻的MOSFET作为通流开关控制回路实时采样电流和电压一旦触发保护条件直接控制MOSFET关断或限流。TPS259483AYWPR还集成了电荷泵和电流镜对外只需要少量无源器件就能把过流阈值、过压阈值和启动压摆率全部设好。相比分立方案BOM少很多可靠性反而更高因为关键的回授环路都在芯片内部完成匹配不依赖外围器件的离散参数。1.3 两个芯片的分工边界电源路径保护如果只靠硬件动作虽然快却做不到“柔性”什么时候允许重启、重启多少次、故障原因要不要上报这些需求硬件很难单独完成。反过来如果完全靠MCU去管理MCU死机、IO状态异常或者程序跑飞的时候保护也跟着失效这就失去了保护的意义。所以实际项目中我做了一个非常清晰的边界划分TPS259483AYWPR作为“硬保护”的第一道闸门。不管MCU状态如何只要检测到过压、过流或短路硬件立即触发保护动作不受软件影响。PIC18F86J55作为“软管理”的第二道防线。通过EN引脚控制上电/下电通过FLTb引脚接收故障标志通过ADC实时读取输入输出端的电压、电流采样信号再结合状态机做启动、限流降额、延迟重试和故障上报。这个边界的核心判断是把“快”的事情交给模拟电路把“慢但需要决策”的事情交给MCU。TPS259483AYWPR的保护响应时间在微秒级MCU即使主频再高中断延迟也有好几微秒到几十微秒不可能跟得上功率管关断的速度但MCU非常适合做几十毫秒级别的重试策略和通信上报。分工合理系统才不会出现“保护回路被程序拖累”的尴尬局面。2. TPS259483AYWPR电子保险丝的关键技术点拆解2.1 芯片内部做了什么为什么体积那么小从功能框架上看TPS259483AYWPR内部大致是这样输入引脚IN进来后先经过一颗功率MOSFET输出引脚OUT向后级送电MOSFET的栅极由内部电荷泵驱动所以即使在低输入电压下也能保证管子完全导通、压降很小。控制部分由误差放大器、比较器、基准源和电流检测电路组成。电流检测不是简单地在通路里串联一个大功率采样电阻而是利用MOSFET的并联镜像或者导通阻抗折算来实现因此几乎不牺牲导通效率。这也是它能把封装做小到2mm×2mm的原因之一。如果按照传统思路用采样电阻加比较器加驱动MOSFET来做至少需要四五个功率器件和一堆分立元件板面积至少是这个方案的十倍。TPS259483AYWPR外面所需的器件基本只有一个用于设定限流阈值的电阻、一组用于设定过压/欠压阈值的电阻分压器、一个用于设定启动压摆率的电容以及输入输出端的去耦电容。核心电路被封装到小尺寸里对现在的嵌入式板卡非常友好。2.2 几个真正需要关心的引脚与参数第一次用这颗芯片时最容易看花眼的是引脚功能。我挑几个真正影响系统设计的说明一下EN引脚使能控制。通常高电平有效。MCU通过这个引脚控制电源路径通断。要注意EN不是纯数字那么简单很多电子保险丝的EN引脚带有一个内部电流源如果直接悬空会有不确定电平所以要么接明确的上拉/下拉要么由MCU推挽输出驱动。FLTb引脚故障指示输出。这个名字后缀b表示“低电平有效”也就是正常工作时为高发生故障时拉低。这个引脚基本是开漏结构需要接上拉电阻。上拉到哪里必须考虑和MCU IO电平的配合不能直接拉到12V再进3.3V的MCU。ILIM或IMON相关的设置引脚用来设定限流阈值。通常外接电阻到GND阻值越小限流值越大。OVP/UVLO设置引脚通过电阻分压器设定过压和欠压保护点。这两个阈值决定了系统允许的输入电压窗口。dVdt或者叫SS引脚外接电容设定启动时的输出压摆率。这个电容直接决定了上电浪涌大小。IN和OUT输入输出端。注意输入端的去耦电容不能省输出端的电容会影响启动过程。这些引脚的实际用法在不同的后缀版本里可能会有细节差异所以画原理图前一定要以对应型号的数据手册引脚功能表为准不能只看网上流传的通用示意图。2.3 过压、限流、压摆率设置的计算思路以一套典型的12V工业供电为例说一下参数怎么定。过压保护点的设置思路是不能让正常的电源波动误触发又要在真正危险的电压到来之前切断。12V系统中如果标称12V是稳定电压允许有10%的波动那正常最高大约到13.2V但是很多工业电源在负载突减时会出现15V甚至更高的尖峰。如果后级电路最高耐压是20V可以把过压保护点设置在16V左右。用电阻分压器实现的话内部基准不管是1.2V还是0.8V只要把分压比算好就行。举个通用例子假设内部基准电压VREF为1.2V选择上分压电阻90kΩ、下分压电阻10kΩ那么OVP阈值大约就是1.2×(190/10)12V。如果要调到16V就把分压比改成(16/1.2-1)12.33电阻取90.9kΩ和7.32kΩ这类标准值即可。这里一定要用1%精度的电阻因为保护点精度直接由外部电阻决定。限流阈值的计算不同电子保险丝差别比较大。TPS259483AYWPR的数据手册里会给出限流设置电阻和限流值的关系表或公式。设计时我一定要强调不要只看公式还要结合温度曲线。因为限流阈值里的内部基准和MOSFET的导通阻抗都会随温度漂移如果系统要在85℃环境下工作必须按数据手册上的热降额曲线重新核算。比如常温下设定的2A限流到了高温区可能实际动作点就变成了1.6A。这不一定坏事但会让系统在临界负载时出现意料之外的保护。压摆率的选择则是要在“启动太快导致浪涌过大”和“启动太慢导致后级供电建立时间超时”之间找平衡。电子保险丝手册里通常会给出压摆率与电容的关系大体上就是电容越大压摆率越慢。如果输出端接了470µF的电解电容压摆率太低意味着上电时输出电压从0到12V要花很长时间后级DCDC如果要求输入电压在某个窗口内快速建立就会出问题。我之前习惯把启动时间控制在几个毫秒到十几毫秒之间配合输出端的软启动电路使用整体效果比较理想。3. PIC18F86J55从监控到管理3.1 为什么选这款8位MCU而不是更流行的ARM很多人一听说要用MCU做电源管理第一反应就是换一颗STM32。但我实际做下来发现在这种功能相对固定的工业模块里PIC18F86J55这类中端8位MCU反而更合适。PIC18F86J55的定位是带丰富模拟外设的中端8位MCU具备64KB级别的Flash几KB的SRAM还带1KB左右的Data EEPROM。对电源管理这个任务来说代码量其实不大状态机加通信协议栈加故障记录64KB绰绰有余。它的工作电压是2.0V到3.6V可以直接用3.3V供电和外部传感器、通信芯片共用一个电源域不用做电平转换。更关键的是外设匹配。PIC18F86J55带有多个UART、SPI、I2C模块还有10位ADC和比较器。我在这个系统里需要做的事情恰恰就是这些外设读ADC电压、读电流采样、通过UART把故障状态上报给上位机、通过GPIO控制EN和读取FLTb。这些工作在8位MCU上做非常自然而且启动时间比很多32位MCU短代码执行路径更可控反而更适合做电源状态这种对确定性有要求的任务。当然如果你的产品本身就需要跑以太网协议栈、需要比较复杂的GUI或者需要高速数据处理那选ARM或更高性能的处理器没问题。但“大材小用”不只是成本问题复杂平台带来自检和可靠性风险这些在工业电源域里都要被考量。3.2 硬件接口EN、FLTb、ADC通道怎么接把TPS259483AYWPR和PIC18F86J55接到一起核心就五根线。第一根是EN。MCU的一个GPIO配置成推挽输出经过一个1kΩ电阻接到TPS259483AYWPR的EN引脚。为什么要串这个电阻一是限制引脚的瞬态电流二是方便调试时断开MCU单独给EN加信号。第二根是FLTb。这颗芯片的FLTb通常是开漏低有效所以必须接上拉电阻。上拉电源的选择有个坑如果VIN是12VFLTb内部耐压够的话可以上拉到12V但MCU的IO不可能接受12V所以更稳妥的做法是上拉到3.3V用10kΩ电阻。不过也要确认FLTb引脚在数据手册里允许的灌电流和上拉电压范围如果芯片手册里明确FLTb相对GND最大电压就是5.5V那就只能上拉到3.3V不能上拉到5V或者更高。第三根是电压采样。从OUT节点引出一路经过分压电阻衰减到MCU的ADC量程内。比如输出是12V分压电阻用100kΩ和33.2kΩADC输入最大约3V既保证精度又不会超量程。第四根是电流采样。TPS259483AYWPR某些版本会有电流监视输出引脚如果没有就在输出回路里串一个低阻值采样电阻比如50mΩ或100mΩ再经过运放放大后进ADC。注意采样电阻的功耗1A电流流过100mΩ时损耗0.1W在密闭的小空间里也足够让温度升高不少。第五根是UART或SPI用来做通信上报。如果设备本身是网关节点可以把故障上报信息放在现有的RS-485或CAN通信帧里不需要单独再拉一根线。3.3 固件里的状态机设计电源管理固件如果写成“顺序执行加延时”的循环很容易出问题。因为FLTb的故障触发是异步的而且不同故障之间可能有组合。我习惯把它设计成一个状态机。典型的几个状态是待机状态EN为低电源路径断开等待上位机下发启动指令。启动状态EN拉高同时监视FLTb和ADC电压等待输出电压建立。运行状态持续检测ADC电压电流和FLTb周期性上报状态。故障重试状态收到FLTb低电平或ADC超限拉低EN记录故障码等待延时后重试。永久关闭状态连续重试多次仍然失败停止重试只保留上报功能。下面是一段非常精简的伪代码展示这个状态机的主循环逻辑实际工程里需要加上滤波和超时处理typedef enum { STATE_IDLE, STATE_STARTUP, STATE_RUN, STATE_RETRY, STATE_FAULT_LATCH } power_state_t; power_state_t state STATE_IDLE; uint8_t fault_count 0; while (1) { uint8_t flt_read read_fltb_pin(); // 1表示正常0表示故障 uint16_t vout read_adc(ADC_CH_VOUT); // 输出电压采样 switch (state) { case STATE_IDLE: if (cmd_start_received()) { set_en_pin(1); // 使能电子保险丝 state STATE_STARTUP; } break; case STATE_STARTUP: if (flt_read 0) { set_en_pin(0); fault_count; goto retry_or_latch; } else if (vout VOUT_OK_THRESHOLD) { state STATE_RUN; } else if (startup_timeout) { set_en_pin(0); fault_count; goto retry_or_latch; } break; case STATE_RUN: if (flt_read 0 || vout VOUT_FAULT_THRESHOLD) { set_en_pin(0); fault_count; goto retry_or_latch; } if (cmd_stop_received()) { set_en_pin(0); state STATE_IDLE; } break; case STATE_RETRY: delay_ms(200); // 留出故障冷却时间 set_en_pin(1); state STATE_STARTUP; break; case STATE_FAULT_LATCH: // 只保持上报不再自动上电 report_fault_to_host(fault_code); break; } retry_or_latch: if (fault_count MAX_RETRY) { state STATE_FAULT_LATCH; } else { state STATE_RETRY; } }这个状态机的核心原则是每一次重新上电都必须经过完整的启动状态不能从运行状态直接恢复连续失败次数必须有限制否则短路时会陷入“上电-保护-上电-保护”的死循环把电子保险丝反复置于应力之下也把整个板子变成闪烁的警示灯。4. 动手实践一套最小可用的参考电路4.1 从输入到MCU的全链路连接下面这套电路我按12V输入、输出限流1.5A来设计后面接一块DCDC降到5V给MCU和通信芯片供电。它省掉了很多不必要的功能只保留最核心的保护链路适合做第一版验证。输入端先经过一个防反接二极管或者防反接MOSFET然后进入TPS259483AYWPR的IN脚。IN脚对地接一颗10µF陶瓷电容和一颗100µF电解电容。电子保险丝输入端的电容一方面满足芯片推挽驱动对瞬态电流的需求另一方面也帮助滤掉来自电源线的低频骚扰。输出端OUT脚对地接22µF陶瓷电容即可因为主要的负载电容还在DCDC模块那里。OVP和UVLO的分压电阻从IN引脚引出一路到设置引脚一路到GND。ILIM设置电阻直接接到GND。dVdt电容跨接在设置引脚和GND之间。EN信号来自MCUFLTb经过上拉电阻到3.3V后进MCU。MCU这边ADC0通道接OUT分压后的电压信号ADC1通道接电流采样放大器的输出GPIO0接ENGPIO1接FLTb。如果我需要判断温度就在功率MOSFET附近放一个NTC接ADC2通道。UART接到外部通信口。4.2 关键参数的计算与选型实例分压电阻的计算前面已经说了一部分这里把完整实例拉出来。设定输入电源标称12V允许波动范围10V到14V。过压保护点取16V欠压保护点取8V。假设芯片的OVP引脚内部基准VREF为1.2V选择分压下电阻Rbot10kΩ则上电阻Rtop 10kΩ × (16 / 1.2 - 1) 10kΩ × 12.33 123.3kΩ标准电阻系列里没有正好123.3kΩ的我会用121kΩ和2.4kΩ串联或者直接选124kΩ的E96电阻。如果选用124kΩ实际过压保护点是1.2×(1124/10)16.08V误差不到1%完全能接受。欠压保护同样用一组分压电阻。UVLO阈值取8V用同样的分压思路计算出的电阻值照例取标准值。限流设置电阻按数据手册的公式算。假设手册上给出的关系是限流值I_LIM与ILIM电阻R_ILIM成正比或反比这个在不同型号上不一样所以我在这里直接给一个典型做法以手册里标称的2A对应的电阻值为基准如果我要1.5A就选择标称1.5A附近的那一档。工业上为了安全和余量限流值设定要略大于正常最大负载电流。如果后级DCDC在启动瞬间需要2A而正常工作只有1A那么限流设定在2.5A到3A更合理否则一启动就触发保护。压摆率电容的选择我推荐从官方推荐值起步。如果手册表里对应dV/dt为0.5V/ms或0.2V/µs那一列的电容值是22nF或者47nF就先用这个值。然后实测启动波形再看是否需要调大电容来降低浪涌。电流采样电阻和放大器方面如果输出电流最高1.5A选择100mΩ采样电阻满载压降0.15V功耗0.225W需要选额定功率0.5W的电阻。放大倍数设为20倍满载时ADC输入电压约3V刚好接近MCU的3.3V参考电压满量程。4.3 PCB布局和散热注意事项TPS259483AYWPR虽然是个小封装但毕竟是功率器件PCB布局不能按普通信号芯片来对待。输入输出电容要尽量靠近芯片的IN和OUT引脚电容的回路面积越小开关噪声越少。特别是陶瓷电容如果走线太长高频阻抗会明显变大去耦效果大打折扣。2mm×2mm封装底部的散热焊盘必须焊接到PCB的大面积铜箔上而且最好在铜箔上打一排过孔到背面地层帮助热量往下传导。我习惯在芯片正下方放8到12个0.3mm的过孔不要用大孔径否则锡膏会漏到背面造成虚焊。FLTb和EN这两根信号线要远离电感、开关节点这些噪声源如果实在绕不开就加一个串联电阻和一个小电容做滤波滤掉高频毛刺避免MCU误读故障。电流采样电阻下面不要铺大块地铜否则热量会把采样值抬偏导致限流阈值不稳定。还有一点要提醒散热设计时要估算芯片实际功耗。电子保险丝在正常运行时会因为MOSFET导通阻抗产生损耗。如果导通阻抗典型值是28mΩ流过1.5A电流时功耗约0.063W不算大但如果工作在限流状态MOSFET可能进入线性区此时压降会很大功耗可能达到几瓦。所以散热设计不能只按正常工况来算还要按持续限流的最恶劣情况来校核。我在验证板上就遇到过“正常运行时温度没问题持续短路几十秒后芯片温度飙到100℃”的情况。5. 故障排查实录常见问题与避坑技巧5.1 常见故障现象速查表这里把我在调试中真实遇到过的故障现象整理成表方便你拿到板子时快速定位故障现象可能原因排查思路上电瞬间MCU复位电子保险丝压摆率太高后级DCDC输入浪涌过大增大dVdt电容降低启动速度FLTb一直为低限流电阻计算错误负载远超阈值先断开负载用电子负载逐级加电流确认动作点系统正常但偶发断电重启U VLO窗口设置太窄电源波动触发欠压保护查看输入电压波形扩大欠压保护窗口或增加输入电容输出端电压正常但MCU读ADC偏低分压电阻精度不够或采样回路有压降用万用表实测分压点电压对比ADC读数芯片发烫严重散热焊盘虚焊、铺铜面积不足、频繁限流检查X光或手工补焊增大铜箔和过孔数量短路后不能恢复连续重试次数用尽进入锁存状态查看MCU状态机标志确认是否达到最大重试次数5.2 避坑技巧一软复位逻辑别做成“打鸡血”有次做样品测试我用MCU在FLTb低电平之后立即拉高EN尝试恢复结果发现电子保险丝在100ms内反复开关输出端电容每次都没放完电就被重新充电电流峰值一次比一次高最后把输入端的保险丝烧了。后来我改成在每次重试之前至少等200ms到500ms让输出电容彻底放电同时记录故障发生的时刻和状态。软复位逻辑的目的不是“越快越好”而是“越稳定越好”。对工业设备来说一次故障后延迟几秒再复位完全是可以接受的。5.3 避坑技巧二启动浪涌和过流保护是两回事启动瞬间给大电容充电的电流严格来说不算故障但它会让电子保险丝误判为过流。所以限定流阈值时不能只看稳态电流还要用示波器测启动波形里的峰值电流。我自己会先用直流电子负载做稳态测试再用一个大电容并联到输出端模拟最严苛的启动条件。如果启动峰值电流到了限流阈值的90%就要么把限流阈值调高要么把压摆率进一步降低。这两种手段要配合使用不能只调一个。另外在低输入电压情况下启动电子保险丝内部电荷泵的能力会下降导致MOSFET栅极驱动不足导通阻抗变大。这种情况下功耗增加很快芯片温度上升明显。如果系统需要在欠压边缘反复上电最好在固件里加一个“输入电压低于某值时禁止启动”的判定不要依赖电子保险丝自己去扛。5.4 避坑技巧三热关断后的恢复策略TPS259483AYWPR这类电子保险丝内部大多有热关断保护。过热关断时FLTb同样会拉低但此时限流电路的动作和普通过流故障并不一样温度降下来之后芯片可能会自己恢复也可能需要EN重新触发。我的经验是固件里不能只靠FLTb判断故障类型还要结合ADC读到的芯片温度或环境温度。如果连续两次故障都发生在高温时段应该禁用自动重试转成只上报不恢复的模式否则芯片会一直处于“过热-冷却-重启-再过热”的循环中。判断是否热关断最简单的方法是同时采温度传感器数据。如果没有NTC至少可以让固件在FLTb低电平时记录当时的环境温度和工作电流供维护人员事后分析。6. 经验收尾真实项目中这套方案的表现去年做一个PLC通信扩展卡时我用了完全一样的TPS259483AYWPR加PIC18F86J55组合。那个产品在客户现场经常出现“插拔通信插头时系统重启”的投诉。原因是热插拔瞬间连接器的地脚先接触电源脚后接触中间产生了很大的电压跌落和浪涌。之前的板子用的是普通保险丝加TVSTVS把尖峰钳住以后保险丝并没有断开但后级DCDC的输入已经低于最低工作电压导致系统直接复位。换成电子保险丝之后我把欠压保护窗口放宽同时把启动压摆率降低让插拔时的电压跌落不再触发欠压保护而是利用输入电容的储能平稳度过。即使真的发生短路电子保险丝也能在微秒级时间内切断MCU通过FLTb收到中断后再上报故障。客户那边再也没有抱怨过随机重启问题。有个细节值得分享在后来的备货和量产品控中我发现电子保险丝的限流电阻一定不要选太小的封装比如0402。因为这种电阻在过流时自身会发热阻值漂移会改变保护点。我统一改成0603或者0805封装并且在生产中增加一道“检测FLTb动作点”的测试工序每块板子上电后专门用电子负载拉一次过流确认保护点落在规格范围内。这个测试看起来增加了一点工时但对可靠性提升非常大。这套方案后续还可以再扩展如果你需要把故障日志通过RS-485传到上位机或者需要在现场通过按键强制让设备重启PIC18F86J55的剩余资源完全足够。我自己后面还往这套架构里加了上电时间记录和累计运行时长统计直接存在MCU的EEPROM里对售后分析很有帮助。最后再分享一个调试小技巧第一次调试TPS259483AYWPR的时候建议先把FLTb断开用手动开关直接控制EN再用电子负载慢慢摸索保护点。确认硬件保护阈值全部符合预期之后再接上MCU跑状态机。这样能避免“硬件保护没设对MCU又拼命重试两边一起捣乱”的混乱状态。先让硬件可靠再让软件聪明这个顺序做反了后面会越调越痛苦。