VXI接口与VXI控制器相关联,该控制器安装在VXI机箱的0号槽位。该接口以及其他相关硬件如下所示。
通过VISA-VXI对象支持VXI接口。与万博1manbetxVISA-VXI对象相关的许多功能与其他仪器对象相关的功能相似。因此,本节仅讨论VISA VXI接口特有的功能和属性。
提到GPIB概述了解一般的工具箱功能,如写入和读取文本和二进制数据、使用事件和回调等。
通过VISA-PXI对象支持PXI接口万博1manbetx。与VISA-PXI对象关联的特性与VISA-VXI对象关联的特性是相同的。本节为VISA-VXI提供的信息也适用于VISA-PXI。
PXI设备可能得到其他工具箱的支持,或万博1manbetx者带有比原始PXI接口更容易交互的更高级别驱动程序。
属性创建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对象后,以下属性将自动赋值。这些属性根据对象的类类型和地址信息提供有关对象的信息。
您可以显示这些属性的值以供选择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对象的显示摘要vv
下面给出了一个例子。
使用安捷伦适配器的VISA-VXI对象:VISA-VXI0-32通信地址分类索引:0逻辑地址:32通信状态:关闭记录状态:关闭读/写状态传输状态:空闲字节可用:0值接收:0值发送:0
vxi签证地址包括:
VXI机箱的机箱索引
安装在VXI机箱中的仪器的逻辑地址
在创建VISA-VXI对象期间,必须通过资源名指定逻辑地址值。此外,如果机箱索引值与默认值0不同,则必须将其包含在资源名称中。与机箱和仪器地址关联的属性如下所示。
VISA-VXI地址属性
属性名 |
描述 |
---|---|
指示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寄存器的读写功能
与基于寄存器的写和读操作相关联的属性如下所示。
基于VISA-VXI寄存器的写入和读取属性
属性名 |
描述 |
---|---|
指示映射内存的基内存地址。 |
|
指示用于低级读写操作的映射内存的大小。 |
|
指示A24或A32空间的基址。 |
|
指定数据传输后VXI寄存器偏移量是否增加。 |
|
指示在A24或A32地址空间中请求的内存大小。 |
|
定义仪器使用的地址空间。 |
本示例探讨带DSP模块的Keysight E1432A 16通道51.2 kSa/s数字化仪的寄存器特性。
所有VXI仪器都有一个由64字节组成的A16内存空间。它被称为A16空间,因为地址是16位宽。基于寄存器的仪器提供了地址空间的内存映射,描述了A16空间中包含的信息。如果由t提供的64字节A16空间不足以执行必要的任务。VXI仪器不能同时使用A24和A32空间:
创建一个工具对象-创建VISA-VXI对象vv
与索引为0的VXI机箱和逻辑地址为130的Keysight E1432A数字化仪关联。
vv=visa('keysight','VXI0::130::INSTR');
连接到仪器-连接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
断开并清理-当你不再需要vv
,您应该断开它与仪器的连接,并将其从内存和MATLAB工作区中删除。
Fclose (vv) delete(vv) clear vv
这个例子使用了高级内存函数,memread
和memwrite
,以访问带有DSP模块的Keysight E1432A 16通道51.2 kSa/s数字化仪的寄存器信息。这些高级函数的主要优点是易于使用——您可以通过一次函数调用访问多个寄存器,并且要访问的内存会自动映射。主要缺点是缺乏速度-它们比低级内存功能慢。
每个寄存器包含16位,并与您提供给的偏移值相关联memread
或memwrite
. 本例中访问数字化仪的前四个寄存器,如下所述。
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用户指南.
创建一个工具对象-创建VISA-VXI对象vv
与索引为0的VXI机箱和逻辑地址为130的Keysight E1432A数字化器相关联。
vv=visa('keysight','VXI0::130::INSTR');
连接到仪器-连接vv
对仪器进行测试。
福彭(vv)
写入和读取数据-以下命令执行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”,“系”);
断开并清理-当你不再需要vv
,您应该断开它与仪器的连接,并将其从内存和MATLAB工作区中删除。
Fclose (vv) delete(vv) clear vv
本示例使用低级内存函数mempeek
和mempoke
使用DSP模块访问Keysight E1432A 16通道51.2 kSa/s数字化仪的寄存器信息。这些低级功能的主要优点是速度—它们比高级内存功能快。主要缺点包括无法通过一次函数调用访问多个寄存器、不报告错误以及必须映射要访问的内存。
有关本示例中访问的数字化寄存器的信息,请参阅使用高级内存功能:
创建一个工具对象-创建VISA-VXI对象vv
与索引为0的VXI机箱和逻辑地址为130的Keysight E1432A数字化仪关联。
vv=visa('keysight','VXI0::130::INSTR');
连接到仪器-连接vv
对仪器进行测试。
福彭(vv)
写入和读取数据—在使用低级内存功能之前,必须先将内存空间映射到记忆地图
作用如果记忆地图
不存在,返回错误。以下命令映射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
如果在对象与仪器断开连接时仍映射内存,则会自动为您取消映射内存。
断开并清理-当你不再需要vv
,您应该断开它与仪器的连接,并将其从内存和MATLAB工作区中删除。
Fclose (vv) delete(vv) clear vv