Rs232 что это такое
RS232. Взгляд изнутри
Последовательный порт (далее ПП) удобный инструмент для общения между разными периферийными устройствами (как собранные самостоятельно на основе какого-нибудь МК, так и заводские: принтеры, осциллографы и т.д.) с одной стороны, и ПК с другой. На сегодняшний день наиболее популярные из всех ПП являются RS232 стандарт (переводится как «Recommended Standard») за его простоту и USB стандарт («Universal Serial BUS») за его резвость.
USB бесспорно вещь полезная, но жудко навороченная. Поскольку многим самодельным устройствам бешенный обмен данными с ПК неособо нужон, тогда на помощи приходит простой, надежный и многоопытный RS232 Интерфейс.
По RS232 стандарту устройства участвующие в обмене данными бывают двух типов:
Data Terminal Equipment (DTE) (устройство отдающее команды — ведущий) и
Data Circuit-Terminating Equipment (DCE) (периферия, обслуживающая хозяина — ведомый). Нередко, некоторые периферийные устройства ведут себя как DTE (например осциллографы, или наши с вами девайсы).
Модемное соединение — подрозумеваеи наличие некой иерархии, тоесть в случае когда в обмене данными участвуют больше чем два устройства им необходим некий арбитр (модем), разрешающий в определенный момент времени отсылать данные только одному устройству (в то время как читать могут хоть все остальные). Модемом может быть что угодно: отдельный девайс, или один из участников обмена данными, главное недопустить потери данных.
В случае когда устройств только два, или есть явный ведущий которого слушаются все остальные, никакого посредника им не нужно, а это означает что к их общению больше никто не подключится, и никакого арбитра в лице модема им не надо ( в отличие от предыдущего типа соединения, когда к одному принтеру можно подключить штук 10 ПК ). Опять-же главное недопустить одновременной отправки данных — в определенный момент времени, общатся может только одна пара устройств. Такое соединение называется нуль-модемное соединение:
Типы передач данных
Минимальное количество проводков необходимое для обмена данными равно двум (этокий жадный изврат), если передача является односторонней ([Tx, GND]). В случае когда необходимо полноценное — двухстороннее общение число проводков возростает аж до трех ([Rx, Tx, GND]). Большинство периферийных устройств поддерживают одновременную передачу и прием данных — full-duplex, но если один из собеседников на такое не способен, обмен переходит в разряд неполноценных — half-duplex (пока один не закончил передачу/прием другой пляшит под его дудку).
Распиновка COM разъёма
В столбце Signal Name, DATA Terminal можно заменить на ПК (то есть Data Terminal Ready соответствует ПК готов к работе), а DATA Set на Периферия.
Назначение управляющих пинов ([RTS, CTS], [DTR, DSR] и [CD, RI]) сводится к следующему:
• Отслеживать состояние собеседника
• Отслеживать поток данных
Пара [RTS, CTS] — используется для обозначения готовности данной пары устройств к передачи/приему соответственно.
1. DTE устройство устанавливает RTS = on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем RTS =off.
2. DCE устройство устанавливает CTS =on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем CTS =off.
Кто каким пином будет управлять (тоесть кому быть DTE а кому DCE) решать вам. Соответственно программы управления этими устройствами должны выставить RTS(выход)/CTS (вход), или наоборот, иначе могут быть глюки.
Пара [DTR, DSR] — большинство устройств используют эти пины для сигнализирования что они подключены и готовы к работе.
1. DTE устройство устанавливает DTR=on, сообщая DCE устройству что оно готово к работе. Соответственно когда DTE устанавливает DTR=off, то оно больше не желает (или не может) общатся (положила трубку 🙂 )
2. DCE устройство устанавливает DSR=on, сообщая что оно подключено, а когда DSR=off – оно отключено.
Такой метод контроля потока данных называется – hardware handshaking (чтото вроде аппаратное управление). Пары [DTR, DSR] и [RTS, CTS] могут быть с легкостью взаимо-заменены без всякого ущерба.
Пара [CD, RI] – используется для обозначения (в тот самом случае когда один принтер на отару кампов) что в данный момент линии передачи данных кем-то заняты.
Как правило этой парой управляет модем, но не обязательно.
• St – Стартовый Бит (начало передачи данных) – логический ноль
• 0..8 – позиция бита (данных) в пакете (позиция «0» – LSB)
• P – бит парности (проверка успешной передачи данных)
• Sp1,Sp2 – стоп биты (завершают передачу пакета) – логическая единица
• [] – в скобках обозначены биты которые могут отсутствовать
(биты данных с 5 по 8 так или иначе будут переданы, но не рассмотрены — мусор)
• IDLE – ожидание (логическая единица)
Как я уже говорил, во время передачи — данные инвертируются, так что если будете проверять осциллографом как отсылается пакет — не пугайтесь.
Часто формат пакета обозначается следующим образом: 8-N-1 (8 бит данных, без бита проверки, один стоп бит) или 5-E-2 (5 бит данных (3 бита мусора), с проверкой на четность, два стоп бита).
Поскольку MAX232 поддерживает аппаратное управление COM портом, и если с разводкой данной схемы проблем нет, почемуб и не использовать эту возможность, вдруг когда пригодится (не пропадать же добру). В противном случае, можно обойтись без аппаратного управления, как зачастую и происходит.
Софт
UPD: заменил вывод cout на printf, и убрал флаги RxClear и TxClear
ПП по сути является фаилом из которого ведется чтение/запись, поэтому основные операции которые применяются над ПП можно группировать следующим способом:
Запихните предыдущий код в хидэр фаил, например с именем COM_INIT.h и можно использовать ПП.
Надеюсь эти скромные знания кому-то помогут. Если есть вопросы попытаюсь ответить.
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
RS-232
Содержание
Назначение RS-232
Интерфейс RS-232-C был разработан для простого применения, однозначно определяемого по его названию «Интерфейс между терминальным оборудованием и связным оборудованием с обменом по последовательному двоичному коду». Каждое слово в названии значимое, оно определяет интерфейс между терминалом (DTE) и модемом (DCE) по передаче последовательных данных.
Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается. [1]
9-контактная вилка типа DB-9M
Контакт | Сигнал | Направление | Описание |
---|---|---|---|
1 | CD | Вход | Обнаружена несущая |
2 | RXD | Вход | Принимаемые данные |
3 | TXD | Выход | Передаваемые данные |
4 | DTR | Выход | Хост готов |
5 | GND | — | Общий провод |
6 | DSR | Вход | Устройство готово |
7 | RTS | Выход | Хост готов к передаче |
8 | CTS | Вход | Устройство готово к приему |
9 | EI | Вход | Обнаружен вызов |
25-контактная вилка типа DB-25M
|
Параметр | RS-232 |
---|---|
Способ передачи сигнала | Однофазный |
Максимальное количество приемников | 1 |
Максимальная длина кабеля | 15 м |
Максимальная скорость передачи | 460 кбит/с |
Синфазное напряжение на выходе | ± 25 В |
Напряжение в линии под нагрузкой | ±5. ±15 В |
Импеданс нагрузки | 3. 7 кОм |
Ток утечки в «третьем» состоянии | — |
Допустимый диапазон сигналов на входе приемника | ±15 В |
Чувствительность приемника | ±3В |
Входное сопротивление приемника | 3. 7 кОм |
Стандарт
Ассоциация электронной промышленности (EIA) развивает стандарты по передаче данных. Стандарты EIA имеют префикс «RS». «RS» означает рекомендуемый стандарт, но сейчас стандарты просто обозначаются как «EIA» стандарты. RS-232 был введён в 1962 году. Стандарт развивался, и в 1969 г.. представлена третья редакция (RS-232C). Четвёртая редакция была в 1987 (RS-232D, известная также под EIA-232D). RS-232 идентичен стандартам МККТТ (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110. Самой последней модификацией является модификация «Е», принятая в июле 1991 г. как стандарт EIA/TIA-232E. В данном варианте нет никаких технических изменений, которые могли бы привести к проблемам совместимости с предыдущими вариантами этого стандарта.
Ограничения
На практике в зависимости от качества применяемого кабеля требуемое расстояние передачи данных в 15 метров может не достигаться, составляя, к примеру, порядка 1,5 м на скорости 115200 бод для неэкранированного плоского или круглого кабеля. Это вызвано применением однофазных сигналов вместо дифференциальных, а также отсутствием требований по согласованию приёмника (и часто также передатчика) с линией. Для преодоления этого ограничения, а также возможного получения гальванической развязки между узлами, можно применить преобразователи интерфейса:
RS-232—RS-422 (с сохранением полной программной совместимости) или RS-232—RS-485 (с определёнными программными ограничениями). При этом расстояние может быть увеличено до 1 км на скорости 9600 бод и использовании кабеля типа «витая пара» категории 3; Внешний преобразователь RS232—Токовая петля для 9-контактного разъёма, или соответствующие цепи 25-контактного разъёма, в случае наличия преобразователя внутри устройств.
Обзор стандарта RS-232
Что это такое RS-232
Интерфейс RS-232-C был разработан для простого применения, однозначно определяемого по его названию «Интерфейс между терминальным оборудованием и связным оборудованием с обменом по последовательному двоичному коду». Каждое слово в названии значимое, оно определяет интерфейс между терминалом (DTE) и модемом (DCE) по передаче последовательных данных.
Устройства для связи по последовательному каналу соединяются кабелями с 9-ю или 25-ти контактными разъемами типа D. Обычно они обозначаются DB-9, DB-9, CANNON 9, CANNON 25 и т.д. Разъемы типов розетки и штырей. Каждый вывод обозначен и пронумерован. Расположение выводов представлено ниже.
Ассоциация электронной промышленности (EIA) развивает стандарты по передаче данных. Стандарты EIA имеют префикс «RS». «RS» означает рекомендуемый стандарт, но сейчас стандарты просто обозначаются как «EIA» стандарты. RS-232 был введен в 1962. Стандарт развивался и в 1969 представлена третья редакция (RS-232C). Четвертая редакция была в 1987 (RS-232D, известная также под EIA-232D). RS-232 идентичен стандартам МККТТ (CCITT) V.24/V.28, X.20bis/X.21bis и ISO IS2110.
Уровни сигналов данных
Уровни управляющих сигналов
Сигналы после прохождения по кабелю ослаюляются и искажаются. Ослабление растет с увеличением длины кабеля. Этот эффект сильно связан с электрической емкостью кабеля. По стандарту максимальная нагрузочная емкость составляет 2500 пФ. Типичная погонная емкость кабеля составляет 130 пФ, поэтому максимальная длина кабеля ограничена примерно 17 м.
Дополнительная информация в разделе Кабели и Длина проводов.
Проблемы с источником питания
Перед соединением двух компьютеров через RS-232, каждый из которых питается от различных источников рекомендуется выравнять напряжения между их сигнальными землями перед подключением.
Контакты разъемов
Соединения коннектора RJ-45 не стандартизовано. Данный вариант один из возможных.
Кабели подключения
Нуль модемные кабели RS-232
Рассмотрим сначала DSR сигнал (конт.6). Этот вход сигнала готовности от аппаратуры передачи данных. В схеме соединений вход замкнут на выход DTR (конт.4). Это означает, что программа не видит сигнала готовности другого устройства, хотя он есть. Аналогично устанавливается сигнал на входе CD (конт.1). Тогда при проверке сигнала DSR для контроля возможности соединения будет установлен выходной сигнал DTR.
Это соответствует 99% коммуникационного программного обеспечения. Под этим подразумевается, что 99% программного обеспечения с этим нуль-модемным кабелем примут проверку сигнала DSR.
Аналогичный трюк применяется для входного сигнала CTS. В оригинале сигнал RTS (конт.7) установливается и затем проверяется CTS (конт.8). Соединение этих контактов приводит к невозможности зависания программ по причине неответа на запрос RTS.
Самый дорогой полный нуль-модемный кабель с семью проводами. Только сигналы индикатора вызова и определения несущей не подключены.
Этот кабель не разрешает использовать предыдущий метод контроля предачи данных. Основная несовместимость перекрестное соединение сигналов RTS и CTS. Первоначально эти сигналы использовались для контроля потоком данных по типу запрос/ответ. При использовании полного нуль-модемного кабеля более нет запросов. Эти сигналы применяются для сообщения другой стороне есть ли возможность соединения.
Контакты 2 и 3 на 9-ти выводном разъеме D типа противоположны этим же контактам на 25-ти контатном раземе. Поэтому, если соединить контакты 2-2 и 3-3 между разъемами D25 и D9, получится коммуникационный кабель. Контакты сигнальной земли Signal Ground (SG) также должны быть подключены между собой. См. таблицу ниже.
5-проводный с управлением потоком
Можно найти или изготовить много типов кабелей для связи по интерфейсу RS-232. В этом нуль- модемном кабеле используется только 5 проводов: сигналы данных TXD, RXD, сигнал GND и управляющие сигналы RTS CTS для управления потоком.
Все DTE-DCE кабели прямого соединения, контакты соединяются один к одному. Кабели DTE-DTE и DCE-DCE кросс-кабели.
Описание полного нуль-модемного кабеля
DB9-1 | DB9-2 | ||
Receive Data | 2 | 3 | Transmit Data |
Transmit Data | 3 | 2 | Receive Data |
Data Terminal Ready | 4 | 6+1 | Data Set Ready + Carrier Detect |
System Ground | 5 | 5 | System Ground |
Data Set Ready + Carrier Detect | 6+1 | 4 | Data Terminal Ready |
Request to Send | 7 | 8 | Clear to Send |
Clear to Send | 8 | 7 | Request to Send |
DB25-1 | DB25-2 | ||
Receive Data | 3 | 2 | Transmit Data |
Transmit Data | 2 | 3 | Receive Data |
Data Terminal Ready | 20 | 6+8 | Data Set Ready + Carrier Detect |
System Ground | 7 | 7 | System Ground |
Data Set Ready + Carrier Detect | 6+8 | 20 | Data Terminal Ready |
Request to Send | 4 | 5 | Clear to Send |
Clear to Send | 5 | 4 | Request to Send |
DB9 | DB25 | ||
Receive Data | 2 | 2 | Transmit Data |
Transmit Data | 3 | 3 | Receive Data |
Data Terminal Ready | 4 | 6+8 | Data Set Ready + Carrier Detect |
System Ground | 5 | 7 | System Ground |
Data Set Ready + Carrier Detect | 6+1 | 20 | Data Terminal Ready |
Request to Send | 7 | 5 | Clear to Send |
Clear to Send | 8 | 4 | Request to Send |
Заглушка тестирования RS-232
Заглушка для эмуляции терминала
Данный соединитель RS-232 может быть использован для проверки последовательного порта кмпьютера. Сигналы данных и управления соединены. В этом случае передаваемые данные сразу возвращаются. Компьютер проверяет собственный поток. Это может быть использовано для проверки функционирования порта RS-232 со стандартным терминальным программным обеспечением.
DB 9 мама
DB 25 мама
Кабель контроля (мониторинга) RS-232
Контроль связи по RS-232 между двумя устройствами с помощью компьютера возможен при помощи кабеля, изображенного на рис. Два разъема подключаются к устройствам, а третий подключается к наблюдающему компьютеру. Этот кабель принимает информацию от двух источников только на один приемный порт RS-232. Поэтому, если оба устройства начнут одновременную работу, контролируемая информация на входе компьютера будет нарушена. В большинстве случаев связь осуществляется в полудуплексном режиме. Для этих режимов этот кабель будет работать без проблем.
Расстояния передачи
Длина кабеля влияет на максимальную скорость передачи информации. Более длинный кабель имеет большую емкость и соответственно для обеспечения надежной передачи более низкую скорость. Большая емкость приводит к тому, что изменение напряжения одного сигнального провода может передаться на другой смежный сигнальный провод. Максимальным расстоянием обычно считается равным 15 м, но это не установлено в стандарте. Мы рекомендуем использовать на расстояниях до 50 м, но это зависит от типа используемого оборудования и характеристик кабеля.
Максимальная длина кабеля
Скорость [бод] | Макс. длина [футы] | Макс. длина [метры] |
19 200 | 50 | 15 |
9 600 | 500 | 150 |
4 800 | 1000 | 300 |
2 400 | 3000 | 900 |
Скорость передачи данных
Контроль четности
Четность в RS-232 (Parity)
При передаче по последовательному каналу контроль четности может быть использован для обнаружения ошибок при передаче данных. При использовании контроля четности посылаются сообщения подсчитывающие число единиц в группе бит данных. В зависимости от результата устанавливается бит четности. Приемное устройство также подсчитывает число единиц и затем сверяет бит четности.
Для обеспечения контроля четности компьютер и устройство должны одинаково производить подсчет бита четности. То есть, определиться устанавливать бит при четном (even) или нечетном (odd) числе единиц. При контроле на четность биты данных и бит четности всегда должны содержать четное число единиц. В противоположном случае соответствует для контроля на нечетность.
Mark и Space биты четности
В этом примере показана структура передаваемых данных со синхронизирующим тактовым сигналом. В этом примере используется 8 бит данных, бит четности и стоп бит. Такая структура также обозначается 8Е1.
Стоп бит позволяет устройству или компьютеру произвести синхронизацию при возникновении сбоев. Например, помеха на линии скрыла Старт бит. Период между старт и стоп битами постоянен, согласно значению скорости обмена, числу бит данных и бита четности. Стоп бит всегда включен. Если приемник определяет выключенное состояние, когда должен присутствовать стоп бит, фиксируется появление ошибки.
Установка Стоп бита
Стоп бит не просто один бит минимального интервала времени в конце каждой передачи данных. На компьютерах обычно он эквивалентен 1 или 2 битам, и это должно учитываться программе драйвера. Хоя, 1 стоп бит наиболее общий, выбор 2 бит в худшем случае немного замедлит передачу сообщения.
(Есть возможность установки значения стоп бита равным 1.5. Это используется при передаче менее 7 битов данных. В этом случае не могут быть переданы символы ASCII, и поэтому значение 1.5 используется редко.)
Управление потоком
Управление потоком представляет управлять передаваемыми данными. Иногда устройство не может обработать принимаемые данные от компьютера или другого устройства. Устройство использует управление потоком для прекращения передачи данных. Могут использоваться аппаратное или программное управление потоком.
Аппаратное управление потоком
Аппаратный протокол управления потоком RTS/CTS. Он использует дополнительно два провода в кабеле, а не передачу специальных символов по линиям данных. Поэтому аппаратное управление потоком не замедляет обмен в отличие от протокола Xon-Xoff. При необходимости послать данные компьютер устанавливает сигнал на линии RTS. Если приемник (модем) готов к приему данных, то он отвечает установкой сигнала на линии CTS, и компьютер начинает посылку данных. При неготовности устройства к приему сигнал CTS не устанавливается.
Программное управление потоком
Преобразование уровней RS-232 в TTL уровень с помощью MAX232
Семейство микросхем MAX220-MAX249 линейных приемо-передатчиков предназначены для интерфейсов EIA/TIA-232E и V.28/V.24, особенно в устройствах, где отсутствуют напряжения ±12В.
Микросхема MAX232 быстро стала индустриальным стандартом. Многие разработчики используют ее, несмотря на то, что параметры микросхем с однополярным питанием значительно улучшились со временем.
Конфигурация выводов MAX232: представлена на рис.
Структурная схема MAX232A
Токовая петля
До начала 1960-х в телепринтерах для связи на большие расстояния применялась токовая петля 60мА. В 1962 была представлена модель 33 телетайпа с 20мА токовой петлей. После этого этот интерфейс стал широко использоваться. На протяжении 60-х, 70-х и 80-х интерфейс 20мА токовая петля применялся во многом оборудовании. Этот интерфейс стал популярным из-за его низкой цены при использовании на больших расстояниях, а также высокой помехоустойчивостью передачи данных.
В интерфейсе токовая петля электрическим сигналом является ток, а не напряжение. Токовая петля может работать в дуплексном, полудуплексном режиме, а также в активном или пассивном режиме.
Этот стандарт позволяет передавать данны на расстояния до 600 м со скоростью до 19.2 кБод.
Одновременная двунаправленная передача данных возможна по этой схеме. Для этого режима необходимы два генератора тока 20мА. Например, карта IBM адаптера последовательного интерфейса имеет в своем составе только один генератор тока. В этом случае для создания полного соединения второе устройство должно иметь генератор тока для создания второй токовой петли.
Полнодуплексная схема 20 mA
Симплексная схема 20 мА
Симплексная схема 20 mA (возможна только поочередная передача данных)
Сранение уровней сигналов RS-232 и 20мА токовой петли
На рис ниже представлены уровни сигналов интерфейса RS-232 и их соответствие с интерфейсом токовой петли 20 мА. Для токовой петли наличие тока соответствует пассивному состоянию (отсутствие передачи данных).
Сравнение уровней RS-232 и 20мА токовой петли
Схема преобразователя аналоговой токовой петли 4- 20 мА
Схема аналоговой токовой петли 4 к 20 мА с цифровой передачей данных по HART протоколу
Программное обеспечение
Утилита Hercules SETUP
Основные полезные части:
- Как и когда пересадить иву
- Present simple present continuous в чем разница