P 型与 N 型区域形成结后,即使没有外加电源,交界附近也会出现电场;但这并不让二极管变成一节能持续供电的电池。加正向偏置后,电流也不是等到“超过 0.7 V”才突然出现。理解 PN 结需要把电荷分布、势垒和载流子输运连起来。
| 要解释的问题 | 关键概念 | 阅读位置 |
| 耗尽区的电荷从哪里来 | 固定离子与移动载流子分离 | 从扩散到内建场 |
| 内建电势是否就是导通压降 | 平衡势垒与外部偏置 | 平衡能带与内建电势 |
| 正偏和反偏怎样改变电流 | 注入、势垒和少数载流子 | 没有统一的导通门槛 |
| 反偏为什么使结电容变小 | 耗尽层宽度与电荷增量 | 耗尽区数值推演 |
| 开关与击穿为何不是理想行为 | 存储电荷、隧穿、碰撞电离 | 动态与击穿边界 |
先修习 能带与掺杂 中的电中性、漂移和扩散。下面采用同种材料构成的 PN 同质结;肖特基结、异质结和绝缘栅结构有各自的物理边界,不能说所有半导体器件都只是 PN 结。
从扩散到内建场
结形成前,N 区电子多、P 区空穴多。交界处浓度差促使电子向 P 区扩散、空穴向 N 区扩散,并与当地多数载流子复合。复合减少的是可移动电子—空穴对,并不意味着电荷守恒失效。
原来被移动载流子补偿的杂质离子暴露出来:N 侧留下正的电离施主,P 侧留下负的电离受主。它们固定在晶格中,不能像载流子一样继续扩散。由此形成空间电荷和从 N 指向 P 的内建电场。
电场驱动的漂移与浓度差驱动的扩散方向相反。热平衡时,两者的电流贡献恰好抵消,净电流为零;扩散、随机热运动和产生复合都没有停止。耗尽近似把空间电荷区中的移动多数载流子相对固定离子忽略,并不是宣称其中绝对没有自由载流子。
取 P 在左、N 在右,电子扩散粒子流向左,对应电子扩散电流向右;空穴扩散粒子流和扩散电流都向右。内建场向左,两个载流子的漂移电流都向左。这份方向账说明了为何平衡可以无净电流,而不是电场把所有载流子都锁死。
平衡能带与内建电势
热平衡时整个结的费米能级相同,但导带底、价带顶随空间电势弯曲。电子电势能为 −qφ,因此电势从 P 向 N 升高时,电子带边向下移动。两侧的带边差对应 qV_bi。
对均匀掺杂、非简并、近似完全电离且满足相关近似的同质结,内建电势为 V_bi = V_T ln(N_A N_D/n_i²),V_T = k_BT/q。它随温度、材料和掺杂变化,不是硅固定 0.7 V、锗固定 0.3 V 的常数。MIT:PN 结静电学课程
例如 300 K、N_A = 10¹⁷、N_D = 10¹⁶、n_i = 10¹⁰ cm⁻³,算得 V_bi≈0.774 V。这个内部平衡势垒不能直接当成普通电压表跨接未供电二极管就能读出的电源电压;测量回路还包含接触处的电化学势关系,平衡结不能持续向外提供净功。
没有统一的导通门槛
定义外加结电压 V_A = V_P−V_N,电流正方向为 P→N。V_A > 0 是正偏,降低多数载流子跨结的势垒;V_A < 0 是反偏,提高势垒。所谓势垒近似 V_bi−V_A,针对结区的适用模型,不应把整个封装端电压在大电流下全部算作势垒变化。
正偏增加少数载流子注入
正偏使 N 侧电子更容易进入 P 侧,成为 P 区的少数载流子;空穴同理进入 N 区。注入后少数载流子在中性区扩散并复合,外部电源和接触补充载流子,维持持续电流。用“正偏电阻小”只能描述现象,解释指数关系要看边界处的载流子浓度如何随偏置增加。
理想低注入模型得到 I = I_S[exp(V_A/V_T)−1]。工程上常用理想因子 η 写成 I = I_S[exp(V_A/(ηV_T))−1];η 用于近似描述主导输运/复合机制,不能保证一条真实曲线从极小到极大电流都由同一 η 精确拟合。
取 I_S = 1 pA、η = 1、T = 300 K 的假想器件:
| 正向结电压 | 理想模型电流 |
| 0.3 V | 约 0.110 μA |
| 0.5 V | 约 0.251 mA |
| 0.6 V | 约 12.0 mA |
电流随电压平滑增长,0.3 V 时已经非零。给定电流下所见的“正向压降”还依赖 I_S、温度、面积、串联电阻与材料,0.7 V 只是某些硅二极管工作点的粗略近似,不是必须超过 V_bi 才导通。
高电流时,串联电阻压降和高注入效应可能使指数式不再准确;低电流时,耗尽区复合和漏电等也可能改变曲线。这里的模型表不对应具体型号额定能力。
反偏电流不是严格为零
在未击穿且理想式适用时,反偏使指数项很小,电流趋近 −I_S。但真实反向电流还可能包含耗尽区产生、表面漏电、光生电流与缺陷相关机制,并随温度和反向电压变化。测量反偏电流时也要区分稳定漏电与施加电压瞬间的电容电流。
耗尽区数值推演:轻掺杂侧更宽
考虑一维突变结,P 侧耗尽宽度 x_p、N 侧 x_n,W = x_p+x_n。两侧固定电荷总量大小相等给出 N_Ax_p = N_Dx_n,所以耗尽区主要向较轻掺杂的一侧延伸,而不是两侧各一半。
在耗尽近似下对泊松方程积分,得到:
W = √[(2ε_s/q)(1/N_A+1/N_D)(V_bi−V_A)]。
反偏大小若写作 V_R = −V_A ≥ 0,括号就是 V_bi+V_R。原点附近电荷密度在各侧近似常量,电场分段线性,电势分段二次;这条公式包含了电荷量与电势变化相互约束的结果。MIT:偏置下的 PN 结与耗尽电容
沿用前面的掺杂和 0.774 V 内建电势,取 ε_s = 11.7ε₀,统一使用 cm 单位。得到:
| 条件 | 总宽 W | P 侧 x_p | N 侧 x_n |
| 外加 0 V | 约 0.332 μm | 约 0.0302 μm | 约 0.302 μm |
| 反偏 5 V | 约 0.906 μm | 约 0.0824 μm | 约 0.824 μm |
由于 N_D 只有 N_A 的十分之一,x_n 是 x_p 的十倍。增加反偏扩大空间电荷区并增强峰值电场,不能从 W 变宽单独推断结一定更耐压,还要看掺杂、结构和击穿场条件。
此式在接近强正偏、耗尽近似失效时不能机械外推到 W = 0,更不能把 V_A > V_bi 后根号变负解释成“耗尽层消失后的通用工作模型”。有限器件尺寸、渐变掺杂和边缘场也需要其他处理。
电压改变储存电荷,所以结也有电容
耗尽电容是端口电荷对电压的小信号变化率。突变结近似有 C_j = ε_s A/W;A 为结面积。取 A = 10⁻⁴ cm²,即 100 μm×100 μm,上述零偏时约 3.12 pF,反偏 5 V 时约 1.14 pF。反偏越大、耗尽区越宽,电容越小,这也是变容器件的工作基础。
这里的电容不等于所有偏置下的完整动态模型。正向注入在中性区储存的少数载流子会带来扩散电容,其频率与寿命相关行为不能只用几何上的 εA/W 解释。
from math import log, sqrt, expm1, isclose
q = 1.602176634e-19
vt = 8.617333262e-5*300
eps = 11.7*8.8541878128e-14 na, nd, ni, area = 1e17, 1e16, 1e10, 1e-4
vbi = vt*log(na*nd/ni**2)
values = []
for applied in [0, -5]:
width = sqrt(2*eps/q*(1/na+1/nd)*(vbi-applied))
xp, xn = width*nd/(na+nd), width*na/(na+nd)
capacitance = eps*area/width
assert isclose(na*xp, nd*xn)
assert isclose(xn/xp, 10)
values.append((width, capacitance))
print(f"V_A={applied} V:W={width*1e4:.4f} μm,Cj={capacitance*1e12:.4f} pF")
assert values[1][0] > values[0][0]
assert values[1][1] < values[0][1]
assert 1e-12*expm1(.3/vt) > 0
print(f"V_bi={vbi:.4f} V;电荷平衡与反偏电容变化通过")
为什么轻掺杂侧耗尽得更宽?
电荷图的左右宽度不是固定各半。蓝色矩形越深,为保持两侧面积绝对值相等,它就越窄。改变反偏时,掺杂比不变,所以两侧宽度同比放大;这也把 W 的平方根关系与 Cj 的倒数关系连起来。
NAxp=NDxn,W∝Vbi+VR,Cj=WεA
正在呈现知识画面
为什么轻掺杂侧耗尽得更宽?两侧电荷大小相等,密度较低的一侧必须占据更宽区域。反偏增加总宽度并减小结电容。
{"id":"pn-depletion-partition","title":"为什么轻掺杂侧耗尽得更宽?","summary":"两侧电荷大小相等,密度较低的一侧必须占据更宽区域。反偏增加总宽度并减小结电容。","height":1000,"html":"<h2 data-i18n=\"heading\"></h2><p class=\"intro\" data-i18n=\"intro\"></p><div class=\"control\"><label for=\"ratio\" data-i18n=\"ratio\"></label><output for=\"ratio\" id=\"ratio-value\"></output><input id=\"ratio\" type=\"range\" min=\"1\" max=\"20\" value=\"10\" step=\"1\"></div><div class=\"control\"><label for=\"bias\" data-i18n=\"bias\"></label><output for=\"bias\" id=\"bias-value\"></output><input id=\"bias\" type=\"range\" min=\"0\" max=\"10\" value=\"0\" step=\"0.1\"></div><div class=\"chart-wrap\"><div class=\"chart-label\" data-i18n=\"space\"></div><svg id=\"space\" class=\"curve\" viewBox=\"0 0 360 210\" role=\"img\" data-i18n-label=\"space\"></svg></div><div class=\"metrics\"><div><span data-i18n=\"xp\"></span><strong id=\"xp\"></strong></div><div><span data-i18n=\"xn\"></span><strong id=\"xn\"></strong></div><div><span data-i18n=\"cap\"></span><strong id=\"cap\"></strong></div><div><span data-i18n=\"built\"></span><strong id=\"built\"></strong></div></div><p id=\"eq\" class=\"formula\"></p><details class=\"scope\"><summary data-i18n=\"scopeLabel\"></summary><p data-i18n=\"scope\"></p></details>","css":".intro{margin:8px 0 18px;color:var(--muted);font-size:14px}.caption,.hint{font-size:12px;color:var(--muted);margin-top:12px}.control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:center;margin:14px 0;font-size:13px}.control label{font-size:13px}.control output{color:var(--accent);min-width:5em;text-align:right;font-variant-numeric:tabular-nums}.control input{grid-column:1/-1;width:100%;margin:0}.presets{display:flex;gap:4px;align-items:stretch}.presets button{flex:1 1 0;min-width:0;overflow-wrap:anywhere;font-size:13px}.actions{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}.actions button{flex:1;min-width:0;font-size:13px;min-height:42px}.copy{display:grid;font-size:14px;margin:16px 0}.copy>*{grid-area:1/1;margin:0}.reserve{visibility:hidden}.scope{margin-top:14px;color:var(--muted);font-size:12px}.scope summary{padding:8px 0;cursor:pointer}.scope p{margin-top:10px}.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.card{border:1px solid var(--rule);border-radius:9px;padding:14px;min-width:0}.card header{font-size:14px;font-weight:600;margin-bottom:10px}.card button{font-size:12px;width:100%;min-width:0}.card small{display:block;font-size:12px;color:var(--muted)}.card code{font-size:12px;overflow-wrap:anywhere}.metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}.metrics>div{border-left:2px solid var(--accent);padding-left:10px;min-width:0}.metrics span{display:block;min-height:3.2em;color:var(--muted);font-size:12px}.metrics strong{font-size:23px;display:block;font-weight:550;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.formula{border-top:1px solid var(--rule);padding-top:12px;margin-top:14px;font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.value{font:550 20px ui-monospace,monospace}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--muted);margin:12px 0}.legend span:before{content:'';display:inline-block;width:8px;height:8px;border-radius:2px;background:var(--accent);margin-right:6px}.legend .second:before{background:var(--second)}.check{display:flex;align-items:center;gap:8px;font-size:13px;margin:12px 0}.check input{width:16px;height:16px;flex-shrink:0;accent-color:var(--accent)}select,input[type=text],input[type=number]{background:var(--paper);color:var(--ink);font:inherit;font-size:13px;padding:10px;border:1px solid var(--rule);border-radius:7px;max-width:100%;min-width:0}select{width:100%;min-height:42px}.band{height:20px;display:flex;background:var(--surface);border-radius:4px;overflow:hidden}.band i{height:100%;display:block;background:var(--accent);transition:width .25s}.band i.second{background:var(--second)}button:disabled{cursor:default}.status{font-size:13px;min-height:4.8em}.mono{font-family:ui-monospace,monospace;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}\n@media(max-width:480px){.two{gap:8px}.card{padding:12px 9px}.actions button,.presets button{font-size:12px}.metrics strong{font-size:20px}.metrics{gap:8px}}\n@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;animation:none!important}}\n.track-row{margin:16px 0}.track-row>span{display:block;font-size:12px;color:var(--muted);margin-bottom:7px}.track{display:flex;gap:5px;min-width:0}.cell{flex:1;min-width:0;min-height:48px;border:1px solid var(--rule);border-radius:5px;background:var(--surface);display:flex;align-items:center;justify-content:center;text-align:center;padding:5px 3px;font-size:12px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.cell.on{background:var(--accent-soft);border-color:var(--accent)}.cell.gold{background:var(--second-soft);border-color:var(--second)}.cell.empty{border-style:dashed;color:var(--muted)}.cell.error{border-color:var(--second);text-decoration:line-through}.choices{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:14px 0}.choices button{min-width:0;padding:10px 4px;font-size:12px;overflow-wrap:anywhere}.choices button[aria-current=true]{border-color:var(--accent);background:var(--accent-soft)}.relation{display:grid;grid-template-columns:minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:6px;margin:12px 0}.relation .cell{min-height:72px}.relation>i{text-align:center;font-style:normal;color:var(--accent)}.readout{font-size:13px;white-space:pre-line;min-height:6.4em;overflow-wrap:anywhere}.plot{position:relative;border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:8px 0;margin:18px 0}.plot-row{height:28px;position:relative;margin:4px 0;background:var(--surface)}.plot-row i{position:absolute;inset-block:5px;background:var(--accent);min-width:2px;transition:width .2s,left .2s}.plot-row b{position:relative;padding:4px 6px;font:11px/28px ui-monospace,monospace;background:var(--paper);border-radius:3px}.axis{display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}\n\n/* Action labels must remain readable across locales and narrow embeds. */\n.actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}\n.actions button{overflow-wrap:anywhere;white-space:normal;min-height:58px;padding:8px}\nbutton{overflow-wrap:anywhere}\n@media(min-width:640px){.actions{grid-template-columns:repeat(3,minmax(0,1fr))}}\n\n.metrics span{overflow-wrap:anywhere}\n.panel{border:1px solid var(--rule);border-radius:9px;padding:12px;margin:14px 0;min-width:0}.panel h3{font-size:13px;margin:0 0 10px;color:var(--muted)}.source{font:13px/1.8 ui-monospace,monospace;white-space:pre-wrap;overflow-wrap:anywhere;margin:12px 0}.source mark{background:var(--accent-soft);color:var(--ink);border-bottom:2px solid var(--accent)}.source .fault{background:var(--second-soft);border-color:var(--second)}.diagram{display:block;width:100%;height:auto;max-height:320px;margin:14px 0;overflow:visible}.diagram text{fill:var(--ink);font:12px ui-monospace,monospace}.diagram .edge{stroke:var(--muted);stroke-width:1.5;fill:none}.diagram .edge.on{stroke:var(--accent);stroke-width:3}.diagram .node{fill:var(--surface);stroke:var(--rule);stroke-width:1.5}.diagram .node.on{fill:var(--accent-soft);stroke:var(--accent)}.diagram .node.gold{fill:var(--second-soft);stroke:var(--second)}.log{font:12px/1.8 ui-monospace,monospace;white-space:pre-line;overflow-wrap:anywhere;min-height:7.2em}.table{display:grid;gap:5px;margin:14px 0}.table .tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.table .tr>*{padding:8px 5px;background:var(--surface);border-radius:4px;min-width:0;overflow-wrap:anywhere;font-size:12px}.table .tr .on{background:var(--accent-soft)}.table .tr .gold{background:var(--second-soft)}.choices button{min-height:44px}.metrics strong{min-height:1.6em}.code-line{display:block}.code-line.on{background:var(--accent-soft);border-left:2px solid var(--accent);padding-left:6px}.status-badge{font-size:12px;color:var(--accent)}.tile-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.tile-grid .cell{min-height:40px}.actions button{min-height:48px}.form-field{display:grid;gap:8px;margin:14px 0;font-size:13px}.form-field input{width:100%;font-family:ui-monospace,monospace}.metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.formula{min-height:3.2em}.presets{flex-wrap:wrap}.presets button{flex-basis:25%;min-height:44px}\n\n.budget{display:flex;height:28px;margin:16px 0;background:var(--surface);border-radius:5px;overflow:hidden}.budget i{display:block;background:var(--accent);transition:width .2s}.budget i.gold{background:var(--second)}.intervals{margin:16px 0}.interval{position:relative;height:36px;background:var(--surface);margin:6px 0;border-radius:4px;overflow:hidden}.interval i{position:absolute;height:100%;background:var(--accent-soft);border-left:2px solid var(--accent)}.interval i.gold{background:var(--second-soft);border-color:var(--second)}.interval span{position:relative;z-index:1;font:12px/36px ui-monospace,monospace;padding-left:7px}.table .tr>*{min-height:4.8em}.formula{white-space:pre-line;min-height:7.2em}.actions:has(>button:only-child){grid-template-columns:1fr}.metrics strong{min-height:3.2em}.rangegrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;margin:14px 0}.rangegrid .cell{min-height:30px;padding:3px 1px;font-size:10px}.message{min-height:7.2em;white-space:pre-line;font:13px/1.8 ui-monospace,monospace;overflow-wrap:anywhere}\n/* Allow CJK hanging punctuation without overflowing a metric's border box. */\n.metrics>div{padding-right:4px}.metrics span{line-break:anywhere}\n\n.chart-wrap{margin:18px 0}.chart-label{font-size:12px;color:var(--muted);min-height:3.2em}.curve{display:block;width:100%;height:auto;max-height:320px;overflow:visible}.curve text{font:11px ui-monospace,monospace;fill:var(--muted)}.gridline{stroke:var(--rule);stroke-width:1}.metrics strong{font-size:20px;min-height:3.2em}.formula{font:12px/1.8 ui-monospace,monospace;min-height:9em}.readout{min-height:8em}.presets button{flex-basis:30%}.scope p{overflow-wrap:anywhere} .unit-note{font-size:12px;color:var(--muted);margin:10px 0}\n\n.metrics span{word-break:break-all;line-break:strict}.metrics>div{padding-right:6px}\n\n","js":"const $=s=>document.querySelector(s);const set=(id,v)=>$('#'+id).textContent=v;const t=k=>viz.t(k);function cells(id,values){$('#'+id).replaceChildren(...values.map(v=>{const e=document.createElement('div');e.className='cell '+(v.cls||'');e.textContent=v.text;e.title=v.title||v.text;return e;}));}function pressed(mode){document.querySelectorAll('[data-mode]').forEach(e=>e.setAttribute('aria-pressed',String(e.dataset.mode===mode)));}const esc=s=>String(s).replace(/[&<>\"']/g,c=>({'&':'&','<':'<','>':'>','\"':'"',\"'\":'''}[c]));const fmt=s=>'{'+[...s].sort().join(', ')+'}';function graph(id,nodes,edges){const el=$('#'+id);el.setAttribute('viewBox','0 0 360 200');el.innerHTML='<defs><marker id=\"arrow-'+id+'\" viewBox=\"0 0 10 10\" refX=\"8\" refY=\"5\" markerWidth=\"5\" markerHeight=\"5\" orient=\"auto-start-reverse\"><path d=\"M 0 0 L 10 5 L 0 10 z\" fill=\"var(--muted)\"/></marker></defs>'+edges.map(e=>{const a=nodes[e[0]],b=nodes[e[1]],dx=b.x-a.x,dy=b.y-a.y,d=Math.hypot(dx,dy)||1;if(edges.some(r=>r[0]===e[1]&&r[1]===e[0])){const nx=-dy/d,ny=dx/d;return '<path class=\"edge '+(e[2]?'on':'')+'\" d=\"M '+(a.x+dx/d*22+nx*12)+' '+(a.y+dy/d*22+ny*12)+' Q '+((a.x+b.x)/2+nx*38)+' '+((a.y+b.y)/2+ny*38)+' '+(b.x-dx/d*25+nx*12)+' '+(b.y-dy/d*25+ny*12)+'\" marker-end=\"url(#arrow-'+id+')\"/>';}return '<line class=\"edge '+(e[2]?'on':'')+'\" x1=\"'+(a.x+dx/d*25)+'\" y1=\"'+(a.y+dy/d*25)+'\" x2=\"'+(b.x-dx/d*28)+'\" y2=\"'+(b.y-dy/d*28)+'\" marker-end=\"url(#arrow-'+id+')\"/>';}).join('')+nodes.map(n=>'<g><circle class=\"node '+(n.cls||'')+'\" cx=\"'+n.x+'\" cy=\"'+n.y+'\" r=\"25\"/><text x=\"'+n.x+'\" y=\"'+(n.y+4)+'\" text-anchor=\"middle\">'+esc(n.name)+'</text>'+(n.sub?'<text x=\"'+n.x+'\" y=\"'+(n.y+43)+'\" text-anchor=\"middle\">'+esc(n.sub)+'</text>':'')+'</g>').join('');}function table(id,rows){$('#'+id).classList.add('table');$('#'+id).replaceChildren(...rows.map(r=>{const row=document.createElement('div');row.className='tr';row.style.gridTemplateColumns='repeat('+r.length+',minmax(0,1fr))';r.forEach(x=>{const c=document.createElement('div');if(typeof x==='object'){c.textContent=x.text;c.className=x.cls||'';}else c.textContent=x;row.append(c)});return row;}));}function band(id,parts,total){$('#'+id).replaceChildren(...parts.map((p,i)=>{const e=document.createElement('i');e.style.width=(100*p.value/total)+'%';e.className=i%2?'gold':'on';e.title=p.name+': '+p.value;return e}));}function intervals(id,items,total){$('#'+id).replaceChildren(...items.map(p=>{const row=document.createElement('div');row.className='interval';const bar=document.createElement('i');bar.style.left=(100*p.start/total)+'%';bar.style.width=(100*(p.end-p.start)/total)+'%';bar.className=p.cls||'';const label=document.createElement('span');label.textContent=p.label;row.append(bar,label);return row;}));}function plot(id,series,xr,yr,opts={}){const e=$('#'+id),X=x=>42+(x-xr[0])/(xr[1]-xr[0])*298,Y=y=>175-(y-yr[0])/(yr[1]-yr[0])*148;let out='<defs><clipPath id=\"clip-'+id+'\"><rect x=\"42\" y=\"27\" width=\"298\" height=\"148\"/></clipPath></defs>';for(let i=0;i<3;i++){let x=xr[0]+i*(xr[1]-xr[0])/2,y=yr[0]+i*(yr[1]-yr[0])/2;out+='<path class=\"gridline\" d=\"M '+X(x)+' 27V175M42 '+Y(y)+'H340\"/><text x=\"'+X(x)+'\" y=\"194\" text-anchor=\"middle\">'+esc(opts.xfmt?opts.xfmt(x):Number(x.toFixed(2)))+'</text><text x=\"36\" y=\"'+(Y(y)+4)+'\" text-anchor=\"end\">'+esc(opts.yfmt?opts.yfmt(y):Number(y.toFixed(2)))+'</text>';}out+='<g clip-path=\"url(#clip-'+id+')\">';for(const s of series){out+='<path fill=\"none\" stroke=\"'+(s.color||'var(--accent)')+'\" stroke-width=\"2.5\" '+(s.dash?'stroke-dasharray=\"5 4\"':'')+' d=\"'+s.pts.map((p,i)=>(i?'L':'M')+X(p[0]).toFixed(2)+','+Y(p[1]).toFixed(2)).join(' ')+'\"/>';}for(const p of opts.points||[])out+='<circle cx=\"'+X(p[0])+'\" cy=\"'+Y(p[1])+'\" r=\"4\" fill=\"var(--second)\" stroke=\"var(--paper)\" stroke-width=\"1.5\"/>';if(opts.cursor!==undefined)out+='<path d=\"M'+X(opts.cursor)+' 27V175\" stroke=\"var(--muted)\" stroke-dasharray=\"3 3\"/>';e.innerHTML=out+'</g>';e.dataset.curves=JSON.stringify(series.map(s=>s.pts));}const curve=(fn,lo,hi,n=120)=>Array.from({length:n+1},(_,i)=>{const x=lo+(hi-lo)*i/n;return[x,fn(x)]});function inputs(draw){document.querySelectorAll('input,select').forEach(e=>{e.addEventListener('input',draw);e.addEventListener('change',draw)});draw()}const n=id=>+$('#'+id).value;const show=(id,v,d=3)=>set(id,Number(v.toFixed(d)));function draw(){let ratio=n('ratio'),vr=n('bias'),nd=1e16,na=ratio*nd,eps=11.7*8.8541878128e-14,q=1.602176634e-19,bi=.025852*Math.log(na*nd/1e20),w=Math.sqrt(2*eps/q*(1/na+1/nd)*(bi+vr)),xp=w/(1+ratio)*1e4,xn=w*ratio/(1+ratio)*1e4;show('ratio-value',ratio);show('bias-value',vr);plot('space',[{pts:[[-xp,0],[-xp,-ratio],[0,-ratio],[0,0]]},{pts:[[0,0],[0,1],[xn,1],[xn,0]],color:'var(--second)'}],[-1.4,1.4],[-20,2]);show('xp',xp,4);show('xn',xn,4);show('cap',eps*1e-4/w*1e12,3);show('built',bi,4);set('eq','NA xp / ND = '+(ratio*xp).toFixed(4)+' μm\\nxn = '+xn.toFixed(4)+' μm\\nW = '+(xp+xn).toFixed(4)+' μm; Cj = εA/W');$('#space').dataset.values=JSON.stringify([xp,xn,bi,w]);}inputs(draw);","audio":false,"strings":{"bias":"反偏 VR(V)","built":"内建电势(V)","cap":"结电容(pF)","heading":"为什么轻掺杂侧耗尽得更宽?","intro":"改变掺杂比与反偏,比较两侧宽度和电荷量。","ratio":"NA / ND","reset":"重置","scope":"300 K 硅突变结,ND=10¹⁶ cm⁻³、ni=10¹⁰ cm⁻³、A=10⁻⁴ cm²;耗尽近似,无击穿与边缘场。","scopeLabel":"模型范围与约定","space":"蓝:P 侧;金:N 侧。横轴 μm,纵轴固定电荷密度 / qND","xn":"N 侧宽度(μm)","xp":"P 侧宽度(μm)"}}
动态与击穿边界
反向恢复涉及已注入电荷
从正向导通切换到反偏,先前注入的少数载流子需要被抽走或复合,可能出现一段反向电流。反向恢复电荷、峰值与时间取决于此前电流、切换斜率、反向电压、温度和器件结构,不能把一个 t_rr 当成与测试条件无关的固定延迟。
即使没有显著的少数载流子存储,电压变化时仍可能有结电容/其他寄生电容的充放电电流。所以“无反向恢复”不能直接翻译成“开关时没有任何反向电流”。相关选型在下一篇具体二极管中展开。
隧穿与雪崩是不同的增流机制
反偏很强时,窄耗尽区中的强电场可促成带间隧穿;另一种机制是载流子在场中获得能量,碰撞产生更多电子—空穴对,形成雪崩倍增。前者不是经典地“直接扯断共价键”,后者也不是单纯电阻突然变小。
低击穿电压结常有较强隧穿成分,较高电压常以雪崩为主,中间可同时存在,不能把 5 V 画成严格物理分界。两种机制温度系数通常不同,且具体工作电流会影响观察结果。Nexperia:齐纳与雪崩机制
击穿现象本身不等于必然永久损坏,但只有器件与电路把电流、功率、脉冲能量和温度控制在适用范围内,才可能按设计重复工作。普通结未必额定允许雪崩,不能把“可逆”当成任意器件可直接进入击穿的保证。
温度系数要指明工作条件
固定正向电流下,许多硅 PN 结的正向压降会随温度上升而降低,但 −2 mV/°C 是局部近似,会随电流和器件改变;固定电压下则可能表现为电流显著增加。反向漏电也没有跨器件、宽温区统一的“每 10°C 翻倍”规则。
下一篇 二极管 将这些机制对应到整流、肖特基、稳压、保护与光电器件的数据手册参数,保留查阅时所需的工作条件。