IEEE 488 , также известный как HP-IB ( Hewlett-Packard Interface Bus ) и в общем виде как GPIB ( General Purpose Interface Bus ), представляет собой спецификацию шины ближнего действия цифровой связи с 8-битным параллельным мультимастерным интерфейсом , разработанную Hewlett-Packard . Впоследствии она стала предметом нескольких стандартов.
Хотя шина была создана в конце 1960-х годов для соединения автоматизированного испытательного оборудования , она также имела определенный успех в 1970-х и 1980-х годах в качестве периферийной шины для ранних микрокомпьютеров , в частности Commodore PET . Более новые стандарты в значительной степени заменили IEEE 488 для использования в компьютерах, но он все еще используется испытательным оборудованием.
В 1960-х годах компания Hewlett-Packard (HP) производила различные автоматизированные контрольно-измерительные приборы, такие как цифровые мультиметры и логические анализаторы . Они разработали интерфейсную шину HP (HP-IB) , чтобы упростить взаимодействие между приборами и контроллерами (компьютерами и другими приборами). [1] Позднее эта часть HP (около 1999 года) была выделена в Agilent Technologies , а в 2014 году контрольно-измерительное подразделение Agilent было выделено в Keysight Technologies . [ требуется ссылка ]
Шину было относительно легко реализовать с использованием технологии того времени, используя простую параллельную шину и несколько отдельных линий управления. Например, HP 59501 Power Supply Programmer и HP 59306A Relay Actuator были относительно простыми периферийными устройствами HP-IB, реализованными в TTL , без необходимости в микропроцессоре.
HP лицензировала патенты HP-IB за номинальную плату другим производителям. Она стала известна как шина интерфейса общего назначения (GPIB) и стала фактическим стандартом для автоматизированного и промышленного управления приборами. По мере того, как GPIB становился популярным, она была формализована различными организациями по стандартизации .
В 1975 году IEEE стандартизировал шину как стандартный цифровой интерфейс для программируемой аппаратуры , IEEE 488; он был пересмотрен в 1978 году (создав IEEE 488-1978). [2] Стандарт был пересмотрен в 1987 году и переименован в IEEE 488.1 (IEEE 488.1-1987). Эти стандарты формализовали механические, электрические и основные параметры протокола GPIB, но ничего не говорили о формате команд или данных.
В 1987 году IEEE представила стандартные коды, форматы, протоколы и общие команды IEEE 488.2. Он был пересмотрен в 1992 году. [3] IEEE 488.2 предусматривал основные соглашения о синтаксисе и форматах, а также независимые от устройств команды, структуры данных, протоколы ошибок и т. п. IEEE 488.2 был создан на основе IEEE 488.1, но не заменял его; оборудование может соответствовать IEEE 488.1, не следуя IEEE 488.2.
В то время как IEEE 488.1 определял аппаратное обеспечение, а IEEE 488.2 определял протокол, все еще не было стандарта для команд, специфичных для приборов. Команды для управления одним и тем же классом приборов, например , мультиметрами, различались между производителями и даже моделями.
Военно-воздушные силы США [4] , а позднее и Hewlett-Packard, признали это проблемой. В 1989 году HP разработала свой язык тестовых измерений (TML) [5] или язык тестовых и измерительных систем (TMSL) [6] , который был предшественником стандартных команд для программируемого приборостроения (SCPI), представленных в качестве отраслевого стандарта в 1990 году. [7] SCPI добавил стандартные общие команды и ряд классов приборов с соответствующими командами, специфичными для класса. SCPI предписал синтаксис IEEE 488.2, но допускал другие (не IEEE 488.1) физические транспорты.
Параллельно с IEEE МЭК разработала собственные стандарты: МЭК 60625-1 и МЭК 60625-2 (МЭК 625), позднее замененные на МЭК 60488-2 .
National Instruments представила обратно совместимое расширение IEEE 488.1, изначально известное как HS-488. Оно увеличило максимальную скорость передачи данных до 8 Мбайт /с, хотя скорость снижается по мере подключения большего количества устройств к шине. Это было включено в стандарт в 2003 году (IEEE 488.1-2003), [8] несмотря на возражения HP. [9] [10]
В 2004 году IEEE и IEC объединили свои стандарты в «двойной логотип»: стандарт IEEE/IEC IEC 60488-1, Стандарт высокопроизводительного протокола для стандартного цифрового интерфейса для программируемой аппаратуры — Часть 1: Общие положения , [11] заменяет IEEE 488.1/IEC 60625-1, а IEC 60488-2, Часть 2: Коды, форматы, протоколы и общие команды , [12] заменяет IEEE 488.2/IEC 60625-2. [13]
IEEE 488 — это 8-битная электрически параллельная шина, которая использует шестнадцать сигнальных линий: восемь для двунаправленной передачи данных, три для подтверждения установления связи и пять для управления шиной, а также восемь линий возврата заземления.
Шина поддерживает 31 пятибитный первичный адрес устройства, пронумерованный от 0 до 30, назначая уникальный адрес каждому устройству на шине. [14] [15]
Стандарт позволяет до 15 устройствам совместно использовать одну физическую шину с общей длиной кабеля до 20 метров (66 футов). Физическая топология может быть линейной или звездообразной (разветвленной). [16] Активные удлинители допускают более длинные шины, при этом на логической шине теоретически возможно до 31 устройства.
Функции управления и передачи данных логически разделены; контроллер может обращаться к одному устройству как к «говорящему» и к одному или нескольким устройствам как к «слушателям» без необходимости участия в передаче данных. Несколько контроллеров могут совместно использовать одну и ту же шину, но только один может быть «контроллером в ответе» в каждый момент времени. [17]
В исходном протоколе передачи используют взаимосвязанное трехпроводное рукопожатие «готово-действительно-принято» . [18] Максимальная скорость передачи данных составляет около одного мегабайта в секунду. Более позднее расширение HS-488 смягчает требования к рукопожатию, позволяя до 8 Мбайт/с. Самое медленное участвующее устройство определяет скорость шины. [19]
IEEE 488 определяет 24-контактный микроленточный разъем, разработанный Amphenol . Микроленточные разъемы имеют D-образную металлическую оболочку, но больше, чем D-субминиатюрные разъемы. Иногда их называют «разъемами Centronics» по названию 36-контактного микроленточного разъема, который Centronics использовала для своих принтеров.
Одной из необычных особенностей разъемов IEEE 488 является то, что они обычно используют конструкцию с «двумя головками», с штекером на одной стороне и гнездом на другой. Это позволяет складывать разъемы для легкого последовательного соединения . Механические соображения ограничивают количество сложенных разъемов четырьмя или менее, хотя обходной путь, включающий физическую поддержку разъемов, может помочь обойти это.
Они удерживаются на месте винтами, либо 6-32 UNK [20] (теперь в значительной степени устаревшими), либо метрической резьбой M3.5×0.6 . Ранние версии стандарта предполагали, что метрические винты следует чернить, чтобы избежать путаницы с несовместимой резьбой UTS. Однако к пересмотру 1987 года это уже не считалось необходимым из-за преобладания метрической резьбы. [21]
Стандарт IEC 60625 предписывает использование 25-контактных D-субминиатюрных разъемов (таких же, как и для параллельного порта на IBM PC-совместимых компьютерах ). Этот разъем не получил значительного признания на рынке по сравнению с устоявшимся 24-контактным разъемом.
Разработчики HP не планировали, что IEEE 488 станет периферийным интерфейсом для компьютеров общего назначения; основное внимание уделялось инструментарию. Но когда ранним микрокомпьютерам HP потребовался интерфейс для периферийных устройств ( дисководы , ленточные накопители , принтеры , плоттеры и т. д.), HP-IB был легко доступен и легко адаптировался для этой цели.
Компьютерные продукты HP, которые использовали HP-IB, включали HP Series 80 , HP 9800 series , [23] HP 2100 series, [24] и HP 3000 series. [25] Компьютерные периферийные устройства HP, которые не использовали интерфейс связи RS-232, часто использовали HP-IB, включая дисковые системы, такие как HP 7935. Некоторые из передовых карманных калькуляторов HP 1980-х годов, такие как серии HP-41 и HP-71B , также имели возможности IEEE 488 через дополнительный модуль интерфейса HP-IL /HP-IB.
Другие производители также приняли GPIB для своих компьютеров, например, в линейке Tektronix 405x .
Линейка персональных компьютеров Commodore PET (представлена в 1977 году) подключала свои периферийные устройства с помощью шины IEEE 488, но с нестандартным разъемом на краю карты. Последующие 8-битные машины Commodore использовали последовательную шину , протокол которой был основан на IEEE 488. [26] Commodore выпустила на рынок картридж IEEE 488 для VIC-20 [27] и Commodore 64. [28] Несколько сторонних поставщиков периферийных устройств Commodore 64 сделали картридж для C64, который обеспечивал интерфейс, производный от IEEE 488, на разъеме на краю карты, аналогичном таковому в серии PET. [29]
В конечном итоге более быстрые и полные стандарты, такие как SCSI, вытеснили IEEE 488 для периферийного доступа.
С точки зрения электротехники IEEE 488 использовал аппаратный интерфейс, который мог быть реализован с помощью некоторой дискретной логики или микроконтроллера. Аппаратный интерфейс позволял устройствам, изготовленным разными производителями, взаимодействовать с одним хостом. Поскольку каждое устройство генерировало асинхронные сигналы квитирования, требуемые протоколом шины, медленные и быстрые устройства могли быть смешаны на одной шине. Передача данных происходит относительно медленно, поэтому такие проблемы линии передачи , как согласование импеданса и терминация линии, игнорируются. Не было требования к гальванической развязке между шиной и устройствами, что создавало возможность возникновения контуров заземления, вызывающих дополнительный шум и потерю данных.
Физически разъемы и кабели IEEE 488 были прочными и удерживались на месте винтами. Хотя физически большие и прочные разъемы были преимуществом в промышленных или лабораторных установках, размер и стоимость разъемов были обузой в таких приложениях, как персональные компьютеры.
Хотя электрические и физические интерфейсы были хорошо определены, изначального стандартного набора команд не было. Устройства разных производителей могли использовать разные команды для одной и той же функции. [30] Некоторые аспекты стандартов протоколов команд не были стандартизированы до появления Standard Commands for Programmable Instruments (SCPI) в 1990 году. Варианты реализации (например, обработка конца передачи) могут усложнить взаимодействие в устройствах до IEEE 488.2.
Более поздние стандарты, такие как USB , FireWire и Ethernet, используют снижение стоимости интерфейсной электроники для внедрения более сложных стандартов, обеспечивающих более высокую пропускную способность. Многопроводные (параллельные данные) разъемы и экранированный кабель изначально были более дорогими, чем разъемы и кабели, которые могли использоваться с последовательными стандартами передачи данных, такими как RS-232 , RS-485 , USB, FireWire или Ethernet. Очень немногие массовые персональные компьютеры или периферийные устройства (такие как принтеры или сканеры) реализовали IEEE 488.
Контроллеры: считыватель маркированных карт 3260A; калькулятор 9820A (с комплектом интерфейса 11144A)
В 1990 году спецификация IEEE 488.2 включала документ "Стандартные команды для программируемой аппаратуры" (SCPI).
Первичный адрес — это число в диапазоне от 0 до 30.
можно использовать любой адрес в диапазоне 0 - 30 включительно
подключено по топологии "цепочка" или "звезда"
Некоторые существующие кабели используют английскую резьбу (6-32UNK).
«Полезное примечание» о метрической резьбе, имевшееся в предыдущих изданиях, было удалено, поскольку использование метрической резьбы является обычной практикой IEEE 488. Следовательно, рекомендация покрывать такие детали черным материалом для привлечения внимания к метрической резьбе также считается излишней.
{{citation}}
: Цитата использует общее название ( помощь )Интерфейс HP-IB для компьютеров HP1000 и HP2000
Интерфейс CIO HP-IB для 3000 Series 900
ID
команду идентификационной строкой; более поздние стандарты требовали, чтобы устройства отвечали на *ID
команду.