GPIB является стандартизированным интерфейсом, который позволяет подключать и управлять несколькими устройствами от различных производителей. GPIB также упоминается как его первоначальное имя HP-IB, или как IEEE® обозначение IEEE-488. Функциональность GPIB развивалась с течением времени, и описывается в нескольких спецификациях:
Спецификация IEEE 488.1-1975 определяет электрические и механические характеристики интерфейса и его основные функциональные характеристики.
Спецификация IEEE-488.2-1987 основана на спецификации IEEE 488.1, чтобы определить приемлемое минимальное строение и основной набор команд приборов и общих форматов данных.
Спецификация Standard Commands for Programmable Instrumentation (SCPI) основана на командах, заданных спецификацией IEEE 488.2, для определения стандартного набора команд прибора, который может использоваться GPIB или другими интерфейсами.
Для многих приложений GPIB можно общаться со своим инструментом без детального знания того, как работает GPIB. Связь устанавливается через объект GPIB, который вы создаете в MATLAB® рабочей области.
Если ваше приложение является простым или вы уже знакомы с вышеупомянутыми темами, можно начать с создания объекта GPIB. Если требуется высокоуровневое описание всех шагов, которые вы, вероятно, сделаете при общении с инструментом, обратитесь к разделу Создание объектов инструмента.
Часть функциональности GPIB требуется для всех устройств GPIB, в то время как другая функциональность GPIB опциональна. Кроме того, многие устройства поддерживают только подмножество набора команд SCPI или используют другой набор команд для конкретного поставщика. Полный список возможностей GPIB и набора команд см. в документации устройства.
Важные функции GPIB описаны ниже. Подробную информацию о функциональности GPIB см. в соответствующих ссылках в Библиографии.
Шина GPIB представляет собой кабель с двумя 24-контактными разъемами, которые позволяют подключать несколько устройств друг к другу. Шина и разъем имеют следующие функции и ограничения:
Можно подключить до 15 устройств к шине.
Можно подключить устройства в звездном строении, линейном строении или комбинации строений.
Для достижения максимальной скорости передачи данных длина кабеля не должна превышать 20 метров в целом или в среднем 2 метра на устройство. Можно устранить эти ограничения при помощи расширителя шины.
Каждое устройство GPIB должно быть некоторой комбинацией Talker, прослушиватель или контроллер. Контроллер обычно является платой, которую вы устанавливаете на свой компьютер. Болтовни и прослушиватели обычно являются инструментами, такими как осциллографы, генераторы функций, мультиметры и так далее. Большинство современных инструментов - это и Talkers, и прослушиватели.
Talkers - Talker передает данные через интерфейс, когда адресован для разговора Контроллером. За раз может быть только один Говорящий.
Прослушиватели - Прослушиватель получает данные по интерфейсу при обращении для прослушивания Контроллером. В данный момент может быть до 14 прослушивателей. Как правило, Контроллер является Говорящим, в то время как один или несколько инструментов на GPIB являются Прослушивателями.
Контроллеры - Контроллер определяет, какие устройства являются Контроллерами или Прослушивателями. Система GPIB может содержать несколько контроллеров. Один из них обозначается системным контроллером. Однако в данный момент может быть активен только один контроллер. Текущий активный контроллер является входным контроллером (CIC). CIC может передавать управление неактивному контроллеру, но только системный контроллер может сделать себя CIC.
Когда контроллер не отправляет сообщения, Talker может отправлять сообщения. Как правило, CIC является прослушивателем, в то время как другое устройство включено в качестве говорящего.
Каждый контроллер идентифицируется уникальным индексным номером платы. Каждый Talker/Listener идентифицируется по уникальному первичному адресу в диапазоне от 0 до 30 и по необязательному вторичному адресу, который может быть 0 или может варьироваться от 96 до 126.
Существует два типа данных, которые могут быть переданы по GPIB: данные прибора и сообщения интерфейса:
Данные КИПиА - данные КИПиА состоят из специфичных для поставщика команд, которые конфигурируют ваш прибор, возвращают результаты измерений и так далее. Полный список команд, поддерживаемых вашим инструментом, см. в его документации.
Сообщения интерфейса - Сообщения интерфейса определяются стандартом GPIB и состоят из команд, которые очищают шину GPIB, адресные устройства, возвращают результаты самотестирования и так далее.
Передача данных состоит из одного байта (8 биты), переданных параллельно. Скорость передачи данных через интерфейс ограничена 1 мегабайтом в секунду. Однако эта скорость передачи данных обычно не достигается на практике и ограничена самым медленным устройством на шине.
GPIB состоит из 24 линий, которые разделяются всеми инструментами, подключенными к шине. Для сигналов используются 16 линий, а для земли - восемь линий. Сигнальные линии разделены на следующие группы:
Восемь линии данных
Пять линий управления интерфейсами
Три линии рукопожатия
Сигнальные линии используют низкоправдовое (отрицательное) логическое соглашение с уровнями TTL. Это означает, что линия является низкой (true или утвержденной), когда это низкий уровень TTL, и линия является высокой (false или unasserted), когда это высокий уровень TTL. Схема назначения контактов для разъема GPIB представлена ниже.
Назначение контактов и сигналов GPIB
Контакт | Метка | Имя сигнала | Контакт | Метка | Имя сигнала |
---|---|---|---|---|---|
1 | DIO1 | Передача данных | 13 | DIO5 | Передача данных |
2 | DIO2 | Передача данных | 14 | DIO6 | Передача данных |
3 | DIO3 | Передача данных | 15 | DIO7 | Передача данных |
4 | DIO4 | Передача данных | 16 | DIO8 | Передача данных |
5 | EOI | Завершите или идентифицируйте | 17 | ЖЭНЬ | Удаленное включение |
6 | DAV | Данные действительны | 18 | GND | Заземление DAV |
7 | NRFD | Не готов к данным | 19 | GND | Заземление NRFD |
8 | NDAC | Не приняты данные | 20 | GND | Заземление NDAC |
9 | IFC | Очистка интерфейса | 21 | GND | Заземление IFC |
10 | SRQ | Запрос на обслуживание | 22 | GND | Земля SRQ |
11 | ATN | Внимание | 23 | GND | Заземление ATN |
12 | Щит | Заземление шасси | 24 | GND | Сигнальная земля |
Восемь линии данных, DIO1- DIO8, используются для передачи данных по одному байту за раз. DIO1 - наименее значительный бит, в то время как DIO8 - самый значительный бит. Переданные данные могут быть командой instrument или командой GPIB interface.
Форматы данных зависят от поставщика и могут основываться на тексте (ASCII) или быть двоичными. Команды интерфейса GPIB определяются стандартом IEEE 488.
Линии управления интерфейсами управляют потоком данных через интерфейс GPIB.
Линии управления интерфейсами GPIB
Линия | Описание |
---|---|
ATN | Используется контроллером для информирования всех устройств на GPIB о том, что байты подаются. Если линия ATN высока, байты интерпретируются как команда instrument. Если линия ATN является низкой, байты интерпретируются как сообщение интерфейса. |
IFC | Используется контроллером для инициализации шины. Если линия IFC низкая, контроллер и прослушиватели отключаются, и системный контроллер становится зарядным контроллером. |
ЖЭНЬ | Используется контроллером для перевода инструментов в удаленный или локальный программный режим. Если REN является низким, все прослушиватели помещаются в удаленный режим, и вы не можете изменить их настройки с передней панели. Если REN является высоким, все прослушиватели переводятся в локальный режим. |
SRQ | Используется Talkers для асинхронного запроса услуги от контроллера. Если SRQ низок, то один или несколько Талеров требуют обслуживания (для примера была получена ошибка типа недопустимой команды). Вы проводите последовательный опрос, чтобы определить, какой Talker запросил услугу. Опрос автоматически устанавливает высокую линию SRQ. |
EOI | Если линия ATN высока, линия EOI используется Talkers, чтобы идентифицировать конец потока байтов, такого как команда instrument. Если строка ATN является низкой, линия EOI используется контроллером для выполнения параллельного опроса (не поддерживается тулбоксом). |
Можно проверить состояние линий управления интерфейсами с помощью BusManagementStatus
свойство.
Три линии квитирования, DAV, NRFD и NDAC, используются для передачи байтов по линиям данных от Talker к одному или нескольким адресуемым прослушивателям.
Перед передачей данных вся три линии должны быть в надлежащем состоянии. Активный Talker управляет линией DAV, а прослушиватели (Прослушиватели ) - линиями NRFD и NDAC. Процесс квитирования позволяет безошибочно передавать данные .
Линии квитирования
Линия | Описание |
---|---|
DAV | Используется Talker, чтобы указать, что байт может быть прочитан Прослушивателями. |
NRFD | Указывает, готов ли прослушиватель к приему байта. |
NDAC | Указывает, принял ли прослушиватель байт. |
Процесс квитирования выполняется на следующих этапах:
Первоначально Talker удерживает высокий уровень линии DAV, указывающий, что данные не доступны, в то время как прослушиватели держат высокий уровень линии NRFD и низкий уровень линии NDAC, указывающий, что они готовы к данным, и никакие данные не принимаются, соответственно.
Когда Talker помещает данные на шину, он устанавливает линию DAV на низкий уровень, что указывает на то, что данные действительны.
Прослушиватели устанавливают нижнюю линию NRFD, что указывает на то, что они не готовы принимать новые данные.
Прослушиватели задают высокий уровень линии NDAC, что указывает на принятие данных.
Когда все прослушиватели указывают, что они приняли данные, Talker устанавливает высокий уровень линии DAV, указывающий, что данные больше не действительны. Теперь можно передать следующий байт данных.
Прослушиватели удерживают высокую строку NRFD, указывающую, что они готовы снова получить данные, и линия NDAC остается низкой, указывая, что данные не принимаются.
Примечание
Если линия ATN высока во время процесса квитирования, информация рассматривается как данные, такие как команда прибора. Если линия ATN является низкой, информация рассматривается как сообщение интерфейса GPIB.
Этапы квитирования показаны ниже.
Можно проверить состояние линий квитирования с помощью HandshakeStatus
свойство.
GPIB предоставляет систему для сообщения информации о состоянии и событиях. С помощью этой системы можно узнать, есть ли у вашего инструмента данные для возврата, произошла ли ошибка команды и так далее. Для многих инструментов система отчетов состоит из четырех 8-битных регистров и двух очередей (выход и событие). Четыре регистра сгруппированы в эти две функциональные категории:
Регистры состояния - Регистр байтов состояния (SBR) и Стандартный регистр состояния события (SESR) содержат информацию о состоянии прибора.
Включить регистры - регистр включения статуса события (ESER) и регистр включения запроса на обслуживание (SRER) определяют, какие типы событий сообщаются в регистры состояния и очередь событий. ESER включает SESR, в то время как SRER включает SBR.
Регистры состояния, активные регистры и выходная очередь показаны ниже.
Каждый бит в регистре байтов состояния (SBR) связан с определенным типом события. Когда происходит событие, инструмент устанавливает соответствующий бит равным 1. Можно включить или отключить биты SBR с помощью регистра включения запроса на обслуживание (SRER). Можно определить, какие события произошли, считав разрешенные биты SBR.
Биты регистра байтов состояния
Бит | Метка | Описание |
---|---|---|
0-3 | – | Итоговые сообщения для конкретного инструмента. |
4 | MAV | Бит Message Available указывает, доступны ли данные в очереди выхода. MAV равен 1, если выходная очередь содержит данные. MAV равен 0, если выходная очередь пуста. |
5 | ESB | Бит состояния события указывает, произошло ли одно или несколько включенных событий. ESB равен 1, если происходит включенное событие. ESB равен 0, если не происходит включенных событий. Вы включаете события с помощью регистра включения стандартного состояния событий. |
6 | Г-ЖА | В главном сводном состоянии представлены биты ESB и MAV. MSS равен 1, если MAV или ESB равны 1. MSS равен 0, если и MAV, и ESB равны 0. Этот бит получен из |
RQS | Бит Request Service указывает, что прибор запрашивает обслуживание от контроллера GPIB. Этот бит получен из последовательного опроса. | |
7 | – | Итоговое сообщение для конкретного инструмента. |
Для примера, если вы хотите знать, когда происходит определенный тип ошибки прибора, вы бы включили бит 5 SRER. Кроме того, вы активируете соответствующий бит Стандартного регистра активации статуса события (см. Стандартный регистр состояния события), так что интересующее событие ошибки сообщается битом ESB SBR.
Каждый бит в Стандартном Регистре Состояния События (SESR) сопоставлен с определенным состоянием инструмента. Когда состояние меняется, инструмент устанавливает соответствующие биты равными 1. Можно включить или отключить биты SESR с помощью Стандартного регистра включения состояния события (ESER). Можно определить состояние прибора путем чтения разрешенных бит SESR. Биты SESR описаны ниже.
Биты SESR
Бит | Метка | Описание |
---|---|---|
0 | OPC | Бит завершения операции указывает, что все команды завершены. |
1 | RQC | Бит Request Control не используется большинством инструментов. |
2 | QYE | Бит ошибки запроса указывает, что инструмент пытался считать пустой выход буфер или что данные в выход буфере были потеряны. |
3 | DDE | Бит Device Dependent Error указывает, что произошла ошибка устройства (например, ошибка самотестирования). |
4 | EXE | Бит ошибки выполнения указывает, что ошибка произошла, когда устройство выполняло команду или запрос. |
5 | CME | Бит Command Error указывает, что произошёл синтаксис команд ошибка. |
6 | URQ | Бит запроса пользователя не используется большинством инструментов. |
7 | PON | Бит степени питания указывает, что устройство включено. |
Для примера, если вы хотите узнать, когда происходит ошибка выполнения, вы активируете бит 4 ESER. Кроме того, бит 5 SRER (см. Status Byte Register) можно включить так, чтобы интересующее событие ошибки было сообщено битом ESB SBR.
В этом разделе описываются общие команды GPIB, используемые для чтения и записи информации о состоянии и регистре событий.
Регистрируйте команды
Зарегистрироваться | Операция | Команда | Описание |
---|---|---|---|
SESR | Читать |
| Возвращает десятичное значение, которое соответствует взвешенной сумме всех бит, установленных в регистре SESR. |
Написать | Н/Д | Запись в регистр SESR невозможна. | |
ESER | Читать |
| Верните десятичное значение, которое соответствует взвешенной сумме всех бит, активируемых |
Написать |
| Напишите десятичное значение, которое соответствует взвешенной сумме всех бит, которые вы хотите включить в реестре SESR. | |
SBR | Читать |
| Возвращает десятичное значение, которое соответствует взвешенной сумме всех бит, установленных в реестре SBR. Эта команда возвращает тот же результат последовательного опроса, за исключением того, что бит MSS не очищен. |
Написать | Н/Д | Вы не можете записать в реестр SBR. | |
SRER | Читать |
| Верните десятичное значение, которое соответствует взвешенной сумме всех бит, активируемых |
Написать |
| Напишите десятичное значение, которое соответствует взвешенной сумме всех бит, которые вы хотите включить в реестре SBR. |
Для примера, чтобы включить бит 4 SESR, вы записываете команду *ESE 16
. Чтобы включить бит 4 и бит 5 SESR, вы записываете команду *ESE 48
. Чтобы включить бит 5 SBR, вы записываете команду *SRE 32
.
Чтобы увидеть, как использовать многие из этих команд в контексте сеанса управления инструментом, смотрите Выполнение последовательного опроса.