1. 从一台"地表最强"示波器的拆解说起
第一次把一台高端示波器的外壳打开,看到里面密密麻麻的芯片和十几层PCB板的时候,我脑子里冒出来的第一个念头是:这玩意儿凭什么叫"地表最强"?它到底强在哪里?是模拟前端做得比别人干净,还是ADC采样率堆得比别人高,又或者是软件层面做了别人没做的信号处理?
带着这个问题,我把手头这台设备的内部结构从头到尾捋了一遍,从电源模块到模拟前端,从ADC到主控FPGA,再到运行在屏幕背后的嵌入式软件系统,一层一层往下挖。这篇文章就是这次拆解和研究的完整记录,适合对示波器硬件设计、嵌入式系统、PCB布局以及测试测量仪器感兴趣的读者。不管你是刚入门的电子爱好者,还是做了多年硬件设计的工程师,相信都能从中找到一些有用的东西。
需要提前说明的是,本文讨论的是示波器这一类测试测量仪器的通用架构和设计思路,涉及的具体芯片型号和电路参数是基于行业常见方案进行的合理推演,不同品牌和型号的实际设计会有差异。我的目的是帮你建立一套理解示波器内部构造的框架,而不是复刻某一台具体设备。
2. 模拟前端:决定示波器"底子"的关键电路
2.1 为什么模拟前端是示波器最值钱的部分
很多人拿到一台示波器,第一眼看的是带宽和采样率这两个参数。但真正做过高速信号测量的工程师都知道,同样标称1GHz带宽的两台示波器,实际测出来的波形可能天差地别。差距就出在模拟前端上。
模拟前端是信号进入示波器的第一道关口,它要完成的事情包括:信号衰减(把大电压降到ADC能接受的范围)、阻抗匹配(通常是1MΩ或50Ω输入阻抗)、信号调理(放大、滤波、偏置调整)、以及保护电路(防止过压烧毁后级)。这每一个环节都会引入噪声、失真和带宽损失。
我见过不少DIY示波器项目,主控和ADC选得很猛,但模拟前端用几个运放随便搭一下,结果测出来的波形毛刺满天飞,底噪大得没法看小信号。这就是典型的"头重脚轻"——后端处理能力再强,前端信号已经脏了,后面做什么都是白搭。
2.2 模拟前端的典型信号链路拆解
一台高性能示波器的模拟前端通常包含以下几个关键级联环节:
第一级:输入耦合与衰减网络。信号从BNC接口进来之后,首先要经过AC/DC耦合选择电路。DC耦合直接让信号通过,AC耦合则串联一个隔直电容。接下来是可切换的衰减器,通常用继电器或固态开关切换不同的衰减比(比如1x、10x、100x)。这里有个设计难点:衰减网络的频率响应必须非常平坦,否则不同频率的信号衰减比例不一致,测出来的波形就会失真。
第二级:阻抗变换与缓冲。衰减网络之后通常接一个高输入阻抗的缓冲放大器,把信号从高阻抗节点隔离出来,避免后级电路影响衰减网络的精度。这一级对运放的输入电容和偏置电流要求极高,因为输入电容会与信号源阻抗形成低通滤波,直接影响带宽。
第三级:可变增益放大。根据用户设置的垂直档位(比如每格1V还是每格10mV),这一级需要提供不同的增益。高端示波器通常用多级放大加精密电阻网络来实现,每一级的增益误差都要控制在很小范围内。
第四级:偏置调整与驱动。最后一级把信号调整到ADC的输入范围内,同时提供足够的驱动能力。这一级还要处理垂直偏移(vertical offset)功能,让用户可以把波形上下移动。
整个链路的每一级都会贡献噪声和失真,设计者的任务就是在带宽、噪声、失真、功耗和成本之间找到最佳平衡点。
2.3 模拟前端设计中的几个实战坑
在实际调试模拟前端的时候,有几个坑几乎每个人都会踩:
坑一:忽略PCB布局对前端的影响。模拟前端的PCB布局极其敏感。我见过一个案例,同样的原理图,换了个布局之后底噪直接涨了3dB。原因是衰减网络的走线太长,引入了寄生电感和电容,导致高频响应变差。正确的做法是把衰减网络和第一级缓冲放大器的走线尽可能短,并且做好接地屏蔽。
坑二:电源噪声串入信号链路。模拟前端对电源纹波非常敏感。如果电源滤波做得不好,开关电源的纹波会直接调制到信号上。我的经验是,模拟前端的供电必须用低压差线性稳压器(LDO)做二次稳压,而且LDO的电源抑制比(PSRR)在目标频段内要足够高。
坑三:继电器切换带来的瞬态干扰。如果衰减网络用机械继电器切换,切换瞬间会产生较大的瞬态干扰,影响测量。固态继电器(如光MOS继电器)在这方面表现更好,但导通电阻和寄生电容又成了新的问题。选型时需要根据实际测量需求权衡。
3. 从ADC到主控:数据采集与处理链路
3.1 ADC选型:采样率和分辨率的博弈
模拟前端把信号调理好之后,下一步就是ADC采样。示波器用的ADC和普通数据采集用的ADC有很大不同,它需要同时满足高采样率和高分辨率的要求。
以一台标称2GSa/s、8位分辨率的示波器为例,它的ADC每秒要产生20亿个采样点,每个点8位,数据率就是2GB/s。这个数据量非常惊人,对后续的数据传输和处理提出了极高要求。如果要做12位分辨率,数据率还要再翻倍。
实际设计中,高端示波器通常采用多颗ADC交织采样(interleaved sampling)的方案。比如用4颗500MSa/s的ADC交错工作,合成2GSa/s的采样率。但交织采样有个致命问题:各ADC之间的增益、偏置和时钟相位如果不一致,会在输出频谱中产生杂散。校正这些失配需要复杂的算法和精密的时钟分配网络。
3.2 FPGA在示波器中的角色
ADC采出来的原始数据不能直接丢给CPU处理,因为CPU根本处理不过来这么高的数据率。中间必须有一个FPGA做实时预处理。
FPGA在示波器里承担的工作包括:
- 数据降速与缓存:把ADC的高速数据流降速后写入片上RAM或外挂DDR内存。
- 触发判断:实时监测信号是否满足触发条件(边沿触发、脉宽触发、协议触发等),一旦满足就锁定数据。
- 数字下变频与抽取:在高采样率下工作时,通过抽取降低有效采样率,减少后续处理压力。
- 硬件加速运算:比如FFT运算、参数测量(频率、幅值、上升时间等)都可以在FPGA里硬件加速。
我拆过的几台设备里,FPGA通常是整块板子上最贵、引脚最多的芯片。它的选型直接决定了示波器的触发精度、波形刷新率和运算能力。
3.3 触发系统的设计逻辑
触发是示波器的灵魂功能。没有稳定的触发,波形就会在屏幕上乱跑,根本没法看。
触发系统的基本原理是:FPGA实时比较ADC采样值与用户设定的触发电平,当信号满足触发条件时,记录触发点前后的数据。听起来简单,但要做得好非常难。
首先是触发灵敏度。如果触发电平设置得稍微偏一点,或者信号上有噪声,就可能误触发或漏触发。高端示波器会用数字滤波和迟滞比较来改善触发稳定性。
其次是触发抖动。触发点的时间精度直接影响测量结果的准确性。如果触发抖动大,测出来的上升时间、周期等参数就不准。低抖动触发需要高稳定度的时钟源和精心设计的触发信号路径。
还有一个容易被忽略的点:触发后的死区时间(dead time)。触发一次之后,示波器需要时间重新武装触发系统,这段时间内信号是"看不见"的。死区时间越短,捕获偶发异常信号的概率越高。高端示波器通过分段存储和快速重触发技术来缩短死区时间。
4. PCB板设计:高速信号完整性的战场
4.1 示波器PCB的层叠结构
打开一台高性能示波器,你通常会看到一块十几层的PCB板。为什么需要这么多层?因为示波器内部同时存在高速数字信号、敏感模拟信号和大功率电源,这三者必须严格隔离。
典型的层叠结构大致是这样的:
| 层序 | 功能 | 说明 |
|---|---|---|
| 1 | 信号层 | 模拟前端走线 |
| 2 | 接地层 | 模拟地平面 |
| 3 | 信号层 | 模拟信号内部走线 |
| 4 | 电源层 | 模拟电源平面 |
| 5 | 接地层 | 数字地平面 |
| 6 | 信号层 | 高速数字信号 |
| 7 | 接地层 | 数字地平面 |
| 8 | 信号层 | 高速数字信号 |
| 9 | 电源层 | 数字电源平面 |
| 10 | 接地层 | 电源地平面 |
| 11 | 信号层 | 低速控制信号 |
| 12 | 接地层 | 整体屏蔽地 |
模拟区和数字区之间通常会用开槽或磁珠隔离,防止数字噪声串入模拟电路。电源平面也会分割成多个独立区域,分别给模拟前端、ADC、FPGA和CPU供电。
4.2 高速差分信号的走线要点
示波器内部的高速信号(如ADC数据线、FPGA到内存的接口)通常采用差分传输。差分走线的核心要求是等长和等间距。
等长是为了保证差分信号的正负两端同时到达接收端,否则会产生共模噪声。一般要求长度偏差控制在5mil以内。等间距是为了保持差分阻抗恒定,通常差分阻抗控制在100Ω左右。
实际布线时,过孔和拐角是最大的挑战。每个过孔都会引入阻抗不连续,拐角则会导致差分对之间的长度失配。我的做法是:差分对尽量走直线,必须拐弯时用圆弧代替直角,过孔尽量少打,如果必须打就成对打并做好回流地过孔。
4.3 电源完整性与去耦电容布局
示波器里有很多芯片同时工作,电源完整性(PI)直接影响到信号质量和测量精度。
去耦电容的布局是PI设计的核心。基本原则是:容值小的电容离芯片电源引脚越近越好,容值大的可以稍远。通常会在每个电源引脚旁边放一个0.1μF的陶瓷电容,然后在芯片周围放几个1μF和10μF的电容,最后在电源入口处放一个大容量的钽电容或电解电容。
但光放电容还不够,电容的接地回路同样重要。如果接地过孔离电容太远,等效串联电感(ESL)会大幅增加,高频去耦效果大打折扣。正确的做法是电容的接地端直接通过过孔连接到地平面,过孔尽量靠近焊盘。
5. 软件系统:从底层驱动到用户界面
5.1 嵌入式操作系统的选择
示波器的软件系统通常跑在一个嵌入式处理器上,可能是ARM Cortex-A系列,也可能是x86架构。操作系统的选择主要有两条路线:Linux和RTOS(实时操作系统)。
Linux的优势是生态丰富、开发效率高、支持复杂的图形界面和网络功能。现在很多中高端示波器都跑Linux,用户界面用Qt或类似框架开发,看起来和桌面软件差不多。
RTOS的优势是实时性好、启动快、资源占用少。一些主打快速启动和低延迟的示波器会选择RTOS,但图形界面和网络功能就要自己从头搭。
我个人的观察是,中低端示波器用RTOS的居多,高端示波器基本都转向Linux了。因为高端示波器需要处理的功能太多——协议解码、频谱分析、远程控制、文件管理——没有成熟的操作系统支撑,开发成本会高得离谱。
5.2 波形渲染与刷新率优化
示波器屏幕上显示的波形看起来简单,但背后的渲染工作量很大。每一帧要绘制的数据点可能多达几十万个,而且刷新率要求很高(高端示波器能达到每秒几十万次波形刷新)。
波形渲染的优化手段主要有几个:
- FPGA硬件加速:把波形数据的预处理和部分渲染工作放到FPGA里做,减轻CPU负担。
- 分级渲染:根据当前时基设置,决定屏幕上每个像素列对应多少个采样点,然后做峰值检测或抽取,避免绘制超出屏幕分辨率的数据点。
- 双缓冲与垂直消隐:用双缓冲机制避免画面撕裂,利用垂直消隐期更新画面数据。
这里有个实际经验:波形刷新率这个参数在实际使用中比很多人想象的更重要。刷新率高的示波器,捕捉偶发毛刺和异常信号的能力明显更强,因为它在同样时间内"看"了更多次信号。
5.3 协议解码与数学运算的实现
现代示波器不只是看波形,还要做协议解码和数学运算。比如I2C、SPI、UART、CAN等总线的解码,以及FFT、积分、微分等数学运算。
协议解码的实现思路通常是:在FPGA里做边沿检测和基本时序测量,把结果传给CPU做协议层解析。CPU根据协议规范,把电平变化翻译成地址、数据、校验等字段,然后叠加显示在波形上。
数学运算方面,FFT是最常用的功能之一。实现FFT需要先确定窗函数(汉宁窗、平顶窗等)、FFT点数、采样率等参数,然后调用FPGA或CPU上的FFT库进行计算。这里有个细节:如果示波器的时基设置和FFT参数不匹配,会出现频谱泄漏或频率分辨率不足的问题。好的示波器软件会自动根据时基推荐合适的FFT参数。
6. 拆解过程中值得记录的几个发现
6.1 屏蔽与隔离做得比想象中更彻底
拆开之后最直观的感受是:高端示波器在屏蔽和隔离上下的功夫远超我的预期。模拟前端部分通常有一个独立的金属屏蔽罩,把整个前端电路罩起来。ADC和FPGA之间有时也会加屏蔽隔板。电源模块更是被单独隔离在一个角落里,用金属壳包得严严实实。
这些屏蔽措施的成本不低,但对测量精度的影响非常大。我自己做过对比实验:把模拟前端的屏蔽罩去掉之后,底噪在100MHz以上的频段明显恶化。所以如果你在做自己的测量设备,千万别在屏蔽上省钱。
6.2 散热设计直接影响长期稳定性
示波器内部功耗很大,尤其是FPGA和ADC这些高速芯片。散热设计做得好不好,直接影响到设备长时间工作的稳定性。
我注意到高端示波器的散热方案通常包括:大面积散热片、导热硅脂或导热垫、精心设计的风道、以及温度传感器和风扇调速电路。有些设备还会在关键芯片上贴温度传感器,实时监测温度并在过热时降频保护。
一个容易被忽略的点是:散热设计不仅要考虑芯片本身,还要考虑周围元件。如果ADC旁边的电容长期工作在高温下,容值会漂移,影响测量精度。所以散热设计要从整板角度考虑,不能只盯着发热大户。
6.3 校准电路的存在感很强
高端示波器内部通常有专门的校准电路,包括基准电压源、精密电阻网络和校准DAC。这些电路用来校正ADC的增益误差和偏置误差,以及模拟前端的频率响应。
校准通常在开机时自动进行,也可能在温度变化较大时触发。有些设备还支持外部校准源输入,用更高精度的基准来校正内部电路。
这个设计思路值得学习:任何测量设备都有误差,关键是要有办法发现和补偿这些误差。校准电路就是示波器保持精度的"底牌"。
7. 自己动手复现时的一些实操建议
如果你看完上面的拆解,想自己动手做一个简化版的示波器或者研究某个模块,这里分享几条实操建议。
第一,从模拟前端开始,不要贪快。很多人一上来就搞FPGA和高速ADC,结果前端信号一塌糊涂,后面全白搭。先把衰减网络和缓冲放大器调好,用信号源和频谱仪验证频响和噪声,确认前端没问题了再往后走。
第二,PCB布局比原理图更重要。我见过太多原理图正确但布局糟糕导致性能不达标的案例。模拟区和数字区严格分开,高速信号走差分,去耦电容靠近引脚,地平面完整不分割——这些基本原则一定要遵守。
第三,软件先从简单的开始。不要一上来就搞Linux加Qt,先用RTOS或者裸机跑通基本的采集和显示,把触发和波形渲染的逻辑理清楚,再逐步增加功能。软件架构图可以先画一个简单的版本,后面再迭代。
第四,测试和校准要贯穿始终。每做完一个模块就测一下,不要等全部做完再联调。准备一个靠谱的信号源和一台参考示波器,用来对比验证你的设计。校准数据要保存好,后面分析问题的时候会用得上。
第五,散热和屏蔽别省。这两项在原型阶段看起来可有可无,但到了实际使用中,它们对性能的影响会非常明显。哪怕是用铜箔胶带做个简单的屏蔽,效果也比完全没有好得多。
8. 关于示波器技术演进的一点个人观察
这几年示波器技术的发展方向很有意思。一方面是传统指标继续往上推——带宽越来越高、采样率越来越快、分辨率从8位往10位、12位走。另一方面是软件和用户体验的权重越来越大——触摸屏、远程控制、云端协作、自动测量和报告生成,这些功能在采购决策中的分量越来越重。
还有一个趋势是芯片集成度的提升。以前示波器的模拟前端需要几十个分立元件,现在有些厂商开始用专用集成电路(ASIC)把大部分前端功能集成到一颗芯片里。这样做的好处是体积小、一致性高、成本低,但灵活性和可维修性会下降。
对于做硬件设计的工程师来说,理解示波器的内部构造不只是为了修设备或者做设备,更重要的是理解测量工具本身的局限性。任何示波器都有它的盲区和误差来源,知道这些盲区在哪里,才能在实际测量中做出正确的判断。我自己的经验是:越是了解示波器内部发生了什么,越能在看到异常波形时快速判断这是信号本身的问题还是测量系统的问题。这个能力,比会操作示波器本身重要得多。