Старый друг лучше новых двух (последовательные интерфейсы) Печать
Статьи
05.01.2009 14:43
Игорь Булгаков (Компьютер-Пресс 1/1998)

Просто... как два байта переслать!
Жаргон электронщиков

    Разговор в этой статье пойдет о коммуникациях. Но не о могучих АТМ и FDDI, не о IP-адресах и SNMP-агентах, а о совершенно тривиальных последовательных интерфейсах, знакомых любому школьнику. С другой стороны, не так уж они и тривиальны, и хорошо, если один школьник из десяти тысяч понимает механизм их работы. Поэтому решите сразу - нужно вам читать дальше или нет, тем более что кое-какие факты могут вас раздосадовать, а какие-то - и рассмешить...

Скоро сказка сказывается

   Сперва, как полагается в таких случаях, - краткий исторический экскурс. Изначально RS-232-C разрабатывался как стандарт на соединения терминалов и хост-компьютеров через телефонную сеть. Дело в том, что в рассматриваемый нами отрезок времени (середина - конец 60-х годов) практически все подключения к удаленному компьютеру делались по телефонным проводам, а уж доступ к большим мэйнфреймам осуществлялся только через телефонную сеть.
   - Ну и что? - скажете вы. - Подумаешь, по телефонным проводам. Поставил модем - и вперед! Телефонные провода - роскошь по сравнению с той вермишелью, на которой у нас в цехе сеть работает...
   - Конечно, модемы стояли. Правда, модемы были разные. В том смысле, что от разных изготовителей. И до устройств вроде U.S. Robotics Sportster X2 Plug-and-Play Fax Modem им было очень далеко. И поэтому согласовываться они между собой не хотели - и разъемы друг к другу не подходят, и амплитуды сигналов отличаются, да и телефонные провода тоже бывают разные - как говорят специалисты, "импеданс неадекватен".
   В общем, когда всем это порядком надоело (что случилось в 1969 году), EIA (Electronic Industry Association - Ассоциация промышленной электроники) и Bell Laboratories (лаборатория имени Белла, изобретателя телефона) разработали стандарт на соединения терминального и коммуникационного оборудования. Основная задача этого стандарта - облегчить стыковку и взаимодействие оконечных устройств, производимых разными фирмами.
   Стандарт этот описывал электрические, механические и функциональные характеристики. К электрическим характеристикам относились амплитуды используемых напряжений и импеданс кабеля, к механическим - описание разъема и штырьков, функциональные же характеристики зависели от количества используемых сигналов. В 1987 году стандарт был пересмотрен и дополнен, а его название изменилось на EIA-232-D. Последние изменения в данный документ в 1991 году вносили уже две организации - EIA и TIA (Telecommunications Industry Association - Ассоциация промышленных телекоммуникаций). В настоящее время его официальное название EIA/TIA-232-E, хотя очень многие до сих пор по старинке называют его RS-232, что расшифровывается как "рекомендованный стандарт" (Recommended Standard).
   Определение стандарта в переводе на русский язык звучит примерно так; "Интерфейс для связи терминального оборудования (DTE - Data Terminal Equipment) и связного оборудования (DCE - Data Communications Equipment) посредством последовательной передачи бит". Далее по тексту мы будем пользоваться только терминами из этого определения.
   Итак, стандарт появился. Фирмы-изготовители быстро перешли на выпуск оконечных устройств, поддерживающих этот стандарт, и вот по сей день RS-232 остается основным интерфейсом последовательной передачи данных и по совместительству - необходимой составляющей любого компьютера какой угодно архитектуры.
   Очень кратко опишу основные характеристики этого интерфейса (эта часть статьи - реверанс в сторону случайных или очень молодых читателей журнала):

  • поддерживает два типа разъемов - DB-9 и DB-25;
  • топология - точка-точка (point to point);
  • максимальная скорость передачи 19 200 бит/с на расстоянии до 15м;
  • режим передачи - асинхронный полнодуплексный.

    Представление сигналов в интерфейсе (относительно сигнальной земли): логическая "I" (MARK) от -3 до -15 В, логический "О" (SPACE) от +3 до +15 В. Диапазон от -3 до +3 В служит для борьбы с помехами.

   Теперь несколько практических рекомендаций:

1. Отличить DTE от DCE проще всего по конфигурации разъема - на терминальном оборудовании разъемы со штырьками, на связном - с отверстиями (но нет правил без исключений - обыкновенная мышь представляет собой DTE с нуль-модемом).
2. Если вам нужно соединить DTE и DCE, используйте только подходящие кабели. Помните о том, что функциональные характеристики интерфейса зависят от количества используемых сигналов. Простейший соединитель состоит из трех проводов (контакты RxD, TxD и сигнальная земля) и обеспечивает асинхронную передачу. Кабель с семью (или девятью - для подключения модема) проводами использует сигналы квитирования - вы быстрее установите соединение, но передача все равно будет идти в асинхронном режиме. Минимальное количество проводов в кабеле для синхронной передачи - 15 (естественно, что речь идет о нормальном DB-25. О "ненормальных" DB-25 читайте в третьем совете).
3. RS-232 поддерживает два типа разъемов- 9 и 25 штырьков (DB-9 и DB-25). Будьте внимательны! Обычно для связи с персоналкой достаточно DB-9, но некоторые изготовители ставят два последовательных порта в разном исполнении - DB-9 и DB-25. К сожалению, в подавляющем большинстве таких конструкций к DB-25 подведено только девять проводов - вспомните мой второй совет и не пытайтесь заставить такую систему работать в синхронном режиме. Если же вам требуется подключить к компьютеру DTE или DCE, требующее всех 25 линий, вам, скорее всего, придется установить в ПК специализированный адаптер RS-232.
4. Для надежного соединения двух DTE пользуйтесь семижильным нуль-модемом. Этот нуль-модем рекомендован Microsoft (смотри Help для MS-DOS 6,22) для работы с Interlink и Interserver для DOS.
5. При выборе какого-либо нового оборудования с интерфейсом RS-232 будьте внимательны. Дело в том, что некоторые несознательные изготовители периодически подключают к неиспользуемым контактам DB-25 (или DB-9, что реже) сигналы, не описанные в стандарте, но необходимые для работы их оборудования - например линии питания. Еще один вариант подобных "улучшений" - подключение к разъему непосредственно выходов приемопередатчика. При этом вы получаете устройство, пытающееся (до первого подключения) работать по протоколу RS-232, но с амплитудой TTL-логики, что, однако, встречается достаточно часто.
6. Если вам скажут, что существуют какие-либо приборы, несколько десятков штук которых можно подключить к одному каналу RS-232 (и при этом связь будет работать), - не спешите смеяться, ибо это чистая правда. Приборы такие есть - например модули удаленного сбора информации японской фирмы CONTEC. Правда, подключаются они не параллельно, а по методу дей-зи-цепочки, и для их работы используется специализированное программное обеспечение (см, ниже).
7. На практике RS-232 оказывается более привлекательным, нежели его описание (не так страшен черт...). Современная схемотехника позволяет этому интерфейсу развивать скорость до 115,2 Кбит/с на расстоянии 15 метров. (Мне известны случаи запуска RS-232 на скорости около 1,6 Мбит/с, правда, на не очень длинном кабеле).

   Кстати, про стандарты. Вы никогда не задавались вопросом, почему работает обыкновенная мышь? Ведь этого быть просто не должно: согласно стандарту, ей требуется источник питания как минимум на +3 и -3 вольта. Открою вам страшную тайну: мышка это питание получает от управляющих сигналов интерфейса персоналки, а данные передает по простейшему трехпроводному нуль-модему.

Ода пессимистам

   Вы когда-нибудь видели человека, которого все устраивает? Лично я - никогда. А уж об инженерах и говорить не приходится - если бы их все устраивало, техника умерла бы, не родившись. Вы, наверное, поняли, что таким образом я пытаюсь обосновать появление на свет всех остальных потомков RS-232, о которых сейчас и пойдет речь. 232-й обладает рядом недостатков: низкой скоростью передачи на короткие расстояния и низкой помехозащищенностью (попробуйте на досуге посчитать, какое напряжение наводит на провода той же самой мышки ваша электропроводка, комнатный радиотелефон или проезжающее за окном такси с включенной радиостанцией, и вы удивитесь, в каких чудовищных условиях приходится работать единственному полезному представителю домашних "грызунов"). Эти недостатки не так сильно проявляются в двух других интерфейсах - RS-422 и RS-423.

"Дети" RS-232

Шустрый потомок

   RS-422 - сбалансированный последовательный интерфейс, то есть каждый сигнал (а их всего два - TxD и RxD) в нем представлен двумя сигнальными линиями, по которым передается парафазная амплитуда. Сигнальные линии называются А (отрицательная) и В (положительная). Если В больше А, то сигнал является логической единицей, если А больше В, то сигнал является логическим нулем. На стороне передатчика разность напряжений должна быть не меньше 1,5 В и не больше 5 В. Напряжение на выходе должно быть не менее -7 В и не более +12 В.
   На предельном расстоянии 1200 метров скорость передачи составляет 100 Кбит/с. Предельную скорость передачи 10 Мбит/с интерфейс развивает на расстоянии 12 метров.
    Маленький совет: как определить, какая из сигнальных линий А, а какая В, если документации под рукой нет или провода уже подключены и проложены? Попробуйте измерить напряжение на сигнальных линиях, пока нет обмена данными: положительные значения линии В должны быть выше, чем линии А.

Нелюбимые дети

   Есть еще несколько сбалансированных интерфейсов, линии которых заделаны в D-образные разъемы. Это RS-449 (DB-37), RS-530 (DB-25) и Х.21 (DB-15). Интерфейсы эти отличаются от RS-422 и по электрическим параметрам и по типам используемого кабеля. Но поскольку на практике они используются не так часто, говорить о них не будем. Не будем также говорить и о высокоуровневых сетях, построенных на витой паре, хотя они тоже основаны на принципе сбалансированного последовательного интерфейса.
    RS-423 отличается от RS-422 тем, что он несбалансированный: его линии В закорочены на корпус. Рабочие напряжения логической единицы от -4 до -6 В, логического нуля - от 4 до 6 В. На предельном расстоянии 1200 метров скорость передачи составляет 1 Кбит/с, Предельную скорость передачи 100 Кбит/с интерфейс развивает на расстоянии 15 метров.
    Интерфейс V.35 изначально определялся CCITT (МККТТ - Международный консультативный комитет по телефонии и телеграфии) как интерфейс для передачи данных со скоростью 48 Кбит/с, но в 1988 году был доработан. Ныне применяется только для синхронной связи на скоростях 56-64 Кбит/с. Интерфейс этот - своеобразный "собирательный образ": все сигнальные линии в нем имеют общую землю как в RS-232, а все квитирующие и тактирующие сигналы выполнены по сбалансированной схеме - как в RS-422. Разъем в V.35 не D-образный, а прямоугольный, с размерами приблизительно 20><70 мм и 35 позолоченными контактами. Поскольку цена только одного разъема почти в 30 раз выше цены на DB-25, применение V.35 "в быту" сильно ограничено. На предельном расстоянии 1200 метров скорость передачи составляет 100 Кбит/с, а предельную скорость передачи 10 Мбит/с интерфейс развивает на расстоянии до 90 метров.

Мертвая петля из провода

   Теперь - один из неприятных сюрпризов, обещанных в начале. Касается он еще одного последовательного интерфейса - токовой петли (Current Loop). Вопреки распространенному мнению, токовых петель существует несколько, и ни на одну из них нет официального стандарта. (Для справки: знакомый музыкантам интерфейс MIDI как раз и есть токовая петля, Опять же как-нибудь на досуге попробуйте измерить параметры интерфейса на вашей звуковой плате - будете неприятно удивлены.) Итак, токовая петля бывает следующих типов:

  • цифровая - 20, 30 или 60 мА (однополярная), 20 мА (биполярная);
  • аналоговая - 4-20 мА (для подключения аналоговых датчиков).

    Токовая петля 60 мА впервые появилась у военных в начале 60-х годов. В последующие два десятилетия токовая петля 20 мА становится наиболее ходовым интерфейсом, так как требует меньших аппаратных затрат на реализацию. Позволю себе еще одну рекомендацию: если вам говорят о токовой петле, то скорее всего имеют в виду цифровую однополярную токовую петлю на 20 мА, но если у вас есть возможность - все-таки уточните...
    Популярность этого интерфейса объясняется его характеристиками; по двадцатимиллиамперной токовой петле можно передавать информацию на расстояние до 600 метров при скорости 19 200 Бод всего по двум проводам! Не правда ли, весьма интересный компромисс?

Любимец фортуны и счастливый отец

   А теперь - самое главное. Интерфейс, который считается королем по части передачи данных, о котором ходит невообразимое количество слухов, по большей части ничем не подтверждаемых. Итак, Его Величество RS-485, всеми любимый потомок RS-232, прототип решительно всех полевых шин и самая дешевая сетевая идеология сегодняшнего дня.
    Фактически от RS-422 он отличается только тем, что поддерживает многоточечное подключение - это определяется незначительным отличием схемотехники входных и выходных каскадов. Но дальше начинается самое интересное: в описании стандарта RS-485 нет ни слова о протоколе передачи данных. Но несмотря на это уважения к данному интерфейсу не убавляется. И вот почему: на сегодняшний день RS-485, пожалуй, единственный достаточно скоростной, надежный и, что немаловажно, достаточно дешевый интерфейс. Кроме того, отсутствие стандарта на связной протокол побудило многих разработчиков железа попробовать себя именно в этой области. И на базе электрических параметров этого интерфейса как опята на пне выросли так называемые полевые шины (Fieldbus), которые отличаются друг от друга именно протоколом передачи. Посмотрите сами, сколько их сегодня существует в мире: CAN, ARCnet, IEC 1158-2, Bitbus (IEEE 1118), Modbus, HART, Conitel, DEI, Data Highway, Data Highway Plus, Modbus Plus, Profibus DP, ISP SP-50, FIPIO, Since, Omron Sysmac Bus, DNP, Profibus FMS, CAN Open, P-Net, EIB, Allen-Bradley Remote I/O, DeviceNet, Proflbus PA, CAN Kingdom, LonWorks, CEBus, FOUNDATION Fieldbus, WorldFIP, ASI, FIP, IEC 870-5, IEEE-P1451.2, Smart Distributed System, S.D.S., SERCOS, Interbus-S (о последнем в этом списке представителей Fieldbus вы можете подробнее узнать в "Компьютерре" от 25 ноября 1996 года).
    Если говорить откровенно, то, конечно, RS-485 отличается не только многоточечностью. Он более критично относится к типу подключаемого кабеля - видимо, поэтому стандарт рекомендует применение экранированной витой пары и концевых терминаторов (на самом деле на проводе длиной до двухсот метров без них можно обойтись, но лучше все-таки придерживаться стандарта). Кроме того, интересные вещи можно делать с числом подключаемых абонентов. Согласно EIA, число единичных нагрузок на RS-485 может достигать 32. Но в их число могут входить и репитеры (магистральные усилители), благодаря которым увеличивать количество абонентов и длину кабеля можно практически беспредельно.
    Подробно описывать протоколы обмена я, пожалуй, не буду - этак и всего объема журнала не хватит. Интересующимся предложу ознакомиться с врезкой, где описан формат пакетов наиболее часто встречающегося в интерфейсе RS-485 протокола, который использует технологию вторичных адресов и применяется для связи с модулями ввода-вывода.
    Практически на все описанные в этой статье интерфейсы существуют простейшие переходники с RS-232. Выглядят они как небольшие коробочки, подключаемые либо прямо на выходной разъем СОМ-порта, либо через короткий соединительный кабель. Одни из них не требуют дополнительного источника питания, преобразуя напряжения RS-232, другие требуют внешних одно- или двухполярных источников. Если вас не устраивают переходники, вы можете воспользоваться специализированными адаптерами, имеющими шину ISA. Таким образом, вы при минимальных затратах можете организовать простую (или не очень - в зависимости от ваших нужд) систему связи на любом интерфейсе.
    Остается добавить следующее. Последовательный интерфейс оказался настолько удобен, что на его базе был разработан стандарт USB (Universal Serial Bus - универсальная последовательная шина). Как знать - может быть, в недалеком будущем все описанные выше интерфейсы канут в Лету, уступив корону первенства USB, тем более что по одному каналу этой шины могут подключаться и дисплей, и мышка, и клавиатура, и джойстик, и цифровая камера, а теперь уже и УСО, о перспективах же и говорить страшно. Но пока USB не получила глобального распространения, приходится пользоваться старыми добрыми RS'ами, которые еще десяток лет будут, вероятно, служить людям.

MicroMax. С.-Петербург Тел.: (812)325-92-84
Обновлено 05.01.2009 14:49