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)[1]. В 1975 году стандартизирована американским Институтом инженеров электротехнической и электронной промышленности как IEEE-488, и до сих пор применяется в данном качестве. IEEE-488 также известна под названием «Интерфейсная шина общего назначения» (англ. General Purpose Interface Bus, GPIB), стандарт IEC-625 (МЭК 625.1), а также под другими названиями. В аналогичном советском стандарте ГОСТ 26.003-80 «Система интерфейса для измерительных устройств с байт-последовательным, бит-параллельным обменом информацией», называется «многопроводным магистральным каналом общего пользования». ХарактеристикиКаждое устройство на шине имеет уникальный пятибитный первичный адрес в диапазоне от 0 до 30 (таким образом, возможное количество устройств — 31). Адреса устройств не обязаны быть непрерывными, но во избежание конфликтов обязаны быть различными. Стандарт позволяет подключить до 15 устройств к одной двадцатиметровой физической шине, используя для наращивания соединители цепочечного типа[2][3]. Активные расширители позволяют удлинить шину и использовать вплоть до 31 теоретически возможного на логической шине устройства. Определено три различных типа устройств, которые могут быть подключены к шине: «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. КомандыКоманды GPIB всегда передаются с использованием классического протокола IEEE-488.1. Стандарт задает формат команд, посылаемых инструментам, и формат и кодировку откликов. Команды, как правило, являются аббревиатурами соответствующих слов английского языка. Команды-запросы снабжаются на конце вопросительным знаком. Все обязательные команды префиксируются астериском (*). Стандарт определяет минимальный набор возможностей, которыми должен обладать каждый инструмент, а именно: принимать и передавать данные, посылать запрос на обслуживание и реагировать на сигнал «Очистить интерфейс». Все команды и большинство данных используют 7-битный набор ASCII, в котором 8-й бит не используется или используется для четности. Для получения информации от устройств, подключенных к шине, и переконфигурации шины контроллер посылает команды пяти классов: «Uniline» («однобитная»), «Universal Multiline» («многобитная общего назначения»), «Address Multiline» («многобитная адресная»), «Talk Address Group Multiline» («многобитная групповая адресная передающая») и «Listen Address Group Multiline» («многобитная групповая адресная приемная»). Управляющие последовательности IEEE-488.2
Вторым компонентом системы команд является Стандарт команд программируемого инструмента, SCPI[англ.] (англ. Standard Commands for Programming Instruments), принятый в 1990 году. SCPI определяет стандартные правила сокращения ключевых слов, используемых в качестве команд. Ключевые слова могут быть использованы либо в длинной (например, MEASure — измерить), либо в короткой прописной форме (MEAS). Команды в формате SCPI префиксируются двоеточием. Аргументы команд разделяются запятой. Стандарт SCPI оперирует с моделью программируемого инструмента. Функциональные компоненты модели включают систему измерений (подсистемы «вход», «датчик» и «калькулятор»), систему генерации сигналов (подсистемы «калькулятор», «источник» и «выход») и подсистемы «формат», «показ», «память» и «триггер». Естественно, что у некоторых инструментов отсутствуют некоторые системы либо подсистемы. Например, осциллограф не имеет системы генерации сигналов, а программируемый генератор цифровых последовательностей — системы измерений. Команды для работы с компонентами систем и подсистем имеют иерархический вид и состоят из подкоманд, разделенных двоеточиями. Пример команды, конфигурирующей цифровой мультиметр для измерения переменного напряжения величиной до 20 В с точностью 1 мВ и одновременно запрашивающей результат измерения[1]:
Протоколы контроллера 488.2Протоколы объединяют наборы управляющих последовательностей, с тем, чтобы выполнить полную измерительную операцию. Определено 2 обязательных и 6 опциональных протоколов. Протокол RESET обеспечивает инициализацию всех приборов. Протокол ALLSPOLL опрашивает каждый прибор последовательно и возвращает байт статуса каждого прибора. Протоколы PASSCTL и REQUESTCTL обеспечивают передачу управления шиной разным приборам. Протокол TESTSYS реализует функцию самотестирования каждого прибора. Протоколы FINDLSTN и FINDRQS поддерживают управление системой GPIB. При этом используются возможности, заложенные в стандарте 488.1. Контроллер выполняет протокол FINDLSTN, генерируя адрес Слушателя и проверяя наличие прибора на шине по состоянию линии NDAC. Протокол FINDLSTN возвращает список «Слушателей», и выполнение этого протокола до начала работы прикладной программы гарантирует правильность текущей конфигурации системы. Для работы протокола FINDRQS используется возможность проверки линии SRQ. Входной список устройств можно ранжировать по приоритетам. Тем самым обеспечивается обслуживание наиболее ответственных приборов в первую очередь.
Разъёмы
IEEE-488IEEE-488 определяет для подключения 24-контактный микроразъем ленточного типа Amphenol. Микроразъем ленточного типа имеет D-образный металлический кожух, который крупнее, чем D-subminiature разъём. Иногда разъём ошибочно называются «разъём Centronics», поскольку 36-контактный разъём такого же типа применялся производителями принтеров для соответствующих подключений принтеров. Необычная особенность разъёма IEEE-488 состоит в том, что обычно используют «двуглавый» дизайн, с вилкой на одной стороне и гнездом на другой стороне разъёма (на обоих концах кабеля). Это позволяет осуществить подключение соединителей для простого цепочечного подключения. Механические особенности разъёма ограничивают число расположенных в стеке соединителей четырьмя или меньшим количеством. Они держатся на месте винтами с резьбой UTS (англ. Unified Thread Standard) (сейчас в значительной степени устаревший) либо метрическими винтами M3,5×0,6. По договоренности, метрические винты окрашены в чёрный цвет, так что два соединителя разного типа не пересекаются. IEC-625Стандарт IEC-625 предписывает использовать 25-контактные D-subminiature разъёмы, такие же, как использует IBM PC-совместимый компьютер для параллельного порта. Этот соединитель, по сравнению с 24-контактным типом разъёма, не приобрел существенного признания на рынке. ИсторияВ конце 1960-х Hewlett-Packard (HP) выпускала различные измерительные инструменты и тестирующее оборудование, такие, как цифровые мультиметры и логические анализаторы сигналов. Для установления связи между собой и компьютером они использовали HP Interface Bus (HP-IB). Шина была относительно простой, основывалась на существующих в то время технологиях, используя простые параллельные электрические шины и несколько индивидуальных линий для управления. Например, HP 59501 Power Supply Programmer и HP 59306A Relay Actuator были относительно простыми периферийными устройствами использующими HP-IB, реализовывались только на ТТЛ-логике и не использовали микропроцессоров. Другие производители фактически скопировали HP-IB, назвав свои разработки General Purpose Interface Bus (GPIB), де-факто создав индустриальный стандарт для управления автоматизированными измерениями. С ростом популярности GPIB происходила и его стандартизация международными организациями по стандартизации. СтандартыIEEEВ 1975 году IEEE стандартизировал шину как «Standard Digital Interface for Programmable Instrumentation» IEEE-488 (сейчас IEEE-488.1). Это формализовало механические, электрические и основные параметры протокола универсальной интерфейсной GPIB, но ничего не говорило о формате команд или данных. В 1987 году IEEE представил «Standard Codes, Formats, Protocols, and Common Commands» IEEE-488.2, переопределяющий предыдущую спецификацию как IEEE-488.1. IEEE-488.2 обеспечил основной синтаксис и формат соглашений, такие, как не зависящий от устройства команды, структуры данных, ошибочные протоколы, и подобные. IEEE-488.2, построенный на IEEE-488.1 без его замены; оборудование может соответствовать 488.1, не соответствуя 488.2. Новый стандарт содержит две части: IEEE-488.1, описывающую аппаратную часть и низкоуровневое взаимодействие с шиной, и IEEE-488.2, определяющую порядок передачи команд по шине. Стандарт IEEE-488.2 был ещё раз пересмотрен в 1992 году. На этапе принятия первой версии стандарта ещё не было никакого стандарта для команд, специфических для инструмента. Команды управления тем же классом инструмента (например, мультиметр) сильно разнились между изготовителями и даже моделями. В 1990 году был представлен «Стандарт команд программируемого инструмента».[5] SCPI[англ.] добавил универсальные команды стандарта, и серии инструментальных классов с передачей специфических для класса команд. Несмотря на то, что SCPI был разработан на основе стандарта IEEE-488.2, он может быть легко адаптирован для любой другой (не-IEEE-488.1) аппаратной базы. IEC параллельно с IEEE разработала свой собственный стандарт — IEC-60625-1 и IEC-60625-2. В 2004 IEEE и IEC скомбинировали свои соответствующие стандарты в «Двойной протокол» IEEE/IEC — стандарт IEC-60488-1, в котором Standard for Higher Performance Protocol for the Standard Digital Interface for Programmable Instrumentation — Part 1: General[6] заменил IEEE-488.1/IEC-60625-1, а IEEE-488.2/IEC-60625-2.[7] IEC-60488-2 соответственно заменён на Part 2: Codes, Formats, Protocols and Common Commands[8] ГОСТОбщее число адресов приёмников и источников информации в системе не должно превышать 961 при двухбайтной организации. Приложение № 8 фактически декларирует отсутствие в стандарте средств обнаружения ошибок:
HS-488 от National InstrumentsNational Instruments представил обратносовместимое расширение для IEEE-488.1, изначально называемое высокоскоростной протокол GPIB (HS-488). Используя стандартные кабели и аппаратную базу, HS-488 улучшает производительность шины путём устранения задержек, связанных с необходимостью дожидаться подтверждения в трехсигнальной схеме IEEE-488.1 (DAV/NRFD/NDAC), где максимальная пропускная способность не превышает 1,5 МБ/с. Таким образом удалось увеличить скорость передачи данных до 8 МБ/с, хотя скорость уменьшилась, когда к шине подключалось большее количество устройств. Это отобразилось в стандарте в 2003 (IEEE-488.1-2003)[10]. ИспользованиеВ оборудовании для автоматических измеренийПродукты, выпускаемые National Instruments, ориентированы на автоматизацию лабораторных рабочих мест. Это такие классы измерительных приборов, как анализаторы-тестеры, системы калибровки, осциллографы и источники питания, базирующиеся на шине GPIB[11]. Модульные решения (VXI) превалируют для многоцелевых систем, и самыми популярными приборами здесь являются всевозможные типы переключателей-мультиплексоров. Мультиметры в равной мере представлены в обоих случаях. Сложные измерительные системы выпускаются фирмами HP, Wavetek[англ.], B&K Precision (Cobra Electronics), Kinetic Systems, Inc. В 1993 году более половины интерфейсов GPIB приходилось на рабочие станции Sun, SGI, IBM RISC System/6000 и HP. В них используется программные средства уровня специальных языков типа Abbreviated Test Language for All Systems[англ.] (ATLAS) и языков общего назначения типа Ада[12]. В качестве интерфейса в компьютереВнимание разработчиков HP фокусировалось на оснащении интерфейсом цифровой измерительной аппаратуры, проектировщики особо не планировали делать IEEE-488 интерфейсом периферийных устройств для универсальных компьютеров. Но когда первым микрокомпьютерам HP потребовался интерфейс для периферии (жёстким дискам, стримеры, принтерам, плоттерам, и т. д.), HP-IB был с готовностью доступен и легко приспособлен для достижения этой цели. Компьютеры, производимые HP, использовали HP-IB, например, HP 9800[13], серии HP 2100[14], и серии HP 3000[15]. Некоторые из инженерных калькуляторов, выпускаемых HP в 1980-х, такие, как серии HP-41 и HP-71B, также имели возможность использования IEEE-488, через необязательный интерфейсный модуль HP-IL/HP-IB. Другие изготовители также приняли универсальную интерфейсную шину для своих компьютеров, как, например, линейка Tektronix 405x. Commodore PET использовал шину IEEE-488 с нестандартным соединителем платы для подключения своих внешних устройств. Commodore наследовал восьмибитные компьютеры, такие, как VIC-20, C-64 и C-128, в которых применялся последовательный интерфейс, использующий круглый соединитель DIN, для которого они сохранили программирование интерфейса и терминологии IEEE-488. Пока скорость шины IEEE-488 была увеличена для некоторых приложений до 10 МБ/с, отсутствие стандартов командного протокола ограничило сторонние предложения и функциональную совместимость. В конечном итоге, более быстрые и полные стандарты (например, SCSI) заменили IEEE-488 в периферийных устройствах. Достоинства
Недостатки
См. такжеПримечания
Ссылки
|