VC++单片机虚拟仪器测试系统 第9页

VC++单片机虚拟仪器测试系统 第9页
3 函数信号发生器
3.1 Agilent 33250A 80 MHz 函数/ 任意波形发生器介绍
Agilent Technologies 33250A 是高性能的 80 MHz 复合函数发生器,其具有内置任意波形和脉冲功能函数发生器,其80MHz带宽能适应各种各样的应用要求,它具有各种内置信号、自定义的任意波形和脉冲能力,能帮助您验证设计,检验新的构想。直接数字合成技术能获得稳定、精确和低失真的输出信号。
Agilent 33250A能提供您需要的所有波形,其输出频率更高达80MHz。标准输出包括正弦波、方波、斜波、噪声波、sin(x)/x、真流和其它波形。当标准信号还不能满足您的要求时,33250A可简化生成任意波形的过程,并赠强这些自定义信号的性能。现在通过达200MSa/s的采样率,12bit分辨率和64K点的存储器深度,您可建立无限多种信号,以精确适应您的应用要求。同时具备工作台特性和系统特性是满足您目前及未来测试需求的多用途解决方案
Agilent Technologies 33250A 的特点如下:
• 10 个标准波形
• 内置的 12 位 200 MSa/s 任意波形功能
• 具有可调边沿时间的精确脉冲波形功能
• LCD 彩色显示器可提供数字和图形视图
• 易用的旋钮和数字小键盘
• 仪器状态存储器用户可自定义名称
• 带有防滑支脚的便携式耐用机箱灵活的系统特性
• 四个可下载的 64K 点任意波形存储器
• GPIB (IEEE-488) 接口和 RS-232 接口为标准配置
• SCPI 可编程仪器的标准命令兼容
Agilent Technologies 33250A 函数/ 任意波形发生器的技术参数如下:
波形
标准波形 正弦波、方波、斜波、脉冲、噪声、SIN(x)/x,
指数上升和下降、心律波、真流电压
任意波形 波形长度 1~64K点
 非易失性存储器 4个波形(每一个汉形1~64K点)
 幅度分辨率 12bit
 采样率 200MSa/s
频率特性
正弦波 1μHz~80MHz  白噪声  50MHz带宽
方波 1μHz~80MHz 分辨率  1μHz,除脉冲为5个字
三角波 1μHz~1MHz 准确度 0.3ppm,(18℃~℃)
斜波 500μHz~50MHz THD(dc~20kHz)  <0.2%+1mVrms
其它特性
幅度(至50Ω)  10mVpp~10Vpp 准确度(1kHz)  ±1%设置值±1mVpp
调制
AM FSK
调制 任何内部波形  内部速率 2mHz~1MHz
频率 2mHz~20kHz 频率范围  1μHz~80MHz
深度 0%~120%    
FM 脉冲列
调制 任何内部波形  波形频率  1μHz~80MHz
频率 2mHz~20kHz 计数 1~1,000,000或无穷多个周期
偏移 dc~80MHz  起始/停止相位 -360°~+360°
    内部周期  1μ~500s
扫描
类型 线性或对数 扫描时间  1ms~500s
方向 上或下  标记 同步信号下降沿
起动F/停止F 100μHz至80MHz   (可编程)
时钟基准
外部锁定范围 10MHz±kHz 内部频率 10MHz
3.2  对函数/任意波形发生器的远端编程控制
3.2.1 编程的准备工作
了解函数信号发生器的功能特点:因为我要操作的函数信号发生器的型号是Agilent Technologies 33250A。所以,上网去搜索关于该型号的资源。在安捷伦-中国的网站上查找到了相关的文件资源。并通过阅读了解了远程控制仪器的方法(通过VISA I/O库对输入输出操作的支持,并使用该仪器的SCPI-standard command for programmable instrument命令来对仪器进行相关的操作。
通过查看“自动测试系统”课本上的例子,对自己编写函数信号发生器的界面有了一定的模型和认识。接下来就是去了解VISA I/O库。通过殷老师提供给我的资料,并通过阅读,对VISA库中的操作函数有了一定的认识。如下给出的程序:
 这个例子程序的功能是查询GPIB器件的型号,并输出结果。
#include <visa.h>
#include <stdio.h>//这里是头文件,因为需要使用VISA的数据类型和函数
void main () {
ViSession defaultRM, vi;//变量的声明
char buf [256] = {0};
viOpenDefaultRM(&defaultRM);//打开地址为22的GPIB器件
viOpen(defaultRM, "GPIB0::22::INSTR",VI_NULL,VI_NULL,&vi);
viPrintf(vi, "*RST\n");//初始化器件
viPrintf(vi, "*IDN?\n");//查询器件的型号
viScanf(vi, "%t", buf);//读取结果
printf("Instrument identification string: %s\n", buf);//打印结果
viClose(vi);//关闭会话
viClose(defaultRM);}
这里涉及到了5个VISA函数:viOpenDefaultRM,viOpen,viPrintf,viScanf,viClose。在我后来的编程过程中,也基本上就用到了这几个函数的功能。viOpen函数的功能是建立一个指定器件的会话的通道,而会话具有一个标识,该标识可以被VISA库的其他函数进行调用。这个函数很重要,因为你如果需要跟一个器件通讯,就必须通过该函数来进行会话的建立。函数viOpenDefaultRM用来打开默认资源管理器的会话,必须是第一个打开。这个函数初始化资源管理器,并返回该会话的指针。以供其他函数使用。而函数viPrintf和viScanf这两个函数在用的编程中的比例是最多的,我发送SCPI指令就是通过这两个函数来进行的。函数viClose是用于关闭每一个会话的。当你关闭一个会话时,所有为会话分配的数据结构都会被释放掉。当你使用这个函数关闭默认资源管理器时,所有通过该会话打开的其他会话将会被关闭。
通过阅读VISA手册,懂得如何配置VC参数从而可以正常的进行操作。利用VISA来进行编程,需要链接VISA库-VISA32.LIB。对VC编译器配置如下:选择Project->Settings并选择C/C++按钮,从类型列表中选择Code Generation,从运行库列表中选择Multi-Threaded using DLL。(VISA在WIN32环境下需要这些配置)选择Project->Settings点击link按钮并添加visa32.lib库到Object/Library Modules列表中。换一种方法是,直接添加库到你的工程文件夹中。头文件和库文件的搜索路径也可以进行更改:选择Tools->Options点击Directories按钮,就可以对头文件和库文件的路径进行更改了。
在VISA中也学习了几个接口的编程。VISA支持三种接口来访问GPIB和VXI仪器:GPIB,VXI和GPIB-VXI。通过这三种接口可以对GPIB和VXI器件进行编程。当你使用

上一页  [1] [2] [3] [4] [5] [6] [7] [8] [9] [10]  ... 下一页  >> 

Copyright © 2007-2012 www.chuibin.com 六维论文网 版权所有