GPIB - стандартизированный интерфейс, позволяющий подключать и управлять несколькими устройствами различных производителей. GPIB также обозначается своим первоначальным названием HP-IB или обозначением IEEE ® IEEE-488. Функциональность GPIB развивалась с течением времени и описывается в нескольких спецификациях:
Спецификация IEEE 488.1-1975 определяет электрические и механические характеристики интерфейса и его основные функциональные характеристики.
Спецификация IEEE-488.2-1987 основана на спецификации IEEE 488.1 и определяет приемлемую минимальную конфигурацию и базовый набор команд приборов и общих форматов данных.
Спецификация стандартных команд для программируемых контрольно-измерительных приборов (SCPI) основана на командах, заданных спецификацией IEEE 488.2 для определения набора стандартных команд приборов, которые могут использоваться GPIB или другими интерфейсами.
Для многих приложений GPIB вы можете взаимодействовать с вашим инструментом, не зная, как работает GPIB. Связь устанавливается с помощью объекта GPIB, который создается в рабочей области MATLAB ®.
Если приложение является простым или вы уже знакомы с вышеупомянутыми темами, можно начать с создания объекта GPIB. Если требуется получить подробное описание всех шагов, которые могут быть предприняты при взаимодействии с инструментом, см. раздел Создание объектов инструмента.
Некоторые функции GPIB необходимы для всех устройств GPIB, в то время как другие функции GPIB являются необязательными. Кроме того, многие устройства поддерживают только подмножество набора команд SCPI или используют другой набор команд для конкретного поставщика. Полный список возможностей GPIB и набор команд см. в документации по устройству.
Важные функции GPIB описаны ниже. Для получения подробной информации о функциональных возможностях GPIB см. соответствующие ссылки в Библиографии.
Шина GPIB представляет собой кабель с двумя 24-контактными разъемами, которые позволяют подключать несколько устройств друг к другу. Шина и разъем имеют следующие особенности и ограничения:
К шине можно подключить до 15 устройств.
Можно подключать устройства в конфигурации «звезда», линейной конфигурации или комбинации конфигураций.
Для достижения максимальной скорости передачи данных длина кабеля не должна превышать 20 метров в целом или в среднем 2 метра на устройство. Эти ограничения можно устранить с помощью расширителя шины.
Каждое устройство GPIB должно представлять собой некоторую комбинацию говорящего абонента, прослушивателя или контроллера. Контроллер обычно является платой, устанавливаемой на компьютере. Говорящие и слушающие обычно являются такими инструментами, как осциллографы, генераторы функций, мультиметры и так далее. Большинство современных инструментов - как Говорящие, так и Слушатели.
Говорящие - говорящий передает данные по интерфейсу, когда адресован разговору контроллером. Одновременно может быть только один Говорящий.
Прослушиватели - Прослушиватель получает данные через интерфейс, когда адресован прослушиванию Контроллером. В данный момент времени может быть до 14 слушателей. Обычно контроллер является говорящим устройством, в то время как один или несколько приборов на GPIB являются слушателями.
Контроллеры - контроллер определяет, какие устройства являются говорящими или прослушивателями. Система GPIB может содержать несколько контроллеров. Один из них назначен системным контроллером. Однако только один контроллер может быть активен в данный момент времени. Текущим активным контроллером является контроллер в зарядке (CIC). CIC может передавать управление свободному контроллеру, но только системный контроллер может сделать себя CIC.
Если контроллер не отправляет сообщения, то говорящий может отправлять сообщения. Как правило, CIC является прослушивателем, в то время как другое устройство включено как говорящий.
Каждый контроллер идентифицируется уникальным индексным номером платы. Каждый Говорящий/Слушатель идентифицируется уникальным первичным адресом в диапазоне от 0 до 30 и необязательным вторичным адресом, который может быть равен 0 или может находиться в диапазоне от 96 до 126.
Существует два типа данных, которые могут быть переданы по GPIB: данные прибора и сообщения интерфейса:
Данные КИП - данные КИП состоят из команд, специфичных для поставщика, которые конфигурируют КИП, возвращают результаты измерений и т.д. Полный список команд, поддерживаемых прибором, см. в его документации.
Сообщения интерфейса - сообщения интерфейса определяются стандартом GPIB и состоят из команд, которые очищают шину GPIB, адресные устройства, возвращают результаты самопроверки и т.д.
Передача данных состоит из одного байта (8 битов), посылаемого параллельно. Скорость передачи данных через интерфейс ограничена 1 мегабайтом в секунду. Однако эта скорость передачи данных обычно не достигается на практике и ограничена самым медленным устройством на шине.
GPIB состоит из 24 линий, которые совместно используются всеми приборами, подключенными к шине. 16 линий используются для сигналов, а восемь линий - для заземления. Сигнальные линии делятся на следующие группы:
Восемь строк данных
Пять линий управления интерфейсами
Три строки рукопожатия
Сигнальные линии используют логическое соглашение с низким значением true (отрицательный) с уровнями TTL. Это означает, что линия является низкой (истинной или заявленной), когда она является низким уровнем TTL, и линия является высокой (ложной или неутвержденной), когда она является высоким уровнем 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 - старший бит. Передаваемые данные могут представлять собой команду прибора или команду интерфейса GPIB.
Форматы данных зависят от поставщика и могут быть текстовыми (ASCII) или двоичными. Команды интерфейса GPIB определяются стандартом IEEE 488.
Линии управления интерфейсами управляют потоком данных через интерфейс GPIB.
Линии управления интерфейсом GPIB
Линия | Описание |
|---|---|
ATN | Используется контроллером для информирования всех устройств на GPIB о том, что байты находятся на уровне. Если линия ATN высока, байты интерпретируются как команда прибора. Если линия ATN низкая, байты интерпретируются как интерфейсное сообщение. |
IFC | Используется контроллером для инициализации шины. Если линия IFC низкая, говорящий и прослушиватель не адресуются, а системный контроллер становится входящим контроллером. |
ЖЭНЬ | Используется контроллером для перевода приборов в дистанционный или локальный программный режим. Если REN низкий, все прослушиватели переводятся в удаленный режим, и изменить их настройки с передней панели нельзя. Если REN высокий, все прослушиватели переводятся в локальный режим. |
SRQ | Используется переговорщиками для асинхронного запроса услуги у контроллера. Если SRQ низкий, то один или несколько говорящих требуют обслуживания (например, была получена ошибка, например, недопустимая команда). Вы проводите последовательный опрос, чтобы определить, какую услугу запросил Talker. Опрос автоматически устанавливает уровень линии SRQ. |
EOI | Если линия ATN имеет высокий уровень, линия EOI используется говорящими абонентами для идентификации конца потока байтов, такого как команда прибора. Если линия ATN низкая, то линия EOI используется контроллером для выполнения параллельного опроса (не поддерживается панелью инструментов). |
Проверить состояние линий управления интерфейсом можно с помощью BusManagementStatus собственность.
Три строки квитирования, DAV, NRFD и NDAC, используются для передачи байтов по линиям данных от говорящего на один или несколько адресных прослушивателей.
Перед передачей данных все три строки должны находиться в надлежащем состоянии. Активный говоритель управляет линией DAV, а прослушиватель (и) - линиями NRFD и NDAC. Процесс квитирования позволяет передавать данные без ошибок .
Строки рукопожатия
Линия | Описание |
|---|---|
DAV | Используется Talker для указания того, что прослушиватели могут считывать байт. |
NRFD | Указывает, готов ли прослушиватель к приему байта. |
NDAC | Указывает, принял ли прослушиватель байт. |
Процесс установления связи выполняется следующим образом:
Первоначально Talker удерживает высокий уровень линии DAV, указывая на то, что данные недоступны, в то время как прослушиватели удерживают высокий уровень линии NRFD и низкий уровень линии NDAC, указывая, что они готовы к данным, и данные не принимаются соответственно.
Когда Talker помещает данные на шину, он устанавливает низкий уровень линии DAV, что означает, что данные являются действительными.
Прослушиватели устанавливают низкий уровень строки NRFD, что указывает на то, что они не готовы принимать новые данные.
Прослушиватели устанавливают линию NDAC на высоком уровне, что указывает на то, что данные приняты.
Когда все прослушиватели указывают, что они приняли данные, Говорящий устанавливает DAV-строку на высоком уровне, указывая, что данные больше не являются действительными. Теперь может быть передан следующий байт данных.
Прослушиватели удерживают линию NRFD на высоком уровне, указывая, что они готовы снова принять данные, и линия NDAC удерживается на низком уровне, указывая на то, что данные не принимаются.
Примечание
Если линия ATN находится на высоком уровне в процессе квитирования, информация считается данными, например, командой прибора. Если линия ATN имеет низкий уровень, информация считается сообщением интерфейса GPIB.
Шаги квитирования показаны ниже.

Проверить состояние линий квитирования можно с помощью HandshakeStatus собственность.
GPIB предоставляет систему для передачи информации о состоянии и событиях. С помощью этой системы можно узнать, есть ли у прибора данные для возврата, произошла ли ошибка команды и так далее. Для многих инструментов система отчетности состоит из четырёх 8-разрядных регистров и двух очередей (выходной и событийной). Эти четыре регистра сгруппированы по двум функциональным категориям:
Регистры состояния - регистр байтов состояния (SBR) и стандартный регистр состояния события (SESR) содержат информацию о состоянии прибора.
Enable Regists - Регистр активации состояния события (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, если происходит событие enabled. 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 | Бит Operation Complete указывает, что все команды выполнены. |
1 | RQC | Бит управления запросом не используется большинством приборов. |
2 | QYE | Бит ошибки запроса указывает, что прибор пытался считать пустой выходной буфер или что данные в выходном буфере были потеряны. |
3 | DDE | Бит Device Dependent Error указывает, что произошла ошибка устройства (например, ошибка самопроверки). |
4 | EXE | Бит Execution Error указывает, что произошла ошибка при выполнении устройством команды или запроса. |
5 | CME | Бит Command Error указывает, что произошла ошибка синтаксиса команды. |
6 | URQ | Бит запроса пользователя не используется большинством приборов. |
7 | PON | Бит включения питания указывает, что устройство включено. |
Например, если требуется узнать, когда возникает ошибка выполнения, следует включить бит 4 ESER. Кроме того, необходимо включить бит 5 SRER (см. Регистр байтов состояния), чтобы об интересующем событии ошибки сообщил бит 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.
Сведения об использовании многих из этих команд в контексте сеанса управления приборами см. в разделе Выполнение последовательного опроса.