嵌入式硬件核心:二极管原理、选型与保护电路全解析

嵌入式硬件核心:二极管原理、选型与保护电路全解析 做嵌入式开发做到后面很多人会发现最难啃的不是代码而是模数电基础。二极管又是模数电里最不起眼、却最容易导致硬件故障的器件。继电器关断时把单片机打复位、电源反接烧板子、RS485 通信偶发异常、IO 口输入过压损坏这些问题排查到最后经常都落在二极管的选型和接法上。这篇内容就把二极管从 PN 结原理、常见类型、工程选型到嵌入式里的保护电路、续流电路、钳位电路和排查链路拆开讲一遍适合正在学单片机、准备嵌入式面试或者工作中经常要跟硬件打交道的软件工程师。这里我先给一个判断嵌入式工程师学二极管重点不是背公式而是要知道每个二极管在电路里到底承担哪个角色。同一个器件放在电源入口是防反接放在继电器旁边是续流放在信号线上可能是钳位或者瞬态抑制。角色判断错了后面全部跑偏。1. 嵌入式模数电里二极管到底扮演什么角色1.1 整流、保护、钳位三个最核心的角色二极管在嵌入式电路里最常见的用途可以分成三类整流、保护、钳位。整流是把交流电变成脉动直流电。常见的桥式整流电路、半波整流电路、电源适配器里的整流部分都用二极管。嵌入式设备如果直接用交流电源供电整流是我第一个要确认的环节。保护是二极管最贴近工程实践的场景。电源接反保护、电感负载断开时的续流保护、ESD 静电保护、雷击浪涌保护都靠二极管或者二极管类器件实现。这类场景下二极管不是用来“传输能量”的而是用来在异常状态下把危险的电压或电流引到安全路径上。钳位是把某个节点的电压限制在一个安全的范围里。比如单片机 IO 口外部输入电压瞬间超过 VCC内部钳位二极管会把电压拉到 VCC 附近避免内部电路损坏。再比如 RS485 的 A、B 线上常用 TVS 二极管把差模和共模过压钳位到安全电平。很多软件背景的工程师看电路图习惯把二极管理解成“单向开关”但这个简化模型只适合做原理分析。实际选型的时候正向压降、反向漏电流、反向恢复时间、寄生电容、耐压和功耗都会影响系统是否稳定。第一次做硬件测试的人经常遇到“方向没接错但电路就是不对”的情况问题往往就出在这些参数上。1.2 嵌入式工程师和纯模电工程师看二极管的差异纯模电方向会花大量时间分析二极管的伏安特性曲线、小信号模型、检波和混频电路。这些理论基础重要但嵌入式工程师日常接触更多的是单片机 IO、电源、RS485、电机驱动、继电器控制这类数字和功率混合电路。所以我认为嵌入式工程师看二极管应该抓住三个更实际的角度第一这个二极管在这个电路里导通时电流是多少。第二这个二极管关断时承受的反向电压是多少。第三这个二极管导通和关断的速度够不够快。比如在 IO 口做保护一般用开关二极管反向恢复时间短信号不会被拖慢。在工频整流电路里用普通的整流二极管就够不需要追求开关速度。在 DC-DC 输出整流里经常用肖特基二极管因为压降低、损耗小。在 RS485 的 AB 线上要防瞬态过压普通整流二极管反应速度不够要用 TVS。先把角色分清楚再谈选型和参数这才是嵌入式模数电里学二极管的正确顺序。2. 看懂 PN 结和二极管参数才能从手册里挑对器件2.1 从 PN 结看单向导电正偏和反偏的区别二极管的核心是 PN 结。P 型半导体里空穴多N 型半导体里电子多两者结合后会形成一个耗尽层也叫内建电场区。当 P 端接正、N 端接负也就是正向偏置时外电场方向跟内建电场相反耗尽层变窄多数载流子能越过结区形成正向电流。当 P 端接负、N 端接正也就是反向偏置时外电场跟内建电场方向一致耗尽层变宽电流几乎为零。这就是“单向导电性”。理解这个概念后面看稳压管、TVS、续流管才不会乱。需要注意的是反向偏置不等于绝对不导通。实际上还是有很小的反向漏电流只是数值很小通常从纳安到微安不等。温度升高后漏电流会明显变大。电池供电的设备如果并联在电源上的二极管选得不好待机电流就可能被拖高。2.2 正向压降 VF 是最大的工程变量很多嵌入式新手第一次画电源防反接电路直接在电源正极串一个 1N4007结果发现系统工作电压被拉低了 0.7V。5V 供电变成 4.3V稳压器输出可能就不正常了。普通硅二极管的正向压降大约 0.7V肖特基二极管大约 0.3V 到 0.5VLED 不同颜色压降也不一样红色 LED 大约 1.8V 到 2.0V蓝色和白色 LED 可能到 3.0V 以上。这个参数不是固定的它跟正向电流、结温和器件工艺都有关系。所以看数据手册里的 VF不能只看一个数字要看测试条件。手册通常会写“IF1A 时 VF 典型值 0.55V最大值 0.7V”意思是通 1A 电流时压降在这个范围里。如果你的电路工作电流只有 100mA实际压降会比这个低一些。做 3.3V 或 3.7V 低压系统时串联普通二极管防反接很容易压降超限。这时候可以选肖特基或者改用 PMOS 防反接电路。判断标准很简单系统允许的最低工作电压减去二极管压降如果低于后端芯片的最低工作电压就不能用这个方案。2.3 反向漏电流和反向恢复时间反向漏电流是二极管反向偏置时流过的微小电流。普通硅二极管在室温下漏电流很小但温度升高后漏电流成倍增长。电源入口的防反接二极管如果长期工作在高温环境漏电流会拖累系统功耗。反向恢复时间是二极管从正向导通切换到反向截止所需要的时间。普通整流二极管的正向导通时积累了大量电荷突然加反向电压时不能立刻关断会有一个短暂的反向电流这就是反向恢复时间长的表现。高速开关电路里不能用普通整流管当开关管。比如信号线上的钳位二极管、通信接口上的 ESD 保护要选开关二极管或者专用保护器件。低频电源电路里反向恢复时间影响不大主要看耐压和电流。2.4 理想二极管模型的注意点学习电路原理时可以把二极管看成理想元件正向导通压降为零反向完全不导通开关瞬间完成。这个模型方便理解电路方向但不能直接用于工程计算。真实二极管有几个不能忽略的点有正向压降低压系统里可能影响供电。有反向漏电流高温和低功耗场景要核对。有结电容高频信号会受影响。有最大反向耐压超过可能击穿。还有一个热词叫“理想二极管”现在很多电源方案里说理想二极管是指用 MOS 管加控制电路模拟二极管单向导通特性但正向压降只有几十毫伏甚至更低。这种方案适合大电流低功耗场景但要注意控制电路的上电时序、浪涌电流和反向瞬态。不要只看宣传说压降低就忽略它比普通二极管复杂得多。3. 嵌入式常用的七大二极管类型用途、选择和边界3.1 整流二极管和开关二极管整流二极管一般用于工频整流和电源电路特点是耐压高、电流大但开关速度慢。比如 1N4007 系列最大反向耐压 1000V正向电流 1A适合 50Hz 到 60Hz 的交流整流。如果把它用在高速开关电路里反向恢复时间太长会产生额外损耗。开关二极管用于高频信号开关、逻辑电平转换和保护电路。特点就是反向恢复快但额定电流通常不大。1N4148 是常用的小信号开关二极管压降约 0.7V适合 300mA 以内的信号电路。选型时不要只看能不能导通还要看开关速度。信号线上用了慢速整流管波形会被拉坏。3.2 肖特基二极管肖特基二极管是金属和半导体接触形成的势垒结构特点是正向压降低、开关速度快。它在低压大电流场景里优势明显常用于电源防反接、DC-DC 输出整流、电机续流。但它也有边界。肖特基二极管反向漏电流比普通硅二极管大耐压通常不高很多型号在 40V 到 100V 左右超过这个范围可选型号就少了。高温下漏电流会进一步增大所以设计时要看工作温度和散热条件。低压系统里我一般优先考虑肖特基。但如果反向耐压要求超过 100V或者环境温度很高就要重新评估。3.3 稳压二极管稳压二极管利用反向击穿区工作。给它加一个反向电压当电压超过击穿电压时两端电压基本保持不变这就是稳压效果。但稳压管必须配合限流电阻使用。电阻太小电流过大稳压管会烧电阻太大电流不够稳压效果变差。比如输入电压 12V稳压管用 5.1V工作电流按 10mA 设计限流电阻大概是R (Vin - Vz) / Iz R (12 - 5.1) / 0.01 690 欧实际可以取 680 欧或 750 欧同时根据负载电流重新核算。稳压管承担的是“多余电压×电流”这部分功耗如果输入电压和电流太大稳压管会很烫。嵌入式里稳压管常见的用法是给 ADC 做简易参考电压、给 IO 口做输入过压保护、给电源做简易钳位。要求精度高的场合还是用专用基准源更稳。3.4 TVS 二极管TVS 二极管的完整名称是瞬态电压抑制二极管专门用来吸收瞬态过压比如静电放电、雷击浪涌、感性负载关断产生的尖峰。它和普通稳压管的区别在于响应速度和功率吸收能力。TVS 能在皮秒或纳秒级别把过压钳位到安全范围适合放在电源入口、RS485 的 AB 线、USB 数据线、继电器驱动端。选 TVS 时要看几个关键参数Vrwm工作反向电压要大于电路正常工作电压。Vc最大钳位电压要小于后端器件的最大耐压。Ppp峰值脉冲功率决定抗浪涌能力。RS485 的 AB 线上一般用双向 TVS因为信号线可能对地出现正负方向的过压。直流电源入口如果使用单向 TVS要注意方向不能接反接反了 TVS 会变成普通二极管稳态时就导通电源就短路了。3.5 续流二极管继电器、电机、电磁阀这类电感负载断开瞬间会产生反向电动势。反向电动势如果没有释放路径会在开关器件两端产生很高的尖峰电压轻则打坏 MOS 管重则把 MCU 复位。续流二极管就是反向并联在电感负载两端给电感电流提供一条续流回路。正常工作时二极管反向截止不影响负载断开瞬间电感电流通过二极管继续流直到能量消耗完。方向不能接反。续流二极管的阴极接电源正极阳极接负载的低端。接反了等于短路开机就会烧。继电器这类慢速负载可以用普通整流管或开关管。电机如果工作在 PWM 高频状态要选肖特基或快恢复二极管否则普通二极管响应不过来。3.6 发光二极管和光敏二极管LED 在嵌入式里主要做状态指示和光耦发射端。LED 需要限流电阻不能直接接电源。不同颜色压降不同限流电阻计算方式是R (VCC - VF) / I_LED比如 VCC 是 3.3V红色 LED VF 约 1.8V目标电流 5mA电阻就是 300 欧实际取 330 欧。光敏二极管用于光检测常见于光电开关、环境光传感器、红外感应电路。它工作在反向偏置状态光照越强反向电流越大。这个方向不要弄反否则输出特征完全不同。3.7 钳位二极管和 ESD 保护二极管钳位二极管的作用是把电压限制在某个范围。比如有些单片机的 IO 口内部有到 VCC 和 GND 的钳位二极管当外部输入电压高于 VCC 一个二极管压降时内部二极管正向导通把电压拉回到 VCC0.7V 以内。但内部钳位二极管电流能力很弱不能长时间承受大电流。外部输入过压时必须配合串联限流电阻把电流限制在毫安级别。如果外部输入直接接到 12V没有限流电阻内部二极管大概率会烧穿。ESD 保护二极管是专门做静电保护的器件特点是结电容低对高速信号影响小。USB、HDMI、RS485 这类接口都可以加外部 ESD 保护器件。4. 电源入口和驱动电路里的二极管实战反接、续流、稳压4.1 电源反接保护串联二极管、并联二极管和理想二极管方案电源反接保护是嵌入式硬件里最常见的需求。不同方案差异很大。最简单的方案是在电源正极串联一个二极管。优点是电路简单、成本低缺点是有一个压降。低压系统里压降可能成为问题所以优先选肖特基。第二种方案是并联二极管加保险丝。电源接反时二极管正向导通产生大电流把保险丝烧断保护后级电路。这个方案适合不允许有明显压降的场合但有代价接反一次就要换保险丝而且烧保险丝的过程可能损坏电源适配器。第三种方案是用 MOS 管做防反接也叫理想二极管方案。常见做法是用 PMOS 或者 PNP 加控制电路。正常供电时 MOS 管导通导通压降只有 RDS(on) 乘以电流比二极管小很多。但要注意 MOS 管存在寄生体二极管方向接错体二极管直接导通防反接就失效了。我一般建议小电流设备先用肖特基串联简单稳定。大电流或电池类低功耗设备再考虑 PMOS 方案。做设计时还要考虑输入电压的浪涌如果前端有大电容上电瞬间充电电流会很大二极管的浪涌能力要核对。4.2 继电器、电机和电感负载的续流二极管继电器线圈是典型的电感负载。用三极管或 MOS 管驱动继电器时线圈两端必须加续流二极管。不加的话三极管关断瞬间会产生高压尖峰。续流二极管的位置要尽量靠近继电器线圈连接线要粗短。因为续流回路路径越长寄生电感越大尖峰抑制效果越差。在 PCB 布局里续流二极管和继电器线圈应该放在同一层距离越近越好。如果继电器线圈由 5V 驱动二极管选 1N4148 或者 1N4007 都可以。负载电流较大的直流电机可以选肖特基或快恢复二极管。电机电刷会产生火花还会伴随高频噪声仅仅一个续流二极管可能不够有时要加 RC 吸收电路。续流二极管还有一个容易被忽略的副作用它会延长继电器释放时间。因为线圈电流有续流回路电流衰减变慢继电器触点断开变慢。对于要求快速断开的场景可以增加串联电阻或使用更快的二极管但也不能加太大否则尖峰会重新出现。4.3 稳压二极管做简易基准和过压保护稳压二极管可以用于生成简易参考电压。比如给运放提供一个 2.5V 基准或者给比较器提供一个阈值电压。电路就是稳压管串联一个限流电阻。计算限流电阻时要考虑输入电压波动和负载电流变化。如果负载电流从 0 变到 5mA而稳压管工作电流是 5mA那么稳压管电流会从 10mA 降到 5mA输出仍然接近 Vz。但如果负载电流超过限流电阻能提供的最大电流输出电压就会跌落。稳压管也可以做输入过压保护。比如单片机 ADC 输入脚接一个 3.3V 稳压管到地输入电压超过 3.3V 时稳压管反向击穿把电压钳住。但缺点是稳压管击穿后电流会比较大必须串联限流电阻限制电流否则稳压管会过热。稳压管精度不高温度特性一般要求较高的基准还是用专用基准芯片更可靠。它更适合做“防止电压过高烧芯片”的保护而不是做高精度参考源。5. IO 口、RS485 和 IC 周边保护二极管与寄生二极管问题5.1 单片机 IO 口保护二极管和钳位电路很多单片机数据手册会注明 IO 口内部有钳位二极管。正常工作时输入电压保持在 GND 到 VCC 之间钳位二极管不导通。如果外部输入电压低于 GND内部到 GND 的二极管会正向导通把电压钳到 -0.7V 左右。如果输入电压高于 VCC内部到 VCC 的二极管会导通把电压钳到 VCC0.7V。听起来很安全但内部钳位二极管的电流能力有限一般在几毫安到几十毫安之间。外部输入过压时如果不串联限流电阻电流可能达到几百毫安甚至更大内部二极管很快烧毁IO 口就废了。因此外部电路设计时应加入必要的电阻和外部保护。常见做法是在输入信号和 IO 口之间串联一个 1k 到 10k 欧的电阻。在 IO 口到地并联一个肖特基或稳压管做外部钳位。对高速信号外部保护器件要选低结电容的不然信号眼图会恶化。实测时如果正在运行的单片机因为外部电压波动频繁复位先用手摸一下芯片温度再用示波器看 IO 口波形看有没有超过 VCC 的尖峰。5.2 RS485 的 AB 线加二极管什么情况该加什么情况不该加RS485 是差分通信A、B 两线之间的电压差决定逻辑电平。很多人会在 AB 线上加二极管做保护但加的种类和位置非常重要。如果需要在 AB 线上抑制瞬态过压正确做法是加 TVS 二极管通常是双向 TVS一端接 A 线一端接 B 线或者分别对地接。TVS 并联在信号线上正常工作时不导通遇到高压尖峰时把电压钳位到安全范围。如果有人在 AB 信号通路上串联普通二极管要非常小心。普通二极管有压降串联后会导致 AB 两端的差分电压偏移可能破坏逻辑电平。而且普通二极管响应速度慢对高速通信有影响。RS485 总线的共模范围有严格要求串联二极管可能直接超出接收器输入范围。我见过一个现场问题RS485 通信距离稍长就乱码查了很久发现是有人为了“防反接”在 A、B 线上各串了一个二极管。去掉之后通信恢复正常。所以 RS485 的 AB 线上保护二极管应该并联不能串联。如果确实需要防止接错线导致内部器件损坏合理的方案是给收发器电源加 TVS并在 AB 线上并联双向 TVS而不是在信号通路里串二极管。5.3 PMOS 寄生二极管方向体二极管不能忽略MOS 管内部天然存在一个寄生体二极管方向跟 MOS 管正常工作方向相反。对 PMOS 来说源极和漏极之间的体二极管通常是从漏极指向源极也就是说当漏极电压比源极高一个二极管压降时体二极管会导通。这个寄生二极管在很多 MOS 管应用里会影响电路功能。比如用 PMOS 做电源开关或防反接时要特别注意体二极管方向。如果电路设计依赖体二极管在异常状态下导通那就要确认它能承受的电流如果希望它平时不导通那就不能让这个二极管处于正向偏置。很多新手用 PMOS 做防反接画电路时只看 G 和 S 的控制关系忽略了 D 和 S 之间的体二极管结果接反后电流绕过 MOS 管直接导通保护失效。处理办法是查数据手册里的“Body Diode”或者“Internal Diode”部分确认体二极管的耐压、正向电流和方向再进行电路设计。不要只看封装和型号。5.4 峰值检波和信号解调里的二极管应用峰值检波电路由二极管、电容和负载电阻组成。输入信号经过二极管给电容充电电容电压会保持在信号的峰值附近相当于把交流信号变成直流电平。嵌入式里这个电路常用于测量交流信号的幅值或者在无线接收电路中做包络检波。需要注意二极管压降会影响检波精度小信号检波时压降占比太大输出误差明显所以要用低压降的肖特基二极管。电容和负载电阻的选择也有判断标准。电容太小输出纹波大电容太大响应慢信号峰值变化时电容电压跟不上。负载电阻太小电容放电快也会影响检波输出。设计时要根据信号频率和期望的响应速度来折中。这个电路看起来简单实测时最容易踩的坑是输出波形被叠加大量纹波或者检波输出比实际峰值低很多。排查顺序是先看输入信号幅值再看二极管类型最后检查 RC 时间常数是不是跟信号周期匹配。6. 从数据手册到实测二极管选型、测试和排查链路6.1 读数据手册先看哪几个参数不同应用关注不同参数。我整理了一个嵌入式选型时经常对照的参数表参数含义为什么嵌入式要看VRRM / VRWM最大反向工作电压反向电压超过会击穿干扰或浪涌场景要看IF / IFSM正向电流 / 浪涌电流稳态电流和上电浪涌电流不能超规格VF正向压降低压系统里影响供电余量和功耗IR反向漏电流电池供电和高温场景要重点核对trr反向恢复时间高速开关、信号保护场景必须看Cj结电容高速信号线和通信接口要考虑Ppp / Vc峰值脉冲功率 / 钳位电压TVS 选型时决定抗浪涌能力和钳位效果封装功耗允许的最大功耗过热降额判断依据拿肖特基和普通整流管对比肖特基 VF 低、速度快但 IR 大、耐压通常不高。普通整流管耐压高、漏电小但速度慢。没有哪个方向绝对好只有适不适合当前电路。6.2 常见故障现象和排查顺序二极管相关故障表面看起来五花八门但排查链路可以固定下来。先看现象。如果系统上电就短路优先怀疑电源入口的二极管是否接反或者 TVS 选型错误导致稳态导通。用万用表二极管档测两端应该有 0.3V 到 0.7V 左右的压降反向应显示不导通。如果电源电压被拉低先量二极管两端压降看 VF 是不是太大。电流越大压降越大。低压大电流场景换成肖特基压降会明显下降。如果继电器关断时单片机复位大概率是续流二极管没加或者加得太远。加在负载两端而且要靠近负载。如果已经加了还是复位用示波器抓负载两端尖峰看峰值是否超过后端器件耐压。如果待机电流异常偏大检查所有并联在电源上的二极管漏电流尤其是肖特基和 TVS。拔掉板子上的 TVS再测待机电流对比就能发现问题。如果通信接口出错比如 RS485要先用示波器看 A、B 线对地波形和差分波形再检查 AB 线上是否误串了二极管确认保护器件是并联而不是串联。最后看数据手册核对每个二极管在工作点的实际参数不能只看型号前缀就往上用。6.3 焊接、布局和测试中的坑直插二极管和贴片二极管都有极性标记实心横线或者丝印线表示阴极。焊接前先用万用表二极管档确认一下方向能省去后续很多麻烦。续流二极管的位置要尽量靠近继电器线圈或电机驱动管。有些人把它放在板子边缘走线很长续流效果差尖峰照样打坏电路。这种问题不是换型号能解决的必须改布局。TVS 或者 ESD 保护器件要放在接口连接器旁边越靠近外部入口越好。这样才能在静电或浪涌进入内部电路之前被吸收。如果保护器件在远离接口的地方入口到保护器件之间的走线依然是薄弱点。用示波器测试感性负载关断波形时要用差分探头或者注意避免地环路。普通探头的地线夹如果夹在感性负载的负端测量时可能把尖峰引入测量系统得到错误结论。还有一个经验不要一上来就开最大负载做测试。先空载启动再逐步加大电流看二极管温度、压降和系统稳定性。二极管发热严重时用热成像或者手背靠近摸一下但不要直接接触高压或正在工作的功率部分先断电再操作。个人建议嵌入式项目里碰到二极管相关的问题不要急着换更贵的器件。先用万用表和示波器确认方向、压降、位置和信号时序再回到数据手册核对参数。很多问题看起来是器件坏了实际是选型时没看 VF 和恢复时间或者保护二极管放错了位置。把二极管这个领域吃透嵌入式模数电的很多坑就能提前避开。