ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

电子元器件控制信号:电平控制与脉冲控制的本质区别与工程应用

电子元器件控制信号:电平控制与脉冲控制的本质区别与工程应用 做硬件这一行早晚会遇到一个特别基础、但又特别容易被忽视的问题你手里的这个元器件到底要靠什么信号去控制它。我在调试电路的时候经常看到新手拿着示波器对着一个电平信号来回戳半天想不明白为什么我给了高电平它不动我给了一个方波它反而动了。其实答案就藏在这个最朴素的分类里——电子元器件的控制信号本质上就两大类电平控制型和脉冲控制型。这个分类是硬件电路入门的第一道坎也是很多老工程师心里那本不用翻datasheet也能想明白的直觉账。抓住这个分类你就知道一个引脚到底该悬空、该拉高、该给PWM还是该触发一个边沿。这篇文章我打算把这两大类讲透它们各自是什么、典型器件有哪些、设计时要注意什么、实际调试中容易踩哪些坑。适合刚入行的硬件工程师、做嵌入式开发想补电路底子的朋友也适合那些正被RS485自收发、信号振铃之类具体问题困扰的同行。1. 先从信号分类说起电平控制型和脉冲控制型的本质区别1.1 电平控制信号到底是个什么东西电平控制字面意思就是用电平状态来控制元器件。所谓电平状态就是信号线上持续保持的高电平或低电平。这种控制方式的特点是信号本身不携带时间信息它只表达两个状态——要动作还是不要动作。举个最直观的例子一个LED的驱动引脚你给它一个持续的高电平它就一直亮给低电平就灭。你不需要关心这个高电平保持了多久也不需要关心它是怎么从低变高的只要电平状态稳定输出就是稳定的。再比如继电器的控制线圈你用一个三极管去驱动它三极管基极持续被拉高继电器就持续吸合基极被拉低继电器就释放。整个过程里信号线上的电压只有高和低两种稳定状态芯片内部根据这个稳定状态去决定通断。这里有个关键点电平控制的本质是状态驱动。元器件只关心现在输入是什么电平不关心过去发生了什么也不关心将来会怎么变。用一句口语说就是你只要把电平稳住它就老老实实按你的要求干活。1.2 脉冲控制信号完全不是一回事脉冲控制就完全换了一套逻辑。脉冲信号最大的特点是信息编码在变化里而不是在状态里。频率、脉宽、边沿、占空比这些时间维度上的参数才是控制的核心。拿无源蜂鸣器来说你给它一个持续的高电平它反而不会响——因为它内部没有振荡源必须靠外部脉冲去驱动压电片振动。你给一个几百赫兹的方波它就发出对应频率的声音给不同频率的方波音调就不同。如果用直流电平去驱动它压电片只会被推到一个固定位置一动不动自然也就没有声音。这就是脉冲控制和电平控制在同一个元器件上的典型区别。还有步进电机的脉冲输入引脚每来一个上升沿电机就走一步。步数和方向的语义都在脉冲里方向靠DIR引脚的电平高低决定步数靠STEP引脚来了多少个脉冲决定。如果你只是把STEP引脚拉高不放电机只会停在当前位置不动因为电平状态不能触发走一步这个动作。这就是沿触发和电平触发的本质差异。1.3 为什么这个分类是硬件工程师的必修课这个分类之所以重要不只是为了考试或者面试时背概念而是因为它直接决定了三件实际的事情驱动电路怎么搭、主控引脚怎么配、调试时用什么仪器去测。先说驱动电路。电平控制型器件往往需要持续的驱动能力比如继电器线圈维持吸合需要持续的电流MOS管维持导通需要持续的栅极电压这就要求驱动端具备持续输出高或低电平的能力。而脉冲控制型器件往往需要瞬态的边沿质量比如步进电机的脉冲如果上升沿太缓就可能被判定为无效信号WS2812这类灯珠的数据信号对时序边沿极其敏感边沿抖一点数据就乱了。再说主控引脚配置。一个引脚用于电平控制你一般只要关心它的推挽输出能力、上下拉配置用于脉冲控制你还得关心定时器能不能输出精确的频率、中断响应够不够快、DMA能不能避免波形被CPU占用打断。最后是调试手段。用万用表测电平控制信号测到的电压直接告诉你当前状态对不对几乎一测一个准。但万用表测脉冲信号就完全不够用它只能测到平均值一个占空比50%的5V方波万用表显示大约2.5V这个读数几乎不提供有效信息这时候必须上示波器看波形、量频率、看脉宽、看边沿。很多新手拿万用表查PWM故障查了半天查不出来就是因为工具用错了。2. 电平控制型元器件原理、器件与设计要点2.1 典型电平控制器件盘点电平控制型器件在电路里遍地都是我按控制对象分几类说说方便你在实际项目里对号入座。第一类是开关类器件。最常见的就是MOS管和普通三极管BJT。MOS管的栅极电压高于阈值电压Vgs(th)就导通低于阈值就关断这个逻辑本质就是电平控制。比如N沟道MOS管做低边开关栅极接高电平通常10V或12V驱动就导通接地就关断。三极管也一样基极有足够的基极电流就饱和导通基极电流撤掉就截止。这类器件对信号的状态敏感对频率不敏感你可以让它们长期导通也可以让它们以任意速度开关。第二类是使能类引脚。现在几乎所有的电源芯片、LDO、电平转换芯片、接口芯片都有一个ENEnable引脚。这个引脚就是典型电平控制拉高使能芯片输出拉低让芯片进入关断或低功耗状态。很多芯片的EN引脚内部还有上拉或下拉这直接影响你外部接线方式——有些EN内部上拉外部要拉低才关断有些EN内部下拉外部要拉高才开启。我见过好几块板子因为没仔细看EN引脚的内部结构导致电源纹波异常的后面会专门讲这个坑。第三类是状态选择类引脚。比如运放的增益选择、芯片的工作模式配置很多都靠某个引脚的电平高低来切换。像RS485收发器如MAX3485、SP3485的DE和RE引脚就是典型的电平控制DE拉高进入发送模式RE拉低进入接收模式。如果你的设计想让芯片自动切换收发就得用一个额外的电平控制信号去动态切换这两个引脚的状态这正是后面要讲的MOS管自收发电路的核心思路。2.2 电平匹配不是想当然的事电平控制型电路最容易翻车的地方不是原理不懂而是电平匹配出了问题。所谓电平匹配就是驱动端输出的高/低电平必须满足被驱动器件对输入电平的要求。最经典的就是3.3V单片机控制5V器件。很多5V的器件其输入高电平阈值VIH是2.0V或更高一点3.3V输出刚好能过但有些5V器件的VIH要求到3.5V3.3V输出就压线了温度一波动、负载一变重就不稳定。反过来5V器件输出到3.3V输入如果器件输出高电平是5V直接灌进3.3V单片机的IO口轻则逻辑混乱重则烧引脚。这时候就要用电平转换电路或者串电阻分压或者用开漏输出加上拉电阻的方式去匹配。还有一个容易被忽略的细节逻辑电平是分段判定的。对于TTL电平输入高电平通常要求至少2.0V输入低电平要求低于0.8V而0.8V到2.0V之间的区域是不确定区。如果驱动端输出的电平落在这个不确定区器件就不知道你给的是高还是低表现出来就是时好时坏、温度一变就抽风。我调试一块板子时遇到过继电器在高温下误动作的问题排查到最后就是驱动三极管的基极电阻选太大高温下三极管饱和压降变高集电极电平掉进了不确定区。2.3 驱动能力与扇出系数的工程判断电平控制还要看驱动端的驱动能力够不够。每个IO口能输出的电流是有限的比如常见MCU的GPIO推挽输出灌电流和拉电流一般也就几毫安到二十毫安。如果你要直接驱一个需要50mA的继电器线圈那就不行必须加驱动级也就是用一个三极管或MOS管做力放大。这里有个工程判断标准被驱动器件输入需要的电流加上所有并联负载的电流必须小于驱动端能提供的电流同时还要留出至少30%的余量。比如一个MCU引脚标称最大拉电流20mA你最好只用它驱动不超过十几毫安的负载不要卡着最大值用。电源芯片的EN引脚通常只需要微安级电流可以直接接MCU但有些外部器件的控制引脚内部是光耦的LED端需要几毫安十几毫安的电流MCU直接驱动就必须注意IO拉电流够不够不够就加三极管。另一个概念是扇出系数就是一个输出能带几个输入。CMOS器件的输入阻抗极高扇出能力通常不是问题但TTL输入有实际的灌电流需求扇出受限。设计时如果一条信号线要分给多个器件建议先算一下总需求电流再看驱动端够不够不够就加缓冲器buffer或总线驱动器。3. 脉冲控制型元器件原理、参数与实操细节3.1 典型脉冲控制器件盘点脉冲控制型的家族同样庞大而且往往比电平控制更有技术含量因为信号里包含了时间信息。首先是PWM类。LED调光、直流电机调速、风扇转速控制都用PWM——通过改变占空比控制平均功率。LED调光用PWM是为了避免电流线性调节带来的色偏电机调速用PWM是为了提高效率因为开关管要么全通要么全断损耗小。这一类控制的语义在占空比上占空比50%就意味着平均输出一半功率。然后是步进脉冲类。步进电机驱动器如A4988、DRV8825、TMC系列的STEP引脚就是典型的脉冲控制每来一个脉冲走一步。方向由DIR引脚的逻辑电平决定使能由EN引脚的电平决定。这里有意思的是一个器件上同时存在脉冲控制和电平控制两种信号STEP靠脉冲DIR和EN靠电平。所以实际工程中这两大类永远是混合出现的不能只懂一种。再就是伺服和舵机类。舵机的控制信号是50Hz周期、脉宽1ms到2ms的脉冲脉宽1ms对应0度1.5ms对应90度2ms对应180度。这个就是脉宽调制位置的经典例子。无刷电调ESC也用类似的信号改变的是每个周期内的高电平脉宽而不是占空比本身很多新手把舵机信号和LED PWM承载的语义搞混调试半天对不上。最后是数据类脉冲。这里要提一下单总线、串口、SPI、I2C这些协议本质上也都是靠脉冲的时序去承载信息。比如DS18B20这种单总线温度传感器严格依赖读写时序的脉冲宽度WS2812灯带这种单线归零码协议更是把0和1都编码成不同宽度的脉冲。这类器件的控制对时序极其敏感做驱动代码时必须用定时器或delay精确控制不能依赖操作系统调度。3.2 频率、占空比、脉宽三个参数决定生死脉冲控制的参数有三个维度频率、占空比、脉宽。频率是每秒多少个周期占空比是高电平时间占整个周期的比例脉宽是高电平持续的实际时间。对于周期信号知道频率和占空比就能算出脉宽三者是绑定的但对于非周期信号脉宽才是独立参数。先算一笔账舵机控制信号是50Hz周期20ms脉宽1ms到2ms。占空比范围是5%到10%。如果你只知道占空比而忘了频率就可能把5%到10%的占空比当成PWM的完整语义——实际上频率错了脉宽就完全不对舵机要么乱转要么不动。所以用逻辑分析仪或者示波器看这类信号时既要看频率也要看脉宽不能只看占空比一个值。再算一个例子你用一个STM32的定时器输出20kHz的PWM控制一个buck电路定时器时钟是72MHz那自动重装载值ARR就是72M/20k 3600比较值CCR决定占空比。这个计算本身不难难的是要理解为什么频率选择20kHz——因为要高于人耳听觉上限20kHz以下会听到电感啸叫又要给开关管的开关损耗留余地。频率越高波形越平滑但MOS管开关损耗越大。这里没有绝对最优值而是要根据负载、电感、开关管参数折中。还有一类一次性脉冲IR遥控、超声波测距、射频触发它们用的是特定宽度的单个脉冲或脉冲序列。比如红外遥控的NEC协议一个逻辑0的载波时间是560us逻辑1是1.69ms超声波测距模块TRIG引脚需要10us以上的高电平脉冲去触发。这种一次性脉冲无法用占空比描述只能用脉宽描述设计时就要用定时器输入捕获或者外部中断去精确测量或产生。3.3 脉冲控制的边沿问题上升时间、下降时间与振铃脉冲控制最大的敌人是边沿质量问题。因为信息在边沿和时序里如果边沿不干净时序就乱了。这里有两个典型问题边沿太缓以及边沿振铃。边沿太缓的典型场景是GPIO直连长线。MCU的推挽输出本身上升时间很快但如果信号线走得很长线上有分布电容上升沿就会被拉成一条斜率很缓的斜坡。步进电机驱动器的STEP引脚如果识别阈值是2.5V一个本应几十纳秒的上升沿变成几百纳秒甚至几微秒的斜坡驱动器可能在斜坡中途反复判定高/低出现多走一步或者抖动。解决办法是在驱动器输入端加施密特触发器整形或在软件里给STEP脉冲加足够的宽度保证稳定。振铃就更常见了这在硬件电路基础里是个经典话题。所谓振铃就是信号跳变时由于走线/线缆的电感与分布电容形成LC谐振波形在目标电平附近来回震荡像按了一下水面一样波动。脉冲信号对振铃尤其敏感因为振铃的第一个回勾很可能越过逻辑阈值导致接收端误判一次跳变。RS485总线的A/B差分线上、步进脉冲的STEP线上、长距离的PWM线上都容易出现振铃。我在调试一块超声波流量计硬件电路时就遇到过换能器激励脉冲边沿振铃严重的问题。激励脉冲是一串高压方波由于换能器引线较长且匹配阻抗没做对回波信号里混入了明显的振铃分量导致计时芯片误触发。后来在探头输入端加了一级RC吸收电路同时调整匹配电阻振铃幅度大幅下降回波计时才恢复正常。这个经验后面我会详细展开。4. 电平控制 vs 脉冲控制选型思路与实战对比4.1 从功耗、抗干扰、精度三个维度对比那什么时候用电平控制什么时候用脉冲控制我从不建议死记口诀而是从三个技术维度去权衡功耗、抗干扰、精度。功耗维度。电平控制在维持状态时往往持续消耗能量。继电器吸合就持续耗电LDO使能脚拉高后芯片静态电流一直存在。脉冲控制在状态维持上有时更省电比如PWM调光用很低的占空比就能输出低亮度但开关瞬间的损耗又会增加。对于电池供电的设备如果只是要一个开关语义优先考虑电平控制并且选支持低功耗模式的器件如果是要调节功率脉冲控制PWM几乎不可避免。抗干扰维度。电平控制在抗干扰上有一个天然优势状态稳定后除非被强干扰拉穿到逻辑阈值以下否则不会翻转。但脉冲控制就脆弱得多——一个毛刺可能被误判为一次有效脉冲导致步进电机多走一步、计数器多加一次。所以在电磁环境复杂的场合脉冲信号必须做滤波和整形电平信号则更多要关注去耦和地平面。精度维度。脉冲控制的精度取决于时钟源。PWM的频率和脉宽都由晶振或RC振荡器决定精度可以做到很高比如用晶振做时基频率误差可以做到几十ppm。电平控制没有精度的概念只有对错的概念。如果你要精确调节一个物理量比如电机转速、LED亮度、输出功率那就是脉冲控制的活如果你只是要开或关用电平控制更简单可靠。我把常用的对比整理成一张表方便你平时查阅对比维度电平控制脉冲控制信息表达状态高/低时序频率/脉宽/边沿典型器件MOS管、继电器、EN引脚、DE/REPWM、步进STEP、舵机、单总线功耗特点状态维持持续耗电平均功率由占空比决定抗干扰能力相对较强状态稳定对毛刺/振铃敏感精度无精度概念只有对错依赖时钟源可精确控制调试工具万用表即可必须示波器/逻辑分析仪典型应用开关、使能、模式切换调速、调光、伺服、通信编码4.2 混合控制的经典案例RS485自收发电路前面说电平控制和脉冲控制在真实电路里总是混合出现的这里用一个非常经典的例子来说明就是网上经常有人问的用MOS管搭建的RS485自收发电路波特率230400能不能用。RS485收发器比如MAX3485有DE和RE两个控制脚DE是高电平使能发送RE是低电平使能接收。正常情况下发送前拉高DE发送完拉低DE。但如果用软件控制就可能因为时序问题出现最后一个字节没发完就把DE拉低的丢数据问题。所以很多人用硬件自收发电路把TXD信号通过一个MOS管和RC网络去自动控制DE/RE。这个电路的典型接法是TXD通过一个NPN三极管或N沟道MOS管控制DE/RE。TXD为高电平时空闲态三极管导通把DE/RE拉低处于接收状态TXD发低电平时三极管截止DE被上拉到高进入发送状态。RC网络的作用是保证发送结束后DE不会立刻拉回低电平让最后一个字节能完整发完。问题是波特率230400。这个波特率下一个位的时间大约是4.34微秒。如果要让最后一个字节完整发完RC时间常数必须比一个字节的时间小很多但又要比一个位的时间大这样才能缓降而不是挡住信号。很多人直接把RC值从9600波特率那边抄过来比如用10K电阻和1uF电容时间常数高达10毫秒——在230400下接收使能一直被拉着不放数据链路完全是乱的。我实测下来230400波特率下RC常数要压缩到几十微秒级别比如用1K电阻加几十nF电容还要实测波形调整。所以这个问题的答案是能用但必须重新算RC参数并且要实测TXD、DE、A/B差分波形确认收发切换不丢字节。这个案例最值得记的是DE/RE是电平控制引脚但生效时机却取决于脉冲序列TXD数据流的时序。电平控制和脉冲控制在同一个电路里互相配合任何一边的参数不对整个系统就崩了。4.3 嵌入式场景里的典型应用RTC与超声波流量计再举两个嵌入式里常见的场景一个是RTC一个是超声波流量计。RTC实时时钟芯片比如DS3231、PCF8563控制引脚里既有电平控制也有脉冲控制。I2C通信接口本质上是脉冲/时序控制需要按协议去读写寄存器但RTC输出的闹钟中断引脚INT/SQW可以配置为电平输出或脉冲输出。比如闹钟到达时INT引脚拉低并保持这是电平控制SQW方波输出这就是脉冲控制。配置RTC时如果你用的是电平型中断软件里就要持续检测引脚电平并且注意复位中断后引脚是否恢复如果用脉冲型就要注意脉冲宽度能不能被MCU的中断检测到——太窄的脉冲可能被漏掉。所以RTC电路虽然简单但它同时展示了协议时序与状态电平两套控制思路。超声波流量计是另一个很典型的混合应用。换能器的发射端需要用高压脉冲串去激励压电晶片这个脉冲串的频率要和换能器的谐振频率匹配比如1MHz或2MHz。接收端的回波信号经过放大后通过比较器变成方波脉冲主控用定时器捕获到回波脉冲的到达时间换算流量。在这个过程中发射电平、脉冲频率、回波时间戳全是脉冲控制的范畴但换能器收发切换的使能开关用的又是电平控制。硬件工程师做这类项目时最难的不是单点电路而是把高压脉冲激励、微弱回波放大、精确计时这三段串起来每一段的信号类型不一样处理手段也完全不同。5. 常见问题与排查技巧实录5.1 电平信号被拉不动的典型症状电平控制电路最常遇到的问题是电平拉不动。表现出来就是用万用表测某控制脚发现电压不是预期的0V或3.3V而是卡在1V到2V之间的诡异值。这种症状的排查思路其实很固定。第一步先看驱动的IO口配置是不是推挽输出内部上下拉有没有使能。很多人初始化GPIO时用了开漏模式又没加上拉电阻输出高电平就是浮空的一接负载就掉电压。第二步看负载电流控制脚后面是不是挂了一个需要几毫安电流的东西而你的IO口或上拉电阻根本供不起。第三步认真看被控芯片的EN或控制脚内部结构前文提过有些芯片EN内部有下拉有些还有内部稳压源外部拉高时会被内部电路吃掉电流。我排查过一块板子现象是电源芯片经常在上电瞬间不开机。抓波形发现EN引脚电压在0.8V到1.5V之间缓慢爬升原来EN引脚外接的启动电阻选得太大了配合芯片内部EN脚的下拉能力上电时的分压正好卡在阈值附近芯片处于开不开、关不关的模糊状态。把启动电阻改小后恢复正常。这类问题在原理图设计时算一遍分压值就能避免但很多人只按参考设计抄电阻从来不自己验算。5.2 脉冲信号振铃干扰的排查思路脉冲信号的问题比电平信号难查因为万用表基本废掉必须上示波器看波形。振铃的典型波形是在脉冲边沿之后出现一串衰减震荡严重的时候会越过逻辑阈值导致接收端重复触发。排查振铃我一般按这个顺序来。第一先区分是源端问题还是传输线问题。把示波器探头直接放驱动端输出如果振铃也存在说明是驱动电路本身的问题如果驱动端波形很干净只有负载端振铃那就是走线或者线缆的问题。第二检查传输路径的长度和阻抗。对于RS485这种差分总线终端匹配电阻是否等于特征阻抗常见120欧非常关键对于单端脉冲线如果走线太长可以在源端串联一个几十欧的电阻做阻尼。第三处理地回路。长线传输时接收端和发送端的地电位可能有压差共模噪声会耦合到信号上用示波器同时看信号与地能快速判断是不是地弹或地环路问题。振铃问题的处理手段一是降低边沿速率二是在接收端加滤波三是做阻抗匹配。降低边沿速率听着和边沿要好矛盾但其实工程上常给脉冲信号源端串联一个小电阻故意把上升沿放缓和一些付出的代价是时序裕量变小换来的是振铃大幅减小。接收端加施密特触发器或者简单的RC低通也能有效滤掉振铃引起的误触发。5.3 故障速查表与实测心得最后整理一份速查表把电平控制和脉冲控制的常见故障、排查手段和解决方向列在一起方便你直接对照。故障现象可能的信号类型问题检查手段解决方向电平卡在中间值电平驱动能力不足或分压不对万用表测静态电压、示波器看带载波形改驱动级、调整上拉/下拉电阻继电器/器件时好时坏电平落入不确定区看输入阈值datasheet对比驱动电平电平转换、更换器件、调整驱动电压PWM输出有偏差脉冲频率/占空比配置错误示波器量频率与脉宽检查定时器时钟源和预分频步进电机偷走/不走脉冲边沿太缓或毛刺干扰示波器看STEP波形边沿加整形、源端串阻、缩短走线长线信号振铃脉冲边沿过冲/震荡示波器看后沿和过冲终端匹配、源端阻尼、加RC吸收RS485高波特率丢字节电平控制脚切换时机不对同时抓TXD、DE、差分波形重算RC延时、加快切换串口/单总线偶尔乱码脉冲时序不满足协议逻辑分析仪抓时序宽度禁止中断打断、用定时器捕获实操中还有两个很实用的心得。第一测量脉冲信号时示波器探头尽量用最短的地线弹簧夹不要用那根又长又细的鳄鱼夹地线否则测出来的高频振铃有很大一部分是探头自己引入的假振铃。第二逻辑分析仪采样率高不代表时序信息一目了然很多协议类数据信号建议同时抓波形视图而不是只看解码结果因为在解码正常而功能异常的时候往往是模拟域的问题边沿、幅度、毛刺在捣鬼纯数字解码抓不到这些。写在最后的一点经验做硬件越久越觉得电平控制还是脉冲控制不是一个考试概念而是一把分析问题的钥匙。拿到任何一个新器件第一件事不是急着接电路而是翻开datasheet看清楚它的控制脚是电平触发还是边沿触发输入阈值是多少内部有没有上下拉对脉冲宽度有没有最小要求。这四个问题看明白电路设计就成功了一大半。另外我建议你在调试时养成一个习惯示波器常驻桌面上测电平信号时顺手看一眼波形是否有异常毛刺测脉冲信号时先量频率再量脉宽别只看占空比。很多诡异问题其实是信号类型没分清、测试手段用错了造成的。把这套分类思维刻进脑子里再去碰那些复杂的混合电路、通信总线、功率驱动你会觉得路顺很多。
返回列表