Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей





Стандартный (рекомендуемый) разъем для RS-232 — 25-контактный DB25-M (буква М означает, что это штыревая часть), устанавливаемый со стороны оборудования. Этот разъем явно избыточен, и, вероятно, был введен в расчете на дальнейшее расширение стандарта, которого, однако, не произошло (например, в RS-232 так и отсутствует линия питания подключаемых устройств). В настоящее время подавляющее большинство устройств эксплуатируют введенный в стандарте TIA-574 9-контактный DB9-M. Однако есть и другие разъемы для RS-232 (например, 8-контактный RJ-45, автору приходилось встречать конструкцию, где был применен акустический стереоразъем типа miniJack). Нумерация контактов DB-разъема обычно приведена прямо на нем. Кроме двух сигнальных линий (RxD и TxD) и "земли", в стандарте предусмотрены и другие (табл. 13.3). Смысл дополнительных линий в том, что они могут применяться для организации различных протоколов обмена (протоколов с handshakes — "рукопожатием").

В "чистый" UART они не входят, в контроллере их организуют выводами обычных портов (но они входят в различные микросхемы UART для реализации полного протокола RS-232). Большинство устройств их не использует1. Однако большинство устройств, реализующих "рукопожатия", можно подключить к устройству, их не использующему (потеряв, конечно, возможности синхронизации), если соединить на каждой стороне между собой выводы RTS и CTS, а также выводы DSR, DCD и DTR (см. рис. 13.1, в). Для нормальной совместной работы приемника и передатчика выводы RxD и TxD, естественно, нужно соединять накрест: TxD одного устройства с RxD второго и наоборот (то же относится и к RTS, CTS и т. п.). Кабели RS-232, которые устроены именно таким образом, называются еще нуль-модемными (в отличие от простых удлинительных).

Преобразователи уровня для RS-232
Простейшая самодельная схема преобразователя уровня показана на рис. 13.2. В ней мы использовали отмеченный ранее факт, что линия TxD со стороны компьютера большую часть времени пребывает в состоянии низкого уровня — мы заряжаем конденсатор через диод, а потом расходуем его заряд -при передаче. Это несколько снижает входное сопротивление линии RxD устройства (и повышает выходное TxD), но в принципе прекрасно работает на расстояниях, указанных в табл. 13.2, даже если обмен байтами достаточно интенсивный.

"Официальный" путь состоит в применении специальных микросхем приемопередатчиков RS-232 (преобразователей уровня), например, МАХ202, МАХ232, ADM202, малопотребляющие МАХ3316-МАХ3319 и подобные, которые содержат внутри преобразователь-инвертор напряжения. Вариант построения такой схемы показан на рис. 13.3. Выходные уровни вывода TxD здесь при интенсибном обмене не менее ±7 В. Применение таких приемопередатчиков не решает одной проблемы — гальванической развязки устройства с СОМ-портом. А такая развязка очень даже может понадобиться — на корпусе компьютера "висит" обычно вполне приличный потенциал. Один из вариантов развязки на быстродействующем оп-троне типа 6N139 показан на рис. 13.4.


Приемная часть построена на оптроне D2. Ток через входной светодиод оптрона идет во время положительного уровня напряжения на линии TxD СОМ-порта, а диод VD3 защищает этот светодиод от обратного напряжения. Со стороны контроллера питание выходного каскада оптрона D2 обеспечивается способом, аналогичным питанию выхода D1. Так как сигнал TxD контроллера почти все время находится в состоянии +5 В, это напряжение через диод VD1 поступает на конденсатор С1 и служит для питания выходного транзистора оптрона.

Основной недостаток такой конструкции — линию RTS необходимо заранее устанавливать в положительный уровень напряжения, т. к. по умолчанию на ней имеется отрицательный уровень. Как это сделать программно, описывается в приложении 4, но нюанс состоит в том, что Windows семейства NT (в том числе и ХР) сбрасывает уровень на отрицательный (по умолчанию), как только вы выйдете из программы. Потому такой способ не универсален: в DOS/Windows 9х можно однократно запустить утилиту, раз и навсегда устанавливающую нужный уровень, после чего любая терминальная программа будет работать с таким преобразователем, а в Windows NT это не получится. Решает проблему установка преобразователя напряжения с гальванической изоляцией (правда, при этом придется "тащить" питание 5 В от контроллера). Один из вариантов такой схемы показан на рис. 13.5, причем питание здесь "вытаскивается" на первый контакт разъема DB-9, который в обычных ком муникациях не участвует. Во избежание ошибки подключения со стороны устройства установлена штыревая часть разъема, такая же, как и на ПК, а соединение производится через данный преобразователь. Собственно приемопередающая часть повторяет рис. 13.4.

Питание той части схемы, которая подает сигнал к компьютеру, обеспечивает преобразователь напряжения TMA0505D фирмы TRACO, имеющий гальваническую развязку входа от выхода. Он преобразует положительное напряжение +5 В в два разнополярных ±5 В.



     
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru