Рассмотрим теперь два важнейших способа соединения микропроцессорных систем и периферийных устройств: хорошо известный (но часто довольно плохо понимаемый) последовательный интерфейс RS-232C и менее известную универсальную приборную шину GPIB (IEEE-488).

8.1. Интерфейс RS-232C

Несомненно, интерфейс RS-232C/CCITT V24 является наиболее широко распространенной стандартной последовательной связью между микрокомпьютерами и периферийными устройствами. Интерфейс, определенный стандартом Ассоциации электронной промышленности (EIA), подразумевает наличие оборудования двух видов: терминального DTE и связного DCE.

Чтобы не составить себе неправильного представления об интерфейсе RS-232C, необходимо отчетливо понимать различия между этими видами оборудования. Терминальное оборудование, например микрокомпьютер, может посылать и (или) принимать данные по последовательному интерфейсу. Оно как бы оканчивает (terminate) последовательную линию. Связное же оборудование понимается как устройства, которые могут упростить последовательную передачу данных совместно с терминальным оборудованием. Наглядным примером связного оборудования служит модем (модулятор-демодулятор). Он оказывается соединительным звеном в последовательной цепочке между компьютером и телефонной линией (рис. 8.1).

Рис. 8.1. Типичная последовательная линия связи между микрокомпьютерами:

 1 — закрепленный 25-контактный разъем типа D (штырьки); 2 — съемный 25-контактный разъем типа D (отверстия); 3 , 9 — кабель интерфейса RS-232C; 4 — съемный 25-контактный разъем типа D (штырьки); 5 — закрепленный 25-контактный разъем типа D (отверстия); 6 — телефонная линия; 7 — закрепленный 25-контактный разъем типа D (отверстия);  8 — съемный 25-контактный разъем типа D (штырьки); 10  — съемный 25-контактный разъем типа D (отверстия); 11 — закрепленный 25-контактный разъем типа D (штырьки)

К сожалению, различие между терминальным и связным оборудованием довольно расплывчато, поэтому возникают некоторые сложности в понимании того, к какому типу оборудования относится то или иное устройство.

Рассмотрим, например, ситуацию с принтером. К какому оборудованию его отнести? Еще вопрос: как связать два микрокомпьютера, когда они оба действуют как терминальное оборудование?

Для ответа на эти вопросы следует рассмотреть физическое соединение устройств.

Произведя незначительные изменения в линиях интерфейса RS-232C, можно заставить связное оборудование функционировать как терминальное. Чтобы разобраться в том, как это сделать, нужно проанализировать функции сигналов интерфейса RS-232C.

Сигналы интерфейса RS-232C. По-видимому, читатели знакомы с видом «стандартного» последовательного порта RS-232C, который всегда имеет форму 25-контактного разъема типа D.

Терминальное оборудование обычно оснащено разъемом со штырьками, а связное — разъемом с отверстиями (но могут быть и исключения).

Разводка контактов разъема RS-232C показана на рис. 8.2, а функции сигнальных линий приведены в табл. 8.1.

Рис. 8.2. Назначение линий 25-контактного разъема типа  D для интерфейса RS-232C

Примечания:

1. Линии (контакты) 11, 18 и 25 обычно считаются незаземленными. Приведенные в таблице функции относятся к спецификациям Bell 113В и 208А.

 2.  Линии 9 и 10 используются для контроля отрицательного (MARK) и положительного (SPACE) уровней напряжения.

 3.  Чтобы избежать путаницы между RD ( Read — считывать) и RD ( Received Data — принимаемые данные), будем пользоваться обозначениями RXD и TXD, а не RD и TD.

  4.  Иногда отдельные фирмы используют запасные линии RS-232C для контроля или специальных функций, относящихся к конкретной аппаратуре (по неиспользуемым линиям подают даже питание и аналоговые сигналы, так что будьте внимательны).

Классы сигналов. Сигналы интерфейса RS-232C подразделяются на следующие классы.

Последовательные данные (например, TXD, RXD). Интерфейс RS-232C обеспечивает два независимых последовательных канала данных: первичный (главный) и вторичный (вспомогательный). Оба канала могут работать в дуплексном режиме, т. е. одновременно осуществляют передачу и прием информации.

Управляющие сигналы квитирования (например, RTS, CTS). Сигналы квитирования — это средство, с помощью которого обмен сигналами позволяет DTE начать диалог с DCE до фактических передачи или приема данных по последовательной линии связи.

Сигналы синхронизации (например, ТС, RC). В синхронном режиме (в отличие от более распространенного асинхронного) между устройствами необходимо передавать сигналы синхронизации, которые упрощают синхронизм принимаемого сигнала в целях его декодирования.

На практике вспомогательный канал RS-232C применяется редко, и в асинхронном режиме из 25 линий обычно используются только девять линий (контактов), которые приведены в табл. 8.2.

8.2. Виды сигналов в интерфейсе RS-232C

В большинстве систем, содержащих интерфейс RS-232C, данные передаются асинхронно, т. е. в виде последовательности пакетов данных. Каждый пакет содержит один символ кода ASCII (американский стандартный код для обмена информацией), причем информация в пакете достаточна для его декодирования без отдельного сигнала синхронизации.

Символы кода ASCII представляются семью битами, например буква А имеет код 1000001. Чтобы передать букву А по интерфейсу RS-232C, необходимо ввести дополнительные биты, обозначающие начало и конец пакета. Кроме того, желательно добавить лишний бит для простого контроля ошибок по паритету (четности).

Наиболее широко распространен формат, включающий в себя один стартовый бит, один бит паритета и два стоповых бита. Эквивалентный ТТЛ-сигнал при передаче буквы А показан на рис. 8.3.

Рис. 8.3. Представление кода буквы А  сигнальными уровнями ТТЛ .

Начало пакета данных всегда отмечает низкий уровень стартового бита. После него следует 7 бит данных символа кода ASCII. Бит паритета содержит 1 или 0 так, чтобы общее число единиц в 8-битной группе было нечетным (нечетный паритет — нечетность) или четным (четный паритет — четность). Последними передаются два стоповых бита, представленных высоким уровнем напряжения.

Таким образом, полное асинхронно передаваемое слово данных состоит из 11 бит (фактические данные содержат только 7 бит) и записывается в виде 01000001011. Здесь использован четный паритет, поэтому девятый бит содержит 0.

К сожалению, используемые в интерфейсе RS-232C уровни сигналов отличаются от уровней сигналов, действующих в микрокомпьютере. Логический 0 (SPACE) представляется положительным напряжением в диапазоне от +3 до +25 В, а логическая 1 (MARK) — отрицательным напряжением в диапазоне от —3 до —25 В.

На рис. 8.4 показан сигнал пакета данных для кода буквы А в том виде, в каком он существует на линиях TXD или RXD интерфейса RS-232C.

Рис. 8.4. Вид кода буквы А на сигнальных линиях TXD или RXD

Сдвиг уровня, т. е. преобразование ТТЛ-уровней в уровни интерфейса RS-232C и наоборот, производится специальными микросхемами драйвера линии и приемника линии. Разводка контактов наиболее популярных микросхем 1488 и 1489 показана на рис. 8.5.

Рис. 8.5. Разводка контактов драйвера линии 1488 и приемника линии 1489

На рис. 8.6 представлен типичный микрокомпьютерный интерфейс RS-232C.

Рис. 8.6. Типичная схема интерфейса RS-232C

Программируемая микросхема IC1 последовательного ввода осуществляет необходимые параллельно-последовательные и последовательно-параллельные преобразования данных. Микросхемы IC2 и IC3 производят сдвиг уровней для трех выходных сигналов TXD, RTS и DTR, а микросхема IC4 — для трех входных сигналов RXD, CTS и DSR. Микросхемы IС2 и IC3 требуют напряжения питания ±12 В.

Усовершенствования. Разработано несколько новых стандартов, направленных на устранение недостатков первоначальных спецификаций интерфейса RS-232C. Эти стандарты позволяют улучшить согласование линии, увеличить расстояние и повысить скорость передачи данных.

Отметим среди них интерфейс RS-422 (балансная система, допускающая импеданс линии до 50 Ом), RS-423 (небалансная система с минимальным импедансом линии 450 Ом) и RS-449 (стандарт с очень высокой скоростью передачи данных, в котором несколько изменены функции схем и применяется 37-контактный разъем типа D.

8.3. Тестовое оборудование для интерфейса RS-232C

Специалистам, постоянно занимающимся тестированием или поставкой систем, в которых применяется последовательный интерфейс RS-232C (или эквивалентный ему), необходимы специальные тестовые приборы. Рассмотрим наиболее распространенные из них.

Соединители. Эти дешевые устройства упрощают перекрестные соединения сигнальных линий интерфейса RS-232С. Они обычно оснащаются двумя разъемами типа D (или ленточными кабелями, имеющими розетку и вставку), и все линии подводятся к той области, куда можно вставить перемычки. Такие устройства включаются последовательно с линиями RS-232C, и затем проверяются различные комбинации подключений.

Трансформаторы разъема. Обычно эти приспособления имеют разъем RS-232C со штырьками на одной стороне и разъем с отверстиями на другой стороне.

Пустые модемы. Как и предыдущие устройства, пустые модемы включаются последовательно в тракт данных интерфейса RS-232C. Их функции заключаются в изменении сигнальных линий таким образом, чтобы превратить DTE в DCE. Пустые модемы несложно реализовать с помощью соединителей. Две возможные конфигурации пустого модема показаны на рис. 8.7.

Рис. 8.7. Два варианта пустого модема

Линейные мониторы. Мониторы индицируют логические состояния (в терминах MARK и SPACE) наиболее распространенных сигнальных линий данных и квитирования. С их помощью пользователь получает информацию о том, какие сигналы в системе присутствуют и активны.

Врезки. Эти устройства обеспечивают доступ к сигнальным линиям. В них, как правило, совмещены возможности соединителей и линейных мониторов и, кроме того, предусмотрены переключатели или перемычки для соединения линий с обоих сторон устройства. Для подключения врезки применяются два плоских кабеля, заканчивающихся разъемами (самодельная врезка описана в приложении 2).

Интерфейсные тестеры. По своей конструкции эти приборы несколько сложнее предыдущих простых устройств. Они позволяют переводить линии в состояния MARK или SPACE, обнаруживать помехи, измерять скорость передачи и даже индицировать структуру слова данных. Конечно, такие приборы довольно дороги, например стоимость полностью укомплектованного интерфейсного тестера превышает 250 фунт. ст.

8.4. Поиск неисправностей в системах RS-232C

Поиск неисправностей в системах RS-232C включает в себя следующие основные этапы.

1. Установите, какое устройство является DTE, а какое DCE. Обычно на этот вопрос можно ответить, посмотрев на разъем (напомним, что оборудование DTE оснащается разъемом со штырьками, а оборудование DCE — разъемами с отверстиями). Если оба устройства, как это часто бывает, работают в конфигурации DTE, то для правильной работы необходим пустой модем.

2. Проверьте правильность использования кабеля. Отметим, что существуют несколько разновидностей кабелей интерфейса RS-232C: кабель, состоящий из четырех проводов (линий) для простых терминалов, девяти проводов для обычной асинхронной передачи данных, 15 проводов для синхронной связи и 25 проводов для любых применений (рис. 8.8). Если возникают какие-либо сомнения, пользуйтесь кабелем с 25 проводами.

Рис. 8.8. Варианты кабелей для интерфейса RS-232C :

  а — кабель с четырьмя линиями для простейших терминалов (используются контакты 1–3 и 7, а контакты 8 и 20 закорачиваются); б — кабель с девятью линиями для асинхронной связи (используются контакты 1–8 и 20); в — кабель с 15 линиями для синхронной связи (используются контакты 1–8, 13–15, 17, 20, 22 и 24),  г — кабель с 26 линиями для универсальных применений (используются контакты 1-25)

3. Убедитесь в том, что на каждом конце последовательной линии правильно заданы формат слова и скорость передачи в бодах.

4. Включите линию и проверьте логические состояния сигнальных линий данных (TXD и RXD) и квитирования с помощью линейного монитора, врезки или интерфейсного тестера.

5. Если что-то не так, посмотрите по техническому описанию, не требуются ли какие-либо специальные соединения и полностью ли совместимы интерфейсы. Особо подчеркнем, что некоторые фирмы реализуют интерфейсы квази-RS-232C с ТТЛ-совместимыми сигналами. Очевидно, что такие интерфейсы электрически не совместимы с обычным интерфейсом RS-232C, хотя и работают с аналогичными протоколами.

8.5. Универсальная приборная шина IEEE-488

Шина IEEE-488, называемая также приборной шиной Hewlett — Packard, широко применяется для соединения микрокомпьютерных контроллеров в автоматическом испытательном оборудовании АТЕ. Большинство современных электронных приборов, включая цифровые вольтметры и генераторы сигналов, оснащаются интерфейсом IEEE-488. Последний позволяет подключать приборы к микрокомпьютерному контроллеру, который управляет работой приборов и обрабатывает передаваемые ими данные.

Стандарт IEEE-488 определяет следующие типы устройств:

приемники, получающие информационные и управляющие сигналы от других устройств, подключенных к шине, но не передающие данные. Типичным примером приемника служит генератор сигналов;

передатчики, которые только помещают данные на шину, но не принимают данные. Типичным примером передатчика является перфоленточный считыватель. Отметим, что в любой момент времени активным является лишь один передатчик, но получать данные могут несколько приемников одновременно;

передатчик-приемник, принимающий данные с шины и передающий их на шину. Типичным примером такого устройства является цифровой мультиметр. Данные поступают в прибор для выбора требуемого диапазона и возвращаются на шину в виде цифровых отсчетов напряжения, тока или сопротивления;

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

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

Разъем для шины IEEE-488 имеет 24 контакта (рис. 8.9), функции сигнальных линий приведены в табл. 8.3.

Рис. 8.9. Функции линий 24-контактного разъема для шины  IEEE-488

Примечания: 1.  В сигнальных линиях квитирования (DAV, NRFD и NDAC) используются выходы типа открытого коллектора, которые допускают реализацию монтажного ИЛИ.

  2.  Все остальные сигналы ТТЛ-совместимы и активны при низком уровне.

О наличии команд на шине сигнализирует низкий уровень на линии ATN. Затем контроллер помещает на шину команды, которые передаются в отдельные устройства, идентифицируемые адресами на пяти младших линиях шины данных. Можно выдавать также («широковещательные») команды для всех устройств.

Так как физические расстояния между устройствами невелики, скорость передачи данных довольно высока (от 50 до 250 Кбайт/с). На практике скоростью передачи данных управляет самый медленный приемник. На рис. 8.10 показана система, где в качестве контроллера выступает микрокомпьютер.

Рис. 8.10. Типичная конфигурация шины IEEE-488

8.6. Поиск неисправностей в системах IEEE-488

Поиск неисправностей в системах на базе шины IEEE-488 обычно намного проще, чем в системах с интерфейсом RS-232C. Объясняется это в основном двумя причинами: во-первых, в реализациях стандарта IEEE-488 гораздо меньше отклонений, и, во-вторых, все сигналы имеют стандартные TTЛ-уровни направления. Следовательно, здесь допускается применение обычных цифровых приборов, логических пробников и пульсаторов. Более того, в управляющие программы часто встроены диагностические процедуры, которые извещают пользователя о том, что, например, внешнее устройство не реагирует на команды с шины.

Если все же встречаются затруднения, следует проверить конфигурацию программного обеспечения и назначения адресов различным устройствам в системе. При необходимости проверки состояний сигнальных линий можно воспользоваться логическим пробником (напомним, что все сигналы активны при низком уровне).