这套课程首先给大家介绍一下通用示波器的一些基本功能,由我们的工程师来做实际的操作演示,全面了解构成一款示波器最基本的功能以及相应的参数,并在我们自己的DIY示波器中实现相应的一些最基本、最核心的相应的功能。
参照的是Tektronix的TBS1202B,这是一款经济型的通用数字存储示波器。其它的通用数字示波器在指标、功能以及操作界面方面有些许的差别,但它们的主要功能、控制机制以及接口方式基本上都是类似的。
实物图片
官网图片
先来看看示波器最主要的功能及指标:
从仪器的面板上可以看出它是一款双通道200MHz、2Gsps的数字示波器,200MHz(Hz为频率的单位)表示这款示波器能够观察的模拟信号的带宽(3dB)为200MHz,后者2Gsps(sps - 每秒的样点数)表示这款示波器内部的ADC采样率最高为2Gsps,这两个指标有一定的关联,模拟带宽越高,需要的采样率也就越高,但并非一一对应关系,比如2Gsps采样率的示波器有50MHz模拟带宽的,也有100MHz、200MHz带宽的。这两个指标都非常重要,有时候我们说这是个100M的示波器,要弄清楚这里的100M是指100MHz的模拟带宽,还是100Msps的采样率。
二者之间的关系我们会在后面的课程中还会做详细介绍。
从官网的产品介绍中可以看到它的记录长度为2500个点,也就是说一次采集能够获取并保留2500个点到存储器中,可用于后期的处理、缩放显示等。
那我们的DIY示波器能做到多少呢?
双通道
模拟带宽 - 100KHz
ADC采样率 - 2.5Msps(单通道)、1.25Msps(双通道)
记录长度:256个点(显示屏为128*128个点,显示区域设定为100*100)
我们用于DIY示波器的板卡实物
我们用于DIY示波器的功能框图
相比起来指标很低,但麻雀虽小,五脏俱全,对于理解示波器的构成原理已经足够,100KHz的模拟带宽以及2.5Msps的采样率对于我们常用到的音频信号也已经足够,对于学习模拟电路的原理也能派上用场了。
下面我们再从该产品的数据手册中看一下更具体的指标参数:
我们知道任何一个电信号都可以分解成多个单频信号的叠加,而每个单频信号的两个主要参数为幅度和频率(相位),示波器的主要功能就是将随时间变化的电信号以通过二维的显示屏幕,以图形化的方式展示出来,在纵轴方向展示电压的变化、在水平轴方向展示随时间的变化。
显示屏幕周边的旋钮就是用来调节这些图形在水平和垂直方向的刻度,对采集到的信号进行缩放和移动显示,以及其它的一些设置功能。
除了 能淋漓尽致地显示波形之外,示波器还有测量波形参数的功能,可以自动测量,也可以手动测量,主要测量下面的一些参数:
与电压相关的特性参数:
幅度
最大和最小电压
平均电压
与时间相关的特性参数:
信号的频率和周期
占空比
上升时间和下降时间
参数测量的设置菜单
我们先看一下电压方面的指标:
垂直分辨率 - 8 bits,也就是内部使用了8位的ADC对模拟信号进行量化
输入信号灵敏度范围:- 2mV to 5 V/div
DC增益准确度:±3%, 从10mV/div到5 V/div
最大输入电压范围:300 VRMS CAT II; derated at 20 dB/decade above 100 kHz to 13 Vp-p AC at 3 MHz and above
偏移电压范围:2 mV to 200 mV/div: ±1.8 V, >200 mV to 5 V/div: ±45 V
带宽限制:20 MHz
输入耦合方式:AC, DC, GND
输入阻抗:1 MΩ 并联20 pF
再看看水平轴方向与时间、频率、相位相关的指标:
时基范围:2.5 ns to 50 s/div
时基准确度:50 ppm
我们再看一下示波器的主要构成部分的相应功能:
一个典型的数字示波器的功能框图
数据采集系统:
采集模式
峰值检测 - 针对高频信号或随机毛刺信号的捕捉,能够捕捉到窄至12ns的信号
取样
平均:波形平均,可以选择4、16、64、128个波形进行平均
单次采集
滚动采集
触发系统:
外部触发输入
触发模式:自动、正常、单序列
触发类型:
边缘触发
视频触发
脉冲宽度触发 (或毛刺)
触发源:双通道模式:CH1, CH2, Ext, Ext/5, AC Line
触发查看:读出触发信号的频率
波形测量:
使用光标手动测量
类型:幅度、时间
能够测量:ΔT, 1/ΔT, ΔV
自动测量:周期、频率、脉宽、峰峰值。。。。。。
波形计算
算术:加、减、乘
数学函数:FFT,2048个样品点
FFT:加窗:Hanning, Flat Top, Rectangular
源:双通道模式:CH1 - CH2, CH2 - CH1, CH1 + CH2, CH1 × CH2
时域波形和对应的频谱
自动设置
自动设置菜单
方波
正弦波
视频 (NTSC, PAL, SECAM)
自动调节范围- 采用最合适的采样率、增益、显示刻度
频率计数器
分辨率:6位数字
准确度: + 51 parts per million including all frequency reference errors and +1 count errors
频率范围:AC coupled, 10 Hz minimum to rated bandwidth
频率计数器的信号源
显示系统
内插:Sin (x)/x
波形风格:点, 矢量
暂留时间:关, 1秒, 2秒, 5秒, 无限
格式:YT和XY
基于以上针对常规示波器的功能总结,我们就可以设定我们的DIY示波器要实现的功能和对应的技术指标了:
主要功能参数 | 常规示波器TBS1202B | DIY示波器 - STM32 |
通道数 | 2 | 2 |
模拟带宽 | 200MHz | 100KHz |
采样率 | 2Gsps | 2.5Msps |
采样深度 | 2500个点 | 256个点 |
幅度范围 | 2mVpp - 50Vpp | 2mVpp - 50Vpp |
ADC分辨率 | 8位 | 12位 |
采集系统 | 多种采集模式 | 支持单次、连续采集 |
触发系统 | 支持多种触发模式 | 支持电平和边缘触发 |
参数测量 | 支持自动测量和手动测量 | 支持自动测量和手动测量 |
波形计算 | 支持2048点FFT | 支持256点FFT |
自动设置 | 支持多种波形的自动设置 | 支持正弦波的自动设置 |
自动调节范围 | 支持 | 支持 |
频率计数器 | 支持 | 支持 |
屏幕显示 | 点、矢量 | 点、矢量 |
在后续的嵌入式系统编程部分的课程中我们就带着大家一步一步实现上面表格中的功能,完成了这些功能,也就是实现了一个完整的示波器的功能。从软件编程的角度,更多的功能都是可以通过编程进行支持的,但技术指标则受限于如下的一些因素:
模拟链路的性能- 按照100KHz的模拟带宽设计,增益的调整设定了1:1和10:1两种,但由于我们使用的ADC为12位精度,也能够处理2mVpp到50Vpp范围的模拟信号;
STM32G031内部的ADC采样率为2.5Msps,如果双通道同时工作,则降为1.25Msps/通道,采集100KHz的正弦波,一个周期内能够有12.5个采样点;
STM32G031内部RAM只有8KB,既要用于数据采集又要用于波形的显示以及其它的数据处理,因此每次采集能够存储的波形控制在256个点,这也是在FFT中使用的点数;
显示区域:商用的示波器显示屏都比较大,TBS1202B的分辨率为800*480,显示信息量比较大,我们采用了128*128的OLED显示屏,显示区间很小,比较合适的显示区域是100*100;
输入控制:通用示波器面板上的旋钮很多,能够支持多种功能,而我们的DIY示波器只有一个旋转编码器和两个按键,比较简单,需要在小的显示屏幕上显示更多的功能,在菜单设计上需要下很大的功夫,在支持的功能上也只能简化一些。
在正式的课程之前,大家可以观看一下硬禾学堂和Tek合作制作的示波器系列视频。
下一节我们来看一下“电信号”的基本指标。