IEEE 488

IEEE-488 (англ. Standard Digital Interface for Programmable Instrumentation) — спецификациямеждународного стандарта, описывающая интерфейс подключения к шине цифровых  измерительных приборов.

Разработана Hewlett-Packard в конце 1960-х годов для использования в автоматизированном измерительном оборудовании (англ. automated test equipment, ATE) под названием интерфейсная шина Hewlett-Packard (англ. Hewlett-Packard Interface Bus, HP-IB). В 1975 году стандартизирована американским Институтом инженеров электротехнической и электронной промышленности как IEEE-488, и до сих пор применяется в данном качестве. IEEE-488 также известна под названием «Интерфейсная шина общего назначения» (англ. General Purpose Interface Bus, GPIB), стандарт IEC-625 (МЭК 625.1), а также под другими названиями. В аналогичном советском стандарте ГОСТ 26.003-80 «Система интерфейса для измерительных устройств с байт-последовательным, бит-параллельным обменом информацией», называется «многопроводным магистральным каналом общего пользования».

IEEE-488 позволяет использовать до 15 устройств на одной восьми битный параллельной шине по цепочке связей типа звездочка. На медленных устройств действует контроль и проверка передачи данных, для определения скорости транзакций. Максимальная скорость передачи данных составляет около одной Мбайт / с в первоначальном стандарте, и около 8 Мбайт / с в последующих расширениях.

Hewlett-Packard и Tektronix использовали IEEE-488 в качестве периферийного интерфейса для подключения дисков, ленточныхнакопителей, принтеров, плоттеров и т.д. для своих продуктов и рабочих станций НР – HP 2100 и HP 3000 мини. Несмотря на то, что скорость шины была увеличена до 10 Мб / с для таких приложений, отсутствие командного протокола в стандартеограничивает использование сторонних приложений и совместимость. Быстрые открытые стандарты, такие как SCSI, в конечном счете, заменили IEEE-488 в доступе к периферийным устройствам.

За более чем два десятилетия две контрольные шины преобладали в инструментальных системах – RS232 Serial Bus, в первую очередь использующийся для управления научно-аналитическими приборами и IEEE 488 GPIB, в первую очередь использующийся для контроля традиционных испытаний и измерений оборудования.

Хотя RS-232 порты были легко доступны на настольных и портативных компьютерах в мире, контроль инструментов через GPIB требует использования специальных аппаратных контроллеров.

Каждое устройство на шине имеет уникальный пятибитный первичный адрес в диапазоне от 0 до 30 (таким образом, возможное количество устройств — 31). Адреса устройств не обязаны быть непрерывными, но во избежание конфликтов обязаны быть различными. Стандарт позволяет подключить до 15 устройств к одной двадцатиметровой физической шине, используя для наращивания соединители цепочечного типа.

Активные расширители позволяют удлинить шину и использовать вплоть до 31 теоретически возможного на логической шине устройства.

Поскольку шина IEEE-488 хорошо стандартизована и протестирована, большинство производителей автоматизированных измерительных систем и инструментов встраивают в свои изделия интерфейсы GPIB в качестве основного канала передачи данных.

Определено три различных типа устройств, которые могут быть подключены к шине: «listener» (слушатель), «talker» (спикер) и/или контроллер (точнее, устройства могут находиться в состоянии «listener» либо «talker», либо быть типа «контроллер»). Устройство в состоянии «listener» считывает сообщения с шины; устройство в состоянии «talker» посылает сообщения на шину. В каждый конкретный момент времени в состоянии «talker» может быть одно и только одно устройство, в то время как в состоянии «listener» может быть произвольное количество устройств. Контроллер выполняет функции арбитра и определяет, какие из устройств в данный момент находятся в состоянии «talker» и «listener». К шине может быть одновременно подключено несколько контроллеров. В этом случае один из контроллеров (как правило, расположенный на интерфейсной карте GPIB) является ответственным контроллером (Controller-in-Charge, CIC) и делегирует по мере надобности свои функции другим контроллерам.

Элемент управления и функции передачи данных логически отдельные; диспетчер может обратиться к одному устройству как «болтуну» (англ. talker) и к одному или более устройствам как к «слушателям» (англ. listeners) без необходимости участвовать в передаче данных. Это даёт возможность совместно использовать одну и ту же шину для множества контроллеров. В любое данное время только одно шинное устройство может быть активно как ответственный контроллер.

Данные передаются по шине во время трёхфазной процедуры установления соединения готовность/доступность/приём, логике в которой самое медленное участвующее устройство определяет скорость транзакции. Максимальная скорость передачи данных составляла 1 МБ/с в оригинальном издании стандарта и была увеличена до 8 МБ/с в расширениях стандарта.

Электрически IEEE-488 восьмибитная параллельная шина, содержащая шестнадцать сигнальных линий (восемь двусторонних используются для передачи данных, три — для установки соединения, пять — для управления шиной) плюс восемь — обратные провода для земли.

Все сигнальные линии используют отрицательную логику: наибольшее положительное напряжение интерпретируется как логический «0», а наибольшее отрицательное — как логическая «1». Линии данных (DIO) пронумерованы от 1 до 8, а линии данных (ЛД) в ГОСТ от 0 до 7.

Пять линий управления интерфейсом сообщают устройствам, присоединенным к шине, какие действия предпринимать, в каком режиме находиться и как реагировать на команды GPIB.

По мере проникновения принятого стандарта протокола в промышленность выяснилось, что конкретный порядок передачи команд по шине был недостаточно хорошо определен. Стандарт был пересмотрен и дополнен в 1987 году (добавлено описание протокола передачи). Новый стандарт содержит две части: IEEE-488.1, описывающую аппаратную часть и низкоуровненое взаимодействие с шиной, и IEEE-488.2, определяющую порядок передачи команд по шине. Стандарт IEEE-488.2 был еще раз пересмотрен в 1992 году.

Шина IEEE-488 — это надежный и эффективный канал передачи данных. Простота использования, непрекращающееся развитие аппартной поддержки GPIB, разработка новых интерфейсных карточек и GPIB-совместимых инструментов ведут к неуклонному росту числа пользователей шины, несмотря на мощную конкуренцию со стороны архитектур VMEbus и FiberChannel.

Команды GPIB всегда передаются с использованием классического протокола IEEE-488.1. Стандарт задает формат команд, посылаемых инструментам, и формат и кодировку откликов. Команды, как правило, являются аббревиатурами соответствующих слов английского языка. Команды-запросы снабжаются на конце вопросительным знаком. Все обязательные команды префиксируются астериском (*). Стандарт определяет минимальный набор возможностей, которыми должен обладать каждый инструмент, а именно: принимать и передавать данные, посылать запрос на обслуживание и реагировать на сигнал «Очистить интерфейс». Все команды и большинство данных используют 7-битный набор ASCII, в котором 8-й бит не используется или используется для четности.

Для получения информации от устройств, подключенных к шине, и переконфигурации шины контроллер посылает команды пяти классов: «Uniline» («однобитная»), «Universal Multiline» («многобитная общего назначения»), «Address Multiline» («многобитная адресная»), «Talk Address Group Multiline» («многобитная групповая адресная передающая») и «Listen Address Group Multiline» («многобитная групповая адресная приемная»).

Вторым компонентом системы команд является Стандарт команд программируемого инструмента, SCPI (англ. Standard Commands for Programming Instruments), принятый в 1990 году. SCPI определяет стандартные правила сокращения ключевых слов, используемых в качестве команд. Ключевые слова могут быть использованы либо в длинной (например, MEASure — измерить), либо в короткой прописной форме (MEAS). Команды в формате SCPI префиксируются двоеточием. Аргументы команд разделяются запятой. Стандарт SCPI оперирует с моделью программируемого инструмента. Функциональные компоненты модели включают систему измерений (подсистемы «вход», «датчик» и «калькулятор»), систему генерации сигналов (подсистемы «калькулятор», «источник» и «выход») и подсистемы «формат», «показ», «память» и «триггер». Естественно, что у некоторых инструментов отсутствуют некоторые системы либо подсистемы. Например, осциллограф не имеет системы генерации сигналов, а программируемый генератор цифровых последовательностей — системы измерений. Команды для работы с компонентами систем и подсистем имеют иерархический вид и состоят из подкоманд, разделенных двоеточиями.

Пример команды, конфигурирующей цифровой мультиметр для измерения переменного напряжения величиной до 20 В с точностью 1 мВ и одновременно запрашивающей результат измерения:

:MEASure:VOLTage:AC?20,0.001

  • Двоеточие обозначает начало новой команды.
  • Ключевые слова MEASure:VOLTage:AC сообщают мультиметру, что требуется произвести измерение переменного напряжения.
  • Вопросительный знак сообщает мультиметру, что результат измерения должен быть возвращен компьютеру либо контроллеру.
  • Числа 20 и 0.001, разделенные запятой, задают диапазон и точность измерения.

Протоколы контроллера 488.2

Протоколы объединяют наборы управляющих последовательностей, с тем, чтобы выполнить полную измерительную операцию. Определено 2 обязательных и 6 опциональных протоколов. Протокол RESET обеспечивает инициализацию всех приборов. Протокол ALLSPOLL опрашивает каждый прибор последовательно и возвращает байт статуса каждого прибора. Протоколы PASSCTL и REQUESTCTL обеспечивают передачу управления шиной разным приборам. Протокол TESTSYS реализует функцию самотестирования каждого прибора.

Протоколы FINDLSTN и FINDRQS поддерживают управление системой GPIB. При этом используются возможности, заложенные в стандарте 488.1. Контроллер выполняет протокол FINDLSTN, генерируя адрес Слушателя и проверяя наличие прибора на шине по состоянию линии NDAC. Протокол FINDLSTN возвращает список «Слушателей», и выполнение этого протокола до начала работы прикладной программы гарантирует правильность текущей конфигурации системы. Для работы протокола FINDRQS используется возможность проверки линии SRQ. Входной список устройств можно ранжировать по приоритетам. Тем самым обеспечивается обслуживание наиболее ответственных приборов в первую очередь.

Ключевое слово Название Требования
RESET Установка системы Обязательно
ALLSPOLL Последовательный опрос приборов Обязательно
FINDRQS Поиск прибора, требующего FINDRQS Опционально
PASSCTL Передача управления Опционально
REQUESTCTL Запрос управления Опционально
FIDLSTN Поиск слушателей Опционально
TESTSYS Автотест системы Опционально
SETADD Установка адреса Опционально, но требует FIDLSTN

Обсуждение закрыто.