В уроке расскажу о радиальных интерфейсах, функционально повторяющих UART, но позволяющих значительно увеличить длину линии связи.
Предыдущий урок Список уроков Следующий урок
В предыдущем уроке я перечислил параметры интерфейсов, которые в большей мере влияют на помехоустойчивость. На первое место я поставил уровень сигналов в линии связи. Чем больше амплитуда сигнала, тем труднее помехе исказить сигнал до недопустимого состояния. Например, в стандартном интерфейсе UART:
- уровень логического 0 около 0 В;
- уровень логической 1 около 5 В;
- порог срабатывания входов приблизительно 2,5 В.
Значит, для того чтобы вызвать ложное срабатывание помехе или наводке, достаточно изменить напряжение в контуре передачи на 2,5 В (5 – 2,5 В или 0 + 2,5 В).
Вывод – для повышения помехоустойчивости необходимо увеличить напряжение сигналов в линии связи. Именно по такому пути пошли разработчики стандарта интерфейса RS-232.
Общее описание интерфейса RS-232.
Это один из самых распространенных в недавнем прошлом интерфейсов. Он был штатным устройством в любом персональном компьютере. В компьютерах RS-232 называется COM портом, в переводе - коммуникационный интерфейс. Практически вся аппаратура подключалась к компьютеру через COM порт.
Как правило, RS-232 присутствует и на современных системных платах. Часто он просто не выведен на заднюю стенку системного блока. Если же на компьютере нет COM порта, то его всегда можно реализовать с помощью простого преобразователя USB-COM, обычно встроенного в кабель.
Схема подключения устройств через RS-232 ничем не отличается от схемы для интерфейсов UART.
В минимальном варианте это два сигнала с общим проводом. Даже названия у сигналов такие же, как у UART.
Единственное отличие это уровни напряжения сигналов. Для RS-232 приняты следующие параметры:
Параметр | Значение |
Напряжение логического 0 передатчика | +5 … + 15 В |
Напряжение логической 1 передатчика | - 5 … - 15 В |
Напряжение логического 0 приемника | более + 3 В |
Напряжение логической 1 приемника | менее – 3 В |
Обычно логическим уровням сигнала 0/1 соответствуют напряжения +12 /- 12 В. Пороги срабатывания приемника четко нормированы: 0/1 соответствуют напряжениям +3 / -3 В. В диапазоне -3 … +3 В состояние сигнала считается неопределенным. Оно остается прежним до тех пор, пока уровень сигнала не достигнет противоположного порога.
При таких параметрах сигналов, для того чтобы вызвать ложное срабатывание помеха должна навести в контур передачи напряжение:
- + 15 В для состояния логической 1 (-12 В увеличить до + 3 В);
- - 15 В для состояния логического 0 (+12 В уменьшить до - 3 В).
Сравните с аналогичным значением напряжения помехи для UART, равным 2,5 В. Увеличение амплитуды сигналов и порога срабатывания одинаково благоприятно сказывается на всех видах помех:
- помехи и наводки от внешних электромагнитных полей;
- взаимное влияние линия связи:
- земляные помехи и токи утечек в общем проводе.
Все остальные проблемы UART остаются в RS-232:
- отсутствие гальванической развязки;
- общий провод, который не позволяет эффективно использовать витые пары;
- помехи по контуру заземления.
Можно привести схему влияния помех на сигналы в линиях связи RS-232. Эта абсолютно та же схема из предыдущего урока для интерфейса UART.
Тем не менее, одно повышение уровня сигналов позволило значительно увеличить максимальную длину линии связи. Стандарт RS-232 нормирует максимально допустимое расстояние между абонентами 15 м. И это для соединения простыми неэкранированными проводами.
В зависимости от конкретных условий (экранированных проводов, снижения скорости передачи, общей земли и т.п.) расстояние между устройствами может достигать нескольких десятков метров.
Параметры интерфейса RS-232.
Существует множество международных стандартов на интерфейс RS-232. Например:
Есть отечественные, еще советские ГОСТы. В них интерфейс RS-232 назван ”Стык С2”, очевидно из идеологических соображений.
Основные параметры я свел в таблицу.
Параметр | Значение |
Топология | Радиальный интерфейс |
Линия связи | Сигналы (2-8) с общим проводом |
Гальваническая развязка | нет |
Скорость передачи | до 460 кбит в сек |
Максимальная длина линии связи | 15 м |
Приемник | |
Напряжение логического 0 | более + 3 В |
Напряжение логической 1 | менее – 3 В |
Входное сопротивление | 3000 … 7000 Ом |
Входное напряжение | ± 3 … ± 15 В |
Входная емкость | не более 2500 пкФ |
Передатчик | |
Короткое замыкание и обрыв | Допускаются без ограничения во времени |
Выходное напряжение в разомкнутой цепи | не более ± 15 В |
Ток короткого замыкания | не более 0,5 А |
Емкостная нагрузка | до 2500 пкФ |
Разъемы интерфейса RS-232.
Кроме известных нам сигналов TxD и RxD стандарт на интерфейс описывает еще несколько необязательных сигналов, предназначенных для управления потоком данных. В компьютерном COM порте эти сигналы реализованы. Ими можно произвольно управлять из программы.
Как правило, дополнительные сигналы используются как универсальные входы и выходы. Например, сигнал DTR сбрасывает микроконтроллер плат Ардуино при загрузке программы из Arduino IDE. Я не буду подробно описывать их стандартное назначение.
Первоначально в интерфейсе RS-232 применялись 25 контактные разъемы DB-25. Затем стандартным разъемом стал 9 контактный DB-9.
В настоящее время стандартным разъемом интерфейса RS-232 является DB-9.
В обоих случаях со стороны блочной части используются вилки, а кабельная часть это розетки.
В таблице приведено назначение контактов RS-232 для обоих типов разъемов.
Контакт для DB-25 | Контакт для DB-9 | Название сигнала | Направление | Описание |
8 | 1 | DCD | вход | Наличие несущей. Уровень принимаемого сигнала в норме, модем подключен. |
3 | 2 | RxD | вход | Прием данных. Данные от другого устройства. |
2 | 3 | TxD | выход | Передача данных. Данные передаваемые на другое устройство. |
20 | 4 | DTR | выход | Готовность приемника. Сообщает о готовности устройства к приему данных. |
7 | 5 | GND | Общий провод | |
6 | 6 | DSR | вход | Готовность передатчика. Устройство готово для передачи данных. |
4 | 7 | RTS | выход | Запрос на передачу данных. Переводит другое устройство в режим передачи данных. |
5 | 8 | CTS | вход | Готовность передаче. Готовность другого устройства к передаче. |
22 | 9 | RI | вход | Сигнал вызова. Индикатор вызова (телефонного звонка). |
Схемотехническая реализация RS-232.
Для того, чтобы из интерфейса UART сделать RS-232 достаточно добавить преобразователи уровней сигналов. Преобразователи не осуществляют никаких логических действий. Они просто конвертируют сигналы логических уровней 0/5 В в уровни +12 / -12 В и наоборот.
Преобразователи можно реализовать на дискретных элементах. Вот схема приемника на базе инвертирующего транзисторного ключа.
Передатчики реализовать на дискретных элементах гораздо сложнее. Требуется двух полярный ключ и два питания к нему + 12 В и – 12 В. Иногда используют транзисторные ключи формирующие выходной сигнал 0 / 5 В. Некоторые приемники RS-232 работают с таким сигналом, некоторые нет. В любом случае нормальная работа интерфейса с такими сигналами не гарантируется.
Для реализации полноценного двухстороннего обмена лучше использовать интегральные преобразователи RS-232. Их существует множество. Я предпочитаю микросхемы MAX232, SP232, ADM232.
Микросхема | Производитель | Ссылка на документацию |
MAX232 | Maxim Integrated Products | MAX232.pdf MAX_RS232.pdf MAX220-249.pdf |
SP232 | Sipex | SP_RS232.pdf |
ADM232 | Analog Devices | ADM222_232_242.pdf |
Это микросхемы разных производителей, но с одинаковыми функциями, параметрами, назначением выводов. Я собираюсь сделать их обзор в разделе электронные компоненты.
В 16 выводном корпусе реализованы преобразователи уровней для 2 входных и 2 выходных сигналов RS-232. Питаются преобразователи от одного напряжения 5 В. Необходимые для передатчиков напряжения + 12 В и – 12 В вырабатываются на внутренних конденсаторных инверторах. Микросхема требует подключения 5 внешних компонентов, все конденсаторы.
Подключение платы Ардуино через интерфейс RS-232.
Думаю после всего выше написанного подключение платы Ардуино к компьютеру или соединение плат Ардуино между собой через RS-232 не вызовет никаких проблем.
Надо добавит к плате преобразователь уровней RS-232. Можно использовать готовый модуль, например, этот.
По моей партнерской ссылке он стоит 60 руб.
Можно собрать на микросхеме MAX232. В том же интернет магазине она стоит 20 руб.
Схема преобразователя RS-232 для платы Ардуино выглядит так.
Эта схема преобразователя с кабелем. Если разъем RS-232 установлен на корпусе устройства, то сигналы TxD и RxD надо поменять местами на разъеме DB-9.
Тогда для соединения устройств используется ”перекрестный” кабель.
К компьютеру устройство можно подключить через стандартный COM порт, если он есть, или использовать преобразователь USB-RS232. Их существует множество типов.
Схему такого преобразователя я приводил в статье о микросхеме CH340G.
Программы из уроков 48 и 49 должны без проблем работать с RS-232. Мы ничего не поменяли в логике работы сети. Изменили только уровни сигналов.
Интерфейс RS-422.
Очень коротко расскажу об этом интерфейсе. Он применяется крайне редко.
Это радиальный интерфейс, в котором передача сигналов происходит дифференциальным способом. Для подключения каждого сигнала используется витая пара из двух проводов (линий). Передатчики формируют на линиях противофазные логические уровни, а приемники воспринимают разность напряжения между линиями. В результате значительно повышается помехоустойчивость системы.
Способ передачи сигналов, электрические параметры RS-422 полностью соответствуют требованиям интерфейса RS-485. Отличие только в том, что RS-422 радиальный интерфейс, а RS-485 – шинный. Через первый можно связать только 2 устройства между собой, а вторым интерфейсом можно соединить одной линией связи несколько устройств.
Подробно об этом всем я расскажу в уроке про RS-485. А сейчас коротко приведу основные параметры RS-422.
Параметр | Значение |
Топология | Радиальный интерфейс |
Линия связи | 2 витые пары и общий провод |
Гальваническая развязка | нет |
Режим обмена данными | Дуплекс |
Способ передачи сигнала | Дифференциальный |
Максимальная длина линии связи | 1200 м |
Максимальная скорость обмена данными | 10 Мбит в сек |
В следующем уроке расскажу об интерфейсе ИРПС, очень простом, но эффективном способе передачи данных.
Спасибо за очередной урок. Хочу спросить совета:по работе часто приходиться прошивать платы по rs232. Как я понимаю, помимо стандартных rx и tx там задействованы дополнительные функции интерфейса.Большинство переходников их не поддерживают, а современные ноутбуки com порта не имеют,что вызывает большие неудобства при ремонте на объекте. Посоветуйте подходящую модель переходника usb-com.
Кабелей-преобразователей USB-Rs232 очень много. Практически все имеют дополнительные сигналы.
Я редко пользуюсь преобразователями RS-232. Использую конвертеры USB-UART с выходными сигналами TTL уровней. Я предпочитаю PL2303.
PL2303 как раз кроме Rx и Tx ничего не преобразует.
FT232
Рс-422 по моему не радиальный…