新闻中心

EEPW首页 > 测试测量 > 设计应用 > 数字存储示波器的设计

数字存储示波器的设计

作者: 时间:2017-02-06 来源:网络 收藏

垂直灵敏度

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 - 内存当中的面板句柄,即为控件所在面板的句柄值
controlID - 控件的ID值,在控件属性面板中可以获得

输出参数

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通道的耦合方式控制字
0:直流耦合(不隔直) 1:交流耦合(隔直)
div1,div2 == Ain1,Ain 2通道的伏格序号


Div序号

0

1

2

3

4

5

6

7

8

9

通道总增益

20

10

5

2

1

0.5

0.2

0.1

0.05

0.02

DC1_code,DC2_code == Ain1,Ain 2通道的垂直偏置,取值范围10~4095
time_base == 时基


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

tri == 触发源选择 0:时钟CLK1 3: 外部信号 4:内部DDS1
5:内部DDS2 6: 手动
sampling_points ==采样点数
Panel_Handle==中断采集的控件面板句柄
stop_ID ==中断采集的控件名称

输出参数

ain1_data[] == Ain1的采集值
ain2_data[] == Ain1的采集值;
show_pots == 在显示波形的graph控件上X轴的点数

返回值

0-采集成功;输出值有效
1-采集不成功,被中断;输出值无效
8-采集不成功,EPP不能读数;输出值无效

(4)

函数功能

由enable_timer( )函数调用来设置定时器启动,实现循环采集

函数原型

int SetCtrlAttribute (int panelHandle, int controlID, int controlAttribute, ...)

输入参数

panelHandle - 内存当中的面板句柄,即为控件所在面板的句柄值
controlID - 控件的ID值,在控件属性面板中可以获得
controlAttribute - 特定的控件属性

输出参数

返回值

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[ ] - 采集数据存放数组
Points - 采集数据点数
coupling_cw - 耦合方式 0:直流耦合(不隔直) 1:交流耦合(隔直)
div - 垂直灵敏度(伏/格)序号 必须和采集时设置的div一致
timebase - 扫描速度(时基)序号 必须和采集时设置的timebase一致

输出参数

signal_fr== 信号频率Hz
vp == 峰值;
vm == 均值;
ve == 有效值;

返回值

0 -OK ,输出值有效
1 -出错,输出值无效。 采样频率太大,应减小时基序号,以增大采样频率

(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 - 图形控件所在面板的句柄值
controlID - 图形控件的ID值
*yArray - 沿Y轴分布的数据数组首地址
numberOfPoints - 需要显示的数据点数
yDataType - 指定数据类型
yGain - 指定Y轴显示数据的增益
yOffset - 指定Y轴显示数据的偏移量
initialX - 指定X轴的初始值
xIncrement - 指定X轴的步进值
plotStyle - 指定显示波形的连点方式
pointStyle - 指定显示波形的点的形状
lineStyle - 指定显示波形的线条形状
pointFrequency -当plotStyle VAL_CONNECTED_POINTS or VAL_SCATTER时 指定点之间的标记间;
color - 指定线条的颜色

输出参数

返回值

整数 代表所绘图形的句柄

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.测量方波的上升和下降时间可以有哪些方法?


上一页 1 2 3 下一页

关键词: 数字存储示波

评论


技术专区

关闭