IEEE 488 , также известный как HP-IB ( интерфейсная шина Hewlett-Packard ) и в целом как GPIB ( интерфейсная шина общего назначения ), представляет собой спецификацию 8-битной параллельной интерфейсной шины с несколькими главными устройствами для цифровой связи малого радиуса действия , разработанную Hewlett-Packard . Впоследствии он стал предметом нескольких стандартов.
Хотя шина была создана в конце 1960-х годов для соединения автоматизированного испытательного оборудования , она также имела некоторый успех в 1970-х и 1980-х годах в качестве периферийной шины для первых микрокомпьютеров , особенно Commodore PET . Новые стандарты в значительной степени заменили IEEE 488 для использования в компьютерах, но они все еще используются в испытательном оборудовании.
В конце 1960-х годов компания Hewlett-Packard (HP) производила различные автоматизированные контрольно-измерительные приборы, такие как цифровые мультиметры и логические анализаторы . Они разработали интерфейсную шину HP (HP-IB) , чтобы упростить взаимодействие между приборами и контроллерами (компьютерами и другими приборами). Эта часть HP позже (около 1999 г.) была выделена как Agilent Technologies , а в 2014 году подразделение испытаний и измерений Agilent было выделено в Keysight Technologies . [ нужна цитата ]
Шину было относительно легко реализовать с использованием технологий того времени, используя простую параллельную шину и несколько отдельных линий управления. Например, программатор источника питания HP 59501 и релейный привод HP 59306A были относительно простыми периферийными устройствами HP-IB, реализованными в TTL , без необходимости использования микропроцессора.
HP лицензировала патенты HP-IB за символическую плату другим производителям. Она стала известна как интерфейсная шина общего назначения (GPIB) и стала фактическим стандартом для автоматизированного и промышленного управления приборами. По мере того, как GPIB стал популярным, он был формализован различными организациями по стандартизации .
В 1975 году IEEE стандартизировал шину как стандартный цифровой интерфейс для программируемых приборов , IEEE 488; он был пересмотрен в 1978 году (разработан стандарт IEEE 488-1978). [1] Стандарт был пересмотрен в 1987 году и переименован в IEEE 488.1 (IEEE 488.1-1987). Эти стандарты формализовали механические, электрические и основные параметры протокола GPIB, но ничего не говорили о формате команд или данных.
В 1987 году IEEE представил стандартные коды, форматы, протоколы и общие команды — IEEE 488.2. Он был пересмотрен в 1992 году. [2] IEEE 488.2 предусматривает базовые соглашения о синтаксисе и формате, а также независимые от устройства команды, структуры данных, протоколы ошибок и т.п. IEEE 488.2 создан на основе IEEE 488.1, но не заменяет его; оборудование может соответствовать стандарту IEEE 488.1 без соблюдения стандарта IEEE 488.2.
Хотя IEEE 488.1 определял аппаратное обеспечение, а IEEE 488.2 определял протокол, стандарта для команд, специфичных для прибора, все еще не существовало. Команды для управления приборами одного и того же класса, например мультиметрами, различались у разных производителей и даже моделей.
ВВС США [3] , а затем и компания Hewlett-Packard признали это проблемой. В 1989 году HP разработала язык тестовых измерений (TML) [4] или язык тестовых и измерительных систем (TMSL) [5] , который стал предшественником стандартных команд для программируемых приборов (SCPI), представленных в качестве отраслевого стандарта в 1990 году . 6] В SCPI добавлены стандартные общие команды и ряд классов инструментов с соответствующими командами для конкретных классов. SCPI требовал синтаксиса IEEE 488.2, но допускал другие (не IEEE 488.1) физические транспорты.
МЭК разработала свои собственные стандарты параллельно с IEEE: IEC 60625-1 и IEC 60625-2 (IEC 625), позже замененные IEC 60488 .
Компания National Instruments представила обратно совместимое расширение IEEE 488.1, первоначально известное как HS-488. Это увеличило максимальную скорость передачи данных до 8 Мбайт /с, хотя скорость снижается по мере подключения к шине большего количества устройств. Это было включено в стандарт в 2003 году (IEEE 488.1-2003) [7] , несмотря на возражения HP. [8] [9]
В 2004 году IEEE и IEC объединили свои соответствующие стандарты в стандарт IEEE/IEC с двойным логотипом IEC 60488-1, Стандарт протокола более высокой производительности для стандартного цифрового интерфейса для программируемых приборов - Часть 1: Общие сведения , [10] заменяет IEEE. 488.1/IEC 60625-1 и IEC 60488-2, Часть 2: Коды, форматы, протоколы и общие команды , [11] заменяют IEEE 488.2/IEC 60625-2. [12]
IEEE 488 — это 8-битная электрически параллельная шина, которая использует шестнадцать сигнальных линий — восемь используются для двунаправленной передачи данных, три — для установления связи и пять — для управления шиной — плюс восемь линий заземления.
Шина поддерживает 31 пятибитный адрес основного устройства, пронумерованный от 0 до 30, что присваивает уникальный адрес каждому устройству на шине. [13] [14]
Стандарт позволяет использовать до 15 устройств одну физическую шину общей длиной кабеля до 20 метров (66 футов). Физическая топология может быть линейной или звездообразной (разветвленной). [15] Активные расширители позволяют использовать более длинные шины: теоретически на логической шине можно разместить до 31 устройства.
Функции управления и передачи данных логически разделены; контроллер может обращаться к одному устройству как к «говорящему», а к одному или нескольким устройствам как к «слушателям» без необходимости участвовать в передаче данных. Несколько контроллеров могут использовать одну и ту же шину, но только один может быть «Ответственным контроллером» одновременно. [16]
В исходном протоколе при передаче используется взаимосвязанное трехпроводное рукопожатие «готов-действителен-принят» . [17] Максимальная скорость передачи данных составляет около одного мегабайта в секунду. Более позднее расширение HS-488 смягчает требования к установлению связи, обеспечивая скорость до 8 Мбайт/с. Самое медленное участвующее устройство определяет скорость автобуса. [18]
В стандарте IEEE 488 указан 24-контактный микроленточный разъем , разработанный компанией Amphenol . Микроленточные разъемы имеют металлический корпус D-образной формы, но они больше, чем сверхминиатюрные D- разъемы. Их иногда называют «разъемами Centronics» в честь 36-контактного микроленточного разъема, который Centronics использовал для своих принтеров.
Одной из необычных особенностей разъемов IEEE 488 является то, что они обычно имеют «двухголовочную» конструкцию: вилка с одной стороны и розетка с другой. Это позволяет штабелировать разъемы для удобного последовательного подключения . Механические соображения ограничивают количество соединенных друг с другом разъемов четырьмя или менее, хотя обходной путь, включающий физическую поддержку разъемов, может обойти это.
Они удерживаются на месте винтами либо с резьбой 6-32 UNK [19] (ныне практически устаревшими), либо с метрической резьбой M3,5×0,6 . Ранние версии стандарта предлагали зачернить метрические винты, чтобы избежать путаницы с несовместимой резьбой UTS. Однако к версии 1987 года это уже не считалось необходимым из-за преобладания метрической резьбы. [20]
Стандарт IEC 60625 предписывает использование 25-контактных сверхминиатюрных D- разъемов (таких же, как и для параллельного порта на компьютерах, совместимых с IBM PC ). Этот разъем не получил значительного признания на рынке по сравнению с общепринятым 24-контактным разъемом.
Разработчики HP не планировали, что IEEE 488 станет периферийным интерфейсом для компьютеров общего назначения; основное внимание уделялось инструментам. Но когда первым микрокомпьютерам HP требовался интерфейс для периферийных устройств ( дисководов , ленточных накопителей , принтеров , плоттеров и т. д.), HP-IB был легко доступен и легко адаптировался для этой цели.
Компьютерные продукты HP, в которых использовался HP-IB, включали HP Series 80 , HP 9800 series , [22] HP 2100 series, [23] и HP 3000 series. [24] Компьютерная периферия 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. [25] Commodore продавала картридж IEEE 488 для VIC-20 [26] и Commodore 64. [27] Несколько сторонних поставщиков Commodore 64. периферийные устройства создали картридж для C64, который обеспечивал интерфейс на основе IEEE 488 на краевом разъеме карты, аналогичный интерфейсу серии PET. [28]
В конце концов, более быстрые и полные стандарты, такие как SCSI, заменили IEEE 488 для периферийного доступа.
В электрическом отношении IEEE 488 использовал аппаратный интерфейс, который можно было реализовать с помощью дискретной логики или микроконтроллера. Аппаратный интерфейс позволял устройствам разных производителей обмениваться данными с одним хостом. Поскольку каждое устройство генерирует асинхронные сигналы подтверждения связи, необходимые протоколу шины, медленные и быстрые устройства могут быть смешаны на одной шине. Передача данных происходит относительно медленно, поэтому такие проблемы линии передачи , как согласование импедансов и оконечная нагрузка линии, игнорируются. Не требовалось гальванической развязки между шиной и устройствами, что создавало возможность возникновения контуров заземления , вызывающих дополнительные шумы и потерю данных.
Физически разъемы и кабели IEEE 488 были прочными и крепились винтами. Хотя физически большие и прочные разъемы были преимуществом в промышленных или лабораторных установках, размер и стоимость разъемов были недостатком в таких приложениях, как персональные компьютеры.
Хотя электрические и физические интерфейсы были четко определены, исходного стандартного набора команд не существовало. Устройства разных производителей могут использовать разные команды для одной и той же функции. [29] Некоторые аспекты стандартов протоколов команд не были стандартизированы до появления «Стандартных команд для программируемых приборов» (SCPI) в 1990 году. Варианты реализации (например, обработка завершения передачи) могут усложнить взаимодействие в устройствах до IEEE 488.2.
Более поздние стандарты, такие как USB , FireWire и Ethernet, используют преимущества снижения стоимости интерфейсной электроники для реализации более сложных стандартов, обеспечивающих более высокую пропускную способность. Многопроводные разъемы (параллельные данные) и экранированный кабель были по своей сути более дорогими, чем разъемы и кабели, которые можно было использовать со стандартами последовательной передачи данных, такими как RS-232 , RS-485 , USB, FireWire или Ethernet. Очень немногие персональные компьютеры или периферийные устройства массового рынка (например, принтеры или сканеры) реализовали IEEE 488.
В 1990 году спецификация IEEE 488.2 включала документ «Стандартные команды для программируемых приборов» (SCPI).
Первичный адрес представляет собой число в диапазоне от 0 до 30.
можно использовать любой адрес в диапазоне от 0 до 30 включительно.
подключены по шлейфовой или звездообразной топологии
В некоторых существующих кабелях используется английская резьба (6-32UNK).
«Полезное примечание» о метрической резьбе, содержащееся в предыдущих изданиях, было удалено, поскольку использование метрической резьбы является обычной практикой IEEE 488. Следовательно, рекомендация покрывать такие детали черным материалом, чтобы привлечь внимание к метрической резьбе, также считается ненужной.
{{citation}}
: Cite использует общий заголовок ( справка ){{cite web}}
: Проверить |url=
значение ( помощь )Интерфейс HP-IB для компьютеров HP1000 и HP2000
{{cite web}}
: Проверить |url=
значение ( помощь )Интерфейс CIO HP-IB для 3000 Series 900
{{cite web}}
: Проверить |url=
значение ( помощь )ID
команду идентификационной строкой; в более поздних стандартах устройства реагировали на *ID
команду.