51c嵌入式~MOS~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/12074888
一、MOS管:米勒效应、开关损耗以及参数匹配
MOS管即场效应管(MOSFET),属于压控型,是一种应用非常广泛的功率型开关元件,在开关电源、逆变器、直流电机驱动器等设备中很常见,是电力电子的核心元件。
MOS管有N沟道和P沟道之分,N沟道相当于NPN的三极管;P沟道相当于PNP的三极管。实际设计及应用中,N沟道MOS管占绝大多数,所以下面以N沟道MOS管为例进行讲解(如图1中Q3,栅极-G;漏极-D;源极-S)。
MOS管的使用通常可以分为以下两种情形:
①参与普通的逻辑控制
和三极管一样作为开关管使用,电流可达数安培,如下图为MOS管驱动直流电机电路。R6下拉电阻是必须的(取值一般10--20k),原理和NPN三极管下拉电阻一样;原理下面~ 下三极管的应用电路。
此类应用的MOS管Vgs电压大于门槛电压4.5V(又叫平台电压)即可正常使用。小功率的逻辑控制本人还是选择使用三极管。
②参与PWM控制
例如~浅析PWM控制电机转速的原理,桥式驱动电路以及开关电源电路等应用广泛。
如下图为有刷直流电机桥式驱动电路,G1、G2、G3、G4为推挽PWM控制,VS1、VS2接电机,可实现大功率直流电机调速,正反转控制。此类应用的MOS管Vgs电压大于10V,通常使用12V(为保证导通深度,PWM的幅值为12V)。且G极的电阻必须是小电阻通常取4.7--100Ω,与电阻并联一个反向二极管,目的是保证MOS管的关断速度比导通速度快,防止上桥与下桥直通短路。
彻底了解MOS管,从以下两点入手:
- 什么是米勒效应,米勒效应下为什么会有Vgs平台电压
- MOS管的开关损耗、导通损耗、续流损耗
如下图所示,G极与D极存在极间电容Cgd,G极与S极存在极间电容Cgs,当G极有高电平信号时,电容Cgs充电到门槛电压4.5V时,DS极开始导通,D极电平下降趋近于0V,此过程电容Cgd开始充电,使G极电压在短时间内保持在4.5V,这就是米勒效应。
该门槛电压Vgs就是MOS管的平台电压;该平台电压的在MOS管开通和关断期间都存在,其宽度与G极电阻有直接的关系。
如下图为G极电阻为10Ω时MOS管开通的波形,红色代表Vgs的电压波形,蓝色代表Vds的电压波形。平台电压的宽度很窄(黄色箭头),在平台电压下DS极间是变阻区,Vds很窄(绿色箭头)。
如下图为G极电阻为100Ω时MOS管开通的波形,平台电压的宽度变宽明显(黄色箭头),在平台电压下DS极间是变阻区,Vds变缓(绿色箭头)。
如下图为G极电阻为200Ω时MOS管开通的波形,平台电压的宽度变宽更明显(黄色箭头),在平台电压下DS极间是变阻区,Vds变缓更大(绿色箭头)。
如下图为G极电阻为200Ω时MOS管关断的波形,同样有平台电压的存在。
MOS管的损耗意味着发热,要使MOS管正常工作,必须了解各种损耗,如下图。
开关损耗分为MOS管的开通损耗和关断损耗,G极电阻的大小决定了开通和关断的速度,该电阻越大开关损耗越大;
导通损耗取决于DS极间导通后的等效电阻Rds(on),该电阻越大导通损耗越大;
续流损耗指的是S极到D极间的正向二极管的损耗,该损耗通常不考虑(本文略)。
如下图,对MOS管的选型,主要参数都会在前面直接给出(红框内),DS极耐压(Vdss)通常选择工作电压的1.5--2倍;漏极电流(Id)通常选择工作电流的5--10倍;Rds(on)尽量越小越好。另外G极的Vgs电压范围是±20V以内,几乎所有的MOS管都如此。
小结
- MOS管的开关损耗跟设计有直接的关系,缩短导通和关断时间可有效降低开关损耗
- 驱动MOS管的推挽电路很多都已集成在驱动芯片内部,输出能力很强,通常电流可达1A
1.1、下三极管的应用电路
三极管有三个工作状态:截止、放大、饱和,放大状态很有学问也很复杂,多用于集成芯片,比如运放,现在不讨论。
其实,对信号的放大我们通常用运放处理,三极管更多的是当做一个开关管来使用,且只有截止、饱和两个状态。
截止状态看作是关,饱和状态看作是开。
Ib≥1mA时,完全可以保证三极管工作在饱和状态,对于小功率的三极管此时Ic为几十到几百mA,驱动继电器、蜂鸣器等功率器件绰绰有余。
三极管电路举例
把三极管箭头理解成一个开关,如下图为NPN型三极管,按下开关S1,约1mA的Ib流过箭头,三极管工作在饱和状态,c极到e极完全导通,c极电平接近0V(GND),负载RL两端压降接近5V。
Ib与Ic电流都流入e极,根据电流方向,e极为低电平,应接地,c极接负载和电源。
如下图为PNP型三极管,按下开关S2,约1mA的Ib流过箭头,三极管工作在饱和状态,e极到c极完全导通,c极电平接近5V,负载RL两端压降接近5V。
Ib与Ic电流都流出e极,根据电流方向,e极为高电平,应接电源,c极接负载和地。
如下图NPN三极管,对于NPN三极管更应该在b极加一个下拉电阻,一是为了保证b、e极间电容加速放电,加快三极管截止;二是为了保证给三极管b极一个已知逻辑状态,防止控制输入端悬空或高阻态时对三极管工作状态的不确定。
如下图是PNP三极端,对于PNP三极管,更应该在b极加一个上拉电阻,原理同上。
下图NPN三极管,对于感性负载,必须在负载两端并联一个反向续流二极管,因为三极管在关断时,线圈会自感产生很高的反向电动势,而续流二极管提供的续流通路,同时钳位反向电动势,防止击穿三极管。
续流二极管的选型必须是快恢复二极管或肖特基二极管,两者响应速度快。
如下图的NPN三极管,对于某些控制信号为低电平时,可能并不是真正的0V,一般在1V以内,为保证三极管完全截止,不得不在三极管b极加一个反向稳压管或正向二极管,以提高三极管导通的阈值电压。
根据个人经验,推挽输出的数字信号不用加,OC输出、二极管输出以及延时控制有必要加,通常稳压管正常的工作电流≥1mA。
下图是用三极管实现继电器的延时控制的例子。
为三极管延时导通,快速关断的一个仿真电路,D1、R2、C1、D2构成延时导通Q2的回路,C1的电压为12V的时候Q2导通,R3、Q1、R4、R1构成快速关断Q2的回路,C1通过R3和Q1快速放电。
要点
- 对于NPN三极管,在不考虑三极管的情况下,b极电阻与下拉电阻的分压必须大于0.7V,PNP同理。
- b极电流必须≥1mA可保证三极管处于饱和状态,此时Ic满足三极管最大的驱动能力。
- 另外,对于三极管的放大倍数β,指的是输出电流的驱动能力放大了β,比如100倍,并不是把输出电流真正的放大了100倍。
1.2、浅析PWM控制电机转速的原理
经常使用的直流电机原理就是电生磁:通电导线会产生磁场。
也就是电磁感应 旋转磁场带动转子转动。
电动机是由定子和转子组成,一个产生旋转磁场,一个为磁极,电机的转子(轴承)就转起来了。
这便实现了电能->磁能->机械能的转换。
下面这个图可以更直观的理解:
PWM原理
关于PWM的原理请参照~PWM原理及其应用。
通过上文大概知道,通过PWM控制电机速度,实际上是控制供电电流的大小来实现。
通电导线在磁场中受到的力称为安培力,而安培力的公式:F=BIL。
其中,F是受力大小,I是电流大小,L是导线长度。在其他条件不变的情况下,控制其通过的电流即控制安培力的大小。
电机的电阻R 是基本不变的,那么电流 I = U/R,F= BLU/R。
在R B L不变的情况,控制安培力的大小,本质就是修改供电电压的大小。
我们也就知道,控制电机转速的本质就是给电机供不同的供电电压,电压越大,电机转速越快。
而PWM的本质就是脉宽调制,通过输出不同的占空比,从而将直流电压转换成不同电压值的模拟信号。
控制电机速度
占空比可以实现对电机转速的调节,我们知道,占空比是高电平在一个周期之中的比值,高电平的所占的比值越大,占空比就越大,对于直流电机来讲,电机输出端引脚是高电平电机就可以转动,当输出端高电平时,电机会转动,但是是一点一点的提速,在高电平突然转向低电平时,电机由于电感有防止电流突变的作用是不会停止的,会保持这原有的转速,以此往复,电机的转速就是周期内输出的平均电压值,所以实质上我们调速是将电机处于一种,似停非停,似全速转动又非全速转动的状态,那么在一个周期的平均速度就是我们占空比调出来的速度了。
总结
在电机控制中,电压越大,电机转速越快,而通过PWM输出不同的模拟电压,便可以使电机达到不同的输出转速。
当然,在电机控制中,不同的电机都有其适应的频率 频率太低会导致运动不稳定,如果频率刚好在人耳听觉范围,有时还会听到呼啸声。频率太高的电机可能反应不过来,正常的电机频率在 6-16kHZ之间为好。
输出的电压就不同,电机转速就不同。那我们可以知道,通过滑动变阻器或者更换不同电压的电源都可以实现电机的调速,但是在实际应用中显然PWM更方便些。
专业一点的话就是:
所谓PWM就是脉宽调制器,通过调制器给电机提供一个具有一定频率的脉冲宽度可调的脉冲电。脉冲宽度越大即占空比越大,提供给电机的平均电压越大,电机转速就高。反之脉冲宽度越小,则占空比越越小。提供给电机的平均电压越小,电机转速就低。
1.3、PWM原理及其应用
什么是PWM
PWM(Pulse Width Modulation)简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在测量、通信、工控等方面。
PWM的频率
是指在1秒钟内,信号从高电平到低电平再回到高电平的次数,也就是说一秒钟PWM有多少个周期,单位Hz。
PWM的周期
T=1/f,T是周期,f是频率。
如果频率为50Hz ,也就是说一个周期是20ms,那么一秒钟就有 50次PWM周期。
占空比
是一个脉冲周期内,高电平的时间与整个周期时间的比例,单位是% (0%-100%)
一个周期的长度,如下图所示。
其中,周期是一个脉冲信号的时间,1s内的周期T次数等于频率f,脉宽时间是指高电平时间。
上图中,脉宽时间占总周期时间的比例,就是占空比。
比方说,周期的时间是10ms,脉宽时间是8ms,那么占空比是8/10= 80%,这就是占空比为80%的脉冲信号。
PWM就是脉冲宽度调制,通过调节占空比就可以调节脉冲宽度。
PWM原理
以STM32单片机为例,其IO口只能输出高电平和低电平。
假设高电平为5V、低电平则为0V,那么要输出不同的模拟电压就要用到PWM。通过改变IO口输出的方波的占空比,从而获得使用数字信号模拟成的模拟电压信号。whao开发板商城测试设备
电压是以一种脉冲序列被加到模拟负载上去的,接通时是高电平1,断开时是低电平0。接通时直流供电输出,断开时直流供电断开。通过对接通和断开时间的控制,理论上来讲,可以输出任意不大于最大电压值5V的模拟电压。
比方说,占空比为50%那就是高电平时间一半,低电平时间一半。在一定的频率下,就可以得到模拟的2.5V输出电压。那么75%的占空比,得到的电压就是3.75V,如下图所示。 www.143ai.com
也就是说,在一定的频率下,通过不同的占空比即可得到不同大小的输出模拟电压,PWM就是通过这种原理实现数字模拟信号转换的。
PWM应用
LED呼吸灯
以经常使用的呼吸灯举例。
一般人眼睛对于80Hz以上刷新频率则完全没有闪烁感,那么我们平时见到的LED灯,当它的频率大于50Hz的时候,人眼就会产生视觉暂留效果,基本就看不到闪烁了,而是误以为是一个常亮的LED灯。
由于频率很高时看不到闪烁,占空比越大LED越亮,占空比越小LED越暗。所以,在频率一定时,可以用不同占空比改变LED灯的亮度,使其达到一个呼吸灯的效果。
PWM对电机转速的控制
调节占空比可以实现不同电压的输出,实现对电机转速的调节。
对于直流电机来讲,电机输出端引脚是高电平电机就可以转动,当输出端高电平时,电机会转动,但是是一点一点的提速,在高电平突然转向低电平时,电机由于电感有防止电流突变的作用是不会停止的,会保持这原有的转速,以此往复,电机的转速就是周期内输出的平均电压值,所以实质上我们调速是将电机处于一种,似停非停,似全速转动又非全速转动的状态,那么在一个周期的平均速度就是我们占空比调出来的速度了。
在电机控制中,电压越大,电机转速越快,而通过PWM输出不同的模拟电压,便可以使电机达到不同的输出转速。
当然,在电机控制中,不同的电机都有其适应的频率 频率太低会导致运动不稳定,如果频率刚好在人耳听觉范围,有时还会听到呼啸声。频率太高时,电机可能反应不过来,正常的电机频率在 6-16kHZ之间为好。
PWM对舵机的控制
舵机的控制就是通过一个固定的频率,给其不同的占空比来控制舵机不同的转角。
舵机的频率一般为频率为50HZ,也就是一个20ms左右的时基脉冲,而脉冲的高电平部分一般为0.5ms-2.5ms范围,来控制舵机不同的转角。
500-2500us的PWM高电平部分对应控制180度舵机的0-180度。
以180度角度伺服为例,那么对应的控制关系是这样的:
0.5ms-------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
2.5ms-----------180度;
下图演示占空比从1ms变化到2ms时,转角的变化。
二、三极管和MOS管下拉电阻的作用
关于三极管
简单讲解一下三极管,如果三极管工作在饱和区(完全导通),Rce≈0,Vce≈0.3V,且这个0.3V,我们就认为它直接接地了。那么就需要让Ib大于等于1mA,若Ib=1mA, Ic=100mA,它的放大倍数β=100,三极管完全导通。如下图,是一个NPN三极管。
三极管属于电流型驱动元器件,因此一般在基极都会串一个限流电阻,一般小于等于10K,但是在基极为什么会下拉一个电阻呢?举例说明。如下图,是温度开关控制马达电路图。
如图是温度开关控制马达转和停,温度开关相当于一个按键开关。在B极串个开关,N管就能够做个开关管使用。图中马达是一个直流有刷马达,只要正极接通12V,负极接地,马达就开始转。
当温度开关导通,回路I流过的电流的为
三极管CE完全导通,Vce » 0.3V,这时候,马达两端的电压压降接近 12V,它就能够转动,因为三极管be的导通后阻抗远远小于2K电阻R2,所以电流大部分流过三极管;当温度开关断开,ib 就没有电流,ic 也没有电流。
由于温度开关在关断的瞬间,三级管ib、ic上的电流并不能够一下子降到零,而是慢慢降到零,这是制造工艺必然存在的,在这段时间,三极管是工作在放大区,是最容易受到干扰。因此需要接个下拉电阻R2,这个电阻一是给三极管提供了个放电回路,二是为点A提供一个能量分散的通路。
放电回路怎么理解?
如下图三极管寄生电容,三极管实际工艺制造模型,三极管BE、BC、CE之间分别有电容C1、C2、C3。这三个电容的存在一方面是我们不需要的,另一方面,又是工艺中无法避免克服的,是制造工艺过程中必然存在的现象。我们把这种电容一般称之为杂散电容,或者说是寄生电容。
由于有电容的存在,三极管势必有延时。当ib没有电流时,电容C1开始放电,形成回路I,这个时候B点的电压从0.7V降到0V,工作在放大区,最容易受到干扰,在C1两端加个电阻R2,电容上的电一部分就会从电阻R2上释放掉,并且电阻阻值越小,电容放电越快。因此,电阻R2给电容提供了一个通路释放电荷,大大减短了三极管工作在放大区的时间。
给能量提供一个分散通路怎么理解?
为什么说电阻 R2 为点A提供了一个能量分散通路。如图2所示,温度开关断开时,此时点A是悬空的,A点电压不确定,为高阻态(阻抗无穷大),容易出现误导通的现象,而且也容易受到周围环境干扰,比如静电、雷击等使器件永久损坏。
当使用环境出现雷击,高压静电等情况,在点A下拉一个电阻接到地,大部分电流就会顺着电阻流入地,给能量提供一个分散通路。如果没有接这个电阻,当发生雷击时,由于A点左边阻抗无穷大,A点右边接三极管,阻抗相对左边来说是很低的,因此电流会全部往阻抗低的方向跑,流入三极管,造成电流过大,使器件永久性损坏。
关于MOS管
下拉电阻的作用有两个:
- 防止在静电作用下,电荷没有释放回路,容易引起静电击穿
- MOS管在开关状态工作时,就是不断的给Cgs充放电,当断开电源时,Cgs内部可能储存有一部分电荷,但是没有释放回路,MOS管栅极电场仍然存在且能保持很长时间,建立导电沟道的条件没有消失。在下次开机时,在导电沟道的作用下,MOS管立即产生不受控的巨大漏极电流Id,引起MOS管烧坏
三、MOS场效应管基本知识
导体三极管中参与导电的有两种极性的载流子,所以也称为双极型三极管。本文将介绍另一种三极管,这种三极管只有一种载流子参与导电,所以也称为单极型三极管,因为这种管子是利用电场效应控制电流的,所以也叫场效应三极管(FET),简称场效应管。
场效应管可以分成两大类,一类是结型场效应管(JFET),另一类是绝缘栅场效应管(MOSFET)。
即使搜索“结型场效应管”,出来的也只有几种,你是不是怀疑结型场效应管已经被人类抛弃了的感觉,没错,JFET相对来说是比较少使用的。
下面我们就跳过JFET,来点实际的,还是直接分享绝缘栅场效应管的相关基础知识吧。
绝缘栅场效应管中文全称是金属-氧化物半导体场效应晶体管,由于这种场效应管的栅极被绝缘层隔离,所以又叫绝缘栅场效应管,英文简称是MOSFET,一般也简称为MOS管。
MOSFET的输入电阻很高,高达109Ω以上,从导电沟道来分,可以分为N沟道和P沟道两种,无论是N沟道还是P沟道,又可以分为增强型和耗尽型。
N沟道的MOS管通常也简称为NMOS,P沟道的MOS管简称为PMOS。
▲ MOS管种类
MOS管共有3个脚,栅极G,漏极D,源极S,通常情况下,MOS管的衬底是跟S极在管子内部是连接在一起的,而且,MOS管的D极和S极之间一般会有一个寄生二极管,所以,你见到的MOS管的符号通常是画成下面这样的。
▲ MOS管符号通常是画成这样的
仔细观察的朋友可以发现,无论是N沟道还是P沟道,寄生二极管的方向总是跟箭头的方向是一致的。
其实在一般使用中,更多是使用N沟道增强型或者P沟道增强型MOS管,耗尽型的管子是比较少使用到的。
那么,如何使用MOS管做电子开关?比如用来驱动LED?先来两个图。
▲ MOS管做电子开关的简单应用
一般认为MOS管导通是不需要电流,只要UGS提供一定的电压就可以导通了。
对于N沟道增强型的MOS管,当UGS大于一定值时就会导通,这里所说的“一定值”是指开启电压UGS(th),N沟道增强型UGS(th)一般是2~4V之间。
对于P沟道增强型的MOS管,当UGS小于一定值时就会导通,P沟道增强型UGS(th)一般是-2~-4V之间。
如果UGS达不到相应的电压值,MOS就无法导通,所以说MOS管是电压控制型元件。
可能会有朋友问,电路图中的电阻Rgs有什么作用?
是这样的,在MOS管内部结构里,G极与D极、S极实际上是有一层绝缘层二氧化硅进行隔离的,这就相当于存在一个电容器。
这些寄生电容是无法避免的,电容的大小由MOS管的结构、材料、所加的电压决定。
如果上面的电路图没有电阻Rgs的,电路将会变成怎样呢,下面以图1为例,做个小实验。
没有电阻Rgs时,在G极接上5V控制信号,相当于给寄生电容Cgs进行充电,即使撤去G极上的控制电压,G极上也有电容的电压存在,所以MOS仍然是导通的。
当有G、S两极有电阻Rgs时,当G极撤去5V信号,电阻Rgs可以把寄生电容Cgs上的电压进行释放,所以MOS就截止了。
所以,上面电路加入电阻Rgs,可以对电容的电压进行及时的释放,这样有利于提高电路的可靠性,可以避免G极没有控制信号时误动作。
MOS管具有输入阻抗高、开关速度快、热稳定性好、电压控制电流等特性,在电路中,可以用作放大器、电子开关等用途。
四、电机控制器中的MOS驱动
通用MCU或DSP的IO电压通常是5V\3.3V,IO的电流输出能力在20MA以下,不足以直接驱动功率MOSFET。所以使用通用MCU或DSP来设计电机驱动器时,通常需要搭配外部的MOSFET驱动器,我们称之为“预驱”。在设计汽车风机、水泵、油泵等电机驱动控制器时,使用车规MCU+车规预驱+车规N沟道功率MOSFET,可以适配不同功率、各种通信方式和各种驱动方式。
控制器中的功率MOS驱动
如上图直流无刷电机驱动电路,三相直流无刷电机(包括BLDC和PMSM)功率级驱动电路使用6个N沟道功率MOS构成三相全桥,分为三个连接到电源正极(VBus)的高边MOS和三个连接到电源负极的低边MOS。
控制器通过控制六个MOS的通断,完成换相,使电机按照预期转动。电机在运转过程中可能会遇到堵转而导致过流,因此MOS驱动电路需要具有保护功能,以防止烧坏控制器或电机。
对于单个NMOS来说,在开通时,需要提供瞬间大电流向MOS内的寄生电容充电,栅源电压(VGS)达到一定阈值后,MOS才能完全开通。在MOS开通后,还需要维持合适的栅源电压(VGS),才可以保持开通状态。
对于低边MOS,其源极(S)接到电源负极,栅源电压容易满足,驱动较简单。
对于高边MOS,其源极(S)接到电机相线,其电压是不确定的,如果需要开通,需要通过自举电路提供栅极电压,驱动较复杂。
上图是VGS与RDSON的关系图,一般情况下,MOS的导通内阻都如上图所示,随着VGS的增大而降低,但VGS大于10V之后,下降曲线变得平缓。为了达到最小的导通电阻(RDSON),VGS的取值通常为10~15V。
五、MOS管驱动电路
MOS管因为其导通内阻低,开关速度快,因此被广泛应用在开关电源上。而用好一个MOS管,其驱动电路的设计就很关键。下面分享几种常用的驱动电路。
1 电源IC直接驱动
电源IC直接驱动是最简单的驱动方式,应该注意几个参数以及这些参数的影响。
①查看电源IC手册的最大驱动峰值电流,因为不同芯片,驱动能力很多时候是不一样的。
②了解MOS管的寄生电容,如图C1、C2的值,这个寄生电容越小越好。如果C1、C2的值比较大,MOS管导通的需要的能量就比较大,如果电源IC没有比较大的驱动峰值电流,那么管子导通的速度就比较慢,就达不到想要的效果。
2 推挽驱动
当电源IC驱动能力不足时,可用推挽驱动。
这种驱动电路好处是提升电流提供能力,迅速完成对于栅极输入电容电荷的充电过程。这种拓扑增加了导通所需要的时间,但是减少了关断时间,开关管能快速开通且避免上升沿的高频振荡。
3 加速关断驱动
MOS管一般都是慢开快关。在关断瞬间驱动电路能提供一个尽可能低阻抗的通路供MOSFET栅源极间电容电压快速泄放,保证开关管能快速关断。
为使栅源极间电容电压的快速泄放,常在驱动电阻上并联一个电阻和一个二极管,如上图所示,其中D1常用的是快恢复二极管。这使关断时间减小,同时减小关断时的损耗。Rg2是防止关断的时电流过大,把电源IC给烧掉。
如上图,是我之前用的一个电路,量产至少上万台,推荐使用。
用三极管来泄放栅源极间电容电压是比较常见的。如果Q1的发射极没有电阻,当PNP三极管导通时,栅源极间电容短接,达到最短时间内把电荷放完,最大限度减小关断时的交叉损耗。
还有一个好处,就是栅源极间电容上的电荷泄放时电流不经过电源IC,提高了可靠性。
4 隔离驱动
为了满足高端MOS管的驱动,经常会采用变压器驱动。其中R1目的是抑制PCB板上寄生的电感与C1形成LC振荡,C1的目的是隔开直流,通过交流,同时也能防止磁芯饱和。
六、MOS管驱动电路设计细节
一般认为MOSFET是电压驱动的,不需要驱动电流。然而,在MOS的G S两级之间有结电容存在,这个电容会让驱动MOS变的不那么简单。
如果不考虑纹波和EMI等要求的话,MOS管开关速度越快越好,因为开关时间越短,开关损耗越小,而在开关电源中开关损耗占总损耗的很大一部分,因此MOS管驱动电路的好坏直接决定了电源的效率。
对于一个MOS管,如果把GS之间的电压从0拉到管子的开启电压所用的时间越短,那么MOS管开启的速度就会越快。与此类似,如果把MOS管的GS电压从开启电压降到0V的时间越短,那么MOS管关断的速度也就越快。
由此我们可以知道,如果想在更短的时间内把GS电压拉高或者拉低,就要给MOS管栅极更大的瞬间驱动电流。
大家常用的PWM芯片输出直接驱动MOS或者用三极管放大后再驱动MOS的方法,其实在瞬间驱动电流这块是有很大缺陷的。
比较好的方法是使用专用的MOSFET驱动芯片如TC4420来驱动MOS管,这类的芯片一般有很大的瞬间输出电流,而且还兼容TTL电平输入,MOSFET驱动芯片的内部结构如下:
MOS驱动电路设计需要注意的地方:
因为驱动线路走线会有寄生电感,而寄生电感和MOS管的结电容会组成一个LC振荡电路,如果直接把驱动芯片的输出端接到MOS管栅极的话,在PWM波的上升下降沿会产生很大的震荡,导致MOS管急剧发热甚至爆炸,一般的解决方法是在栅极串联10欧左右的电阻,降低LC振荡电路的Q值,使震荡迅速衰减掉。
因为MOS管栅极高输入阻抗的特性,一点点静电或者干扰都可能导致MOS管误导通,所以建议在MOS管G S之间并联一个10K的电阻以降低输入阻抗。
如果担心附近功率线路上的干扰耦合过来产生瞬间高压击穿MOS管的话,可以在GS之间再并联一个18V左右的TVS瞬态抑制二极管。
TVS可以认为是一个反应速度很快的稳压管,其瞬间可以承受的功率高达几百至上千瓦,可以用来吸收瞬间的干扰脉冲。
MOS管驱动电路参考:
MOS管驱动电路的布线设计
MOS管驱动线路的环路面积要尽可能小,否则可能会引入外来的电磁干扰。
驱动芯片的旁路电容要尽量靠近驱动芯片的VCC和GND引脚,否则走线的电感会很大程度上影响芯片的瞬间输出电流。
常见的MOS管驱动波形,如下图。
如果出现了这样圆不溜秋的波形就等着核爆吧。有很大一部分时间管子都工作在线性区,损耗极其巨大。
一般这种情况是布线太长电感太大,栅极电阻都救不了你,只能重新画板子。
高频振铃严重的毁容方波。
在上升下降沿震荡严重,这种情况管子一般瞬间死掉,跟上一个情况差不多,进线性区。
原因也类似,主要是布线的问题。又胖又圆的肥猪波。
上升下降沿极其缓慢,这是因为阻抗不匹配导致的。
芯片驱动能力太差或者栅极电阻太大。
果断换大电流的驱动芯片,栅极电阻往小调调就OK了。
打肿脸充正弦的生于方波他们家的三角波。
驱动电路阻抗超大发了。此乃管子必杀波。解决方法同上。
大众脸型,人见人爱的方波。
高低电平分明,电平这时候可以叫电平了,因为它平。边沿陡峭,开关速度快,损耗很小,略有震荡,可以接受,管子进不了线性区,强迫症的话可以适当调大栅极电阻。
方方正正的帅哥波,无振铃无尖峰无线性损耗的三无产品,这就是最完美的波形了。
七、MOS管驱动电路有几种
MOS管因为其导通内阻低,开关速度快,因此被广泛应用在开关电源上。而用好一个MOS管,其驱动电路的设计就很关键。下面分享几种常用的驱动电路。[付费]STM32嵌入式资料包
1 电源IC直接驱动
电源IC直接驱动是最简单的驱动方式,应该注意几个参数以及这些参数的影响。
①查看电源IC手册的最大驱动峰值电流,因为不同芯片,驱动能力很多时候是不一样的。
②了解MOS管的寄生电容,如图C1、C2的值,这个寄生电容越小越好。如果C1、C2的值比较大,MOS管导通的需要的能量就比较大,如果电源IC没有比较大的驱动峰值电流,那么管子导通的速度就比较慢,就达不到想要的效果。
2 推挽驱动
当电源IC驱动能力不足时,可用推挽驱动。
这种驱动电路好处是提升电流提供能力,迅速完成对于栅极输入电容电荷的充电过程。这种拓扑增加了导通所需要的时间,但是减少了关断时间,开关管能快速开通且避免上升沿的高频振荡。
3 加速关断驱动
MOS管一般都是慢开快关。在关断瞬间驱动电路能提供一个尽可能低阻抗的通路供MOSFET栅源极间电容电压快速泄放,保证开关管能快速关断。相关推荐:MOS管驱动电路设计细节。
为使栅源极间电容电压的快速泄放,常在驱动电阻上并联一个电阻和一个二极管,如上图所示,其中D1常用的是快恢复二极管。这使关断时间减小,同时减小关断时的损耗。Rg2是防止关断的时电流过大,把电源IC给烧掉。
如上图,是我之前用的一个电路,量产至少上万台,推荐使用。
用三极管来泄放栅源极间电容电压是比较常见的。如果Q1的发射极没有电阻,当PNP三极管导通时,栅源极间电容短接,达到最短时间内把电荷放完,最大限度减小关断时的交叉损耗。
还有一个好处,就是栅源极间电容上的电荷泄放时电流不经过电源IC,提高了可靠性。
4 隔离驱动
为了满足高端MOS管的驱动,经常会采用变压器驱动。其中R1目的是抑制PCB板上寄生的电感与C1形成LC振荡,C1的目的是隔开直流,通过交流,同时也能防止磁芯饱和。
八、MOS管的实际用法
大部分的教材都会告诉你长长的一段话:
MOS管全称金属氧化半导体场效应晶体管,英文名Metal-Oxide-Semiconductor Field-Effect Transistor,属于绝缘栅极场效晶体管,以硅片为秤体,利用扩散工艺制作.......有N沟道和P沟道两个型。不仅如此,它还有两个兄弟,分别是结型场效应管以及晶体场效应管.......
面对这么大一段话,我不知道你有没有搞明白MOS管,反正我大学里是完全没有搞明白,最后学了个寂寞。
本文丢开教科书这块裹脚布,从应用层面出发来给大家介绍一下MOS管里面最常见也是最容易使用的一种:增强型NMOS管,简称NMOS,相关文章推荐:MOS管基本认识。当你熟悉了这个NMOS的使用之后呢,再回过头去看这个教材上的内容,我相信就会有不同的体会了。
NMOS的用法
首先来看这么一张简单的图,如下,我们可以用手去控制这个开关的开合,以此来控制这个灯光的亮灭。
那如果我们想要用Arduino或者单片机去控制这个灯泡的话呢,就需要使用MOS管来替换掉这个开关了。为了更加符合我们工程的实际使用习惯呢,我们需要把这张图稍微转换一下,就像如下图这样子。
那这两张图是完全等价的,我们可以看到MOS管是有三个端口,也就是有三个引脚,分别是gate,drain和source。只要记住他们分别简称g、d、s就可以,如下图。
我们把单片机的一个IO口接到这个MOS管的gate端口,就可以控制这个灯泡的亮灭了。当然别忘了供电。当这个单片机的IO口输出为高的时候,NMOS就等效为这个被闭合的开关,指示灯光就会被打开;那输出为低的时候呢,这个NMOS就等效为这个开关被松开了,那此时这个灯光就被关闭,是不很简单。
那如果我们不停的切换这个开关,那灯光就会闪烁。如果切换的这个速度再快一点,因为人眼的视觉暂留效应,灯光就不闪烁了。此时我们还能通过调节这个开关的时间来调光,这就是所谓的PWM波调光,以上就是MOS管最经典的用法,它实现了单片机的IO口控制一个功率器件。当然你完全可以把灯泡替换成其他的器件。器件比如说像水泵、电机、电磁铁这样的东西。
如何选择NMOS
明白了NMOS的用法之后呢,我们来看一下要如何选择一个合适的NMOS,也就是NMOS是如何选型的。
那对于一个初学者来说,有四个比较重要的参数需要来关注一下。第一个是封装,第二个是vgsth,第三个是Rdson上,第四个是Cgs。
封装比较简单,它指的就是一个MOS管这个外形和尺寸的种类也有很多。一般来说封装越大,它能承受的电流也就越大。为了搞明白另外三个参数呢,我们先要来介绍一下NMOS的等效模型,如下图。
MOS其实可以看成是一个由电压控制的电阻。这个电压指的是g、s两端的电压差,电阻指的是d、s之间的电阻。这个电阻的大小呢,它会随着g、s电压的变化而产生变化。当然它们不是线性对应的关系,实际的关系差不多像这样的,横坐标是g、s电压差。Rds与Vgs关系图,如下。
纵坐标是电阻的值,当g、s的电压小于一个特定值的时候呢,电阻基本上是无穷大的。然后这个电压值大于这个特定值的时候,电阻就接近于零,至于说等于这个值的时候会怎么样,我们先不用管这个临界的电压值,我们称之为vgsth,也就是打开MOS管需要的g、s电压,这是每一个MOS管的固有属性,我们可以在MOS管的数据手册里面找到它,如下。
显然vgsth一定要小于这个高电平的电压值,否则的话就没有办法被正常的打开。所以在你选择这个MOS管的时候,如果你的高电平是对应的5V,那么选3V左右的vgsth是比较合适的。太小的话会因为干扰而误触发,太大的话又打不开这个MOS管。
接下来我们再来看看NMOS的第二个重要参数Rdson,刚才有提到NMOS被完全打开的时候,它的电阻接近于零。但是无论多小,它总归是有一个电阻值的,这就是所谓的Rdson。它指的是NMOS被完全打开之后,d、s之间的电阻值。同样的你也可以在数据手册上找到它。这个电阻值当然是越小越好。越小的话呢,它分压分的少,而且发热也相对比较低。但实际情况一般Rdson越小,这个NMOS的价格就越高,而且一般对应的体积也会比较大。所以还是要量力而行,选择恰好合适。
最后说一下Cgs,这个是比较容易被忽视的一个参数,它指的是g跟s之间的寄生电容。相关文章:MOS管驱动电路设计细节。所有的NMOS都有,这是一个制造工艺的问题,没有办法被避免。那它会影响到NMOS打开速度,因为加载到gate端的电压,首先要给这个电容先充电,这就导致了g、s的电压并不能一下子到达给定的一个数值。
它有一个爬升的过程。当然因为Cgs比较小,所以一般情况下我们感觉不到它的存在。但是当我们把这个时间刻度放大的时候,我们就可以发现这个上升的过程了。对于这个高速的PWM波控制场景是致命的。当PWM波的周期接近于这个爬升时间时,这个波形就会失真。一般来说Cgs大小和Rdson是成反比的关系。Rdson越小,Cgs就越大。所以大家要注意平衡他们之间的关系。
以上就是关于NMOS需要初步掌握的知识了。
九、单片机I/O口驱动,为何三极管成首选而非MOS管?
这里其实有两个问题:
1.单片机为什么不直接驱动负载?
2.单片机为什么一般选用三极管而不是MOS管?
图1
答:
1.单片机的IO口,有一定的带负载能力。但电流很小,驱动能力有限,一般在10-20mA以内。所以一般不采用单片机直接驱动负载这种方式。
2.至于单片机为什么一般选用三极管而不是MOS管?需要了解三极管和MOS管的区别,如下:
①三极管是电流控制型,三极管基极驱动电压只要高于Ube(一般是0.7V)就能导通。
②MOS管是电压控制型,驱动电压必须高于阈值电压Vgs(TH)才能正常导通,不同MOS管的阈值电压是不一样的,一般为3-5V左右,饱和驱动电压可在6-8V。
我们再来看实际应用:
处理器一般讲究低功耗,供电电压也越来越低,一般单片机供电为3.3V,所以它的I/O最高电压也就是3.3V。
①直接驱动三极管
3.3V电压肯定是大于Ube的,所以直接在基极串联一个合适的电阻,让三极管工作在饱和区就可以了。Ib=(VO-0.7V)/R2。
图2 驱动三极管示意图
②驱动MOS管
通过前面也了解到,MOS管的饱和电压>3.3V,如果用3.3V来驱动的话,很可能MOS管根本就打不开,或者处于半导通状态。
在半导通状态下,管子的内阻很大,驱动小电流负载可以这么用。但是大电流负载就不行了,内阻大,管子的功耗大,MOS管很容易就烧坏了。
所以,一般选择I/O口直接控制三极管,然后再控制MOS管。
图3 I/O口驱动三极管后再驱动MOS管
当I/O为高电平时,三极管导通,MOS管栅极被拉低,负载RL不工作。
当I/O为低电平时,三极管不导通,MOS管通过电阻R3,R4分压,为栅极提供合适的阈值电压,MOS管导通,负载RL正常工作。
为什么要这样操作呢?一定要用三极管来驱动MOS管吗?
那是因为三极管带负载的能力没有MOS管强,当负载电流有要求时,必须要用MOS管来驱动。
那可以用I/O口直接驱动MOS管吗?答案是可以的,但这种型号不好找,这里给大家推荐一个NMOS型号:DMN6140L-13(因为用的少,目前就知道这个型号,如果大家有知道的,可以在评论区告诉我,感谢)。
图4 DMN6140L-13阈值电压
这个管子的阈值电压是1V,3.3V的时候可以完全导通,导通时的最大电流大约2.3A的样子。
图5 DMN6140L-13导通电流
我们再来看看,常用的NPN三极管LMBT2222ALT1G的带载能力,最大电流IC=600mA。
图6 LMBT2222ALT1G导通电流
可见MOS管的驱动能力是三极管4倍,所以对负载电流有要求的都使用MOS管。
那他们的价格相差多少呢?搜了一下,MOS管的三极管的价格几乎是三极管的6倍。如下图:
图7 DMN6140L-13价格
图8 LMBT2222ALT1G价格
所以,在要求不高,成本低的应用场合,一般使用三极管作为开关管。
十、MOS管电源开关电路案例分享,上电冲击电流超标
MOS管电源开关电路,遇到上电冲击电流超标,怎么解决的呢?下面是正文部分。
最近有一颗用了挺久的MOSFET发了停产通知,供应链部门找到我们研发部门,说供应商推荐了另外一型号的作为兼容替代,需要研发部门分析一下。我粗略扫了一下规格书,Vds,Id,Vgs(th)这些主要参数没太大区别,反正现有的应用远没达到器件的极限,所以直接替换是没啥问题的。
本以为这事就这样结了,不过为了给今年校招进来的新同事锻炼的机会,部门经理还是分配了做详细兼容替代分析的任务给新同事A君。
结果过了两天A君突然找到我。
A君:蒋工,这个替代的MOS管在你的新项目上替代不了。
我:???不会吧,这不是15A的MOS管么,我这平均电流才不到6A,峰值电流也不超过8A,怎么会用不了?虽然替代的MOS管导通电阻增加了几个毫欧,我算了下耗散功率也没增加太多,不应该有问题的。
A君:不是,其他参数都没问题,最大脉冲电流超标了,替代的MOS管这项指标只有40A,之前那个是80A,你这个新项目测出来有60A。
我:不可能,这电路用了很久了,一直都没出过问题,新项目虽然功耗增加了一些,但不可能有那么大脉冲电流,因为板上的大电容总容量又没增加多少,你是不是测错了?
A君:那你过来看看。
啪~~~~~我的脸...
不就是MOS管开关电路嘛,So easy,闭着眼睛也能设计出来。这里用的是PMOS,所以只要把栅极上拉到源极,再通过一个开关控制把栅极拉到地,这样开关导通的时候MOS管也导通,完美。
然后就有了下面这个测试结果:黄色迹线是漏极电流,紫色是漏极电压,蓝色是源极电压,绿色是开关使能,橘色用漏极电压乘以漏极电流得到功率。是的我没有看错,开关导通的瞬间漏极电流最大能到60A!这次替代的MOS管最大脉冲电流是40A,这样看来这个设计确实不安全。
可我还是不服气,这个电路以前也用过,也详细测过不可能出现这么大的脉冲电流,虽然新项目在MOS管后面增加了一些电容,但电容总容量实际没增加太多,即使上电瞬间充电也不太可能产生这么大电流才对,一定是什么地方出错了。
新项目的功耗增加了大概30%,电源树结构与之前的也有不小的区别,不过设计时并没有增大板级的大型储能电容容值,而是放了更多容量稍小但性能更好的MLCC(多层瓷片电容)到个负载电源附近以获得更好的效果。
难道是多加进来的这些MLCC在捣鬼?先仿真验证一下看看。
因为电容的ESL常常造成仿真结果出现震荡,所以这里电容只用了ESR,元件参数并不是实际的值,不过足够说明问题了。当电容有一端没有明确接到某个电压的时候,如果不人为设定一下初始电压,往往会造成仿真结果错误,这里在C3上并了一个R5就是出于这种考虑。为了模拟冲击电流造成的电源波动,这里还对总电源和电源线进行了简单建模。
仿真结果可以看到上电瞬间冲击电流有22A左右,还算在可控的范围内。
现在把万恶的MLCC加上再试试,相比于470uF的电解电容,MLCC只有22uF,然后...60A的冲击电流,增加了近3倍?!电容量增加还不到1/10,冲击电流增加了那么多倍,这样翻车,我认还不行么。
如果不使用MLCC而只是增大电解电容的容量,就增加到2200uF吧,翻了4倍多呢,结果脉冲电流最大值才24A,只是整个充电过程变长了。
这就是电容ESR捣鬼导致的,使用ESR较大的电解电容时,ESR限制住了流经电容的最大电流,所以冲击电流并不会太大;而ESR非常小的MLCC,在电源接通的瞬间近乎直接断路到地,所以会出现巨大的冲击电流。
我这次算是败给了直觉,直觉认为电容量决定了冲击电流,而实际上ESR才主导冲击电流的最大值,电容量更多的是决定充电的总能量(或者说电流与时间的乘积)。
元凶找到了,现在的问题是如何整改,最简单的整改方法就是给MOS管加缓启动电路。缓启动电路以前也没少用,不过这次设计偷懒,直觉又觉得不会出问题,所以就没加上去,结果翻车了。
MOS管缓启动电路的思路非常简单,充分利用MOS管的线性区,不让MOS管突然从截至跳到饱和就行了,也就是要给Vgs缓慢变化而不是突变,这样MOS管在上电过程中相当于一个可变的电阻,可以温柔地给负载电容充电而不是一口气吃一个胖子。
电容两端电压不能突变,所以在MOS管的栅极和源极之间跨接一个电容,栅极通过电阻或者恒流源缓慢对电容放电而不是简单粗暴开关接短接到地,这样就能让Vgs缓慢变化了。
仿真结果还不错,冲击电流从60A降到了不到15A,完全不用担心MOS管罢工。虽然缓启动增加了上电延时,不过对于总开关来说没有太严格的上电时序要求,也不算什么大问题。
不过没完,这个缓启动电路还会带来另一个比较大的问题就是掉电延时,而且比上电延时要严重的多(这应该很容易想明白)。好在我这里是总开关,所以掉电延时也不是什么严重的问题,不过如果是用MOS管做严格的上下电时序控制,这就是个很严重的问题了。对时序控制要求高的场合,还是用专门的负载开关去处理吧,分立MOS开关搞起来就太折腾了。
当然这套简单的缓启动电路缺点还有不少,实际使用中还得根据实际情况进行调整,电路还会更复杂(比如在栅源间跨接二极管解决源极电源突然掉电又恢复时,电路锁定在之前状态的问题),这里就不再展开了。
实际电路中加入缓启动电路再测试,和预期的一样有很大改善。
后注:
1、作者使用的仿真软件是LTspice。
2、电容的ESR对电路的影响,这个案例可以让大家有真切感受。
3、文中对“MOS管缓启动(又叫软启动)电路”没有进行详细分析,强烈建议阅读文
相关文章:
51c嵌入式~MOS~合集1
我自己的原文哦~ https://blog.51cto.com/whaosoft/12074888 一、MOS管:米勒效应、开关损耗以及参数匹配 MOS管即场效应管(MOSFET),属于压控型,是一种应用非常广泛的功率型开关元件,在开关电源、逆变器…...
一文详解k8s体系架构知识
0.云原生 1.k8s概念 1. k8s集群的两种管理角色 Master:集群控制节点,负责具体命令的执行过程。master节点通常会占用一股独立的服务器(高可用部署建议用3台服务器),是整个集群的首脑。 Master节点一组关键进程…...
Linux内核软中断分析
一、软中断类型 在Linux内核中,中断处理分为上半部(硬中断)和下半部。上半部负责快速响应硬件事件,而下半部用于处理耗时任务,避免阻塞系统。下半部有三种机制:软中断(Softirq)、小任…...
从医疗大模型到综合医疗智能体:算法、架构与路径全流程分析
一、引言 1.1 研究背景与意义 随着信息技术的飞速发展,医疗领域正经历着深刻的变革。医疗智能体作为人工智能技术在医疗行业的重要应用,正逐渐成为提升医疗服务质量、优化医疗流程、促进医疗资源合理分配的关键力量。从最初简单的医疗信息管理系统,到如今能够辅助诊断、制定…...
2025跳槽学习计划
(1)编程基础: 目录学习资料Chttps://www.bilibili.com/video/BV1z64y1U7hs?spm_id_from333.1387.favlist.content.clickLinuxPytorchhttps://www.bilibili.com/video/BV1if4y147hS?spm_id_from333.1387.favlist.content.clickopencv数据结…...
数据库后续
-- 添加作者字段 alter table t_hero add author varchar(100); -- 更新数据 update t_hero set author "曹雪芹" where id 1; update t_hero set author "曹雪芹" where id 2; update t_hero set author "曹雪芹" where id 3; upd…...
程序员软件工具推荐列表
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 程序员软件工具推荐列表1. Snipaste2. VSCod…...
如何在WordPress中限制用户登录到一台设备
在当今的互联网环境下,许多用户习惯共享账户信息,虽然看似无害,却可能对网站运营产生负面影响。尤其是对于那些经营会员网站和在线课程的平台,限制用户同时登录的设备数量显得尤为重要。本文将详细探讨如何在WordPress中限制用户登…...
基于大模型的自发性气胸全方位预测与诊疗方案研究
目录 一、引言 1.1 研究背景与意义 1.2 研究目的与创新点 二、大模型预测自发性气胸的原理及技术基础 2.1 大模型介绍 2.2 模型构建与训练数据 2.3 模型训练与优化 三、术前风险预测与准备 3.1 术前风险预测指标 3.2 基于预测的术前准备 3.3 手术方案与麻醉方案制定…...
文章记单词 | 第14篇(六级)
一,单词释义 affection:n. 喜爱,钟爱;爱慕之情;感情stream:n. 小河,溪流;一连串,源源不断;水流,气流;vi. 流,流动&#x…...
系统如何查找文件?inode号又是什么?
下面分别详细解释您提到的三个问题: “文件系统怎么定位文件”、“inode 是什么”、“为什么删除后还可能被占用”。 一、文件系统怎么定位文件 1.1 目录与文件名并不直接存储文件数据 在常见的 Unix/Linux 文件系统(如 ext4、xfs)或类似的…...
Uni-app入门到精通:tabBar节点实现多页面的切换
tabBar节点用于实现多页面的切换。对于一个多tabBar应用,可以通过tabBar节点配置项指定一级导航栏,以及tabBar切换时显示的对应页面。在pages.json中提供tabBar节点配置,不仅是为了方便快速开发导航,更重要的是提示App平台和小程序…...
torchvision中数据集的使用
1、torchvision及其数据集的介绍 1.1 torchvision介绍 torchvision 是 PyTorch 的一个官方库,专门用于计算机视觉任务。它提供了以下核心功能: 预训练模型:如 ResNet、VGG、EfficientNet 等。数据集:内置常用视觉数据集…...
uniapp开发实战自定义组件形式实现自定义海报功能
在 UniApp 中实现自定义海报功能,可以通过 Canvas 来绘制海报。Canvas 提供了丰富的绘图 API,可以精确控制文字、图片和二维码的位置。下面是一个完整的示例,展示如何创建一个自定义海报组件。 项目结构 假设你的项目结构如下: project-root/ ├── pages/ │ └──…...
Java EE 进阶:MyBatis-plus
MyBatis-plus的介绍 MyBatis-plus是MyBatis的增强工具,在MyBatis的基础上做出加强,只要MyBatis有的功能MyBatis-plus都有。 MyBatis-plus的上手 添加依赖 在我们创建项目的时候,我们需要添加MyBatis-plus和mysql的依赖 MyBatis-plus的依赖…...
信息学奥赛一本通 1514:【例 2】最大半连通子图 | 洛谷 P2272 [ZJOI2007] 最大半连通子图
【题目链接】 ybt 1514:【例 2】最大半连通子图 洛谷 P2272 [ZJOI2007] 最大半连通子图 【题目考点】 1. 图论:强连通分量 缩点 2. 图论:拓扑排序 有向无环图动规 【解题思路】 对于图中任意两顶点u、v,满足u到v或v到u有路径…...
正则表达式-笔记
文章目录 一、正则表达式二、正则表达式的基本语法字符类普通字符非打印字符特殊字符 量词限定符锚点修饰符(标记) 三、在 Python 中使用正则表达式简单搜索提取信息替换文本 参考 从验证用户输入,到从大量文本中提取特定信息,再到…...
Linux 练习二 LVS的NAT模式
作业 要求:使用LVS的 NAT 模式实现 3 台 RS 的轮询访问。IP地址和主机自己规划。 节点规划 主机角色系统网络IPclientclientredhat 9.5仅主机192.168.60.100/24lvslvsredhat 9.5仅主机 NAT192.168.60.200/24 VIP 192.168.23.8/24 DIPnginxrs1redhat 9.5NAT192.16…...
以科技赋能,炫我云渲染受邀参加中关村文化科技融合影视精品创作研讨会!
在文化与科技深度融合的时代浪潮下,影视创作行业经历着前所未有的变革。影视创作行业发展态势迅猛, 同时也面临着诸多挑战。为促进影视创作行业的创新发展,加强业内交流与合作, 3月25日下午,海淀区文化创意产业协会举办…...
Matlab2024a免费版下载教程
Matlab是一个高性能的数学计算与仿真软件,广泛应用于科学计算、数据分析、算法开发以及工程绘图等多个领域。它提供了强大的矩阵运算能力、丰富的内置函数库以及灵活的编程环境,使得用户能够高效地解决复杂的数学问题。本文,我将为大家详细介…...
人工智能:officeAI软件,如何调整AI对话界面的字体?
1、首先,随便打开一个excel(使用wps) 依次点击上方的【OfficeAI】—【右侧面板】 2、在弹出的面板中,输入:助手设置 , 然后按【回车】发送出去 3、之后会弹出界面,在【样式设定】中ÿ…...
ARCGIS PRO SDK VB2022 图层要素类类型判断
arcgis pro 常见要素类类型有以下几种: FeatureLayer ——要素图层(矢量数据) RasterLayer ——栅格图层 MapImageLayer ——地图图像图层 VectorTileLayer ——矢量切片图层 SceneLayer …...
一种监控录像视频恢复的高效解决方案,从每一帧中寻找可能性
该软件旨在恢复从监控设备中删除或丢失的视频。该程序经过调整以处理大多数流行供应商的闭路电视系统中使用的专有格式,并通过智能重建引擎进行了增强,能够为监控记录提供任何通用解决方案都无法实现的恢复结果。如果不需要持续使用该软件,则…...
windows安装JDK并配置环境变量
一、JDK安装 1.控制面板-程序有的话,先卸载 2.双击安装 3.下一步 4.选择安装路径 5.下一步,等着安装完成 6.校验安装是否成功,winr,输入“cmd” 疑问:安装17,显示21?? 二、环境变量 1.计算机…...
Web3.0合约安全:重入攻击防御方案
本文深度剖析智能合约重入攻击的13种新型变种及其防御体系,结合EIP-6780标准与Layer2安全方案,系统性阐述从代码层到协议层的立体防护策略。通过解析Uniswap、Compound等顶级项目的安全实践,揭示如何构建零重入风险的智能合约架构。 第一章 重…...
一文详解QT环境搭建:ubuntu20.4安装配置Qt5
随着软件开发技术的不断进步,跨平台应用程序的需求日益增长,开发者们面临着如何在不同操作系统之间保持代码的一致性和效率的问题。Qt作为一个成熟的跨平台C框架,在这方面提供了卓越的支持,不仅简化了GUI应用程序的创建过程&#…...
Android开发: Java文件中操作基础UI组件
Android Java文件中基础UI组件操作指南 一、常用UI组件基本操作 1. TextView文本控件 TextView textView findViewById(R.id.textView);// 设置文本内容 textView.setText("欢迎使用Android");// 设置文本颜色 textView.setTextColor(Color.BLUE); // 使用Color…...
监控易一体化运维:监控易机房管理,打造高效智能机房
在数字化浪潮中,企业对数据中心和机房的依赖程度与日俱增,机房的稳定运行成为业务持续开展的关键支撑。信息化的变迁,见证了机房管理从传统模式向智能化、精细化转变的过程。今天,就为大家深度剖析监控易在机房管理方面的卓越表现…...
Vue3当中el-tree树形控件使用
tree悬停tooltip效果 文本过长超出展示省略号 如果文本超出悬停显示tooltip效果 反之不显示 这里直接控制固定宽度限制 试了监听宽度没效果<template><el-treeshow-checkbox:check-strictly"true":data"data"node-key"id":props"…...
vs 2022安装指南
一、前言 Visual Studio 2022(以下简称 VS 2022)是微软推出的一款功能强大的集成开发环境(IDE),它支持多种编程语言,如 C#、C、Python 等,广泛应用于桌面应用、Web 应用、移动应用以及游戏开发…...
【数学建模】(启发式算法)蚁群算法(Ant Colony Optimization)的详解与应用
蚁群算法(Ant Colony Optimization)详解与应用 文章目录 蚁群算法(Ant Colony Optimization)详解与应用前言1. 蚁群算法的生物学基础2. 蚁群算法的基本原理2.1 算法框架2.2 状态转移规则2.3 信息素更新规则 3. 蚁群算法的实现4. 蚁群算法的改进4.1 MAX-MIN蚁群系统(MMAS)4.2 精…...
03-SpringBoot3入门-配置文件(自定义配置及读取)
1、自定义配置 # 自定义配置 zbj:user:username: rootpassword: 123456# 自定义集合gfs:- a- b- c2、读取 1)User类 package com.sgu.pojo;import lombok.Data; import org.springframework.boot.context.properties.ConfigurationProperties; import org.spring…...
Sentinel[超详细讲解]-2
异常处理 默认情况下,Sentinel 会抛出 BlockException 异常,如果希望自定义异常,则可以使用 SentinelResource 注解的 blockHandler 属性。 1、自定义异常处理 BlockExceptionHandler 自定义异常处理类实现 BlockExceptionHandler 接口&#…...
API 请求需要证书认证? 如何在 Postman 中正确配置和使用?
本文来介绍 Postman 提供的管理证书功能如何配置,要了解更多相关的知识,可访问 Postman 证书 模块。 管理客户端证书,点击对应的按钮,首先选择 SETTINGS ,然后选择 Certificate 选项卡,如图所示࿱…...
NG-ZORRO中tree组件的getCheckedNodeList怎么使用
在 NG-ZORRO(Ant Design for Angular) 的 Tree 组件 中,getCheckedNodeList 方法用于获取当前选中的节点列表(包括半选状态节点)。以下是具体用法和示例: 基本用法 首先,确保你已通过 ViewChil…...
对于有前后逻辑依赖关系的长文本,切分时确实需要特别注意上下文的连续性,以便在召回后知识时能够尽量保留前后文的关联。
对于有前后逻辑依赖关系的长文本,切分时确实需要特别注意上下文的连续性,以便在召回后知识时能够尽量保留前后文的关联。以下是你提到的三种切分方案的分析,以及如何在实践中选择和优化: 1. 滑动窗口切分 原理:通过一…...
关于ArcGIS中加载影像数据,符号系统中渲染参数的解析
今天遇到一个很有意思的问题,故记录下来,以作参考和后续的研究。欢迎随时沟通交流。如果表达错误或误导,请各位指正。 正文 当我们拿到一幅成果影像数据的时候,在不同的GIS软件中会有不同效果呈现,但这其实是影像是…...
图解AUTOSAR_SWS_FlashTest
AUTOSAR Flash Test 模块解析文档 AUTOSAR 经典平台内存硬件抽象层模块详解 目录 1. 概述 1.1 Flash Test 模块简介1.2 模块作用和定位2. 架构设计 2.1 整体架构2.2 状态机设计3. 执行流程 3.1 后台测试序列3.2 前台测试序列4. 配置结构 4.1 模块配置详解5. 总结1. 概述 1.1 F…...
Ubuntu 使用终端手动连接无线网络(wlan0)完整流程 + 故障排查记录
在某些场景下(如 Ubuntu GUI 网络管理器不可用、使用轻量级桌面环境、或远程配置 Jetson Nano 等嵌入式设备),我们可能需要通过终端命令手动连接无线网络。本文记录一次真实的操作流程和排查过程,供自己和有需要的小伙伴参考。 &a…...
BNB Chain 何以打造 AI 驱动链上应用新世界?
人工智能正在加速改变 Web3 行业的现状面貌。最初 AI 代理起源于机器人技术和机器学习,它们通过自主系统调适,根据数据和环境做出相应技术决策支持、解决项目运行难题并执行相关任务。到了 Web3 世界,AI 代理开始融入 DAO、预测分析和自动交易…...
C 语言常用关键字详解:static、const、volatile
C 语言常用关键字详解:static、const、volatile 文章目录 C 语言常用关键字详解:static、const、volatile1. static 关键字1.1 用于局部变量示例: 1.2 用于全局变量示例: 1.3 用于函数示例: 2. const 关键字2.1 用于局…...
剑指Offer35- - 链表
1. 题目描述 这题题意感觉说的不是很清楚,容易让人产生歧义!其实题意很简单,给你一个链表 head,你深拷贝它,然后返回即可,注意不能修改原链表 /* // Definition for a Node. class Node { public:int val;N…...
open-cv的安装
python -m pip install numpy matplotlib opencv-python 【记得科学上网,不然太慢了】...
【ESP32】VSCode配置ESP-IDF问题及解决方法
报错:“D:\Espressif\tools\idf-python\3.11.2\python.exe -m pip” is not valid. (ERROR_INVALID_PIP) 当遇到错误 “d:\espressif\tools\idf-python\3.11.2\python.exe -m pip” is not valid. (error_invalid_pip) 时,通常是由于 pip 版本不兼容或未…...
分布式渲染与云渲染:技术与应用的黄金搭档
一、核心概念:先区分再关联 分布式渲染是通过多台设备并行计算拆分渲染任务的技术(如将一帧拆分为 64 个小块,64 台电脑同时渲染); 云渲染是基于云计算的渲染服务,本质是分布式渲染的商业化落地—— 用户无…...
创作者会被AI取代吗?AIGC为电影行业带来新变革
在人工智能(AI)技术日新月异的今天,创作领域正经历着一场前所未有的变革。AIGC(AI生成内容)技术的崛起,让机器能够像人类一样进行创作,这不仅引发了“创作者是否会被AI取代”的热烈讨论…...
界面控件Telerik和Kendo UI 2025 Q1亮点——AI集成与数据可视化
Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库,加快开发速度。Telerik DevCraft提供完整的工具箱,用于构建现代和面向未来的业务应用程序,目前提供UI for ASP.NET MVC、Kendo…...
西门子s7协议
目录 西门子s7协议 西门子PLC数据类型 PLC中类型与C#对应类型 特殊说明: S7协议帧结构 示例代码(C#访问PLC数据): 上位机和西门子PLC的通讯 西门子PLC的存储区 S7协议通讯网络模型 S7协议栈基于ISO/OSI模型,…...
面向对象——开闭原则(Open-Closed Principle, OCP)
开闭原则(Open-Closed Principle, OCP) 是面向对象设计中的重要原则之一,它的核心思想是: 对扩展开放(Open for extension):软件实体(类、模块、函数等)应该可以扩展&am…...
线程同步——读写锁
Linux——线程同步 读写锁 目录 一、基本概念 1.1 读写锁的基本概念 1.2 读写锁的优点 1.3 读写锁的实现 1.4 代码实现 一、基本概念 线程同步中的读写锁(Read-Write Lock),也常被称为共享-独占锁(Shared-Exclusive Lock&a…...