Подключение rs232 к компьютеру

Обновлено: 06.07.2024

Интерфейс RS-232C предназначен для подключения аппаратуры, передающей или принимающей данные (ООД — оконечное оборудование данных, или АПД — аппаратура передачи данных; DTE — Data Terminal Equipment), к оконечной аппаратуре каналов данных (АКД; DCE — Data Communication Equipment). В роли АПД может выступать компьютер, принтер, плоттер и другое периферийное оборудование. В роли АКД обычно выступает модем. Конечной целью подключения является соединение двух устройств АПД. Полная схема соединения приведена на рис. 1; интерфейс позволяет исключить канал удаленной связи вместе с парой устройств АКД, соединив устройства непосредственно с помощью нуль-модемного кабеля (рис. 2).


Рис.1. Полная схема соединения по RS-232C


Рис.2. Соединение по RS-232C нуль-модемным кабелем

Стандарт описывает управляющие сигналы интерфейса, пересылку данных, электрический интерфейс и типы разъемов. В стандарте предусмотрены асинхронный и синхронный режимы обмена, но COM-порты поддерживают только асинхронный режим. Функционально RS-232C эквивалентен стандарту МККТТ V.24/ V.28 и стыку С2, но они имеют различные названия сигналов.

Стандарт RS-232C описывает несимметричные передатчики и приемники — сигнал передается относительно общего провода — схемной земли (симметричные дифференциальные сигналы используются в других интерфейсах — например, RS-422). Интерфейс не обеспечивает гальванической развязки устройств. Логической единице (состояние MARK) на входе данных (сигнал RxD) соответствует диапазон напряжения от –12 до –3 В; логическому нулю — от +3 до +12 В (состояние SPACE). Для входов управляющих сигналов состоянию ON (“включено”) соответствует диапазон от +3 до +12 В, состоянию OFF (“выключено”) — от –12 до –3 В. Диапазон от –3 до +3 В — зона нечувствительности, обусловливающая гистерезис приемника: состояние линии будет считаться измененным только после пересечения порога (рис. 3). Уровни сигналов на выходах передатчиков должны быть в диапазонах от –12 до –5 В и от +5 до +12 В. Разность потенциалов между схемными землями (SG) соединяемых устройств должна быть менее 2 В, при более высокой разности потенциалов возможно неверное восприятие сигналов. Заметим, что сигналы уровней ТТЛ (на входах и выходах микросхем UART) передаются в прямом коде для линий TxD и RxD и в инверсном — для всех остальных.

Интерфейс предполагает наличие защитного заземления для соединяемых устройств, если они оба питаются от сети переменного тока и имеют сетевые фильтры.

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

Стандарт RS-232C регламентирует типы применяемых разъемов.

На аппаратуре АПД (в том числе на COM-портах) принято устанавливать вилки DB-25P или более компактный вариант — DB-9P. Девятиштырьковые разъемы не имеют контактов для дополнительных сигналов, необходимых для синхронного режима (в большинстве 25-штырьковых разъемах эти контакты не используются).

На аппаратуре АКД (модемах) устанавливают розетки DB-25S или DB-9S.

Это правило предполагает, что разъемы АКД могут подключаться к разъемам АПД непосредственно или через переходные “прямые” кабели с розеткой и вилкой, у которых контакты соединены “один в один”. Переходные кабели могут являться и переходниками с 9 на 25-штырьковые разъемы (рис. 4).

Если аппаратура АПД соединяется без модемов, то разъемы устройств (вилки) соединяются между собой нуль-модемным кабелем (Zero-modem, или Z-modem), имеющим на обоих концах розетки, контакты которых соединяются перекрестно по одной из схем, приведенных на рис. 5.


Рис. 3. Прием сигналов RS-232C

Рис. 4. Кабели подключения модемов


Рис. 5. Нуль-модемный кабель: а — минимальный, б — полный

Если на каком-либо устройстве АПД установлена розетка — это почти 100 % того, что к другому устройству оно должно подключаться прямым кабелем, аналогичным кабелю подключения модема. Розетка устанавливается обычно на тех устройствах, у которых удаленное подключение через модем не предусмотрено.

В табл. 1 приведено назначение контактов разъемов COM-портов (и любой другой аппаратуры передачи данных АПД). Контакты разъема DB-25S определены стандартом EIA/TIA-232-E, разъем DB-9S описан стандартом EIA/TIA-574. У модемов (АКД) название цепей и контактов такое же, но роли сигналов (вход-выход) меняются на противоположные.

Таблица 1. Разъемы и сигналы интерфейса RS-232C

№ провода кабеля выносного разъема PC

Подмножество сигналов RS-232C, относящихся к асинхронному режиму, рассмотрим с точки зрения COM-порта PC. Для удобства будем пользоваться мнемоникой названий, принятой в описаниях COM-портов и большинства устройств (она отличается от безликих обозначений RS-232 и V.24). Напомним, что активному состоянию управляющих сигналов (“включено”) и нулевому значению бита передаваемых данных соответствует положительный потенциал (выше +3 В) сигнала интерфейса, а состоянию “выключено” и единичному биту — отрицательный (ниже –3 В). Назначение сигналов интерфейса приведено в табл. 2. Нормальную последовательность управляющих сигналов для случая подключения модема к COM-порту иллюстрирует рис. 6.

Таблица 2. Назначение сигналов интерфейса RS-232C

Protected Ground — защитная земля, соединяется с корпусом устройства и экраном кабеля

Signal Ground — сигнальная (схемная) земля, относительно которой действуют уровни сигналов

Transmit Data — последовательные данные — выход передатчика

Receive Data — последовательные данные — вход приемника

Request To Send — выход запроса передачи данных: состояние “включено” уведомляет модем о наличии у терминала данных для передачи. В полудуплексном режиме используется для управления направлением — состояние “включено” служит сигналом модему на переключение в режим передачи

Clear To Send — вход разрешения терминалу передавать данные. Состояние “выключено” запрещает передачу данных. Сигнал используется для аппаратного управления потоками данных

Data Set Ready — вход сигнала готовности от аппаратуры передачи данных (модем в рабочем режиме подключен к каналу и закончил действия по согласованию с аппаратурой на противоположном конце канала)

Data Terminal Ready — выход сигнала готовности терминала к обмену данными. Состояние “включено” поддерживает коммутируемый канал в состоянии соединения

Data Carrier Detected — вход сигнала обнаружения несущей удаленного модема

Ring Indicator — вход индикатора вызова (звонка). В коммутируемом канале этим сигналом модем сигнализирует о принятии вызова


Рис. 6. Последовательность управляющих сигналов интерфейса

  1. Установкой DTR компьютер указывает на желание использовать модем.
  2. Установкой DSR модем сигнализирует о своей готовности и установлении соединения.
  3. Сигналом RTS компьютер запрашивает разрешение на передачу и заявляет о своей готовности принимать данные от модема.
  4. Сигналом CTS модем уведомляет о своей готовности к приему данных от компьютера и передаче их в линию.
  5. Снятием CTS модем сигнализирует о невозможности дальнейшего приема (например, буфер заполнен) — компьютер должен приостановить передачу данных.
  6. Сигналом CTS модем разрешает компьютеру продолжить передачу (в буфере появилось место).
  7. Снятие RTS может означать как заполнение буфера компьютера (модем должен приостановить передачу данных в компьютер), так и отсутствие данных для передачи в модем. Обычно в этом случае модем прекращает пересылку данных в компьютер.
  8. Модем подтверждает снятие RTS сбросом CTS.
  9. Компьютер повторно устанавливает RTS для возобновления передачи.
  10. Модем подтверждает готовность к этим действиям.
  11. Компьютер указывает на завершение обмена.
  12. Модем отвечает подтверждением.
  13. Компьютер снимает DTR, что обычно является сигналом на разрыв соединения (“повесить трубку”).
  14. Модем сбросом DSR сигнализирует о разрыве соединения.

Из рассмотрения этой последовательности становятся понятными соединения DTR–DSR и RTS–CTS в нуль-модемных кабелях.

Асинхронный режим передачи

Асинхронный режим передачи является байт-ориентированным (символьно-ориентированным): минимальная пересылаемая единица информации — один байт (один символ). Формат посылки байта иллюстрирует рис. 7. Передача каждого байта начинается со старт-бита, сигнализирующего приемнику о начале посылки, за которым следуют биты данных и, возможно, бит четности (Parity). Завершает посылку стоп-бит, гарантирующий паузу между посылками. Старт-бит следующего байта посылается в любой момент после стоп-бита, то есть между передачами возможны паузы произвольной длительности. Старт-бит, имеющий всегда строго определенное значение (логический 0), обеспечивает простой механизм синхронизации приемника по сигналу от передатчика. Подразумевается, что приемник и передатчик работают на одной скорости обмена. Внутренний генератор синхронизации приемника использует счетчик-делитель опорной частоты, обнуляемый в момент приема начала старт-бита. Этот счетчик генерирует внутренние стробы, по которым приемник фиксирует последующие принимаемые биты. В идеале стробы располагаются в середине битовых интервалов, что позволяет принимать данные и при незначительном рассогласовании скоростей приемника и передатчика. Очевидно, что при передаче 8 бит данных, одного контрольного и одного стоп-бита предельно допустимое рассогласование скоростей, при котором данные будут распознаны верно, не может превышать 5 %. С учетом фазовых искажений и дискретности работы внутреннего счетчика синхронизации реально допустимо меньшее отклонение частот. Чем меньше коэффициент деления опорной частоты внутреннего генератора (чем выше частота передачи), тем больше погрешность привязки стробов к середине битового интервала, и требования к согласованности частот становятся более строгие. Чем выше частота передачи, тем больше влияние искажений фронтов на фазу принимаемого сигнала. Взаимодействие этих факторов приводит к повышению требований к согласованности частот приемника и передатчика с ростом частоты обмена.


Рис.7. Формат асинхронной передачи RS-232C

Формат асинхронной посылки позволяет выявлять возможные ошибки передачи.

  • Если принят перепад, сигнализирующий о начале посылки, а по стробу старт-бита зафиксирован уровень логической единицы, старт-бит считается ложным и приемник снова переходит в состояние ожидания. Об этой ошибке приемник может не сообщать.
  • Если во время, отведенное под стоп-бит, обнаружен уровень логического нуля, фиксируется ошибка стоп-бита.
  • Если применяется контроль четности, то после посылки бит данных передается контрольный бит. Этот бит дополняет количество единичных бит данных до четного или нечетного в зависимости от принятого соглашения. Прием байта с неверным значением контрольного бита приводит к фиксации ошибки.
  • Контроль формата позволяет обнаруживать обрыв линии: как правило, при обрыве приемник “видит” логический нуль, который сначала трактуется как старт-бит и нулевые биты данных, но потом срабатывает контроль стоп-бита.

Для асинхронного режима принят ряд стандартных скоростей обмена: 50, 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600 и 115200 бит/с. Иногда вместо единицы измерения “бит/с” используют “бод” (baud), но при рассмотрении двоичных передаваемых сигналов это некорректно. В бодах принято измерять частоту изменения состояния линии, а при недвоичном способе кодирования (широко применяемом в современных модемах) в канале связи скорости передачи бит (бит/с) и изменения сигнала (бод) могут отличаться в несколько раз.

Количество бит данных может составлять 5, 6, 7 или 8 (5- и 6-битные форматы распространены незначительно). Количество стоп-бит может быть 1, 1,5 или 2 (“полтора бита” означает только длительность стопового интервала).

Управление потоком данных

Для управления потоком данных (Flow Control) могут использоваться два варианта протокола — аппаратный и программный. Иногда управление потоком путают с квитированием. Квитирование (handshaking) подразумевает посылку уведомления о получении элемента, в то время как управление потоком предполагает посылку уведомления о возможности или невозможности последующего приема данных. Зачастую управление потоком основано на механизме квитирования.

Аппаратный протокол управления потоком RTS/CTS (hardware flow control) использует сигнал CTS, который позволяет остановить передачу данных, если приемник не готов к их приему (рис. 8). Передатчик “выпускает” очередной байт только при включенной линии CTS. Байт, который уже начал передаваться, задержать сигналом CTS невозможно (это гарантирует целостность посылки). Аппаратный протокол обеспечивает самую быструю реакцию передатчика на состояние приемника. Микросхемы асинхронных приемопередатчиков имеют не менее двух регистров в приемной части — сдвигающий, для приема очередной посылки, и хранящий, из которого считывается принятый байт. Это позволяет реализовать обмен по аппаратному протоколу без потери данных.


Рис.8. Аппаратное управление потоком

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

При непосредственном соединении у передающего терминала должно быть обеспечено состояние “включено” на линии CTS (соединением собственных линий RTS — CTS), в противном случае передатчик будет “молчать”.

Применяемые в IBM PC приемопередатчики 8250/16450/16550 сигнал CTS аппаратно не отрабатывают, а только показывают его состояние в регистре MSR. Реализация протокола RTS/CTS возлагается на драйвер BIOS Int 14h, и называть его “аппаратным” не совсем корректно. Если же программа, пользующаяся COM-портом, взаимодействует с UART на уровне регистров (а не через BIOS), то обработкой сигнала CTS для поддержки данного протокола она занимается сама. Ряд коммуникационных программ позволяет игнорировать сигнал CTS (если не используется модем), и для них не требуется соединение входа CTS с выходом даже своего сигнала RTS. Однако существуют и иные приемопередатчики (например, 8251), в которых сигнал CTS отрабатывается аппаратно. Для них, а также для “честных” программ, использование сигнала CTS на разъемах (а то и на кабелях) обязательно.

Программный протокол управления потоком XON/XOFF предполагает наличие двунаправленного канала передачи данных. Работает протокол следующим образом: если устройство, принимающее данные, обнаруживает причины, по которым оно не может их дальше принимать, оно по обратному последовательному каналу посылает байт-символ XOFF (13h). Противоположное устройство, приняв этот символ, приостанавливает передачу. Когда принимающее устройство снова становится готовым к приему данных, оно посылает символ XON (11h), приняв который противоположное устройство возобновляет передачу. Время реакции передатчика на изменение состояния приемника по сравнению с аппаратным протоколом увеличивается, по крайней мере, на время передачи символа (XON или XOFF) плюс время реакции программы передатчика на прием символа (рис. 9). Из этого следует, что данные без потерь могут приниматься только приемником, имеющим дополнительный буфер принимаемых данных и сигнализирующим о неготовности заблаговременно (имея в буфере свободное место).


Рис.9. Программное управление потоком XON/XOFF

Преимущество программного протокола заключается в отсутствии необходимости передачи управляющих сигналов интерфейса — минимальный кабель для двустороннего обмена может иметь только 3 провода (см. рис. 5, а). Недостатком, помимо обязательного наличия буфера и большего времени реакции (снижающего общую производительность канала из-за ожидания сигнала XON), является сложность реализации полнодуплексного режима обмена. В этом случае из потока принимаемых данных должны выделяться (и обрабатываться) символы управления потоком, что ограничивает набор передаваемых символов.

Кроме этих двух распространенных стандартных протоколов, поддерживаемых и ПУ, и ОС, существуют и другие.

Кстати, существует еще и MAX3232 это то же самое, но на выходе у него не 5вольт TTL, а 3.3 вольта TTL. Её используют для низковольтных контроллеров.

Я себе сделал один такой универсальный шнурочек, чтобы к контроллерам цепляться было удобно по UART . Для общей компактности всю схему запихал прям в разъем, благо у меня были ST232 в soic корпусе. Получилась платка не больше рублевой монеты. Так как под рукой не было мелких SMD конденсаторов, то пришлось напаять кондеры сверху, кто во что горазд. Главное работает, хоть и не очень красиво вышло.

Плата снизу

Если сомневаешься, что у тебя получится столь мелкий монтаж, то я тебе развел плату на стандартный PDIP корпус. Размером она будет со спичечный коробок, зато мельчить не надо.

Плата сверху

После сборки проверяется просто:
Втыкается в разъем COM порта. Подается 5 вольт питания на схему, а затем замыкаешь Rx на Tx (у меня это зеленый и желтый провода).

В собранном виде

Плата сделана была методом ЛУТ, в одном месте по моему недосмотру толщина просвета оказалась 0.05мм, протравилась, но со спайками, пришлось процарапывать. А в целом с первого раза ать и никаких проблем. Аж сразу захотелось сделать что нибудь маленькое маленькое, нафаршированное нафаршированное :)

Печатная плата. Тонер не смыт.

Все, аппаратная часть для связи микроконтроллера с компом готова. Ждите следующего поста в котором я расскажу как конфигурировать и использовать UART в микроконтроллерах AVR . В будущем я буду через UART осуществлять отладочную связь с компом. Может быть даже ради этого соберу отдельный модуль с LCD экранчиком. Для отладки в железе. Посмотрим как попрет.

Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!

А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.

165 thoughts on “Связь микроконтроллера с компьютером через RS232”

Парадокс однако, последовательные порты в писюках пропадают. А потребители последовательных портов множатся =)

Будет! Когда найду где купить эту гребанную FT232 а заказывать за 3 цены из Москвы совершенно не хочется.

Да COM у меня гдет в глубине, а USB на морде. ПЛюс на ноуте нет СОМ порта, а хочется :)

А чо за камеры за 10 баксов да еще с RS232? Чтот не верится.

Классно, у нас таких цен нет :( Все везут сначала в Москву, а потом только к нам. Выходит раз в 5-10 дороже.

Не смогли бы вы скинуть фотку платы видеопередатчика описываемого выше?

Много надо?
Могу прислать сколько-нибудь.

В приставки спутниковой антенны, она там стоит для прошивки приставки.

Сейчас проще уже сразу Obdev AVR-USB использовать, а в пару ему загрузчик BootloadHID. Лишь бы кварц не меньше 12 МГц был.

А как с этим Obdev AVR общатсья с компом? Он виртуальный COM порт открывает?

Сколько памяти в кристалле сжирает код USB?

Драйвер памяти кушает

1.5 Кб, зависит от конфигурации. На tiny2313 точно влезало, даже ещё место под свой код оставалось.

HIDBoot кушает 2 Кбайта.

Вопрос: какую набольшую длину кабеля можно сделать от платы с MAX232 до выводов контроллера ? и какая наибольшая длина может быть у кабеля от MAX232 до COM порта, если делать девайс на стороне контроллера ?

У меня от МАХ232 до контроллера 1.5 метра, от MAX232 до порта тоже было 1.5 метра, работало без сбоев. ПОдозреваю, что можно и много больше, по крайней мере раза в два три точно. Но тут уже от скорости передачи зависит.

Это чистый 12В рс232. Поэтому от МАкс до контроллера сильно лучше не удалять.

Я писал про случай Макс-COM.

На быстром обмене можно не заморачиваться на создание буффера и слать посимвольно. На медленной скорости будет тупить вся прога на передаче =)

Гдето давно схемка была датакабеля для симена с25,на мах232 дак там и питание от ком порта было и вся схема с микрой в дипе в пластмассовый корпус разъёма влезала

Действительно, лучше уж сразу про USB статью делать. Простейший пример я в ЖЖ постил.

Да он еще столько же проживет. Может и не на пользовательских компах, но вот в промышленных решениях точно!

FT232 спасет отца русской демократии :)

Всё зависит от случая. Иногда устройство по USB только синхронизируется с компом, не выполняя в этот момент своих основных функций. В таком случае оно гораздо удобнее.

Открываю ГиперТерминал, выбираю подключиться через com 1, пишу текст. Что я должен увидеть?

Свой же набранный текст к тебе должен вернутся (при отключеном эхе). Если схема собрана верно и работает.

Еще вопросик. В печатной плате. номерация площадок для приклеивания разьема RS232 с лево на право 1,2. 5. Когда начал прикладывать разем к спаеной плате получилось, что цифры не на разьеме и на плате не совпадаю. 1(RS232) напротив 5 (плата), 2(RS232) напротив 4 (плата) и т.д. это так и задумывалось? или на печатной плате в электронном виде перепутан порядок цифр?

Нет, все нормально. Это я маму с папой перепутл. Когда взяд маму все цифры совпали :). Тока еще вопрос есть. если нумерация ног начинается от метки с возростанием номера ноги против часовой стрелко, то как Тх и Rx попали на 7 и 8 ногу Мах232. Должны наверно быть 15 и 16 (в тексте статьи)

да кстати. про ноги тоже заметил, только не 15,16 а 9,10.

Хотел купить микруху MAX232, а её в прайсе нет, но есть другие, какую брать? Самую дешёвую? ;-) И чем они отличаются?

MAX232AEJE 127.65руб.
MAX232AEPE+ 71.63руб.
MAX232AESE 63.86руб.
MAX232AESE+ 58.64руб.
MAX232AEWE 56.11руб.
MAX232AMJE 223.67руб.
MAX232CPE 22.12руб.
MAX232DR PBF 9.83руб.
MAX232ECDW PBF 21.07руб.
MAX232EEPE 56.53руб.

ST232ABDR PBF 22.42руб.
ST232ACDR PBF 11.59руб.
ST232BDR PBF 12.64руб.
ST232BN PBF 16.22руб.
ST232CDR PBF 11.24руб.
ST232CN PBF 11.59руб.

Разница только в производителе и в типе корпуса. Еще в температурном диапазоне.

Преобразователь интерфейса RS-232

В статье представлен обзор стандарта RS-232 — особенности и назначение интерфейса, схемы преобразователей в TTL, RS-422, RS-485, как получить 5В от порта RS-232.

Последовательный интерфейс RS-232 — обзор стандарта

Это широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Изначально он создавался для связи компьютера с терминалом. В настоящее время используется в самых различных сферах.

Последовательный интерфейс RS-232

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

Последовательный интерфейс RS-232

Последовательный интерфейс RS-232

СтандартEIA RS-232-C, CCITT V.24
Скорость передачи115 Кбит/с (максимум)
Расстояние передачи15 м (максимум)
Характер сигналанесимметричный по напряжению
Количество драйверов1
Количество приемников1
Схема соединенияполный дуплекс, от точки к точке

Порядок обмена по интерфейсу RS-232C:

НаименованиеНаправлениеОписаниеКонтакт
(25-контактный разъем)
Контакт
(9-контактный разъем)
DCDINCarrier Detect (Определение несущей)81
RXDINReceive Data (Принимаемые данные)32
TXDOUTTransmit Data (Передаваемые данные)23
DTROUTData Terminal Ready (Готовность терминала)204
GNDSystem Ground (Корпус системы)75
DSRINData Set Ready (Готовность данных)66
RTSOUTRequest to Send (Запрос на отправку)47
CTSINClear to Send (Готовность приема)58
RIINRing Indicator (Индикатор)229

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

  • возможность передачи на значительно большие расстояния;
  • гораздо более простой соединительный кабель.

Назначение сигналов следующее:

    FG — защитное заземление (экран).

Схема 4-проводной линии связи для RS-232C

Для двухпроводной линии связи в случае только передачи из компьютера во внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом.

Формат передаваемых данных показан на рисунке ниже. Собственно, данные (5, 6, 7 или 8 бит) сопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определенные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение — не более 10 %). Скорость передачи по RS-232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.

Формат данных RS-232C

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

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

Уровни сигналов RS-232C на передающем и принимающем концах линии связи

Обмен по RS-232C осуществляется с помощью обращений по специально выделенным для этого портам:

  • COM1 (адреса 3F8h. 3FFh, прерывание IRQ4);
  • COM2 (адреса 2F8h. 2FFh, прерывание IRQ3);
  • COM3 (адреса 3F8h. 3EFh, прерывание IRQ10);
  • COM4 (адреса 2E8h. 2EFh, прерывание IRQ11).

Распиновки кабелей RS-232

Рассмотрим стандартные и не очень распиновки кабелей.

Условные обозначения:

  • F — «мама»;
  • M — «папа»;
  • «-» — соединение;
  • «х» — нет соединения;
  • «+» — линии объединяются.

Применяется для соединения таких устройств как компьютер и модем.

Соединение прямое:

DTE 9 F <--> DTE 9 F (Null-modem 9)

Применяется для соединения таких устройств как компьютер и компьютер.

Примечание: 1 и 7 контакты на разъемах соединены между собой. 9 не используется. Экраны соединяются.

DTE 25 F <--> DCE 9 M

Применяется для соединения таких устройств как компьютер (25-пиновый разъем) и 9-пиновая мышь (или модем).

Примечание: Остальные не используются. Экраны соединяются.

DTE 9 F <--> DCE 25 M

Применяется для соединения таких устройств как компьютер (9-пиновый разъем) и 25-пиновая мышь (или модем).

Примечание: Остальные не используются. Экраны соединяются.

DTE 25 F <--> DCE 25 M

Применяется для соединения таких устройств как компьютер (25-пиновый разъем) и 25-пиновая мышь (или модем).

Соединение прямое:

DTE 25 F <--> DTE 25 F (Null-modem Универсальный 25)

Применяется для соединения таких устройств как компьютер (25-пиновый разъем) и компьютер (25-пиновый разъем).

Примечание: Остальные не используются. Экраны соединяются.

Заглушка на COM-порт 9 pin F

Применяется для тестирования коммуникационных приложений.

Заглушка на COM-порт 25 pin F

Применяется для тестирования коммуникационных приложений.

Как получить 5 вольт от порта RS-232?

Схема для получения 5В от порта RS-232

Список необходимых деталей:

  1. Линейный регулятор — L78L05.
  2. 2 выпрямительных диода (D1, D2) — 1N4004.
  3. Электролитический конденсатор (C1) — 22 мкФ.
  4. Конденсатор (C2) — 0.001 мкФ.
  5. 2 резистора (R1, R2) — 43 Ом.

Преобразователи интерфейса RS-232

Конвертер RS-232 в TTL

При разработке различного рода электронных устройств с использованием микроконтроллеров очень часто оказывается полезной возможность подключения их к персональному компьютеру через последовательный порт. Однако напрямую это сделать невозможно, поскольку по стандарту RS-232 сигнал передается уровнями -3. -15 В (логическая <1>) и +3..+15В (логический <0>).

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

Схема преобразователя RS-232 в TTL

Необходимые детали:

  1. ИС RS-232 интерфейса (U1) — MAX232A.
  2. Линейный регулятор (U2) — LM78L05A.
  3. Диод (D1).
  4. Конденсатор (С1-С5) — 5х0.1 мкФ.
  5. Электролитический конденсатор (С6) — 4.7 мкФ.
  6. Разьем (Cn1) — TTL.
  7. Разьем (Cn2) — RS-232.

Кроме того, с целью упрощения использования данного преобразователя в нем предусмотрена схема питания прямо от последовательного порта, что избавляет от необходимости использования внешних источников питания.

  • Рекомендуем узнать, как выполнить уникальный моддинг системного блока ПК в корпусе из оргстекла

Использование описанного выше преобразователя RS-232 в TTL оказывается удобным в тех случаях, когда в процессе эксплуатации устройства не требуется наличие возможности связи с компьютером, но она нужна на этапе отладки или изготовления устройства. Типичным примером этого может служить, например, устройство с flash или EEPROM памятью, требующей начальной инициализации. Кроме того, часто бывает очень удобно в процессе разработки выводить в последовательный порт различного рода отладочную информацию, что иногда позволяет обойтись без аппаратных эмуляторов.

Преобразователь интерфейса RS232–RS422

Конвертер собран на SMD элементах и помещается в корпусе разьёма Sub-D9.

Все резисторы — 0.25 Вт, конденсаторы 16В. Корпус COM-порта соединен с -5В. Питание 5В взято с RJ-45.

Схема конвертера интерфейса RS232-RS422

Печатную плату можно скачать ниже:

Файлы для скачивания: rs232rs422.rar

Схема преобразователя интерфейсов RS232–RS485

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

Преобразователь интерфейсов RS232 RS485

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

Схема преобразователя интерфейсов RS232 RS485

Схема основана на популярных микросхемах MAX232 и MAX485. Разъем DB-9 соединяет плату с последовательным портом с помощью кабеля. Разъемы J1 и J2 предоставляют доступ к линиям ввода/вывода MAX232, а разъем CN1 позволяет получить доступ к линиям ввода/вывода MAX485. С помощью джампера J4 к плате можно подвести внешнее питание до 12 В, которое будет преобразовано стабилизатором в 5 В. Если вы подаете питание через разъем J1, то убедитесь, что J4 разомкнут. Светодиод D2 обеспечивает визуальную индикацию питания платы, а диод D1 защищает от подключения питания не правильной полярности.

Кабель RS485 подключается к разъему CN2 через сопротивления R3, R1 и R4, обеспечивающие необходимый импеданс. Вывод A разъёма CN1 представляет собой вывод контроля приема/передачи. Подтяжка этого вывода к земле позволит RS485 работать в режиме приёма, а подтяжка к напряжению питания Vcc в режиме передачи.

Для подключения MAX232 к MAX485 соедините вывод C разъема J1 с выводом DI разъема CN1 и соедините вывод B разъема J1 с выводом RO разъема CN1.

Ниже представлены схема расположения компонентов на печатной плате и сама печатная плата.



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

Прямое соединение (DB-9) Нуль-модемное, кроссовое соединение (DB-9)
(DTE) (DCE) (DTE) (DTE)
1 DCD ------- DCD 1 1 DCD DCD 1
2 RxD ------- TxD 2 2 RxD ------- TxD 3
3 TxD ------- RxD 3 3 TxD ------- RxD 2
4 DTR ------- DSR 4 4 DTR ------- DSR 6
5 GND ------- GND 5 5 GND ------- GND 5
6 DSR ------- DTR 6 6 DSR ------- DTR 4
7 RTS ------- CTS 7 7 RTS ------- CTS 8
8 CTS ------- RTS 8 8 CTS ------- RTS 7
9 RI ------- RI 9 9 RI RI 9

Сигналы RS-232



Логическая форма сигнала RS-232 (8N1)

На рисунке выше показан типичный логический сигнал RS-232 (формат данных: 1 стартовый бит, 8 битов данных, без контроля четности, 1 стоповый бит). Передача данных начинается с начального бита, за которым следуют биты данных (LSB отправляется первым, а MSB отправляется последним) и заканчивается битом «Стоп».
Напряжение логической «1» (метка) находится в диапазоне от -3 В до -15 В постоянного тока, в то время как логическое «0» (пробел) находится в диапазоне от + 3 В до + 15 В постоянного тока.
RS-232 соединяет заземление двух разных устройств вместе, что является так называемым «несбалансированным» соединением. Несбалансированное соединение более восприимчиво к шуму и имеет ограничение расстояния 15 метров.

Шаг 2: Узнайте о протоколе

Протокол - это один или несколько наборов аппаратных и программных правил, согласованных всеми сторонами связи для правильного и эффективного обмена данными.

Синхронная и асинхронная передача данных

Синхронная связь требует, чтобы отправитель и получатель использовали одни и те же часы. Отправитель передает синхронизирующий сигнал получателю, чтобы получатель знал, когда «читать» данные. Синхронная связь, как правило, имеет более высокие скорости передачи данных и большую возможность проверки ошибок. Принтер - это форма синхронного общения. Асинхронная связь не имеет тактового сигнала или тактового сигнала. Вместо этого он вставляет стартовые / стоповые биты в каждый байт данных, чтобы «синхронизировать» связь. Поскольку для связи используется меньше проводов (без тактовых сигналов), асинхронная связь проще и экономичнее. RS-232 / RS-485 / RS-422 / TTL являются формами асинхронной связи.

Развертывание: биты и байты

Внутренняя компьютерная связь состоит из цифровой электроники, представленной только двумя условиями: ВКЛ или ВЫКЛ. Мы представляем их двумя числами: 0 и 1, которые в двоичной системе называются битами. Байт состоит из 8 битов, которые представляют десятичное число от 0 до 255 или шестнадцатеричное число от 0 до FF. Как описано выше, байт является основной единицей асинхронной связи.

Скорость передачи, биты данных, четность и стоповый бит



Скорость передачи - это скорость передачи данных, которая измеряет количество битовых передач в секунду. Например, 19200 бод - это 19200 бит в секунду.
Биты данных являются измерением фактических битов данных в пакете связи. Например, вышеприведенный рисунок показывает восемь (8) битов данных в пакете связи. Пакет связи относится к передаче одного байта, включая биты пуска / останова, биты данных и четность. Если вы передаете стандартный код ASCII (от 0 до 127), достаточно 7 бит данных. Если это расширенный код ASCII (от 128 до 255), то требуется 8 бит данных.
Четность - это простой способ проверки ошибок. Есть четные, нечетные, отметки и пробелы. Вы также можете использовать без паритета. Для четного и нечетного контроля четности последовательный порт устанавливает бит четности (последний бит после бита данных) в значение, чтобы гарантировать, что пакет данных имеет четное или нечетное число старших логических битов. Например, если данные равны 10010010, для четности четности последовательный порт устанавливает бит четности равным 1, чтобы сохранить количество старших логических битов четности. Для нечетной четности бит четности равен 0, поэтому число старших логических битов нечетно. Метка четности просто устанавливает бит четности на высокий логический уровень, а пробел устанавливает бит четности на низкий логический уровень, чтобы принимающая сторона могла определить, повреждены ли данные.
Стоповые биты используются для сигнализации об окончании пакета связи. Это также помогает синхронизировать различные часы на последовательных устройствах.

Рукопожатие (управление потоком)
Рукопожатие также называется «Управление потоком». Основное назначение Handshaking - предотвратить перегрузку приемника. Используя сигналы квитирования, получатели смогут сообщить отправляющему устройству приостановить передачу данных, если приемник перегружен. Существует три типа квитирования: программное квитирование, аппаратное квитирование и оба.
Программное обеспечение рукопожатия использует два управляющих символа: XON и XOFF. Приемник отправляет эти управляющие символы, чтобы приостановить передатчик во время связи. XON - это десятичное 17, а XOFF - десятичное 19 на графике ASCII. Недостаток программного рукопожатия заключается в том, что эти два управляющих символа нельзя использовать в данных. Это очень важно при передаче двоичных данных, так как вам может понадобиться использовать эти два кода в ваших данных.
Аппаратное подтверждение связи использует фактические аппаратные линии, такие как RTS / CTS, DTR / DSR и DCD / RI (для модема).
В связи DTE / DCE RTS (Запрос на отправку) является выходом на DTE и входом на DCE. CTS (Clear to Send) - ответный сигнал от DCE. Перед отправкой данных DTE запрашивает разрешение, устанавливая высокий уровень выходного сигнала RTS. Данные не будут отправлены, пока DCE не предоставит разрешение по линии CTS. DTE использует сигнал DTR (Data Terminal Ready), чтобы указать, что он готов принять информацию, тогда как DCE использует сигнал DSR для той же цели. DTR / DSR обычно включены или выключены для всего сеанса соединения (например, снята трубка), тогда как RTS / CTS включены или выключены для каждой передачи данных. DCD (Data Carrier Ready) используется модемом, когда установлено соединение с удаленным оборудованием, а RI (индикатор вызова) используется модемом для индикации сигнала вызова с телефонной линии.

Форматы данных (двоичные, шестнадцатеричные, декабрьские, октябрьские и ASCII)
Последовательные устройства используют Binary для связи, который состоит из двух уникальных чисел: 0 и 1.
Двоичный код - это система нумерации Base-2. Один байт данных состоит из 8 двоичных цифр от 0000 0000 до 1111 1111. Шестнадцатеричная система - это система base-16, которая состоит из 16 чисел: от 0 до 9 и букв от A до F (десятичное число 15).
Шестнадцатеричная система нумерации полезна, потому что она может представлять каждый байт в виде двух последовательных шестнадцатеричных цифр, и людям легче читать шестнадцатеричные числа, чем двоичные числа. Большинство производителей используют шестнадцатеричное в своей документации протокола. Преобразовать значение из шестнадцатеричного в двоичное просто. Просто переведите каждую шестнадцатеричную цифру в ее 4-битный двоичный эквивалент. Например. Шестнадцатеричное число F3 равно двоичному числу 1111 0011.
Десятичное число относится к числам в базе 10, которая является системой нумерации, которую мы используем чаще всего в повседневной жизни. Это не так просто, как шестнадцатеричное и восьмеричное в десятичное число, чтобы преобразовать десятичное число, но нам легче понять десятичное число.
Восьмеричное относится к системе нумерации base-8, которая использует только восемь уникальных символов (от 0 до 7). Программисты часто используют формат Octal, потому что люди относительно легко читают и могут быть легко переведены в двоичный формат: каждая цифра Octal представляет 3 двоичные цифры. Например. Восьмеричное число 73 соответствует двоичному числу 111 011.
ASCII (американский стандартный код для обмена информацией) - это кодировка символов, основанная на английском алфавите. Коды ASCII (как читаемые, так и нечитаемые) широко используются в коммуникациях, таких как модемная связь. Буквы от A до Z и цифры от 0 до 9 являются читаемыми кодами ASCII. Некоторые коды ASCII не читаются, такие как управляющие коды: XON и XOFF, которые используются в управлении потоком программного обеспечения.

В компания KS-is возможно купить адаптеры RS232 различных моделей и ценовых сегментов.

Примеры протокольных команд
Команда протокола представляет собой строку данных, отправленную с одного последовательного устройства (например, компьютера) на другое (то есть модем). Вот некоторые примеры:
Пример команды ASCII: ATI1 для запроса информации производителя модема. (Примечание: контрольные коды возврата каретки и перевода строки).
Преобразуйте приведенную выше командную строку в шестнадцатеричное, и она становится: 41 54 49 31 0D 0A
Преобразуйте приведенную выше командную строку в десятичную, и она становится: 065 084 073 049 013 010
Преобразуйте приведенную выше строку команды в восьмеричное, и оно становится: 101 124 111 061 015 012
Преобразуйте приведенную выше командную строку в двоичную, и она становится: 01000001 01010100 01001001 00110001 00001101 00001010

Шаг 3: Управляйте своими устройствами RS232 с помощью 232Analyzer

232Analyzer - это расширенный анализатор протокола последовательного порта, который позволяет вам контролировать / отлаживать, отслеживать / прослушивать последовательные устройства (RS-232 / RS-485 / RS-422 / TTL) прямо с вашего ПК. 232Analyzer является условно-бесплатной версией, БЕСПЛАТНАЯ версия имеет некоторые ограничения, но ее более чем достаточно для тестирования и управления вашими последовательными устройствами. Нажмите здесь, чтобы скачать бесплатную копию.

Расчет контрольной суммы
232Analyzer поставляется с калькулятором контрольной суммы, который позволяет вам вычислять сложный байт контрольной суммы в секундах, вот пример:
Предположим, что вы управляете проектором, и протокол проектора использует xOR для получения дополнительного байта контрольной суммы, строка команды для включения проектора: «1A 2B 3C» плюс байт контрольной суммы. Используйте следующие процедуры для вычисления байта контрольной суммы:
Выберите Hex в качестве формата операндов
Выберите xOr в качестве оператора
Введите строку команды и добавьте запятую (,) после каждого байта кода команды: например, 1A, 2B, 3C,
Нажмите на кнопку «Рассчитать», и вы получите результат 0D (0 опущен)



Выберите COM-порт и настройте форматы связи



В приведенном выше примере панели инструментов COM-порт, подключенный к проектору, был настроен следующим образом: COM-порт: 5, скорость передачи данных: 19 200 бит / с, бит данных: 8, четность: четный, стоп-бит: 1. Примечание. После того, как вы установили правильные форматы связи (они должны совпадать с настройками COM-порта проектора), нажмите кнопку «Подключить» слева, чтобы активировать COM-порт.

Настройки управления потоком




Управление потоком можно установить из окна выше. Можно выбрать «Программное обеспечение» (XON / XOFF), «Оборудование» (RTS / CTS), «Оба» («Программное обеспечение + оборудование») или «Нет».

Управляйте своими устройствами RS232 Контроль / мониторинг состояния линии



232Analyzer позволяет вам контролировать / контролировать состояние линий ваших COM-портов. Состояния линии RTS и DTR будут переключаться при нажатии на соответствующий светодиод, вы можете использовать измеритель напряжения для проверки изменений, вы должны получить от + 6 В до + 15 В, когда состояние линии включено, и от -6 В до -15 В, когда состояние линии ВЫКЛ. Другие состояния линии могут контролироваться через виртуальные D, такие как RX, TX, DSR, CTS, DCD и RI.

Команды отправки / получения

Примечания:
В бесплатной версии режим Hex недоступен. Вы можете использовать десятичный формат для отправки командной строки: «26,43,60,13»
Вы можете использовать любое устройство RS-232 для тестирования, если Вы знаете команды протокола.

Читайте также: