Pico示波器的信号发生器二次开发

上传人:豆浆 文档编号:24900833 上传时间:2017-12-08 格式:PDF 页数:11 大小:904KB
返回 下载 相关 举报
Pico示波器的信号发生器二次开发_第1页
第1页 / 共11页
Pico示波器的信号发生器二次开发_第2页
第2页 / 共11页
Pico示波器的信号发生器二次开发_第3页
第3页 / 共11页
Pico示波器的信号发生器二次开发_第4页
第4页 / 共11页
Pico示波器的信号发生器二次开发_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Pico示波器的信号发生器二次开发》由会员分享,可在线阅读,更多相关《Pico示波器的信号发生器二次开发(11页珍藏版)》请在金锄头文库上搜索。

1、 Pico 示波器 二次开发中关于 信号发生器 的 API函数介绍 Tom Duan 2017/6/25 背景: Pico的示波器无论是 2000系列还是高端的 6000系列 都 带有一个信号发生器的功能 ,因型号不一样信号发生器的特性也不相同。大部分的型号都带有 20MHz 带宽 的任 意波形发生器 。可以方便的输出各种函数波,包括正弦,方波,斜坡 , 半正弦, 高斯波等等也可以导入波形数据或者自己编辑任意波形进行输出。对于系统的测试带来了极大的方便同时也能够减少额外的信号源设备的开支。 使用 Pico示波器自带的 PicoScope6软件可以方便的实现信号发生器的控制以及波形的编辑,对于需

2、要将 Pico示波器嵌入到自己的测试系统中的应用。 Pico同样提供了丰富的 API函数用于帮助您 自行编程实现需要 的功能。 图: 使用 Pico 示波器 的 AWG 输出端口 实现输出 “PICO.Tech”字样 一、 函数发生器的功能 如果只需要实现函数发生器 (输出标准的波形比如方波,正弦波等 )的功能,那么使用一个 API 函数即可 轻松的实现所有功能以及参数的设置。 使用到的 API 函数为 PsX000SetSigGenBuiltIn; 使用这一个函数就可以完成 函数发生器 的所有设置 ; 其中 X 代表的是示波器属于哪个系列,比如 6000系列的示波器对应的 API 函数为 P

3、s6000SetSigGenBuiltIn。 1.PsX000SetSigGenBuiltIn 函数的参数以及意义 PsX000SetSigGenBuiltIn 参数 handle offsetVotalge pkTopk WaveType StartFrequency Stop Frequency Increment 意义 示波器句柄 输出信号的偏置电压 输出波形的峰峰值 。单位为uV 波形类型 开始频率 截止频率 扫频模式下该参数有效 偏置电压,单位为 uV 正弦 PSx000_SINE 方波PSx000_SQUARE 三角波; 上斜坡; 下斜坡; Sinc; 高斯; 半正弦; DC 直流

4、; 白噪声 输出信号的开始频率(频率最大一般为20MHz) 扫描频率时 的 截止频率 。 设 置扫描频率模式下,频率变化的步进长度。 单位为Hz 如果不开启扫描频率模式,这个参数所代表的值也是波形固定的频率 仅在开启频率扫描时此参数有意义 PsX000SetSigGenBuiltIn(接上表) 参数 dwellTime sweepType operation Shots 意义 频率保持时间 频率扫描的方式 噪声或 伪 随机码的控制 波形的输出个数 扫描频率模式下:每个频率值下波形保持的时间,单位为秒 扫描频率的方式 Psx000_UP; Psx000_DOWN; Psx000_UPDOWN;

5、Psx000_DOWNUP PSx000_ES_OFF;不使用白噪声或伪随机码等; PSx000_WHITENOISE;输出白噪声 ; PSx000_PRBS;产生一个伪随机码; 当输出为随机码和白噪声的时候,只有offsetVoltage 和 pkTopk 两个参数管用 信号发生器触发之后输出的波形周期数, 当 shots 的值为非 0 时, sweeps必须为 0 扫频的几种模式 (sweepType)详细说明: Psx000_UP:波形的频率值从开始频率增加到截止频率之后返回开始频率重新开始向上增加 Psx000_DOWN:波形的频率 值 从截止频率减少到开始频率之后返回截止频率重新开始

6、减少 Psx000_UPDOWN:波形的频率从开始 频率增加到截止频率之后从截止频率减少到开始频率在做重复 Psx000_DOWNUP:波形的频率从截止频率先减少到开始频率之后在从开始频率增加到截止频率在做重复。 开始频率 截止 频率 递增 直接跳转 开始频率 截止 频率 递减 直接跳转 开始频率 截止 频率 递增 递减 开始频率 截止 频率 递减 递增 PsX000SetSigGenBuiltIn(接上表) 参数 Sweeps Triggertype triggerSource extInThreshold 意义 在一次触发事件之后进行频率扫描的次数 用于信号发生器的触发类型 信号发生器的触

7、发源 外部触发阈值 当 Sweeps 非0 时,那么shots 这 个值必须为 0 PSx000_SIGGEN_RISING PSx000_SIGGEN_FALLING PSx000_SIGGEN_GATE_HIGH PSx000_SIGGEN_GATE_LOW PSx000_SIGGEN_NONE PSx000_SIGGEN_SCOPE_TRIG PSx000_SIGGEN_AUX_IN PS6000_SIGGEN_TRIGGER_RAW 当将 AUX 或Ext In 用作触发输入时,这个参数设定触发的阈值(ADC 值 ) 触发类型 : PSx000_SIGGEN_RISING 上升沿触发

8、PSx000_SIGGEN_FALLING 下降沿触发 PSx000_SIGGEN_GATE_HIGH 当触发为高状态时触发( 设置信号发生器为软件触发时有 效 ) PSx000_SIGGEN_GATE_LOW 当触发为低状态时触发( 设置信号发生器为软件触发时有效 ) 触发源: PSx000_SIGGEN_NONE 忽略 触发状态 信号输出端口 一直输出信号 PSx000_SIGGEN_SCOPE_TRIG 使用示波器的 采集 输入通道的触发 PSx000_SIGGEN_AUX_IN 使用 AUX 输入 (6000 系列 ),相应的 5000 系列对应的为 EXT_IN(外部触发输入 ) P

9、S6000_SIGGEN_SOFT_TRIG 等待由 psx000SigGenSoftwareControl函数控制的触发条件 PS6000_SIGGEN_TRIGGER_RAW 还在开发中 注意: 1 当指定了相应的触发源(除了 PSx000_SIGGEN_NONE)之后 , shots 和 sweeps 两者之一必有一个不为0,但是不能两个都是 非零值。 Sweeps 和 shots 两个参数不能 同时为非 0 值的意义在于:设置来 Sweeps 相当于开启了频率扫描,此时波形是连续输出的。而 shots 是控制出发后输出多少个周期的波形,在这种情况下不支持频率扫描。两个是一个互斥的关系。

10、 2. 如果在之前的程序中已经用其他函 数比如 psx000SetTriggerChannelProperties 这样设置 外部触发阈值的函数,那么调用 PsX000SetSigGenBuiltIn 函数的时候会重新写入新的值到设备中并且会返还PICO_WARNING_AUX_OUTPUT_CONFLICT。 2.Psx000SetGenBuiltInV2 函数 这个函数同样可以用来设置函数 发生器。它与 psx000SetSigGenBuiltIn 函数的区别在于 V2 函数对于 频率参数的设置可以是双精度数 ,而 psx000SetSigGenBuiltIn 的频率参 数只能是浮点数。所

11、以使用 v2 函数可以获得更高的频率分辨率。 对于其他参数的设置,两个函数是一样的。所以在使用中,使用任何一个即可。 3.Psx000SigGenSoftwareControl 函数 这个函数可以用来产生一个 软件 触发事件,当信号发生器的触发源选择为 SIGGEN_SOFT_TRIG 时,这个函数可以控制软件触发的开始和停止从而控制信号发生器波形的输出。 Psx000SigGenSoftwareControl 参数 Handle State 意义 句柄,区分不同的设备 当触发类型设置为 SIGGEN_GATE_HIGH或者是SIGGEN_GATE_LOW 时设置触发门限是高还是低。当触发类型

12、选择其他形式时,忽略这个参数。 4.C 语言编程 举例 a) ps6000SetSigGenBuiltIn(unit-handle, 50000, 1000000, PS6000_SINE, 1000000, (float)frequency, 0, 0, (PS6000_SWEEP_TYPE) 0, PS6000_ES_OFF, 0, 0, (PS6000_SIGGEN_TRIG_TYPE) 0, (PS6000_SIGGEN_TRIG_SOURCE) 0, 0); 上面的语句就能够实现连续输出偏置为 50mV,峰峰值为 1V, 1MHz 频率的正弦波。 频率扫描关闭,额外噪声等也关闭,触发

13、也关闭 b) ps6000SetSigGenBuiltIn(unit-handle, 50000, 1000000, PS6000_SINE, 1000000, 5000000, 100, 1, PS6000_UP, PS6000_ES_OFF, 0, 0, (PS6000_SIGGEN_TRIG_TYPE) 0, (PS6000_SIGGEN_TRIG_SOURCE) 0, 0); 1MHz 至 5MHz,频率增量为 100Hz,每个频率的保持时间为 1s,扫描方向为向上扫描。触发关闭。 连续扫描频率输出 偏置为 50mV,峰峰值为 1V, 扫描 频率的正弦波。 c) ps6000SetSi

14、gGenBuiltIn(unit-handle, 50000, 1000000, PS6000_SINE, 1000000, (float)frequency, 0, 0, (PS6000_SWEEP_TYPE) 0, PS6000_ES_OFF, 0, 0, PS6000_SIGGEN_GATE_HIGH, PS6000_SIGGEN_SOFT_TRIG, 0); 输出偏置为 50mV,峰峰值为 1V, 1MHz 频率的正弦波 ,并且触发设置为软件触发,触发条件是高 状态。所以 当使用 Psx000SigGenSoftwareControl设置状态为高时,信号才会输出。 ps6000SetS

15、igGenBuiltIn(unit-handle, 50000, 1000000, PS6000_SINE, 1000000, (float)frequency, 0, 0, (PS6000_SWEEP_TYPE) 0, PS6000_ES_OFF, 0, 0, PS6000_SIGGEN_GATE_HIGH, PS6000_SIGGEN_SOFT_TRIG, 0); /设置信号发生器为软件触发 ps6000SigGenSoftwareControl(unit-handle, SIGGEN_GATE_HIGH); /此时信号发生器开启 ./ 中间可以添加需要执行的代码 ps6000SigGenSoftwareControl(unit-handle, SIGGEN_GATE_LOW); /此时信号发生器开启 二、任意波形发生器的设置 如果只是需要输出标准的函数波形,那么上面的那些函数就足够了,当需要从其他软件中 (比如 Matlab,Excel)导入 样点进行波形 的 输出,就需要用到下面的这些函数。 在使用当中,其实就会发现,函数发生器的函数是包含在任意波形发生器函数中的,但是任意波形发生器的函数有一些特定的参数需要设置。 1.psx000SigGenArbitraryMinMaxValues 这个函数返回可以用于示波器任意波形发生 器 缓

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号