《测试系统控制器课件.ppt》由会员分享,可在线阅读,更多相关《测试系统控制器课件.ppt(44页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、UESTC-ATSPage1自动测试系统自动测试系统 测试系统控制器测试系统控制器Page 2UESTC-ATSATS本章内容简介本章内容简介什么式测试系统控制器:什么式测试系统控制器:在自动测试系中,能够通过数字接口总线向系统中的在自动测试系中,能够通过数字接口总线向系统中的其他设备发送程控消息,并接收其他设备发回的响应其他设备发送程控消息,并接收其他设备发回的响应消息的设备称为测试系统控制器。消息的设备称为测试系统控制器。测试控制器的作用:测试控制器的作用:测试系统控制器是测试系统的核心,在测试系统中起测试系统控制器是测试系统的核心,在测试系统中起执行测试程序、控制测试系统操作的作用。执行
2、测试程序、控制测试系统操作的作用。测试系统控制器通常由特定功能的计算机担任,也称测试系统控制器通常由特定功能的计算机担任,也称为测试控制机(或主控机)、测量控制机、测试控制为测试控制机(或主控机)、测量控制机、测试控制器等。器等。本章首先介绍测试控制器的基本功能和要求,然本章首先介绍测试控制器的基本功能和要求,然后对后对GPIBGPIB、VXIVXI等几种典型的总线测试控制器进行等几种典型的总线测试控制器进行详细分析,最后重点介绍测试控制器的标准驱动详细分析,最后重点介绍测试控制器的标准驱动软件(软件(VISAVISA)。)。Page 3UESTC-ATSATS第一节第一节 测试控制器的基本要
3、求测试控制器的基本要求测试控制器的功能要求:测试控制器的功能要求:对测试系统的通信数字接口和系统总线资源进对测试系统的通信数字接口和系统总线资源进行管理的能力。行管理的能力。向被测设备或仪器发送程控命令,使它们处于向被测设备或仪器发送程控命令,使它们处于预定的工作状态。预定的工作状态。接收来自仪器或被测设备的响应消息(状态或接收来自仪器或被测设备的响应消息(状态或测量数据)。测量数据)。响应来自被测设备或仪器的正常或异常事件中响应来自被测设备或仪器的正常或异常事件中断。断。具有测试数据分析和处理能力,并能实现人机具有测试数据分析和处理能力,并能实现人机交互功能。交互功能。Page 4UESTC
4、-ATSATS第一节第一节 测试控制器的基本要求测试控制器的基本要求测试控制器的硬、软件要求:测试控制器的硬、软件要求:任何一台计算机都可用作测试控制器任何一台计算机都可用作测试控制器,唯一必要条件是唯一必要条件是该计算机应具备符合工业标准的测试仪器数字接口,并该计算机应具备符合工业标准的测试仪器数字接口,并具有操作该接口的驱动软件。具有操作该接口的驱动软件。硬件方面要求:硬件方面要求:在接口功能配置上,测试控制机除了具备普通的程控设备发送在接口功能配置上,测试控制机除了具备普通的程控设备发送和接收数据的能力外,还必须具有对数字接口总线的控制和管和接收数据的能力外,还必须具有对数字接口总线的控
5、制和管理能力,即通常具有发起、组织和终止接口总线操作的能力。理能力,即通常具有发起、组织和终止接口总线操作的能力。软件方面要求:软件方面要求:测试控制器首先应提供操作其相应数字接口的驱动软件。测试控制器首先应提供操作其相应数字接口的驱动软件。测试控制器还应提供用于编写测试程序的编程语言或开发环境,测试控制器还应提供用于编写测试程序的编程语言或开发环境,或者支持第三方的测试编程语言或开发环境。或者支持第三方的测试编程语言或开发环境。Page 5UESTC-ATSATS第一节第一节 测试控制器的基本要求测试控制器的基本要求测试控制器的分类:测试控制器的分类:根据所适应的数字接口总线:根据所适应的数
6、字接口总线:分为分为GPIBGPIB控制器、控制器、VXIVXI控制器、控制器、MXIMXI控制器、控制器、PXIPXI控制控制器等。器等。根据用途:根据用途:可分为专用控制器、通用控制器。可分为专用控制器、通用控制器。根据测试控制器的计算能力:根据测试控制器的计算能力:可分为工作台和微型机。可分为工作台和微型机。根据结构形式:根据结构形式:测试控制器可分为台式、笔记本式或嵌入式等。测试控制器可分为台式、笔记本式或嵌入式等。接口转换设备:接口转换设备:Page 6UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器本节要求本节要求(1 1)掌握)掌握GPIBGPI
7、B总线控制器的主要特点;总线控制器的主要特点;(2 2)掌握)掌握GPIBGPIB接口的一种设计方法。接口的一种设计方法。Page 7UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器控者模型控者模型IEEE488.1 busIEEE488.1 driverprogramming environmentapplication programcontrollerdatabyteENDaddressIEEE488.1 state conditionscontrol sequencesdata messageserrorsIEEE488.1 bus signalsPa
8、ge 8UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器GPIBGPIB总线测试控制器的主要特点总线测试控制器的主要特点 具有具有GPIBGPIB接口接口至少提供五种至少提供五种GPIBGPIB标准接口功能:标准接口功能:即控者即控者(C)(C)功能、功能、听者听者(L)(L)功能、功能、讲者讲者(T)(T)功能、功能、源方挂钩源方挂钩(SH)(SH)功能、功能、受方挂钩受方挂钩(AH)(AH)功能。功能。Page 9UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器GPIBGPIB主控机的主要形式:主控机的主要形式:“通用计算
9、机通用计算机 GPIBGPIB接口转换器接口转换器 驱动软件驱动软件/测试测试编程语言或开发工具编程语言或开发工具”接口转换器及配套软件是这种控制器的关键;接口转换器及配套软件是这种控制器的关键;根据所采用的计算机总线,接口转换器有:根据所采用的计算机总线,接口转换器有:PCI-PCI-GPIBGPIB、USB-GPIBUSB-GPIB、ENET-GPIBENET-GPIB等多种类型,这些接等多种类型,这些接口转换器基本上都支持口转换器基本上都支持IEEE488.2IEEE488.2和和SCPI SCPI 协议,协议,并提供配套的并提供配套的I/OI/O驱动软件。驱动软件。表表6-16-1给出
10、了几种典型的给出了几种典型的GPIBGPIB接口转换器及性能。接口转换器及性能。Page 10UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器表表6-1 6-1 几种典型的几种典型的GPIBGPIB接口转换器及性能接口转换器及性能产品型号总线类型操作系统I/O驱动编程语言GPIB最高传输速率Agilent82350BPCIWin98/NT/2000/Me/XPSICLVISAVEE,C/C+,Visual BAS1C900KByte/SAgilent82357AUSBWin98/NT/2000/Me/XPSICLVISA2.2VEE,LabVIEWVC,VB7
11、50KByte/SAgilent E5810ALANWin98/NT/2000/Me/XPSICLVISA2.2VEE,LabVIEWVC,VB-NI PCI-GPIBNI PCI-8232NI PXI-GPIB NI PXI-8232PCI/PXIWin98/NT/2000/Me/XPMac OS,SolarsNI 488.2NI VISALabVIEW,LabWindows/CVI,Measurement Studio488.1:5Mbyte/sHS488:7.7Mbyte/sNI GPIB-ENTE/100LANWin2000/NT/XP/Me/9xDigital Unix,Solari
12、s,HP-UX,Mac OSNI VISALabVIEW,LabWindows/CVI,Measurement Studio800 kbytes/sNI GPIB-USB-BUSBWin2000/NT/XP/Me/9xDigital Unix,Solaris,HP-UX,Mac OSNI VISALabVIEW,LabWindows/CVI,Measurement Studio880 kbytes/sPage 11UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器GPIBGPIB接口的硬件设计接口的硬件设计 设计方案:设计方案:采用功能完备的采用功能完备的GPI
13、BGPIB接口电路芯片辅以必要的外围电接口电路芯片辅以必要的外围电路实现;路实现;特点:功能完备,规模较大;特点:功能完备,规模较大;采用采用FPGAFPGA电路独立实现电路独立实现GPIBGPIB接口。接口。特点:可更具需要裁减电路,可移植性强。特点:可更具需要裁减电路,可移植性强。Page 12UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器TMS9914 TMS9914 GPIAGPIA(通(通用接口适用接口适配器)配器)内部结构内部结构 Page 13UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器TMS9914TMS
14、9914的信号线:的信号线:面向微处理器,共面向微处理器,共2020条信号线,全部采用正逻条信号线,全部采用正逻辑;辑;面向面向GPIBGPIB总线,共总线,共1818条,全部采用负逻辑,与条,全部采用负逻辑,与GPIBGPIB总线信号逻辑关系一致;总线信号逻辑关系一致;电源线(电源线(+5V+5V)、地线)、地线Page 14UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器TMS9914TMS9914面向微处理器的信号线:面向微处理器的信号线:8 8条双向数据线条双向数据线D0D7D0D7,与计算机的数据总线相连;,与计算机的数据总线相连;3 3条寄存器选择
15、线条寄存器选择线RS0RS2RS0RS2,配合读,配合读/写操作线用来选择内写操作线用来选择内部部1313个寄存器之一;个寄存器之一;片选线片选线CECE,低电平有效;,低电平有效;写入线写入线WEWE,低电平有效;,低电平有效;读出线读出线DBINDBIN,高电平有效;,高电平有效;中断请求线中断请求线INTINT,低电平有效;,低电平有效;DMADMA请求和允许线请求和允许线ACCRQACCRQ,ACCFRACCFR;复位线复位线RESETRESET;时钟线时钟线CLOCKCLOCK,输入时钟频率,输入时钟频率500KHz5MHz500KHz5MHz。一条触发线一条触发线TRTR。Page
16、 15UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器TMS9914TMS9914面向面向GPIBGPIB总线的信号线:总线的信号线:1616条信号线分别对应条信号线分别对应GPIBGPIB系统的总线信号;系统的总线信号;一条讲允许线一条讲允许线TETE,用作总线收发器的方向控,用作总线收发器的方向控制,表示数据总线上数据传递方向;制,表示数据总线上数据传递方向;一条控者线一条控者线CONTCONT,表示是否是作用控者,从,表示是否是作用控者,从而控制而控制SRQSRQ和和ATNATN的方向;的方向;Page 16UESTC-ATSATS第二节第二节 GPIB
17、GPIB总线测试控制器总线测试控制器TMS9914TMS9914内部寄存器:内部寄存器:1313个个地址RS2 RS1 RS0寄存器名称各位定义D0 D1 D2 D3 D4 D5 D6 D7 0 0 0中断状态0 INT0 INT1 B1 B0 END SPAS RLC MAC 0 0 1中断状态1 GET ERR UNC APT DCAS MA SRQ IFC 0 1 0寻址状态 REM LLO ATN LPAS TPAS LADS TADS ulpa 0 1 1总线状态 ATN DAV NDAC NRFD EOI SRQ IFC REN 1 0 0 1 0 1 1 1 0命令通过 DIO8
18、 DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1 1 1 1数据输入 DIO8 DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1地址RS2 RS1 RS0寄存器名称各位定义D0 D1 D2 D3 D4 D5 D6 D7 0 0 0中断屏蔽0 B1 B0 END SPAS RLC MAC 0 0 1中断屏蔽1 GET ERR UNC APT DCAS MA SRQ IFC 0 1 0 0 1 1辅助命令 CS F4 F3 F2 F1 F0 1 0 0地址 Edpa dal dat A5 A4 A3 A2 A1 1 0 1串行查询 S8 rsvl S6 S
19、5 S4 S3 S2 S1 1 1 0并行查询 pp8 pp7 pp6 pp5 pp4 pp3 pp2 pp1 1 1 1数据输出 DIO8 DIO7 DIO6 DIO5 DIO4 DIO3 DIO2 DIO1可读寄存器:可写寄存器:Page 17UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器辅助命令寄存器:辅助命令寄存器:用于控制片内若干附加的能力,并提供把某些用于控制片内若干附加的能力,并提供把某些本地消息输入到接口功能的一种手段。本地消息输入到接口功能的一种手段。辅助命令共辅助命令共2323条,条,操作方式:操作方式:当当Bit C/S=1Bit C/
20、S=1时,该能力起作用;时,该能力起作用;若若C/S=0C/S=0则取消该能力;则取消该能力;若若C/S=NAC/S=NA,则该位应发送,则该位应发送0 0。Page 18UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器辅辅助助命命令令寄寄存存器器C/SF4 f3 f2 f1 f0助记符功能0/10/1na0/10/1na0/10/1na0/10/1nanana0/10/10/1nana0/1na0/10/10/10/1 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 1 0 1 0 0 1 1 0
21、0 0 1 1 1 0 1 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 0 1 0 1 0 0 1 1 1 0 1 0 0 1 0 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0swrstdacrrhdfhdfahdfenbaffgetrtlfeoilontongtstcatcsrppsicsrerqcrlcdaiptsstdlshdwvstd1rsv2片复位释放ACDS抑制释放RFD抑制抑制所有数据仅在EOI时抑制
22、置新拜特可资用(nba)为假强制执行群执行触发返回本地与下一拜特同时发送EOI只听只讲进入准备态异步取控同步取控请求并行查询发送接口清除(IFC)发送远控可能(REN)请求控制释放控制禁止一切中断通过下一个命令置T1延时影子挂钩(shadow handhake)延时T1通过bit 2请求服务(rsv2)Page 19UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器GPIBGPIB接口的硬件实现接口的硬件实现 Page 20UESTC-ATSATS第二节第二节 GPIBGPIB总线测试控制器总线测试控制器GPIBGPIB测试控制器的软件测试控制器的软件ES-BA
23、SICES-BASICC C的的GPIBGPIB库库WindowsWindows下的下的GPIBGPIB动态链接库动态链接库可视化自动测试环境可视化自动测试环境Page 21UESTC-ATSATS第三节第三节 VXIVXI内嵌式测试控制器内嵌式测试控制器 本节要求本节要求(1 1)掌握)掌握VXIVXI内嵌式控制器的主要功能;内嵌式控制器的主要功能;(2 2)了解)了解VXIVXI控制器的结构。控制器的结构。Page 22UESTC-ATSATS第三节第三节 VXIVXI内嵌式测试控制器内嵌式测试控制器 VXIVXI总线系统测试控制器可以置于总线系统测试控制器可以置于VXIVXI主机箱之主机
24、箱之外,也可以置于外,也可以置于VXIVXI主机箱之内。主机箱之内。置于置于VXIVXI主机箱之内的测试控制器电气上必须主机箱之内的测试控制器电气上必须具有具有VXIVXI接口,结构上必须符合接口,结构上必须符合VXIVXI模块结构要模块结构要求,这种控制器称为求,这种控制器称为VXIVXI内嵌式测试控制器。内嵌式测试控制器。Page 23UESTC-ATSATS第三节第三节 VXIVXI内嵌式测试控制器内嵌式测试控制器 1 1内嵌式测试控制器的功能要求内嵌式测试控制器的功能要求具有通用计算机的能力。具有通用计算机的能力。与与VMEVME计算机总线和高性能的计算机总线和高性能的VXIVXI仪器
25、总线相仪器总线相容。容。支持支持VMEVME总线周期操作和总线周期操作和VXIVXI总线字串行通信总线字串行通信规程。规程。具有具有VXIVXI系统资源管理能力。系统资源管理能力。通常插在通常插在0 0号槽,具有号槽,具有VMEVME标准定义的系统控标准定义的系统控制板功能,并提供制板功能,并提供VXIVXI总线系统的号槽资源总线系统的号槽资源(MODIDMODID寄存器和寄存器和CLK10CLK10资源)。资源)。Page 24UESTC-ATSATS第三节第三节 VXIVXI内嵌式测试控制器内嵌式测试控制器 2 2内嵌式测试控制器的硬件组成内嵌式测试控制器的硬件组成488接口串/并口键盘接
26、口CGA显示控制器VGA内存硬盘接口PGA扩展槽软盘接口MIGAVXI寄存器组器件识别配置字中协议共享存储器指针MODIDROMBIOS带DMA的I/O总线接口80387时钟带校验的高速RAM80386VXI总线接口主从功能电路中断功能电路中断器系统控制器VME控制器TTL和ECL触发器零槽组态I/O总线硬盘软驱32位VXI总线可编程复位电路典型VXI内嵌式测试控制器的硬件图R G BIEEE488Page 25UESTC-ATSATS第三节第三节 VXIVXI内嵌式测试控制器内嵌式测试控制器 3 3内嵌式测试控制器的软件内嵌式测试控制器的软件内嵌式控制器按结构包含基础软件和系统软件两内嵌式控
27、制器按结构包含基础软件和系统软件两个层次。个层次。基础软件又有两种:基础软件又有两种:面向面向VXIVXI总线的接口软件总线的接口软件面向面向GPIBGPIB仪器的仪器的IEEE-488.2IEEE-488.2驱动软件驱动软件Page 26UESTC-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器本节要求本节要求(1 1)了解)了解GPIB-VXIGPIB-VXI零槽资源管理器的主要零槽资源管理器的主要功能;功能;(2 2)了解)了解GPIB-VXIGPIB-VXI控制器的硬件和软件设控制器的硬件和软件设计。计。Page 27UESTC-ATSATS第四
28、节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器GPIB-VXIGPIB-VXI的主要功能的主要功能 将将GPIBGPIB程控代码转换为程控代码转换为VXIVXI命令,并在命令,并在VXIVXI主主机箱内实时执行。机箱内实时执行。提供提供VMEVME标准定义的系统控制板的功能。标准定义的系统控制板的功能。提供标准提供标准VXIVXI零号槽消息型器件的功能。零号槽消息型器件的功能。具有具有VXIbusVXIbus资源管理器的能力。资源管理器的能力。控制控制VXIbusVXIbus系统的系统的TTLTTL和和ECLECL触发线和相关协触发线和相关协议。议。Page 28UES
29、TC-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器GPIB-VXIGPIB-VXI的硬件设计的硬件设计总体结构总体结构 GPIBGPIB 接口VME接口控制VME译码控制存储器VXI扩展电路CPU复位时钟RS232 接口RS232 VXIBus 本地总线图6.5 一种GPIB-VXI的硬件框图Page 29UESTC-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器GPIB-VXIGPIB-VXI转换器的软件设计转换器的软件设计 监控软件监控软件VISA I/OVISA I/O驱动程序驱动程序Page 30UEST
30、C-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器1 1监控软件的主要功能监控软件的主要功能GPIB-VXIGPIB-VXI资源管理器的监控软件驻留在资源管理器的监控软件驻留在EPROMEPROM中,中,主要完成以下个功能:主要完成以下个功能:硬件初始化。包括硬件初始化。包括VIC068AVIC068A、VAC068AVAC068A、TMS9914TMS9914复位复位以及数据区的初始化。以及数据区的初始化。VXIVXI总线资源管理。执行默认的资源配置操作,并接总线资源管理。执行默认的资源配置操作,并接受用户命令修改配置。受用户命令修改配置。命令翻译。实
31、现命令翻译。实现GPIBGPIB测试控制器的测试控制器的IEEE488.2IEEE488.2命令与命令与VXIVXI总线命令的翻译。总线命令的翻译。Page 31UESTC-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器2.2.资源管理器资源管理器资源管理器在上电或收到资源管理器在上电或收到“*“*TST?”TST?”命令时命令时执行,主要完成如下工作:执行,主要完成如下工作:(1 1)系统自检)系统自检(2 2)器件识别)器件识别(3 3)地址分配)地址分配 (4 4)命令者)命令者/从者分层从者分层(5 5)分配)分配IRQIRQ线线(6 6)向消息
32、型器件发送启动正常操作命令)向消息型器件发送启动正常操作命令Page 32UESTC-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器3.3.命令翻译命令翻译(1 1)GPIBGPIB消息的接收与发送消息的接收与发送(2 2)GPIBGPIB消息的处理消息的处理(3 3)VXIVXI服务请求的处理服务请求的处理Page 33UESTC-ATSATS第四节第四节 GPIB-VXIGPIB-VXI零槽资源管理器零槽资源管理器4.VISA I/O4.VISA I/O驱动软件驱动软件 SCPIVISA函数SICLGPIB接口卡GPIB-VXIPage 34UEST
33、C-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构 (VISAVISA)本节要求本节要求(1 1)了解虚拟仪器软件体系结构)了解虚拟仪器软件体系结构VISAVISA;(2 2)了解)了解VISAVISA资源类操作;资源类操作;(3 3)了解)了解VISAVISA基本操作和编程方法。基本操作和编程方法。Page 35UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构 (VISAVISA)VISA VISA(Virtual Instrumentation Virtual Instrumentation Software Software Arch
34、iectureArchiecture)简介)简介VISAVISA是是VXIplug&playVXIplug&play(VXIVXI即插即用)系统联即插即用)系统联盟制定的盟制定的I/OI/O驱动软件标准及其相关规范的总驱动软件标准及其相关规范的总称称 作为作为VPPVPP规范的核心内容,规范的核心内容,VISAVISA包括包括VPP4.xVPP4.x系系列规范。列规范。VPP4.3VPP4.3:VISAVISA库库VPP4.3.2VPP4.3.2:文本语言的:文本语言的VISAVISA实现规范实现规范VPP4.3.3VPP4.3.3:图形语言的:图形语言的VISAVISA实现规范实现规范VIS
35、AVISA是一种用来开发与是一种用来开发与VXI VXI Plug&PlayPlug&Play兼容的兼容的仪器驱动器和应用程序的标准化仪器驱动器和应用程序的标准化I/OI/O库。库。Page 36UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构 (VISAVISA)图6-11 虚拟仪器的软件体系结构测试应用软件测试编程环境(Agilent VEE,NI LabVIEW,NI LabWindows/CVI等)仪器驱动器(ID)I/O接口驱动软件(VISA)仪器软面板GPIBVXI其它图6-11 虚拟仪器的软件体系结构Page 37UESTC-ATSATS第第5 5
36、节节 虚拟仪器软件体系结构虚拟仪器软件体系结构 (VISAVISA)一个简单的一个简单的VISAVISA程序程序#include#include#include#include void main()void main()viSessionviSession defaultRMdefaultRM,vi;,vi;char char bufbuf 256=0;256=0;viOpenDefaultRM(&defaultRMviOpenDefaultRM(&defaultRM););/*Open session to GPIB device at address 22*/*Open session
37、to GPIB device at address 22*/viOpen(defaultRMviOpen(defaultRM,GPIB0:22:INSTR,VI_NULL,VI_NULL,&vi);,GPIB0:22:INSTR,VI_NULL,VI_NULL,&vi);viPrintf(viviPrintf(vi,*RSTn);,*RSTn);/*Initialize device*/*Initialize device*/viPrintf(viviPrintf(vi,*IDN?n);,*IDN?n);/*Send an*IDN?string to the device*/*Send an*
38、IDN?string to the device*/viScanf(viviScanf(vi,%t,%t,bufbuf););/*Read results*/*Read results*/printf(Instrumentprintf(Instrument identification string:%identification string:%snsn,bufbuf););/*Print results*/*Print results*/viClose(viviClose(vi););/*Close session*/*Close session*/viClose(defaultRMviC
39、lose(defaultRM););Page 38UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(VISA)(VISA)基本基本VISAVISA函数介绍函数介绍1.1.创建系统资源:创建系统资源:viOpenDefaultRMviOpenDefaultRM()()2.2.开启通信通道:开启通信通道:viOpenviOpen()()3.3.格式化输入输出:格式化输入输出:viScanfviScanf(),(),viPrintfviPrintf()()4.4.关闭通信通道关闭通信通道/关闭系统资源:关闭系统资源:viCloseviClose()()两个重要的数据类
40、型:两个重要的数据类型:1.1.viSessionviSession:会话对象,系统通过会话对象与设备:会话对象,系统通过会话对象与设备通信。通信。2.2.viStatusviStatus:状态数据,表示每次:状态数据,表示每次VISAVISA操作是否成操作是否成功。功。0 0:成功,非:成功,非0 0:具体的错误代码:具体的错误代码Page 39UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(VISA)(VISA)ViStatusViStatus viOpenDefaultRM(viSessionviOpenDefaultRM(viSession*pvipv
41、i)功能:功能:为为VISAVISA会话对象会话对象 vi vi 建立包含建立包含VISAVISA系统中所有设备信息的系统中所有设备信息的数据。数据。在以后的操作中,程序可以使用在以后的操作中,程序可以使用vivi中的信息,创建与系统中的信息,创建与系统中设备通信的通道。中设备通信的通道。输入参数:输入参数:pvipvi 指向一个会话对象的指针。指向一个会话对象的指针。函数的返回值:操作成功与否的状态码。函数的返回值:操作成功与否的状态码。举例:举例:viSessionviSession videfaultrmvidefaultrmviOpenDefaultRMviOpenDefaultRM(
42、&(&videfaultrmvidefaultrm););Page 40UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(VISA)(VISA)ViStatusViStatus viOpenviOpen(viSessionviSession sesnsesn,viRsrcviRsrc name,name,viAccessModeviAccessMode mode,viUInt32 mode,viUInt32 timeout,timeout,viSessionviSession*vi);*vi);功能:创建一个会话功能:创建一个会话参数:参数:1.1.viSess
43、ionviSession sesnsesn:指向系统资源的会话,该会话用:指向系统资源的会话,该会话用viOpenDefaultRMviOpenDefaultRM()()创建。创建。2.2.viRsrcviRsrc name name:地址描述符字符串(:地址描述符字符串(参见下页表格参见下页表格)。)。3.3.viAccessModeviAccessMode mode mode:访问模式。:访问模式。4.4.viUInt32 timeoutviUInt32 timeout:访问超时时间值。:访问超时时间值。5.5.viSessionviSession*vi*vi:指向要创建的会话的指针。:指
44、向要创建的会话的指针。Page 41UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(VISA)(VISA)地址描述符字符地址描述符字符串表:串表:参见参见VPP43.pdfVPP43.pdf文文档档4.3.14.3.1:AddressStringAddressStringPage 42UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(VISA)(VISA)举例:举例:ViStatus status;/*For checking errors */ViSession defaultRM,instr;status=viOpenDef
45、aultRM(&defaultRM);if(status VI_SUCCESS)/*Error Initializing VISA.exiting*/return-1;/*Open communication with GPIB Device at Primary Addr 1*/status=viOpen(defaultRM,GPIB0:1:INSTR,VI_NULL,VI_NULL,&instr);Page 43UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(VISA)(VISA)ViStatus viClose(ViObject vi);ViStatus
46、 viClose(ViObject vi);作用:作用:关闭会话关闭会话/关闭系统资源。关闭系统资源。参数:参数:ViObject viViObject vi:有效的:有效的vivi会话对象。会话对象。举例:举例:status=viOpenDefaultRM(&defaultRM);status=viOpen(defaultRM,GPIB0:1:INSTR,VI_NULL,VI_NULL,&instr);status=viClose(instr);status=viClose(defaultRM);Page 44UESTC-ATSATS第第5 5节节 虚拟仪器软件体系结构虚拟仪器软件体系结构(
47、VISA)(VISA)ViStatusViStatus viScanf(ViSessionviScanf(ViSession vi,vi,ViStringViString readFmtreadFmt,.);,.);功能:格式化输入,类似功能:格式化输入,类似C C中的中的scanfscanfViStatusViStatus viPrintf(ViSessionviPrintf(ViSession vi,vi,ViStringViString writeFmtwriteFmt,.);,.);功能:格式化输出功能:格式化输出举例:举例:viPrintf(vi,“%sn”,“*TST?”);viScanf(vi,“%d”,&code);