ARTICLE DETAIL

资讯详情

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

Multisim实战:ADC接口电路的电平抬升与峰值保持仿真

Multisim实战:ADC接口电路的电平抬升与峰值保持仿真 用Multisim做ADC接口电路的仿真算是我自己调板子之前必做的一步。尤其是碰到“信号范围不匹配”和“峰值捕捉”这两种需求——一个对应电平抬升一个对应峰值采样——直接上仿真器会省掉大量返工。这篇文章就以一个典型的ADC接口电路为例把电平抬升电路和峰值采样保持电路从原理、参数计算到Multisim实操全部梳理一遍最后附上我在仿真过程中踩过的几个常见坑。如果你正准备做单片机采集、传感器信号调理或者想系统地学一下Multisim里的模拟数字混合仿真这篇内容应该能帮你少走不少弯路。文章全程以Multisim 14.x的操作界面来演示大部分操作在13、15等版本里也都通用。1. 为什么先要把ADC接口电路“跑”在仿真里1.1 仿真阶段能解决哪些实际问题先说个真实场景。之前做一个工业数据采集板传感器输出的是±2V的交流信号而单片机ADC只接受0~3.3V的单极性输入。如果直接拿万用表去调偏置板子都焊好了才发现信号负半周被削掉这时候再改硬件焊盘都得折腾好几个来回。仿真的意义就在于把“信号调理”这部分在电脑上先跑通包括电平抬升的偏移量、峰值保持的电容大小、运放的输出电压范围都能在几分钟内看到结果。ADC接口电路仿真的价值不只是画个原理图好看。它能让你直观看到每个节点在瞬态过程中的波形变化信号进入运放之后是否被限幅、保持电容能不能在要求的时间内充到峰值、保持阶段跌落多少毫伏。这些问题如果放到实物上测往往要依赖示波器长时间观察还要反复调整电阻电容参数效率完全不是一个量级。除了调参仿真还能帮你验证整个系统的时序配合。ADC采样并不是随时随地都能采到想要的值。电平抬升把信号搬到ADC量程之内峰值保持电路把瞬态峰值暂存起来ADC再在合适的采样时刻启动转换——这三者的配合纯靠脑补很容易出问题放到Multisim里用虚拟示波器和虚拟万用表一起看逻辑就清楚多了。1.2 为什么选择Multisim做混合信号仿真我见过不少人用LTspice或者PSpice做这类仿真它们各有优势LTspice免费、模型丰富PSpice在工业设计里很常用。但如果是快速验证ADC接口电路我更愿意用Multisim。原因很直接Multisim的虚拟仪器体系做得完整示波器、信号发生器、万用表、逻辑分析仪都现成而且操作方式贴近实验室里的真实仪器学习成本低。另一个原因是Multisim对“混合信号”的支持够用。ADC接口电路本身属于模拟电路为主、数字信号为辅的范畴Multisim的模拟数字混合仿真能力足以覆盖从信号调理到ADC采样的完整链路。你甚至可以把一个简单的ADC模型放进电路里直接观察数字输出端的波形变化这在很多纯SPICE类工具里反而需要自己建模型。当然Multisim也有自己的毛病比如收敛性问题、元件库偶尔报错、大电路仿真速度偏慢。但这些大多数可以通过合理设置仿真参数来规避。后面我会专门拿出一个章节讲常见问题先把主线电路搭完。1.3 电平抬升与峰值采样如何组合使用很多人会把电平和峰值当成两个独立电路来看实际上在ADC采集链路里它们经常是串联的。信号进来先做电平抬升把双极性波形整体搬到0V以上之后如果我们需要捕捉这段波形在一定时间内的最大值再接峰值保持电路最后把保持住的值送进ADC转换。举一个实际例子音频电平指示器输入是±1V的音频信号需要显示这段时间内的最大响度。那么链路就是“音频信号 - 电平抬升 - 峰值保持 - ADC - 单片机 - 显示”。用Multisim仿真时可以把这几级电路全部搭在一起用一台虚拟示波器同时监测多个节点整条链路的工作情况一目了然。我习惯在进入峰值保持之前先确认电平抬升后的信号已经稳定落在ADC量程之内。如果抬升后的波形还有削顶或者底部被截的现象说明前级动态范围不够需要先调整运放供电或者增益而不是急着往后级加电路。这个顺序很关键很多人一上来就搭一整套电路出了波形问题根本分不清是前级还是后级的问题。2. 电平抬升让双极性信号满足ADC输入范围2.1 不同场景下的抬升方案对比绝大多数单片机的ADC输入范围都是0到VREF比如0~3.3V或者0~5V。可现实中很多传感器输出天然是双极性的——音频信号、振动信号、交流电流互感器输出都是以0V为中心正负摆动。把负电压直接送到ADC引脚轻则采样结果被截断在0附近重则损坏输入通道的ESD保护二极管。解决办法就是电平抬升也叫直流偏置叠加。原理很简单在原始信号上叠加一个直流分量让整体波形都平移到0V以上。比如±1V的正弦波叠加1.65V直流偏置之后变成0.65V~2.65V完全落在0~3.3V量程之内。但“叠加直流偏置”这件事在电路实现上并不像看上去那么简单。不同场景适合不同方案方案优点缺点适用场景同相加法器增益精确偏置稳定电阻数量多占面积慢变信号、直流耦合RC耦合加电阻分压偏置结构简单适合交流信号低频响应受限音频、交流信号调理运放缓冲分压中心电压驱动能力强偏置稳定成本略高高速ADC前端、高精度采集对于低频甚至直流的信号比如称重传感器输出你不能用隔直电容因为电容会把直流分量滤掉。这时候同相加法器几乎是唯一选择。对于交流信号RC耦合方案更简洁一个隔直电容加两颗偏置电阻就能完成抬升。2.2 同相加法电路的参数计算与选值思路我这里重点说一个在Multisim仿真中最容易验证的方案同相加法电平抬升。电路结构是这样的输入信号Vi经过R1接到运放同相端直流偏置Vref经过R2也接到运放同相端反相端经Rg接地输出经过Rf反馈到反相端。这个拓扑其实是把两个信号在同相端加权求和再按同相放大器的比例放大。先推导关键公式。同相端电压Vp Vi * R2/(R1R2) Vref * R1/(R1R2)运放输出Vout Vp * (1 Rf/Rg)如果取 R1 R2 Rf Rg那么Vout (Vi Vref) / 2 * 2 Vi Vref也就是说选择四颗相同阻值的电阻就能实现“信号 偏置”的效果增益恰好为1。这个推导可以在Multisim里用参数扫描验证结果和公式完全一致。举个例子。假设输入信号是±2V的正弦波ADC参考电压是3.3V。直接抬升1.65V的话输出范围是0.35V~3.65V上限超出了量程。这时候不能硬抬应该先把输入信号做一次衰减例如先经过电阻分压衰减到±1V再抬升1.65V最终输出范围0.65V~2.65V上下都留有大约20%的余量这是我在实际项目里比较喜欢的安全区间。那偏置电压Vref从哪里来如果系统里有稳定的3.3V电源直接用两个电阻分压得到1.65V也行但要注意分压点阻抗偏高问题。更稳妥的方式是用一颗电压基准配合运放缓冲或者是直接用运放搭一个缓冲后的中心电压。仿真阶段用Multisim里的VDC电源直接给出1.65V就可以先把功能验证清楚。2.3 Multisim搭建步骤与波形验证打开Multisim后第一步是放置元件。运放可以先使用虚拟运放比如“OPAMP_3T_VIRTUAL”思路跑通后再换成LM358、OP07等实际型号。电阻放置四颗10kΩ。信号源用“AC Voltage Source”设置幅值2V、频率100Hz。直流偏置用“DC Power Source”或者VDC电压设为1.65V。示波器从右侧虚拟仪器栏拖出。连线的时候注意示波器的通道A接输入Vi通道B接运放输出。这样可以直接看到抬升前后的波形对比。运放电源引脚不要忘记通过放置VCC和VEE电压源并连接到运放对应引脚才能让仿真正常工作。仿真运行后你会在示波器上看到通道B的正弦波形整体上移负半周不再落到0V以下。如果波形的最大值超过了3.3V就把信号源的幅值调小或者额外加一级分压衰减。这些调整在仿真里只需要双击元件改参数一两分钟就能完成放在实物上却要动烙铁这就是仿真的价值。2.4 电平抬升电路实战避坑第一运放电源不能忘。很多新手搭运放电路时只连了输入输出和反馈忘了给运放的正负电源引脚接电压结果仿真波形完全不对还以为是电路结构有问题。在Multisim里运放电源引脚可能是隐形的需要手动放置VCC和VEE节点连接或者选择带电源引脚的运放模型。第二偏置电压的参考点问题。如果你用两个电阻从3.3V分压得到1.65V直接接后级高阻负载时分压点电压会受负载影响而偏移。仿真的电路图里可能看不出来但一旦接上真实示波器探头或者后级ADC输入阻抗不够高偏置就会漂。所以关键节点上尽量加一级缓冲或者直接把Vref做成低阻抗源。第三输出动态范围。运放不是理想的当输出接近正负电源轨时会进入饱和区波形顶部被削平。仿真用理想模型倒也罢了实物上这种现象非常常见。选型时尽量选择轨到轨运放或者把电源电压留出足够余量输出波形范围不要靠电源轨太近。3. 峰值采样保持电路实战3.1 从ADC采样时序看峰值保持的必要性电平抬升解决的是信号“能不能进ADC”的问题峰值采样解决的是“ADC能不能采到想要的那个点”的问题。ADC转换是有固定时序的。假设信号的峰值只维持了极短时间而ADC的采样周期又恰好错过了这个峰值窗口那采到的值就会明显偏低。峰值采样保持电路的作用就是把信号的峰值“抓住”并保持一段时间让后级ADC可以从容地完成转换。这个功能在工程里用得非常多。比如通信信号强度检测、电机电流峰值监测、音频电平指示还有电池供电设备的浪涌检测都会用到峰值保持电路。在Multisim里我们可以快速搭出两种典型方案对比一下它们的优缺点。3.2 无源峰值检波与有源峰值保持的对比最简单的峰值检波电路就是一只二极管串联一只电容。输入信号正半周通过二极管给电容充电电容电压升高当输入信号低于电容电压时二极管反向截止电容电压就保持在峰值附近。在Multisim里试一下就会发现两个明显问题。第一硅二极管导通压降约0.7V最终的保持电压比真实峰值低大约0.7V对低幅值信号来说这个误差不可接受。第二如果后面直接接ADC输入电容上的电荷会被负载放掉保持效果大打折扣。指标无源二极管检波有源运放峰值保持二极管压降误差明显约0.5~0.7V反馈环路补偿误差很小带负载能力差电容电荷易被抽走运放缓冲带载能力强充电速度受信号源内阻限制由运放驱动充电快电路复杂度简单两颗元件需要两片运放无源峰值检波不是不能用但局限性很大。它更适合幅值较高、误差容忍度较大的场合或者只作为一个粗略的包络检测。如果要做精密峰值采样测量必须上有源方案。3.3 有源峰值保持电路搭建细节有源峰值保持电路的思想是利用运放的高输入阻抗和低输出阻抗隔离电容和后级负载同时补偿二极管压降。常见拓扑是两个运放。第一个运放U1接成电压跟随器输入信号经过U1后驱动二极管D1给电容C1充电。由于U1输出低阻抗电容充电速度更快。第二个运放U2接成电压跟随器把C1上的电压缓冲后输出给ADC几乎不从C1抽取电流。这样电容上的电压可以在长时间内保持住。二极管压降的问题怎么解决关键在反馈。把二极管放在运放的反馈环路内U1的输出经过D1去充C1C1电压反馈回U1的反相输入端。当输入电压略高于C1电压时U1输出会升高一个二极管压降来补偿D1的导通损耗使得C1最终充到接近输入峰值。这个原理在Multisim里用示波器观察非常直观。为了能多次测量还要给电容一个放电通路。可以在C1两端并联一个开关复位时闭合开关把电容两端短路放电。仿真里我喜欢用一个按键开关手动触发复位实际系统里则会用MOS管或者模拟开关由单片机控制放电周期。在Multisim里搭这个电路元件清单如下运放两片虚拟运放或者两片LM358二极管1N4148电容初始值1uF开关按键开关SPST信号源函数信号发生器示波器双通道。连线顺序信号源接U1同相输入端U1输出接D1阳极D1阴极接C1正极、U2同相输入端、开关一端C1负极和开关另一端接地U1反相输入端接到C1正极形成反馈U2输出作为最终的峰值输出接示波器通道B示波器通道A接输入信号。仿真参数建议输入用100Hz、幅值2V的正弦波瞬态分析时长设为30ms最大步长1us。运行之后通道B会先跟随输入上升输入过峰后开始缓慢跌落跌落速度取决于电容大小和运放漏电流。双击开关在仿真中途断开闭合可以观察复位效果开关闭合瞬间U2输出电压立刻掉到0随后再次开始跟随新峰值。整个过程在示波器上非常直观。3.4 保持电容怎么选参数扫描实操电容太小时充电很快但放电也快保持时间短电容太大时保持时间长但充电时间常数变大可能追不上输入信号的变化。具体选多大要看两个时间尺度信号的上升沿能有多快以及ADC需要多少时间完成采样。举个例子如果信号是10Hz正弦波周期100msADC采样时间需要1ms那使用1uF到10uF的电容就没有问题如果信号是1kHz正弦波峰值附近只有几十微秒1uF电容配合高驱动能力的运放都可能不够得把电容缩到10nF到100nF同时换用压摆率更高的运放。Multisim里的参数扫描可以帮你快速找到合适的电容值。在“Analyses and Simulation”菜单里选择参数扫描扫描对象设为C1范围从10nF扫到10uF观察输出波形的峰值跌落程度你会很直观地看到电容大小对保持时间的影响。仿真阶段多花几分钟做这个扫描比焊好板子再换电容要划算得多。信号频率、保持电容和处理方式之间的大致对应关系我在实践中的经验值如下信号频率建议电容范围运放选型建议10Hz以下10uF~100uF通用运放即可100Hz~1kHz0.1uF~1uF通用运放或低偏置运放1kHz~100kHz1nF~100nF需要较高压摆率运放4. 让仿真结果更接近真实关键参数与分析方法4.1 瞬态分析和示波器观察要点在Multisim里直接点“运行”按钮也能看到波形但如果电路跑到一半出现收敛问题或者波形毛刺严重多半是瞬态分析的步长设置不合理。我的习惯是先设定一个合理的总仿真时间。信号频率越低总仿真时间越长但也不要盲目拉长。比如100Hz信号跑20个周期需要200ms如果不是特别关注启动瞬态跑5~10个周期足够看清楚稳态波形了。最大步长是关键。默认设置下Multisim会自动调整步长但自动步长在处理运放这类非线性器件时容易产生多余的毛刺。建议把最大步长设置到信号周期的百分之一到千分之一。比如100Hz信号周期10ms最大步长设成0.1ms既不会太慢又能保证波形平滑。另外要提醒一点瞬态分析起始时间的设置。如果从0开始仿真运放上电瞬间会有明显的建立过程波形看起来可能“晃半天”才稳定这是正常现象。不要误以为是电路问题多观察一段时间再下结论。4.2 用参数扫描验证设计余量参数扫描是Multisim里非常强大但很多人不用的功能。它可以自动改变某个元件的参数在同一个坐标系里画出多组波形非常适合验证电路对元件参数的敏感度。电平抬升电路里可以扫描偏置电阻的阻值看不同阻值下输出波形中点如何偏移峰值保持电路里可以扫描电容值观察保持时间和跌落速度。参数扫描的本质是把一个需要手动重复多次的实验自动化了。还有一个小经验在做参数扫描之前先用带默认值的电路跑通并确认功能正常再去扫描。如果电路本身有错参数扫描得到的一堆波形只会增加排查难度。通过参数扫描还能间接验证ADC接口的线性度。把输出电压摆幅控制在ADC量程的10%到90%之间再扫描输入信号的幅值检查输出是否线性跟随。这样做的好处是提前预测到实际采样中的非线性误差来源是布板之前的最后一道“数字体检”。4.3 结合实际ADC采样周期判断仿真结果仿真波形只是一个中间结果最终要服务于ADC采样。很多时候我们自己搭的电路输出波形非常干净但实际单片机采样出来的数值依然不对问题往往出在采样周期和保持电容的配合上。例如STM32的ADC在12位分辨率下采样周期可以配置成几个微秒到几十个微秒。如果保持电容是1uF经过1kΩ串联等效电阻时间常数已经达到1msADC采样时电容根本来不及充分充电测出来的数值必然偏低。这种问题在Multisim仿真中如果不把ADC模型和采样时序放进去是看不出来的。所以我建议在Multisim中做两层仿真。第一层只仿真模拟前端确认输出波形幅值、偏置、峰值保持都正确第二层加一个简化的ADC模型比如用受控电压源和数字逻辑模拟采样触发观察在指定采样时刻读到的值是否符合预期。这样从模拟到数字的闭环在电脑上就能全部验证完。5. 常见问题与排查技巧实录5.1 数据库错误和元件库消失的修复思路不少人在导入元件、放置元件时遇到“访问数据库发生错误”或者“无法定位数据库”的提示。这通常是数据库文件路径配置出了问题常见原因是安装软件后移动了安装目录或者系统用户目录的权限异常。解决办法一般分两步。第一步是在“Options - Global Preferences”里检查数据库路径指向是否正确如果目录不存在手动重新指定到安装目录下的数据库文件。第二步是清理用户的遗留配置有些版本在“C:\Users\用户名\Documents”下保留了旧版配置删掉之后重启软件即可。元件库消失的问题和这个类似。Multisim安装完成后主数据库路径默认指向“National Instruments”目录如果Windows自动修改了文档目录或者用了某些优化工具清理了系统文件库文件可能就加载不出来了。重置数据库路径后大多数情况下都能恢复。5.2 仿真发散与波形毛刺排查清单仿真发散大概是Multisim里最劝退新人的问题。表现是运行之后波形飞到天上去或者系统直接提示仿真不收敛。常见原因有几个运放电源没接好时间步长设置过大电路存在无法收敛的反馈回路元件参数存在极端值比如电阻为0或者无穷大。我的排查顺序是先检查运放电源和信号源连接然后把最大步长减小一个数量级再不行就换用“Alternate Solver”替代求解器在仿真设置界面里切换求解算法最后看是否有不合理元件值。大部分发散问题都出在这四个环节。还有一个小技巧在高阻抗节点和地之间并联一个1GΩ以上的大电阻有时候能帮助收敛。这个电阻对实际电路影响微乎其微但能有效改善仿真器的数值计算稳定性。波形毛刺也有讲究。如果毛刺出现在运放输出端多半是运放模型的高频特性导致如果毛刺出现在开关切换瞬间要注意开关在Multisim里是否设置了导通电阻和断开电阻。把这些寄生参数设置成接近实际的值仿真结果会更有参考意义。5.3 仿真速度慢怎么解决仿真速度慢常见原因是瞬态分析的时长设置太长、步长太小或者电路里使用了过多非线性器件。我一般会在保证波形细节的前提下尽量把仿真时间压缩到最小步长按信号频率合理设置不要在能看清波形的情况下无限细化。如果你需要长时间观察峰值保持电容的跌落过程又不想让整个仿真跑太久可以把激励信号先持续一小段时间然后关断例如用脉冲源设置一个只有10ms的输入窗口后面的时间只用来看电容放电。这样比让正弦波一直跑完200ms要快得多。Multisim的“交互式仿真”模式也会影响速度。每调整一次虚拟示波器的旋钮、每拖一次探针仿真器都会重新计算一次。如果你只是要最终结果建议直接跑瞬态分析并查看仿真后的波形而不是全程盯着虚拟示波器调整。实测下来这种方式能让仿真时间缩短将近一半。最后关于ADC采样周期和保持电容的配合我再补一句。在Multisim里虽然可以方便地让ADC模型每次在外部触发时转换但真实的单片机ADC还有采样周期、转换时间等限制。设计时一定要给保持电容留够放电容限确保ADC采样过程中电容电压的跌落不影响转换精度。这一点在仿真阶段可能看不出问题实物调试时却非常致命。我个人经验是把采样时间控制在保持时间常数的十分之一以内比较稳妥也就是如果采样时间是10us保持电容的时间常数至少在100us以上这样跌落误差才不至于影响最终精度。在我自己做项目的时候习惯先把这类电路全部在仿真器里过一遍等波形、参数、逻辑都确认没问题了再画PCB。虽然从仿真到实物之间还有寄生参数、电源噪声这些差距但至少能把80%的设计缺陷挡在画板之前。如果你也打算做一个包含信号调理和ADC采集的电路不妨按这个思路先跑一遍仿真一边跑一边把波形截图存下来这对后续调试和写调试报告都很有帮助。
返回列表