ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

MOS管线性区电流公式详解:从推导到NMOS/PMOS工程应用

MOS管线性区电流公式详解:从推导到NMOS/PMOS工程应用 前两天群里有人发了个截图问某国产MOS管手册里的线性区电流公式是不是写错了——“同一个管子饱和区公式里没有VDS线性区反而出来一个VDS²/2这不明摆着反直觉吗”这个问题我太熟了。做硬件的人十个里有八个对MOS管的开关功能门儿清但一落到线性区电流公式就开始含糊有人说“这就是可变电阻区的I-V关系”有人说“背下来就行”可真要算个压降、估个导通电阻或者拿仿真扫个曲线很多人还是不知道公式里每一项到底在干什么。这篇我打算用最直白的方式把MOS管线性区电流公式从头拆到尾再把NMOS和PMOS放在一起对比。不堆公式推导的数学细节重点放在“公式为什么长这样”“用的时候哪些项能丢、哪些项不能丢”以及“工程上到底怎么用”。适合刚接触MOS管的入门工程师也适合一直会看曲线但始终没把公式吃透的硬件老手。1. 线性区到底是个什么区先别急着背公式1.1 MOS管的三个工作区域要理解线性区得先把MOS管的输出特性曲线整个看一遍。忘了那一堆偏微分术语只看一个NMOS管在VGS固定时的ID-VDS曲线大致就是一条从原点“先往上扬、再拐弯、然后持平”的曲线。这个曲线上有三个特征段截止区VGS小于阈值电压VTH沟道没形成ID几乎为零管子不导通。线性区可变电阻区VDS比较小曲线接近直线管子像一个电压控制的可变电阻。饱和区放大区VDS继续增大到某个点后电流几乎不再随VDS变化管子表现出恒流特性。这里最容易被绕晕的就是“线性”和“饱和”这两个词。好多人一听“饱和”第一反应是“管子完全导通电流最大”。结果一看电路MOS管做开关时又明明工作在“线性区”一下就蒙了。实际上这里的“饱和”说的是MOS管内部夹断效应的开始不是电流到顶的意思。而“线性”指的是ID与VDS呈近似的线性关系也就是“电阻特性”。一个管子做开关时我们希望它导通后的压降尽量小也就是工作在线性区里VDS非常小的那一段此时它等效为一个很小的电阻而做放大器时反而要让管子工作在饱和区利用它的恒流特性来放大信号。所以学这个公式之前先把这个分区逻辑记牢不然越看越乱。1.2 用一根“可变水管的阻力”来理解沟道把MOS管想象成一根扁平的橡胶水管水管的宽窄由“栅极电压”来控制。VGS越高水管被压得越扁……不对是越撑开水流阻力越小。然后“漏源电压VDS”就是水管两端的压差。VDS越大水流越快。但当VDS到达某个程度后靠近漏端那一段水管被夹得更厉害以至于你在“漏端”再怎么加压力水流也没法明显变快——这就是饱和区的夹断现象。而线性区呢就是VDS还比较小水管两端压差不大水流速度和压差基本成比例。这时候整根水管从头到尾的“横截面积”虽然有差异但还不至于出现明显的夹断点于是电流跟VDS表现为近似线性的关系。这个类比能帮你做第一层理解线性区 压差小管道尚未发生严重不均匀夹断时的区域此时MOS管表现出来的是“电阻”特性而不是“恒流”特性。2. 线性区电流公式是怎么来的2.1 从沟道电荷到电流的推导思路核心公式是这张ID μn·Cox·(W/L)·[(VGS - VTH)·VDS - ½·VDS²]适用条件VGS VTH 且 VDS VGS - VTH。这个公式咋来的它不是一个拍脑袋的经验式而是从最基本的“电流 电荷密度 × 速度”推出来的。我们一步步捋你会发现每个因子都有物理对应不是用来吓人的。第一步沟道里某一点能导电的电荷量由该点的有效栅压决定。栅极电压和沟道之间的电压差决定了这个点能吸引多少载流子形成导电沟道。在靠近源端沟道和源极之间的电压差是VGS所以有效电压是VGS - VTH但到了靠近漏端那一点沟道电位已经不再是源极电位而是接近VDS所以那一点的有效栅压会变成VGS - VDS - VTH。第二步从源端走到漏端每一点的沟道电位都在“从0慢慢变大到VDS”于是沟道电荷密度不是均匀的而是从源端向漏端逐渐变薄。这就是“渐变沟道近似”的核心思想——把沟道分割成很多个微小段每一段看作一个局部电阻然后把所有微段串联积分。第三步积分出来的结果就是ID μn·Cox·(W/L)·∫(VGS - V(x) - VTH)dV(x)积分上限从0到VDS算出来就是那个带平方项的式子。第三步积分出来的结果就是ID μn·Cox·(W/L)·∫(VGS - V(x) - VTH)dV(x)积分上限从0到VDS算出来就是那个带平方项的式子。所以那个½VDS²的本质是沟道电荷密度从源端到漏端逐渐变化带来的“修正项”。如果你假设沟道各处电荷密度都一样你就丢掉这个修正项得到的就是简化版的线性电阻公式。2.2 完整公式与简化公式的适用边界完整公式看着复杂但VDS非常小的时候平方项可以忽略。工程上经常用到的简化式是ID ≈ μn·Cox·(W/L)·(VGS - VTH)·VDS此时VDS很小MOS管像一个线性电阻RDS(on) ≈ 1 / [μn·Cox·(W/L)·(VGS - VTH)]这组简化关系相当重要。它能解释很多你实际会碰到的现象为什么VGS越高导通电阻越低因为VGS - VTH变大分母变大电阻变小。为什么把管子做大W/L变大导通电阻能降下来因为分母里的(W/L)变大了。为什么VDS接近VGS - VTH时I-V曲线开始弯曲因为平方项逐渐占主导电流增长变缓管子从线性区往饱和区过渡。那么完整公式到底什么时候用我的建议是当VDS已经超过(VGS - VTH)的三分之一左右时平方项就不再是可有可无了此时再拿简化公式估算误差可能超过20%。比如VGS5V、VTH1.5V那么VGS - VTH3.5V如果VDS做到1V以上简化公式的误差就开始明显。算精确电流、画I-V曲线、做仿真验证时用完整形式做个快速估算看看导通电阻量级直接用简化式就够了。3. NMOS和PMOS的对比符号、方向、极性3.1 结构差异带来的三个根本不同NMOS和PMOS在结构上是对称的。NMOS的导电沟道是N型载流子是电子PMOS的导电沟道是P型载流子是空穴。这一条就决定了后面所有符号、方向、电流方向上的差异。具体来说三个根本不同是第一载流子种类不同迁移率差很多。室温下硅中电子迁移率大约是空穴的2到3倍所以同等尺寸条件下NMOS的导通能力天然比PMOS强。这也是为什么在同一工艺里PMOS管想要达到同样的导通电阻往往需要把W做得比NMOS大或者干脆并联多个管子。你看到电路里PMOS的面积比NMOS大一圈就是这个原因。第二阈值电压极性不同。NMOS的VTH是正的比如0.5V到1.5VPMOS的VTH是负的比如-0.5V到-1.5V。这意味着PMOS管的栅源电压必须低于阈值电压栅极比源极负得多才能形成导电沟道。手册上写PMOS的VGS(th)通常是-0.6V这类值就是这个道理。第三电流方向与电压参考极性正好相反。NMOS通常按“漏极流向源极”作为正方向电流“从漏进、从源出”PMOS因为载流子是空穴实际电流是从源极流向漏极和NMOS的习惯方向正好反过来。你如果严格按电压定义去套公式PMOS的VDS、VGS基本全是负的算起来特别绕。3.2 公式怎么写才不容易出错很多人在这一步开始犯迷糊同一个线性区公式到底能不能直接套给PMOS我的建议是工程计算时先别管符号先把所有电压取绝对值算出导通电阻和电流大小最后再根据具体电路方向标定实际电流方向。也就是用下面这个“绝对化”版本ID μp·Cox·(W/L)·[(|VGS| - |VTH|)·|VDS| - ½·|VDS|²]适用条件|VGS| |VTH| 且 |VDS| |VGS| - |VTH|。注意这时候迁移率要写成μp因为PMOS用的是空穴迁移率数值大概是NMOS中电子迁移率的一半多一点。比如一个PMOS管VGS -3.3VVTH -0.8VVDS -0.5V那算的时候就是|VGS|3.3|VTH|0.8|VDS|0.5代进去得到ID的绝对值。然后看电路连接如果是源极接电源、漏极接负载那电流方向就是从源极流向漏极也就是从电源流向负载方向跟NMOS的习惯电流方向相反。用个口诀记极性看符号数值看绝对值方向看电路连接。这样即使你一直下意识用NMOS的思维去理解PMOS也不会算错。另外要提醒的是如果你在仿真软件里看电流波形PMOS的ID经常显示为负值这是SPICE建模的惯例——电流正方向定义为漏极流入。看到负值别慌不是管子反向导通了只是符号约定。3.3 NMOS与PMOS典型应用位置对比理解了公式之后我们看一个实际的电路层面差异。NMOS和PMOS在开关应用中的位置几乎是对称的NMOS做低边开关源极接地负载接在漏极和电源之间。用MCU输出高电平给栅极就能导通驱动简单成本低是低压系统中用得最多的开关结构。PMOS做高边开关源极接电源负载接在漏极和地之间。栅极要拉到比电源电压低至少一个|VTH|才能导通所以需要额外的电平转换或者负压驱动电路会复杂一些但好处是在很多负载需要直接接到电源端时PMOS高边开关是最方便的防反接、防短路方案。所以别只看公式选型时把NMOS和PMOS的导通条件、驱动难度、电流方向结合起来看才能理解为什么有些电路一定要用PMOS高边为什么有些电路打死不用PMOS——比如低电压大电流场景下PMOS因为迁移率低同样的RDS(on)要占更大面积、更贵厂商就倾向让你用NMOS加自举驱动。3.4 NMOS与PMOS关键参数对照表为了方便查阅我把最常被问到的差异项整理成一张表对比项NMOSPMOS导电载流子电子空穴迁移率较高约PMOS的2~3倍较低阈值电压VTH正0负0开启条件VGS VTHVGS VTH工程常用说法VGS为正压开启VGS为负压开启电流方向按源漏定义漏极流入、源极流出常规电流D→S空穴从源流向漏常规电流S→D线性区公式中的迁移率μnμp常见开关位置低边源极接地高边源极接电源相同尺寸下的RDS(on)更小更大MCU直接驱动容易高电平开启不容易栅极需低于源极这张表大家可以存下来选型时瞄一眼很实用。4. 公式落地从纸上到电路板4.1 用公式估算导通电阻与压降回到实操。做电源开关、负载开关、电机动驱动时最常用的就是让MOS管工作在线性区VDS很小的那一段此时直接用简化公式求RDS(on)。举个例子。某规格书标出AO3400在VGS4.5V时RDS(on)典型值约25mΩ。假设你现在要用它做一块3A负载的低边开关那可以估算的导通压降是VDS ID × RDS(on) 3A × 25mΩ 75mV传导功耗P ID² × RDS(on) 9 × 0.025 225mW如果这个管子封装是SOT-23热阻大约在150°C/W到250°C/W之间那温升就是0.225W × 200°C/W ≈ 45°C。假如环境温度是40°C结温就已经到了85°C左右。这时候再叠加开关损耗温度大概率会更高。这种估算在三五分钟内就能完成非常实用。很多人上来就问“这个管子能过几安电流”其实最靠谱的思路是先通过公式把RDS(on)吃透再估算温升再看散热条件。再看一个选型问题为什么有时候换一个更大封装、同电压等级、但RDS(on)更小的管子系统温升反而没有显著改善因为RDS(on)的下降往往意味着栅极电荷Qgc的上升驱动损耗加大。这个就是公式之外必须考虑的因素了别只盯着线性区公式里的电阻项。4.2 用仿真验证公式Gm/ID设计法有些人在做模拟IC设计时会用到Cadence Virtuoso中的Gm/ID方法。这方法和我们讨论的线性区公式有什么关系其实本质就是一回事。Gm/ID方法里Gm是跨导ID是漏极电流。在线性区Gm ∂ID/∂VGS ≈ μCox(W/L)·VDS所以Gm/ID ≈ VDS / (VGS - VTH)……这样看可能有点绕但核心思想是通过调整VGS和VDS让MOS管工作在合适的区域用一个叫“反型系数”的参数来衡量管子处于强反型还是弱反型。当你需要用Virtuoso扫描某个尺寸下NMOS的Gm/ID曲线时通常做法是固定器件宽度和长度用DC扫描VGS从0扫到电源电压再分别跑低VDS和高VDS的两组曲线。低VDS那一组就对应线性区高VDS对应饱和区。Gm/ID曲线上会明显看到线性区时候的Gm/ID比较小饱和区的时候更大。这正好从仿真层面验证了线性区公式里“ID对VGS依赖程度不高”的性质。我自己的经验是做模拟设计时用Gm/ID方法辅助选尺寸能省下大量手动试凑W/L的时间。但一定要先把线性区公式和饱和区公式的差异刻在脑子里不然扫出来的曲线根本看不明白。4.3 用公式判断驱动电压够不够还有一个特别常见的场景MCU的GPIO输出3.3V直接驱动一个MOS管开关结果带载后发热严重甚至带不动负载。这时候用公式反推一下就能找到原因。以一个典型NMOS功率管为例VTH为1.5VVGS3.3V时VGS-VTH1.8V。假设此时管子实测RDS(on)为80mΩ而VGS10V时RDS(on)只有10mΩ你说驱动电压差了多少倍电流一大80mΩ上产生的功耗直接把管子烫上天。用线性区简化公式来看RDS(on)与(VGS - VTH)成反比VGS从10V降到3.3V有效栅压从8.5V降到1.8V差了4.7倍RDS(on)理论上就会上升4.7倍左右实测80mΩ和10mΩ的倍数关系基本吻合。所以如果发现MOS管发热、压降过大先算这个VGS是否充分大于VTH。再看VDS是否远小于VGS-VTH。如果VGS只比VTH高一点点管子根本没被“完全开通”它工作在临界线性区/预夹断附近等效电阻很大发热自然厉害。这就是为什么很多大功率MOS管驱动电路不让MCU直驱而要加一级专门的栅极驱动芯片或者三极管推挽目的就是给出更高的VGS和足够的驱动电流。4.4 为什么VDS特别小的时候公式反而好用你可能会有个疑惑线性区公式既然随着VDS增大越来越不准那为什么实际工程中大家反而非常依赖它因为真实系统中MOS管做开关绝大多数时间工作在VDS非常小的区域——要么是截止无电流要么是导通但VDS只有几十到几百毫伏。在VDS小到比(VGS - VTH)小一个数量级时平方项占比非常小完整公式几乎就等价于简化式误差只有百分之几。这个区域恰恰是电源设计、负荷开关、电池保护电路中最重要的区间。所以线性区公式用得好不好直接决定了你对开关管压降、损耗、发热的把握水平。反过来如果有人问你“MOS管做恒流源时工作在那个区”答案不是线性区而是饱和区那用的公式就得换成饱和区公式别搞混了。5. 常见坑与实测经验5.1 坑1把VDS²/2直接丢弃导致大误差很多初学者拿到公式看简化版简洁好记就一直用简化版也不管VDS实际有多大。当VDS已经超过VGS - VTH的一半时平方项的数值会相当可观。举个例子VGS 3.3VVTH 0.8VVDS 1.5VVDS仍然小于VGS - VTH 2.5V所以管子还在线性区我们算一下第一项(VGS - VTH)·VDS 2.5 × 1.5 3.75第二项½·VDS² ½ × 2.25 1.125也就是说完整公式的电流是3.75 - 1.125 2.625比例单位而简化公式直接给你3.75误差达到了43%。这时候如果你还在用简化公式预估电流结果会严重偏高。所以我在做仿真和手算时一定会先确认VDS和(VGS - VTH)的比例关系。VDS如果超过有效栅压的三分之一就老老实实用完整公式如果只是一两成以内才放心用简化式。5.2 坑2拿线性区公式去算饱和区电流这个错误见过太多次了。有人看到手头只有线性区公式就直接拿它去计算一个VDS已经很大的管子算出来的电流大得离谱还怪公式不对。问题在于VDS一旦大于VGS - VTH管子已经进入饱和区线性区公式不再适用。饱和区电流公式是这样的ID ½·μn·Cox·(W/L)·(VGS - VTH)²注意饱和区公式里没有VDS这意味着电流基本不随VDS变化。区分标准就一条VDS与VGS - VTH的大小关系。VDS小用线性区公式VDS大用饱和区公式。在VDS恰好等于VGS - VTH那个点两个公式算出来是连续的因为把VDS VGS - VTH代入线性区公式正好得到饱和区公式的值。顺便提醒一下这个连续性的推导很值得自己动手验算一遍能加深印象以后不会再搞混。5.3 坑3忽略VTH随温度与体效应的变化线性区公式里VTH不是一个固定常数。它受温度和体效应影响很大。温度对VTH的影响NMOS管的VTH温度系数一般是负的温度升高VTH略降开启会更“容易”。PMOS也有类似趋势但幅度有差异。这会导致你按常温参数算的RDS(on)在高温下实际值会发生变化。体效应如果MOS管的源极没有接到衬底也就是源衬之间有电压差那么VTH会明显增大。典型场景是高边PMOS开关里PMOS的源极接电源衬底也接电源源衬压差为零VTH比较正常。但如果哪天一不留心把衬底接到地了VTH会大很多导致管子无法正常开启。所以每次代公式先确认源极和衬底有没有连在一起手册里给的VTH是在什么条件下测的不然算出来的电阻误差会大到怀疑人生。5.4 用示波器和万用表验证MOS管是否在工作最后分享一下实际测试的小经验。你设计好电路之后怎么快速判断MOS管到底有没有工作在线性区用示波器同时测VGS和VDS波形。如果VGS已经高于VTHVDS仍然很大比如等于电源电压说明管子没通要么栅极没驱动起来要么负载断路。如果VDS很小说明管子已经进入线性区导通良好。用万用表二极管档测体二极管。MOS管本体自带一个寄生二极管源漏之间测到的正向压降通常就是这个二极管。很多人用这个判断管子是否击穿但要注意这个二极管在线性区工作时是正常的不要误以为故障。测电流时可以用电流探头或者串一个小阻值采样电阻。如果串了采样电阻要留意采样电阻本身的压降会不会改变VDS。在大电流测试中采样电阻的压降会让管子的VDS变大导致管子偏离线性区更远你说不定会看到一个奇怪的“电流上不去”现象。5.5 常见问题速查表你现在遇到的问题可能的原因用公式怎么分析VGS满足导通条件但VDS居高不下管子没进入线性区可能驱动电压不够检查VGS - VTH是否远大于实际VDS常温测试正常高温下压降变大VTH随温度变化或RDS(on)温度系数升高按结温重新代入RDS(on)估算损耗大电流时MOS管发热严重驱动不足或工作点偏到临界线性区算VDS与VGS - VTH的比例关系PMOS驱动不起作用栅极电平没有低于源极检查VGS绝对值是否大于VTH绝对值电流波形与仿真差异大采样电阻压降影响了VDS用完整公式重算实际VDS处的电流写在最后公式这个东西看着是死的但用起来是活的。我个人的体会是MOS管线性区电流公式真正的价值不在于让你“算出某个精确的电流值”而在于帮你建立一条理解链路VGS管沟道、VDS管压差、W/L管能力然后你才能看懂手册参数、判断电路故障、做快速选型和估算。如果你现在正被某个MOS管开关电路卡住先别急着翻手册后面的应用笔记回到这个公式把VGS、VTH、VDS三个值往里面一套很多问题当场就能水落石出。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进