使用VXI和PXI接口

理解VISA-VXI

VXI接口与VXI控制器相关联,该控制器安装在VXI机箱的0号槽位。该接口以及其他相关硬件如下所示。

通过VISA-VXI对象支持VXI接口。与万博1manbetxVISA-VXI对象相关的许多功能与其他仪器对象相关的功能相似。因此,本节仅讨论VISA VXI接口特有的功能和属性。

提到GPIB概述了解一般的工具箱功能,如写入和读取文本和二进制数据、使用事件和回调等。

理解VISA-PXI

通过VISA-PXI对象支持PXI接口万博1manbetx。与VISA-PXI对象关联的特性与VISA-VXI对象关联的特性是相同的。本节为VISA-VXI提供的信息也适用于VISA-PXI。

PXI设备可能得到其他工具箱的支持,或万博1manbetx者带有比原始PXI接口更容易交互的更高级别驱动程序。

创建VISA-VXI对象

属性创建VISA-VXI对象签证函数。每个对象都与

  • VXI底盘

  • VXI控制器,位于VXI机箱的0号槽位

  • 安装在VXI底盘上的一种仪器

签证需要供应商名称和资源名称作为输入参数。供应商名称为keysight. 资源名称由VXI机箱索引和仪器逻辑地址组成。您可以使用供应商提供的配置工具或instrhwinfo作用(您可以使用VISA供应商配置工具定义的别名代替资源名称。)如中所述连接到仪器,您还可以在对象创建期间配置属性值。

在创建VISA对象之前,您必须在相应的供应商VISA explorer中找到仪器。当您找到配置的仪器时,请注意资源字符串,并使用该信息创建对象。例如,创建与索引为0和钥匙的VXI机箱关联的VISA-VXI对象™ E1432A逻辑地址为32的16通道数字化仪,

vv=visa('keysight','VXI0::32::INSTR');

VISA-VXI对象vv现在存在于MATLAB中®工作空间。

要打开与仪器的连接,请键入:

fopen(vv);

然后可以显示vv命令。

whos vv名称大小字节类vv 1x1 882 visa对象总计为15个元素,使用882字节

创建VISA-VXI对象后,以下属性将自动赋值。这些属性根据对象的类类型和地址信息提供有关对象的信息。

VISA-VXI描述性的属性

属性名

描述

的名字

为VISA-VXI对象指定描述性名称。

RsrcName

指明VISA工具的资源名称。

类型

指示对象类型。

您可以显示这些属性的值以供选择vv

vg.Name ans='VISA-VXI0-32'
vg.RsrcName ans='VXI0::32::INSTR'
vg.Type ans=‘visa vxi’

VISA-VXI对象显示

VISA-VXI对象为您提供了一个方便的显示,其中总结了重要的地址和状态信息。可以通过以下三种方式调用显示摘要:

  • 在命令行中键入VISA-VXI对象。

  • 创建VISA-VXI对象时排除分号。

  • 使用点表示法配置属性时要排除分号。

还可以通过在仪器对象上单击鼠标右键,然后选择“工作区浏览器”来显示摘要信息显示摘要从上下文菜单中。

VISA-VXI对象的显示摘要vv下面给出了一个例子。

使用安捷伦适配器的VISA-VXI对象:VISA-VXI0-32通信地址分类索引:0逻辑地址:32通信状态:关闭记录状态:关闭读/写状态传输状态:空闲字节可用:0值接收:0值发送:0

VISA-VXI地址

vxi签证地址包括:

  • VXI机箱的机箱索引

  • 安装在VXI机箱中的仪器的逻辑地址

在创建VISA-VXI对象期间,必须通过资源名指定逻辑地址值。此外,如果机箱索引值与默认值0不同,则必须将其包含在资源名称中。与机箱和仪器地址关联的属性如下所示。

VISA-VXI地址属性

属性名

描述

ChassisIndex

指示VXI机箱的索引号。

逻辑地址

指定VXI仪器的逻辑地址。

指示VXI仪器的插槽位置。

ChassisIndex逻辑地址创建VISA-VXI对象时,属性将自动更新为指定的资源名称值。这个属性将在对象连接到具有的仪器后自动更新打开外部文件作用

可以显示VISA-VXI对象的地址属性值vv创建于创建VISA-VXI对象

fopen () vv。ChassisIndexans = 0
vv.LogicalAddress ans=32
vv。槽位ans = 2

基于寄存器的通信

VXI仪器可以是基于消息的,也可以是基于寄存器的。通常,假设基于消息的工具更容易使用,而基于寄存器的工具更快。基于消息的仪器有自己的处理器,允许它解释高级命令,如SCPI命令。因此,要与基于消息的仪器通信,可以使用读和写功能fscanf弗瑞德写入文件.有关这些功能的详细信息,请参见与你的仪器沟通

如果基于消息的仪器还包含共享内存,则可以通过基于寄存器的读写操作访问共享内存。基于寄存器的仪器通常没有自己的处理器来解释高级命令。因此,要与基于寄存器的仪器通信,需要使用访问寄存器的读写函数。

有两种类型的基于寄存器的写和读函数:低级高层。高级功能的主要优点是易于使用。请参阅使用高级内存功能了解更多信息。低级功能的主要优点是速度快。提到使用低电平存储器功能了解更多信息。

与基于寄存器的写入和读取操作相关的函数如下所示。

基于VISA-VXI寄存器的读写功能

函数名

描述

记忆地图

用于低级别内存读写操作的映射内存。

mempeek

从VXI寄存器读取低级内存。

mempoke

低级内存写入VXI寄存器。

memread

从VXI寄存器读取的高级存储器。

记忆地图

取消映射内存以进行低级内存读写操作。

memwrite

高级内存写入VXI寄存器。

与基于寄存器的写和读操作相关联的属性如下所示。

基于VISA-VXI寄存器的写入和读取属性

属性名

描述

MappedMemoryBase

指示映射内存的基内存地址。

映射内存化

指示用于低级读写操作的映射内存的大小。

MemoryBase

指示A24或A32空间的基址。

MemoryIncrement

指定数据传输后VXI寄存器偏移量是否增加。

记忆化

指示在A24或A32地址空间中请求的内存大小。

记忆空间

定义仪器使用的地址空间。

了解仪器的寄存器特性

本示例探讨带DSP模块的Keysight E1432A 16通道51.2 kSa/s数字化仪的寄存器特性。

所有VXI仪器都有一个由64字节组成的A16内存空间。它被称为A16空间,因为地址是16位宽。基于寄存器的仪器提供了地址空间的内存映射,描述了A16空间中包含的信息。如果由t提供的64字节A16空间不足以执行必要的任务。VXI仪器不能同时使用A24和A32空间:

  1. 创建一个工具对象-创建VISA-VXI对象vv与索引为0的VXI机箱和逻辑地址为130的Keysight E1432A数字化仪关联。

    vv=visa('keysight','VXI0::130::INSTR');
  2. 连接到仪器-连接vv对仪器进行测试。

    福彭(vv)

    记忆空间属性表示仪器支持的内存空间类型。默认情况下,所有仪器都支持16内存空间。但是,如果仪器还分别支持24或32内存空间,则万博1manbetx此属性可以是A16/A24或A16/A32。

    vv.MemorySpace ans=A16/A24

    如果VISA-VXI物体没有与仪器连接,记忆空间总是返回的默认值

    MemoryBase属性表示A24或A32空间的基址,并定义为十六进制字符串。这个记忆化属性指示A24或A32空间的大小。如果VXI仪器仅支持A16内存空间,万博1manbetxMemoryBase默认为0 h记忆化默认为0

    vv.MemoryBase ans=200000H
    vv。内存大小ans = 262144
  3. 断开并清理-当你不再需要vv,您应该断开它与仪器的连接,并将其从内存和MATLAB工作区中删除。

    Fclose (vv) delete(vv) clear vv

使用高级内存功能

这个例子使用了高级内存函数,memreadmemwrite,以访问带有DSP模块的Keysight E1432A 16通道51.2 kSa/s数字化仪的寄存器信息。这些高级函数的主要优点是易于使用——您可以通过一次函数调用访问多个寄存器,并且要访问的内存会自动映射。主要缺点是缺乏速度-它们比低级内存功能慢。

每个寄存器包含16位,并与您提供给的偏移值相关联memreadmemwrite. 本例中访问数字化仪的前四个寄存器,如下所述。

Keysight(以前安捷伦科技公司E1432A注册信息

注册

抵消

描述

身份证件

0

该寄存器提供仪器配置信息,并始终定义为CFFF。位15和14为1,表示仪器基于寄存器。位13和12为0,表示仪器支持A24存储空间。其余位均为1,表示设备ID。万博1manbetx

设备类型

2

该寄存器提供仪器配置信息。位15-12表示A24空间所需的内存。其余位表示仪器的型号代码。

状态

4

该寄存器提供仪器状态信息。例如,位15表示是否可以访问A24寄存器,位6表示是否发生DSP通信错误。

抵消

6

该寄存器定义仪器A24寄存器的基址。位15-12映射用于A24寄存器访问的VME总线地址线A23-A20。其余的位都是0。

有关这些寄存器的更多详细信息,请参阅HP E1432A用户指南

  1. 创建一个工具对象-创建VISA-VXI对象vv与索引为0的VXI机箱和逻辑地址为130的Keysight E1432A数字化器相关联。

    vv=visa('keysight','VXI0::130::INSTR');
  2. 连接到仪器-连接vv对仪器进行测试。

    福彭(vv)
  3. 写入和读取数据-以下命令执行ID寄存器的高级读取,其偏移量为0。

    reg1=memread(vv,0,'uint16','A16')reg1=53247

    转换reg1一个十六进制值和一个二进制字符串。请注意,十六进制值是CFFF,最低有效12位都是1,正如预期的那样。

    dec2hex(reg1) ans = CFFF dec2bin(reg1) ans = 1100111111111111

    您可以使用以下命令读取多个寄存器:memread.下面的命令读取接下来的三个寄存器。偏移量为2表示读取操作从设备类型寄存器开始。

    reg24=memread(vv,2,'uint16','A16',3)reg24=20993 50012 40960

    以下命令写入偏移寄存器,然后读取值。请注意,如果更改此寄存器的值,将无法访问A24空间。

    memwrite(vv,45056,6,'uint16','A16');reg4=memread(vv,6,'uint16','A16')reg4=45056

    注意,如预期的那样,最低有效的12位都是0。

    dec2bin(reg4,16)ans=10110000000000

    恢复存储在中的原始寄存器值条例24变量。

    memwrite (vv reg24(3), 6日“uint16”,“系”);
  4. 断开并清理-当你不再需要vv,您应该断开它与仪器的连接,并将其从内存和MATLAB工作区中删除。

    Fclose (vv) delete(vv) clear vv

使用低电平存储器功能

本示例使用低级内存函数mempeekmempoke使用DSP模块访问Keysight E1432A 16通道51.2 kSa/s数字化仪的寄存器信息。这些低级功能的主要优点是速度—它们比高级内存功能快。主要缺点包括无法通过一次函数调用访问多个寄存器、不报告错误以及必须映射要访问的内存。

有关本示例中访问的数字化寄存器的信息,请参阅使用高级内存功能

  1. 创建一个工具对象-创建VISA-VXI对象vv与索引为0的VXI机箱和逻辑地址为130的Keysight E1432A数字化仪关联。

    vv=visa('keysight','VXI0::130::INSTR');
  2. 连接到仪器-连接vv对仪器进行测试。

    福彭(vv)
  3. 写入和读取数据—在使用低级内存功能之前,必须先将内存空间映射到记忆地图作用如果记忆地图不存在,返回错误。以下命令映射A16内存空间的前16个寄存器。

    memmap (vv,“系”,0,16);

    MappedMemoryBase映射内存化属性指示是否已映射内存。MappedMemoryBase是映射内存的基址,定义为十六进制字符串。映射内存化是映射内存的大小。这些属性类似于MemoryBase记忆化描述A24或A32内存空间的属性。

    vv.MappedMemoryBase ans=16737610H
    vv。MappedMemorySize ans = 16

    以下命令执行ID寄存器的低级读取,其偏移量为0。

    Reg1 = mempeek(vv,0,'uint16'

    以下命令对偏移量为6的偏移量寄存器执行低级读取。

    Reg4 = mempeek(vv,6,'uint16'

    以下命令写入偏移寄存器,然后读取值。请注意,如果更改此寄存器的值,将无法访问A24空间。

    mempoke (45056 6 ' uint16 ');Mempeek (vv,6,'uint16') ans = 45056

    恢复原始寄存器值。

    mempoke(vv,reg4,6,'uint16');

    完成对寄存器的访问后,应使用记忆地图作用

    memunmap(vv)vv.MappedMemoryBase ans=0H
    vv。MappedMemorySize ans = 0

    如果在对象与仪器断开连接时仍映射内存,则会自动为您取消映射内存。

  4. 断开并清理-当你不再需要vv,您应该断开它与仪器的连接,并将其从内存和MATLAB工作区中删除。

    Fclose (vv) delete(vv) clear vv