- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
数字存储示波器的设计
1.掌握数字示波测量的基本原理。
2.熟悉数字存储示波器的硬件结构。
3.掌握虚拟数字存储示波器的CVI软件设计。
设计虚拟数字存储示波器
(1)设计一个包含耦合方式选择、伏/格调整、触发源选择、时基选择等基本功能的虚拟数字存储示波器界面,要求显示屏水平刻度为10div,垂直刻度为10div。
(2)在完成内容(1)的基础上实现幅值、时基可调的虚拟双踪数字存储示波器。
要求:①垂直灵敏度至少包含50mV/div、0.1V/div、0.5V/div、1V/div四档;②扫描速度至少包含0.1u/div、1u/div、10u/div、100u/div、500u/div、1m/div、10m/div、0.1s/div八档;③增加双踪示波功能,能同时显示两路被测信号波形。
(3)数据处理设计
要求:①显示被测信号幅值包括:有效值、峰峰值、平均值;②显示被测信号的频率值。
(4)在电子测量实验箱中示波器硬件提供32K存储深度的基础上设计波形存储、回放功能。
三、实验器材
1.SJ-8002B电子测量实验箱 1台
2.计算机 1台
3.信号源(也可以使用平台的DDS信号源) 2台
4.Q9线 1 条
5.示波器 1台
4.1 数字示波器原理
数字存储示波器是用 A/D 变换器把模拟信号转换成数字信号,然后把数据存储在半导体存储器 RAM 中。当有需要时,将 RAM 中存储的内容调出,通过 LCD 用点阵或连线的方式再现波形,其原理框图可以参考图1。在这种示波器中信号处理和信号显示功能是分开的,它的性能主要取决于进行信号处理的AD、RAM 和微处理器的性能。由于采用 RAM 存储器,可以快写数慢读数,使得即使在观察缓慢信号时也不会有闪烁现象。
4.2 虚拟数字存储示波器组成
图1 虚拟数字存储示波器
虚拟示波器将计算机和测量系统融合于一体,用计算机软件代替传统仪器的某些硬件的功能,用计算机的显示器代替传统仪器物理面板。通过相关的软件可以设计出的操作方便、形象逼真的仪器面板,不仅可以实现传统示波器的功能,而且具有存储、再现、分析、处理波形等特点,还可以进行各种信号的处理、加工和分析,完成各种规模的测量任务。而且仪器的体积小、耗电少,方便携带,可以在不同的计算机上使用。
因此,在SJ-8002B中,也引用了虚拟数字存储示波器的原理来实现数据的采集。其中的信号调理、AD转换、存储数据的SRAM以及控制逻辑都在是实验平台中,计算机主要起到了数据的处理和显示的作用。
4.3 SJ-8002B电子测量实验箱示波器硬件结构
4.3.1测试范围及采集参数调整范围
测试电压幅度范围:-20V~+20V(峰峰值)
测量频率范围:1Hz~1MHz
采样时钟:
timebase序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
采样时钟频率 | 20M | 20M | 20M | 20M | 20M | 20M | 20M | 20M | 20M | 20M |
timebase序号 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 |
采样时钟频率 | 10M | 5M | 2.5M | 1M | 500K | 250K | 100K | 50K | 25K | 12.5K |
可程控增益:
Div序号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
通道总增益A | 20 | 10 | 5 | 2 | 1 | 0.5 | 0.2 | 0.1 | 0.05 | 0.02 |
数据缓存深度:64KB
对采集的数据进行分析,显示波形的峰值、平均值、有效值和频率、周期等参数。
4.3.2 硬件原理图
图2 SJ8002B示波器硬件原理图
图2为示波器模块的原理框图。由图可见,高速采集的双通道是完全独立的,因此可以完成多种不同的测试任务,实现虚拟双踪数字存储示波器的各种功能。
4.3.3 控制逻辑
示波器的硬件控制主要分为数据写入(采集)和数据读出(显示)两个部分。其中控制逻辑全部都在存储在CPLD内部,如图3所示:
图3 示波器的硬件控制逻辑
Ain1和Ain2通道接入同样的采样时钟,同时进行转换。转换后的数据经过缓冲器,送至SRAM锁存。当一次采集完成后,由主机读回数据,进行进一步的处理,如滤波、显示等。
数据写入:AD9288在采样时钟CLK的控制下,将两路输入模拟信号数字离散为8bit数字信号经过数据缓冲器送至SRAM。地址由同一个地址计数器提供,该地址计数器为加/减计数器(采集数据时递增,读取时递减)。这样,每次采集所得数据都会顺利的存入SRAM中。
4.3.4采集部分
采集部分的关键器件是ADI公司的AD9288,它是8bit双通道含有采样保持电路的单片集成的模/数转换器,具有低功耗、体积小、动态特性好、易于实用的特点。双8bits、40MSPS,低功耗(每个通道90mw),SNR=47DB(在41MHz时),每个通道的模拟输入范围1.024Vp-p,中心电平Vin0=1/3 Vdd,3.0V模拟供电(2.7V-3.6V),两种数据输出模式(补码或原码),电平兼容TTL/CMOS。
4.3.5 调理电路
由于AD9288采用了差分输入,所以需要将实验板的模拟输入的直流耦合单边信号,无失真的转化为差分信号,并将信号的幅度进行平移,以满足AD9288 0.5~1.5V的输入要求。采用了如下的通道电路实现信号的转换。
图4 差分信号转化电路
电路中,U1是一个跟随器,作用是阻抗匹配;差分信号的产生采用了2个运算放大器,其中U2是作为输入的同相放大器,U3是作为输入补给的反相放大器。两个二极管和U4组成了信号平移部分。
4.3.6 衰减和增益控制电路
由于示波器的测试范围(-20V~+20V)比AD9288的测试范围(0.5V~1.5V)宽,因此,在采集电路的前端加入信号衰减和信号增益两级幅度调整电路,保证测量的正确性以及提高测量的精确度。 [p]
[p]
垂直灵敏度 | 50mV/div | 0.1V/div | 0.5V/div | 1V/div |
量程(V) | ||||
通道总增益 | ||||
Div序号 |
表1
⑵ 给定扫描速度为200u/div,则采样时间TS =200u×10 =2000u=2ms,由于满屏采样点数固定为25000点,所以由FS×TS <25000,可得到FS < 12.5M 。由于提供的时钟没有12.5M,因此可选择最接近的10MHZ作为采样时钟。
Timebase序号 | ||||
tdiv(s) | 0.1u/div | 1u/div | 10u/div | 100u/div |
采样时钟(HZ) | ||||
Timebase序号 | ||||
tdiv(s) | 500u/div | 1m/div | 10m/div | 1s/div |
采样时钟(HZ) |
表2
图7 示波器软件流程图
设计中可参考的CVI软件和实验软件平台提供的主要函数如下表所示:
(1) | 函数功能 | EPP接口初始化 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
函数原型 | void epp_init(void) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
输入参数 | 无 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
输出参数 | 无 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值 | 无 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(2) | 函数功能 | 返回控件的当前值 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
函数原型 | int GetCtrlVal (int panelHandle, int controlID, void *value) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
输入参数 | panelHandle - 内存当中的面板句柄,即为控件所在面板的句柄值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
输出参数 | value 返回的控件当前值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值 | 0 -成功 其他值-失败 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
(3) | 函数功能 | Ain1和Ain2采集过程控制 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
函数原型 | int sampling ( unsigned char coupling1_cw, int div1, int DC1_code,unsigned char coupling2_cw, int div2, int DC2_code,int timebase, unsigned chartri, int sampling_points,int Panel_Handle, int stop_ID, unsigned char ain1_data[], unsigned char ain2_data[],double *show_pots) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
输入参数 | coupling1_cw,coupling2_cw == Ain1,Ain 2通道的耦合方式控制字
DC1_code,DC2_code == Ain1,Ain 2通道的垂直偏置,取值范围10~4095
tri == 触发源选择 0:时钟CLK1 3: 外部信号 4:内部DDS1 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
输出参数 | ain1_data[] == Ain1的采集值 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
返回值 | 0-采集成功;输出值有效 |
(4) | 函数功能 | 由enable_timer( )函数调用来设置定时器启动,实现循环采集 |
函数原型 | int SetCtrlAttribute (int panelHandle, int controlID, int controlAttribute, ...) | |
输入参数 | panelHandle - 内存当中的面板句柄,即为控件所在面板的句柄值 | |
输出参数 | 无 | |
返回值 | 0 -成功 其他值-失败 | |
(5) | 函数功能 | 采集数据处理-根据采集的参数设置,计算信号的频率,峰峰值,平均值和有效值 |
函数原型 | int processing_data (unsigned char data[], int points, unsigned char coupling_cw, int div,int timebase, double *signal_fr, double *vp, double *vm, double *ve) | |
输入参数 | data[ ] - 采集数据存放数组 | |
输出参数 | signal_fr== 信号频率Hz | |
返回值 | 0 -OK ,输出值有效 | |
(6) | 函数功能 | 在图形控件上显示波形 |
函数原型 | int PlotWaveform (int panelHandle, int controlID, void *yArray, int numberOfPoints, int yDataType, double yGain, double yOffset, double initialX, double xIncrement, int plotStyle, int pointStyle, int lineStyle, int pointFrequency, int color) | |
输入参数 | panelHandle - 图形控件所在面板的句柄值 | |
输出参数 | 无 | |
返回值 | 整数 代表所绘图形的句柄 |
5.3 在电子测量实验箱中示波器硬件提供32K存储深度的基础上设计波形存储、回放功能
在5.2节设计的虚拟存储示波器面板上有两个命令按钮(Command)控件,如图6所示,保存波形(保存按钮)调用ArrayToFile()函数,打开波形文件(打开按钮)调用FileToArray()函数,波形的显示调用PlotWaveform()函数,以上函数均由CVI软件提供,可直接使用。
6.1 双踪显示波形的观测
由两台函数信号源分别产生两路电压信号,一个产生幅度为5V,频率为5KHz的正弦波,另一个产生幅度为3V,频率为5KHz的三角波,从设计的虚拟数字存储示波器进行双踪显示,并画出波形。
画信号一波形:画信号二波形:
6.2由函数信号源产生一个频率为5KHz,幅度变化(有效值)如下表的正弦波,利用设计的虚拟数字示波器进行有效值测量。
标准信号(V) | 0.25 | 0.5 | 2.5 | 5 |
通道1(Ain1)(V) | ||||
通道2(Ain2)(V) |
6.3由函数信号源产生一个幅度为5V,频率变化如下表的正弦波,利用设计的虚拟数字示波器进行频率测量。
标准信号(KHZ) | 0.01 | 0.1 | 0.5 | 1.0 | 5.0 | 10.0 | 50.0 | 100.0 | 1000.0 |
通道1(Ain1)(KHZ) | |||||||||
通道2(Ain2)(KHZ) |
七、思考和练习题
1.能否用一个带宽为20MHz的示波器观测重复频率为15MHz的正弦波和方波?为什么?
2.利用示波器测量各种波形参数时,你如何减小其测量误差?
3.测量方波的上升和下降时间可以有哪些方法?
上一篇:多踪示波器附加电路
下一篇:示波器的存储、存储深度