Интерфейс VXI сопоставлен с контроллером VXI, который вы устанавливаете в слоте 0 шасси VXI. Этот интерфейс, наряду с другой соответствующей аппаратной, показывают ниже.
Интерфейс VXI поддерживается через объект VISA-VXI. Многие функции, сопоставленные с объектом VISA-VXI, подобны функциям, сопоставленным с другими инструментальными объектами. Поэтому только функции и свойства, которые уникальны для интерфейса VXI ВИЗЫ, обсуждены в этом разделе.
Обратитесь к Обзору GPIB, чтобы узнать об общих возможностях тулбокса, таких как запись и чтение текста и двоичных данных, использование событий и коллбэков, и так далее.
Интерфейс PXI поддерживается через объект VISA-PXI. Функции, сопоставленные с объектом VISA-PXI, идентичны функциям, сопоставленным с объектом VISA-VXI. Информация предусмотрела работу с VISA-VXI в этом разделе, также работает на VISA-PXI.
Устройства PXI могут поддерживаться другими тулбоксами или идти с высокоуровневыми драйверами, которые легче взаимодействовать с, чем необработанный интерфейс PXI.
Вы создаете объект VISA-VXI с функцией visa
. Каждый объект сопоставлен с
Шасси VXI
Контроллер VXI в слоте 0 шасси VXI
Инструмент установлен в шасси VXI
visa
требует имени поставщика и имени ресурса как входные параметры. Именем поставщика является или keysight
или ni
. Имя ресурса состоит из индекса шасси VXI и инструмента логический адрес. Можно найти имя ресурса VISA-VXI для данного инструмента с инструментом конфигурирования обеспеченным поставщиком, или с функцией instrhwinfo
. (Вместо имени ресурса можно использовать псевдоним, как задано с инструментом конфигурирования поставщика VISA.), Как описано в Соединении с Инструментом, можно также сконфигурировать значения свойств во время создания объекта.
Прежде чем вы создадите объект VISA, необходимо найти инструмент в соответствующем поставщике проводником VISA. Когда вы находите, что сконфигурированный инструмент, отмечает, что ресурс представляет в виде строки и создает объект с помощью той информации. Например, создать объект VISA-VXI сопоставило с шасси VXI с индексом 0 и Keysight™ E1432A цифровой преобразователь с 16 каналами с логическим адресом 32,
vv = visa('keysight','VXI0::32::INSTR');
Объект VISA-VXI vv
теперь существует в рабочей области MATLAB®.
Чтобы открыть связь с инструментом, введите:
fopen (vv);
Можно затем отобразить класс vv
с командой whos
.
whos vv Name Size Bytes Class vv 1x1 882 visa object Grand total is 15 elements using 882 bytes
После того, как вы создадите объект VISA-VXI, следующие свойства являются автоматически присвоенными значениями. Эти свойства предоставляют информацию об основанном на объектах на ее типе класса и информации об адресах.
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.
Исключите точку с запятой при конфигурировании свойств с помощью записи через точку.
Можно также отобразить итоговую информацию через браузер Рабочей области путем щелчка правой кнопкой по инструментальному объекту и выбора Display Summary из контекстного меню.
Сводные данные отображения для объекта VISA-VXI vv
приведены ниже.
VISA-VXI Object Using AGILENT Adaptor : VISA-VXI0-32 Communication Address ChassisIndex: 0 LogicalAddress: 32 Communication State Status: closed RecordStatus: off Read/Write State TransferStatus: idle BytesAvailable: 0 ValuesReceived: 0 ValuesSent: 0
Адрес VISA-VXI состоит из:
Индекс шасси шасси VXI
Логический адрес инструмента установлен в шасси VXI
Необходимо задать логическое значение адреса через имя ресурса во время создания объекта VISA-VXI. Кроме того, необходимо включать индексное значение шасси как часть имени ресурса, если это отличается от значения по умолчанию 0. Свойства, сопоставленные с адресом шасси и инструмента, следующие.
Свойства адреса VISA-VXI
PropertyName | Описание |
---|---|
Укажите на индекс шасси VXI. | |
Задайте логический адрес инструмента VXI. | |
Укажите на местоположение слота инструмента VXI. |
Свойства ChassisIndex
и LogicalAddress
автоматически обновляются с заданными значениями имени ресурса, когда вы создаете объект VISA-VXI. Свойство Slot
автоматически обновляется после того, как объект соединяется с инструментом с функцией fopen
.
Можно отобразить значения свойств адреса для объекта VISA-VXI vv
, созданный в Создании Объекта VISA-VXI.
fopen(vv) vv.ChassisIndex ans = 0
vv.LogicalAddress ans = 32
vv.Slot ans = 2
Инструменты VXI или основаны на сообщении или основаны на регистре. Обычно это принято, что основанные на сообщении инструменты легче использовать, в то время как основанные на регистре инструменты быстрее. Основанный на сообщении инструмент имеет свой собственный процессор, который позволяет ему интерпретировать высокоуровневые команды, такие как команда SCPI. Поэтому, чтобы связаться с основанным на сообщении инструментом, можно использовать чтение и записать функциям fscanf
, fread
, fprintf
и fwrite
. Для получения дальнейшей информации об этих функциях, обратитесь к Связи со Своим Инструментом.
Если основанный на сообщении инструмент также содержит общую память, то можно получить доступ к общей памяти посредством основанных на регистре операций чтения и операций записи. Основанный на регистре инструмент обычно не имеет своего собственного процессора, чтобы интерпретировать высокоуровневые команды. Поэтому, чтобы связаться с основанным на регистре инструментом, необходимо использовать чтение и функции записи тот доступ регистр.
Существует два типа основанной на регистре записи и читают функции: низкоуровневый и высокий уровень. Основным преимуществом высокоуровневых функций является простота использования. Обратитесь к Использованию Высокоуровневых Функций Памяти для получения дополнительной информации. Основным преимуществом низкоуровневых функций является скорость. Обратитесь к Использованию Низкоуровневых Функций Памяти для получения дополнительной информации.
Функции, сопоставленные с основанной на регистре записью и операциями чтения, следующие.
VISA-VXI основанные на регистре функции записи и чтения
FunctionName | Описание |
---|---|
Сопоставьте память для низкоуровневых операций чтения памяти и операций записи. | |
Низкоуровневая память считана из регистра VXI. | |
Низкоуровневая запись памяти к регистру VXI. | |
Высокоуровневая память считана из регистра VXI. | |
Не сопоставьте память для низкоуровневых операций чтения памяти и операций записи. | |
Высокоуровневая запись памяти к регистру VXI. |
Свойства, сопоставленные с основанной на регистре записью и операциями чтения, приведены ниже.
VISA-VXI основанные на регистре свойства записи и чтения
PropertyName | Описание |
---|---|
Укажите на базовый адрес памяти расширенной памяти. | |
Укажите на размер расширенной памяти для низкоуровневых операций чтения и операций записи. | |
Укажите на базовый адрес A24 или пробела A32. | |
Задайте, передается ли шаг смещения регистра VXI после данных. | |
Укажите на размер памяти, которую требуют в A24 или адресном пространстве A32. | |
Задайте адресное пространство, используемое инструментом. |
Этот пример исследует характеристики регистра для Keysight E1432A 51,2 kSa/s цифровых преобразователя с 16 каналами с модулем DSP.
Все инструменты VXI имеют пространство памяти A16, состоящее из 64 байтов. Это известно как пробел A16, потому что адреса 16 битов шириной. Основанные на регистре инструменты предоставляют карту распределения памяти адресного пространства, которое описывает информацию, содержавшую в пробеле A16. Некоторые инструменты VXI также имеют A24 или пробел A32, если 64 байтов, обеспеченных пробелом A16, недостаточно, чтобы выполнить необходимые задачи. Инструмент VXI не может использовать и A24 и пробел A32:
Создайте инструментальный объект — Создают объект VISA-VXI vv
, сопоставленный с шасси VXI с индексом 0 и цифровым преобразователем Keysight E1432A с логическим адресом 130.
vv = visa('keysight','VXI0::130::INSTR');
Соединитесь с инструментом — Подключение vv
к инструменту.
fopen(vv)
Свойство MemorySpace
указывает на тип пространства памяти инструментальные поддержки. По умолчанию все инструменты поддерживают пространство памяти A16. Однако это свойство может быть A16/A24 или A16/A32, если инструмент также поддерживает A24 или пространство памяти A32, соответственно.
vv.MemorySpace ans = A16/A24
Если объект VISA-VXI не соединяется с инструментом, MemorySpace
всегда возвращает значение по умолчанию A16
.
Свойство MemoryBase
указывает на базовый адрес A24 или пробела A32, и задано как шестнадцатеричная строка. Свойство MemorySize
указывает на размер A24 или пробела A32. Если инструмент VXI поддерживает только пространство памяти A16, значения по умолчанию MemoryBase
к 0H
и значения по умолчанию MemorySize
к 0
.
vv.MemoryBase ans = 200000H
vv.MemorySize ans = 262144
Разъединитесь и вымойтесь — Когда вам больше не нужен vv
, необходимо отключить его от инструмента и удалить его из памяти и из рабочего пространства MATLAB.
fclose(vv) delete(vv) clear vv
Этот пример использует высокоуровневые функции памяти, memread
и memwrite
, к информации о регистре доступа для Keysight E1432A 51,2 kSa/s цифровых преобразователя с 16 каналами с модулем DSP. Основным преимуществом этих высокоуровневых функций является простота использования — можно получить доступ к нескольким регистрам с одним вызовом функции, и память, к которой нужно получить доступ, автоматически сопоставлена для вас. Основной недостаток является отсутствием скорости — они медленнее, чем низкоуровневые функции памяти.
Каждый регистр содержит 16 битов и сопоставлен со значением смещения, которое вы предоставляете к memread
или memwrite
. К первым четырем регистрам цифрового преобразователя получают доступ в этом примере и описывают ниже.
Keysight (раньше Agilent) информация о регистре E1432A
Регистр | Смещение | Описание |
---|---|---|
ID | 0 | Этот регистр обеспечивает инструментальную конфигурационную информацию и всегда задается как CFFF. Биты 15 и 14 равняются 1, указывая, что инструмент основан на регистре. Биты 13 и 12 0, указывая, что инструмент поддерживает пространство памяти A24. Остающиеся биты являются всем 1, указывая на ID устройства. |
Тип устройства | 2 | Этот регистр обеспечивает инструментальную конфигурационную информацию. Биты 15-12 указывают на память, требуемую пробелом A24. Остающиеся биты указывают на типовой кодекс для инструмента. |
Состояние | 4 | Этот регистр обеспечивает инструментальную информацию о статусе. Например, бит 15 указывает, можно ли получить доступ к регистрам A24, и бит 6 указывает, произошла ли ошибка связи DSP. |
Смещение | 6 | Этот регистр задает базовый адрес регистров A24 инструмента. Биты карта 15-12 строки адреса ШИНЫ VME A23-A20 для A24 указывают доступ. Остающиеся биты являются всем 0. |
Для более подробной информации об этих регистрах обратитесь к HP E1432A User's Guide.
Создайте инструментальный объект — Создают объект VISA-VXI vv
, сопоставленный с шасси VXI с индексом 0, и цифровой преобразователь Keysight E1432A с логическим адресом равняется 130.
vv = visa('keysight','VXI0::130::INSTR');
Соединитесь с инструментом — Подключение vv
к инструменту.
fopen(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 = 1011000000000000
Восстановите исходное значение регистра, которое хранится в переменной reg24
.
memwrite(vv,reg24(3),6,'uint16','A16');
Разъединитесь и вымойтесь — Когда вам больше не нужен vv
, необходимо отключить его от инструмента и удалить его из памяти и из рабочего пространства MATLAB.
fclose(vv) delete(vv) clear vv
Этот пример использует низкоуровневые функции памяти mempeek
и mempoke
, чтобы получить доступ к информации о регистре для Keysight E1432A 51,2 kSa/s цифровых преобразователя с 16 каналами с модулем DSP. Основным преимуществом этих низкоуровневых функций является скорость — они быстрее, чем высокоуровневые функции памяти. Основные недостатки включают неспособность получить доступ к нескольким регистрам с одним вызовом функции, об ошибках не сообщают, и необходимо сопоставить память, к которой нужно получить доступ.
Для получения информации о регистрах цифрового преобразователя, к которым получают доступ в этом примере, обратитесь к Использованию Высокоуровневых Функций Памяти:
Создайте инструментальный объект — Создают объект VISA-VXI vv
, сопоставленный с шасси VXI с индексом 0 и цифровым преобразователем Keysight E1432A с логическим адресом 130.
vv = visa('keysight','VXI0::130::INSTR');
Соединитесь с инструментом — Подключение vv
к инструменту.
fopen(vv)
Запишите и считайте данные — Прежде чем можно будет использовать низкоуровневые функции памяти, необходимо сначала сопоставить пространство памяти с функцией memmap
. Если память, которую требует memmap
, не существует, ошибка возвращена. Следующая команда сопоставляет первые 16 регистров пространства памяти A16.
memmap(vv,'A16',0,16);
Свойства MappedMemoryBase
и MappedMemorySize
указывают, была ли память сопоставлена. MappedMemoryBase
является базовым адресом расширенной памяти и задан как шестнадцатеричная строка. MappedMemorySize
является размером расширенной памяти. Эти свойства подобны свойствам MemoryBase
и MemorySize
, которые описывают A24 или пространство памяти A32.
vv.MappedMemoryBase ans = 16737610H
vv.MappedMemorySize ans = 16
Следующая команда выполняет низкоуровневое чтение Регистра ID, который имеет смещение 0.
reg1 = mempeek(vv,0,'uint16') reg1 = 53247
Следующая команда выполняет низкоуровневое чтение Регистра Смещения, который имеет смещение 6.
reg4 = mempeek(vv,6,'uint16') reg4 = 40960
Следующие команды пишут в Регистр Смещения и затем читают значение назад. Обратите внимание на то, что, если вы измените значение этого регистра, вы не сможете получить доступ к пробелу A24.
mempoke(vv,45056,6,'uint16'); mempeek(vv,6,'uint16') ans = 45056
Восстановите исходное значение регистра.
mempoke(vv,reg4,6,'uint16');
Когда вы закончили получать доступ к регистрам, необходимо не сопоставить память с функцией memunmap
.
memunmap(vv) vv.MappedMemoryBase ans = 0H
vv.MappedMemorySize ans = 0
Если память все еще сопоставлена, когда объект отключается от инструмента, память автоматически не сопоставлена для вас.
Разъединитесь и вымойтесь — Когда вам больше не нужен vv
, необходимо отключить его от инструмента и удалить его из памяти и из рабочего пространства MATLAB.
fclose(vv) delete(vv) clear vv