Строго говоря, кабель RS-232 - это наименование стандарта, описывающего интерфейс соединения с компьютера с устройством RS - recommended standard, переводится как "рекомендованный стандарт", а 232 - номер типа. Он был разработан еще в 60-х годах прошлого века. Сегодня новая редакция этого стандарта, которую приняли в 1991 году ассоциации телекоммуникационной и носит название EIA/TIA-232-E. Однако большинство людей продолжают использовать название "кабель RS-232", которое намертво "приросло" к интерфейсу.
Указанный выше интерфейс обеспечивает соединение следующих устройств: DTE (Data Terminal Equipment) — ООД (Оконечное Оборудование Данных), и DCE (Data Communications Equipment) — ОПД (Оборудование Передачи Данных). Под ООД обычно подразумевается персональный компьютер, а под ОПД - модем. Хотя кабель RS-232 используется также для подключения к ПЕОМ других периферийных устройств (принтер, мышь и т. д.), а также для соединения с другими компьютерами или контроллерами. Важно помнить обозначения DCE и DTE, так как они используются в наименованиях сигналов интерфейсов и помогают разбираться с описанием требуемой реализации устройства.
Изначально кабель RS-232 имел 25-контактный соединитель типа DB25. Устройство типа DTE оснащалось разъемом-розеткой («мама»). Позднее стали использовать «урезанный» вариант интерфейса с 9-контактными соединителями DB9. Такой вид кабеля распространен и в наши дни.
Распайка кабеля RS-232
Ниже приводится назначение выводов 9-контактнго соединителя типа DB9. Перечень показывает распайку разъема («папа») оборудования обработки данных, например персонального компьютера. Розетка прибора передачи данных распаивается таким образом, что оба разъема стыкуются через кабель или напрямую «контакт в контакт».
1. Carrier Detect - наличие несущей частоты.
2. Received Data - принимаемые данные.
3. Transmitted Data - передаваемые данные.
4. Data Terminal Ready - готовность ООД.
5. Signal Ground - общий.
6. Data Set Read - готовность ОПД.
7. Request To Send - запрос на передачу.
8. ClearToSend - готов передавать.
9. Ring Indicator - наличие сигнала вызова.
Данные передаются по цепям RD и TD. Остальные цепи предназначаются для отображения состояния DTR и DSR устройств, управления передачей CTS и RTS, а также индикации состояния RI и CD линий. Только при подключении к персональному компьютеру внешнего модема используется полный набор цепей. При подключении других таких как контроллеры или мыши, используются выборочные цепи, необходимые для конкретного оборудования. Они зависят от программной и аппаратной реализации устройства.
Описание и технические параметры
Стандарт четко определяет максимально возможную длину кабеля RS-232 - 15 метров со скоростью передачи данных 9600 бит/с. Однако на практике проверено, что устойчивая работа достигается и при большей длине провода. Считается, что при применении неэкранированного кабеля можно увеличить длину до 30 метров, а при использовании экранированного - до 75 метров. И это без потери Если же понизить скорость примерно вдвое, то длина кабеля увеличивается также вдвое. Рекомендуется использовать кабель на основе в таком случае каждый сигнальный провод состоит в паре с общим проводом. Не рекомендуется объединять экран кабеля с общим сигнальным.
Часто можно встретить кабель RS-232- USB. Он представляет собой стандартный интерфейс, на одном из концов которого используется
Последовательный интерфейс RS-232 — это промышленный стандарт для последовательной двунаправленной асинхронной передачи данных. Ранее использовался в персональных компьютерах для подключения принтеров, модемов, мыши и пр. В настоящее время активно вытесняется пришедшим ему на смену интерфейсом USB, однако в микроконтроллерных системах — это один из наиболее часто встречающихся интерфейсов.
Спецификации RS-232C не огpаничивают максимальнyю длинy кабеля, но огpаничивают максимальное значение его емкости величиной 2500 пф. Емкость интеpфейсных кабелей pазлична, однако общепpинятой длиной yдовлетвоpяющей данной спецификации считается длина 15 метров (до 20000 бод) Чем выше скоpость пеpедачи, тем больше искажения сигнала, вызванные емкостными хаpактеpистиками кабеля.
Выпyскаются специальные интеpфейсные кабели пpямой связи RS-232C низкой емкости, котоpые yдовлетвоpительно pаботают со скоpостью 9600 бод на pасстоянии до 150 м.
Число подключаемых пpиемников и пеpедатчиков подключаемых к одной линии — 1/1, (в отличие от стандаpтов RS-422 1 передатчик/ 10 пpиемников или RS-485 32/32).
В отличие от параллельного порта, состоящего из восьми информационных линий и за один так передающего байт, порт RS-232 требует наличия только одной такой линии, по которой последовательно передается бит за битом. Это позволяет сократить количество информационных линий для передачи данных между устройствами, но уменьшает скорость.
Последовательная передача данных
Последовательный поток данных состоит из битов синхронизации и собственно битов данных. Формат последовательных данных содержит четыре части: стартовый бит, биты данных (5-8 бит), проверочный и стоповый биты; вся эта конструкция иногда называется символом . На рисунке изображен типичный формат последовательных данных.
Формат последовательных данных, формируемых UART
Когда данные не передаются, на линии устанавливается уровень логической единицы. Это называется режимом ожидания . Начало режима передачи данных характеризуется передачей уровня логического нуля длительностью в одну элементарную посылку. Такой бит называется стартовым . Биты данных посылаются последовательно, причем младший бит — первым; всего их может быть от пяти до восьми. За битами данных следует проверочный бит, предназначенный для обнаружения ошибок, которые возникают во время обмена данными. Последней передается стоповая посылка, информирующая об окончании символа. Стоповый бит передается уровнем логической единицы. Длительность стоповой посылки — 1, 1.5 или 2 тактовых интервала. Электронное устройство, которое генерирует и принимает последовательные данные, называется универсальным асинхронным приемопередатчиком (Universal Asynchronous Receiver Transmitter, или UART).
Обмен информацией с помощью UART происходит следующим образом:
- приемник обнаруживает первый фронт стартового бита и выжидает один или полтора тактовых интервала, поскольку считывание должно начаться точно в середине первой посылки;
- через один тактовый интервал считывается второй бит данных, причем это происходит точно в середине второй посылки;
- после окончания информационного обмена приемник считывает проверочный бит для обнаружения ошибок и стоповый бит;
- приемник переходит в режим ожидания следующей порции данных.
Скорость передачи информации в последовательном интерфейсе измеряется в бодах (бод — количество передаваемых битов за 1 секунду). Стандартные скорости равны 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200 бод и т.д. Зная скорость в бодах, можно вычислить число передаваемых символов в секунду. Например, если имеется восемь бит данных без проверки на четность и один стоповый бит, то общая длина последовательности, включая стартовый бит, равна 10. Скорость передачи символов соответствует скорости в бодах, деленной на 10. Таким образом, при скорости 9600 бод (см.рисунок выше) будет передаваться 960 символов в секунду.
Проверочный бит предназначен для обнаружения ошибок в передаваемых битах данных. Когда он присутствует, осуществляется проверка на четность или нечетность. Если интерфейс настроен на проверку по четности, такой бит будет выставляться в единицу при нечетном количестве единиц в битах данных, и наоборот. Это простейший пособ проверки на наличие одиночных ошибок в передаваемом блоке данных. Однако, если во время передачи искажению подверглись несколько битов, подобная ошибка не обнаруживается. Проверочный бит генерируется передающим UART таким образом, чтобы общее количество удиниц было нечетным или четным числом в зависимости от настройки интерфейса; приемное устройство должно иметь такую же настройку. Приемный UART считает количество единиц в принятых данных. Если данные не проходят проверку, генерируется сигнал ошибки.
В UART применяются уровни напряжения ТТЛ. Для передачи данных по каналу связи напряжение с помощью специализированных преобразователей конвертируется с инверсией: логическому нулю соответствует диапазон напряжений от +3 до +12В, логической единице — от -3 до -12В.
Разъемы RS-232 и соединение устройств
Основными разъемами, применяемыми с портом RS-232 являются DB-9S и DB-25S. На рисунке показана распиновка разъема DB-9.
Номера пинов 9-контактного разъема
а в таблице показано соответсвие сигналов контактам RS-232 для 9-ти и 25-ти контактных разъемов и их функции на компьютере
25 контактов | 9 контактов | Наименование | Направление | Описание |
1 | PROT | Защитное заземление | ||
2 | 3 | TD | Выход | Передаваемые данные |
3 | 2 | RD | Вход | Принимаемые данные |
4 | 7 | RTS | Выход | Запрос на передачу |
5 | 8 | CTS | Вход | Очищен для передачи |
6 | 6 | DSR | Вход | Готовность внешнего устройства |
7 | 5 | GND | Сигнальное заземление | |
8 | 1 | DCD | Вход | Обнаружение информационного сигнала |
20 | 4 | DTR | Выход | Готовность к обмену данными |
22 | 9 | RI | Вход | Индикатор звонка |
23 | DSRD | Вход/Выход | Детектор скорости передачи данных |
Соединение между компьютером и внешним устройством по протоколу RS-232 производится, как правило, используя, так называемое, нуль-модемное соединение . Возможно также соединение, использующее только три линии: первая для передачи данных, вторая — для приема и третья — в качестве общего проводника. Соединение организуется таким образом, что передаваемые данные от первого устройства поступают на приемную линию второго.
Соединение устройств по протоколу RS-232
В системах с используется второй тип соединения.
Назначение сигналов
Сигнал | Назначение |
PROT | Защитное заземление. Соединяется с металлическим экраном кабеля и корпусом оборудования |
GND | Линия заземления. Общий провод для всех сигналов |
TD | Передаваемые данные. Последовательные данные передаются компьютером по этой линии |
RD | Принимаемые данные. Последовательные данные принимаются компьютером по этой линии |
RTS | Запрос на передачу. Линия взаимодействия, которая показывает, что компьютер готов к приему данных. Линия управляется со стороны компьютера; если взамодействия не требуется, она может использоваться как двоичный выход |
CTS | Готовность к передаче. Линия взаимодействия, с помощью которой внешнее устройство сообщает компьютеру, что оно готово к передаче данных. Если взаимодействия не требуется, она может использоваться как двоичный вход |
DTR | Компьютер готов. Линия взаимодействия показывает, что компьютер включен и готов к связи. Линия управляется со стороны компьютера; если взаимодействия не требуется, она может использоваться как двоичный выход |
DSR | Готовность внешнего устройства. Линия взаимодействия, с помощью которой внешнее устройство сообщает компьютеру, что оно включено и готово к связи. Если взаимодействия не требуется, она может использоваться как двоичный вход |
Под обозначениями RS-232, RS-422 и RS-485 понимаются интерфейсы для цифровой передачи данных. Стандарт RS-232 более известен как обычный СОМ порт компьютера или последовательный порт (хотя последовательным портом также можно считать Ethernet, FireWire и USB). Интерфейсы RS-422 и RS-485 широко применяются в промышленности для соединения различного оборудования.
В таблице приведены основные отличия интерфейсов RS-232, RS-422 и RS-485.
Название | RS-232 | RS-422 | RS-485 |
---|---|---|---|
Тип передачи | Полный дуплекс | Полный дуплекс | Полудуплекс (2 провода),полный дуплекс (4 провода) |
Максимальная дистанция | 15 метров при 9600 бит/с | 1200 метров при 9600 бит/с | 1200 метров при 9600 бит/с |
Задействованные контакты | TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND* | TxA, TxB, RxA, RxB, GND | DataA, DataB, GND |
Топология | Точка-точка | Точка-точка | Многоточечная |
Макс. кол-во подключенных устройств | 1 | 1 (10 устройств в режиме приема) | 32 (с повторителями больше, обычно до 256) |
* Для интерфейса RS-232 не обязательно использовать все линии контактов. Обычно используются линии данных TxD, RxD и провод земли GND, остальные линии необходимы для контроля над потоком передачи данных. Подробнее вы узнаете далее в статье.
Информация, передаваемая по интерфейсам RS-232, RS-422 и RS-485, структурирована в виде какого-либо протокола, например, в промышленности широко распространен протокол Modbus RTU.
Описание интерфейса RS-232
Интерфейс RS-232 (TIA/EIA-232) предназначен для организации приема-передачи данных между передатчиком или терминалом (англ. Data Terminal Equipment, DTE ) и приемником или коммуникационным оборудованием (англ. Data Communications Equipment, DCE ) по схеме точка-точка.
Скорость работы RS-232 зависит от расстояния между устройствами, обычно на расстоянии 15 метров скорость равна 9600 бит/с. На минимальном расстоянии скорость обычно равна 115.2 кбит/с, но есть оборудование, которое поддерживает скорость до 921.6 кбит/с.
Интерфейс RS-232 работает в дуплексном режиме, что позволяет передавать и принимать информацию одновременно, потому что используются разные линии для приема и передачи. В этом заключается отличие от полудуплексного режима, когда используется одна линия связи для приема и передачи данных, что накладывает ограничение на одновременную работу, поэтому в полудуплексном режиме в один момент времени возможен либо прием, либо передача информации.
Информация по интерфейсу RS-232 передается в цифровом виде логическими 0 и 1.
Логическому «0» (SPACE) соответствует напряжение в диапазоне от +3 до +15 В.
В дополнение к двум линиям приема и передачи, на RS-232 имеются специальные линии для аппаратного управления потоком и других функций.
Для подключения к RS-232 используется специальный разъем D-sub, обычно 9 контактный DB9, реже применяется 25 контактный DB25.
Разъемы DB делятся на Male – «папа» (вилка, pin) и Female – «мама» (гнездо, socket).
Распиновка разъема DB9 для RS-232
Распайка кабеля DB9 для RS-232
Существует три типа подключения устройств в RS-232: терминал-терминал DTE-DTE, терминал- коммуникационное оборудование DTE-DCE, модем-модем DCE-DCE.
Кабель DTE-DCE называется «прямой кабель», потому что контакты соединяются один к одному.
Кабель DCE-DCE называется «нуль-модемный кабель», или по-другому кросс-кабель.
Ниже приведены таблицы распиновок всех перечисленных типов кабеля, и далее отдельно представлена таблица с переводом основных терминов на русский язык.
Распиновка прямого кабеля DB9 для RS-232
Распиновка нуль-модемного кабеля DB9 для RS-232
Таблица с распиновкой разъемов DB9 и DB25.
DB9 | DB25 | Обозначение | Название | Описание |
---|---|---|---|---|
1 | 8 | CD | Carrier Detect | Обнаружение несущей |
2 | 3 | RXD | Receive Data | Прием данных |
3 | 2 | TXD | Transmit Data | Передача данных |
4 | 20 | DTR | Data Terminal Ready | Готовность оконечного оборудования |
5 | 7 | GND | System Ground | Общий провод |
6 | 6 | DSR | Data Set Ready | Готовность оборудования передачи |
7 | 4 | RTS | Request to Send | Запрос на передачу |
8 | 5 | CTS | Clear to Send | Готов передавать |
9 | 22 | RI | Ring Indicator | Наличие сигнала вызова |
Для работы с устройствами RS-232 обычно необходимо всего 3 контакта: RXD, TXD и GND. Но некоторые устройства требуют все 9 контактов для поддержки функции управления потоком передачи данных.
Структура передаваемых данных в RS-232
Одно сообщение, передаваемое по RS-232/422/485, состоит из стартового бита, нескольких бит данных, бита чётности и стопового бита.
Стартовый бит (start bit) - бит обозначающий начало передачи, обычно равен 0.
Данные (data bits) – 5, 6, 7 или 8 бит данных. Первым битом является менее значимый бит.
Бит четности (parity bit) – бит предназначенный для проверки четности. Служит для обнаружения ошибок. Может принимать следующие значения:
- Четность (EVEN), принимает такое значение, чтобы количество единиц в сообщении было четным
- Нечетность (ODD), принимает такое значение, чтобы количество единиц в сообщении было нечетным
- Всегда 1 (MARK), бит четности всегда будет равен 1
- Всегда 0 (SPACE), бит четности всегда будет равен 0
- Не используется (NONE)
Стоповый бит (stop bit) – бит означающий завершение передачи сообщения, может принимать значения 1, 1.5 (Data bit =5), 2.
Например, сокращение 8Е1 обозначает, что передается 8 бит данных, используется бит четности в режиме EVEN и стоп бит занимает один бит.
Управление потоком в RS-232
Для того чтобы не потерять данные существует механизм управления потоком передачи данных, позволяющий прекратить на время передачу данных для предотвращения переполнения буфера обмена.
Есть аппаратный и программный метод управления.
Аппаратный метод использует выводы RTS/CTS. Если передатчик готов послать данные, то он устанавливает сигнал на линии RTS. Если приёмник готов принимать данные, то он устанавливает сигнал на линии CTS. Если один из сигналов не установлен, то передачи данных не произойдет.
Программный метод вместо выводов использует символы Xon и Xoff (в ASCII символ Xon = 17, Xoff = 19) передаваемые по тем же линиям связи TXD/RXD, что и основные данные. При невозможности принимать данные приемник передает символ Xoff. Для возобновления передачи данных посылается символ Xon.
Как проверить работу RS-232?
При использовании 3 контактов достаточно замкнуть RXD и TXD между собой. Тогда все переданные данные будут приняты обратно. Если у вас полный RS-232, тогда вам нужно распаять специальную заглушку. В ней должны быть соединены между собой следующие контакты:
DB9 | DB25 | Соединить |
---|---|---|
1 + 4 + 6 | 6 + 8 + 20 | DTR -> CD + DSR |
2 + 3 | 2 + 3 | Tx -> Rx |
7 + 8 | 4 + 5 | RTS -> CTS |
Описание интерфейса RS-422
Интерфейс RS-422 похож на RS-232, т.к. позволяет одновременно отправлять и принимать сообщения по отдельным линиям (полный дуплекс), но использует для этого дифференциальный сигнал, т.е. разницу потенциалов между проводниками А и В.
Скорость передачи данных в RS-422 зависит от расстояния и может меняться в пределах от 10 кбит/с (1200 метров) до 10 Мбит/с (10 метров).
В сети RS-422 может быть только одно передающее устройство и до 10 принимающих устройств.
Линия RS-422 представляет собой 4 провода для приема-передачи данных (2 скрученных провода для передачи и 2 скрученных провода для приема) и один общий провод земли GND.
Скручивание проводов (витая пара) между собой позволяет избавиться от наводок и помех, потому что наводка одинаково действует на оба провода, а информация извлекается из разности потенциалов между проводниками А и В одной линии.
Напряжение на линиях передачи данных может находится в диапазоне от -6 В до +6 В.
Логическому 0 соответствует разница между А и В больше +0,2 В.
Логической 1 соответствует разница между А и В меньше -0,2 В.
Стандарт RS-422 не определяет конкретный тип разъема, обычно это может быть клеммная колодка или разъем DB9.
Распиновка RS-422 зависит от производителя устройства и указывается в документации на него.
При подключении устройства RS-422 нужно сделать перекрестие между RX и TX контактами, как показано на рисунке.
Т.к. расстояние между приемником и передатчиком RS-422 может достигать 1200 метров, то для предотвращения отражения сигнала от конца линии ставится специальный 120 Ом согласующий резистор или "терминатор". Этот резистор устанавливается между RX+ и RX- контактами в начале и в конце линии.
Как проверить работу RS-422?
Для проверки устройств с RS-422 лучше воспользоваться конвертером из RS-422 в RS-232 или USB (I-7561U). Тогда вы сможете воспользоваться ПО для работы с СОМ портом.
Описание интерфейса RS-485
В промышленности чаще всего используется интерфейс RS-485 (EIA-485), потому что в RS-485 используется многоточечная топология, что позволяет подключить несколько приемников и передатчиков.
Интерфейс RS-485 похож на RS-422 тем что также использует дифференциальный сигнал для передачи данных.
Существует два типа RS-485:
- RS-485 с 2 контактами, работает в режиме полудуплекс
- RS-485 с 4 контактами, работает в режиме полный дуплекс
В режиме полный дуплекс можно одновременно принимать и передавать данные, а в режиме полудуплекс либо передавать, либо принимать.
В одном сегменте сети RS-485 может быть до 32 устройств, но с помощью дополнительных повторителей и усилителей сигналов до 256 устройств. В один момент времени активным может быть только один передатчик.
Скорость работы также зависит от длины линии и может достигать 10 Мбит/с на 10 метрах.
Напряжение на линиях находится в диапазоне от −7 В до +12 В.
RS 232
RS-232 - это стандартный электрический интерфейс для последовательной передачи данных, поддерживающий асинхронную связь (RS - recommended standard - рекомендованный стандарт, 232 - его номер).
Этот стандарт соединения оборудования был разработан в 1969 году рядом крупных промышленных корпораций и опубликован Ассоциацией электронной промышленности США (Electronic Industries Association - EIA). Международный союз электросвязи ITU-T использует аналогичные рекомендации под названием V.24 и V.28.
Интерфейс RS-232 обеспечивает соединение двух устройств, одно из которых называется DTE (Data Terminal Equipment) - ООД (Оконечное Оборудование Данных) и второе - DCE (Data Communications Equipment) - ОПД (Оборудование Передачи Данных).
Как правило, DTE (ООД) - это компьютер, а DCE (ОПД) - это модем, хотя RS-232 использовался и для подключения к компьютеру периферийных устройств (мышь, принтер, прибор), и для соединения с другим компьютером или контроллером. Обозначения DTE и DCE используются в названиях сигналов интерфейса и помогают разобраться с описанием конкретной реализации.
Интерфейс RS-232 (стандарт EIA-232) использует 25 контактные разъемы DB и служит для подключения последовательных устройств DTE и DCE (как в синхронном, так и в асинхронном режиме). Существуют также варианты этого интерфейса для 26-контактного разъема UD-26 (EIA-232-E/RS-232E ALT A) и усеченный вариант — для 9-контактного DB-9 (EIA-574) и RJ-45 (EIA-561) наиболее распространенные в настоящее время.
Контакт |
Сигнал |
От устройства DCE |
К устройству DCE |
|
Передача (Transmitted Data, TD) |
||||
Прием (Received Data, RD) |
||||
Запрос на передачу (Request to Send, RTS) |
||||
Готовность к передаче (Clear to Send, CTS) |
||||
Готовность данных (Data Set Ready, DSR) |
||||
Сигнальная " земля " (Signal Gnd/Common Return) |
||||
Детектирование несущей (Rcvd. Line Signal Detector, CD, DCD) |
||||
Тестовое напряжение (+) |
||||
Тестовое напряжение (-) |
||||
Не используется |
||||
Детектирование несущей, возврат (Rcvd. Line Signal Detector, CD) |
||||
Готовность к передаче, возврат (Secondary Clear to Send) |
||||
Передача, возврат (Secondary Transmitted Data) |
||||
Прием, возврат (Secondary Received Data) |
||||
Тактирование приема (Receiver Sig. Element Timing, RSET) |
||||
Локальный шлейф (LL) |
||||
Запрос на передачу, возврат (Secondary Request to Send) |
||||
Готовность терминала (Data Terminal Ready, DTR) |
||||
Детектирование качества сигнала (Sig. Quality Detector) |
||||
Индикатор вызова (Ring Indicator) |
||||
Выбор скорости (Data Sig. Rate Selector (DCE)) |
||||
Тактирование передачи (Transmitter Sig. Element Timing, TSET) |
||||
Не используется |
D — данные, C — управление, T — синхронизация
Широко используемый последовательный интерфейс синхронной и асинхронной передачи данных, определяемый стандартом EIA RS-232-C и рекомендациями V.24 CCITT. Изначально создавался для связи центрального компьютера с терминалом. В настоящее время используется в самых различных применениях.
Интерфейс RS-232-C соединяет два устройства. Линия передачи первого устройства соединяется с линией приема второго и наоборот (полный дуплекс). Для управления соединенными устройствами используется программное подтверждение (введение в поток передаваемых данных соответствующих управляющих символов). Возможна организация аппаратного подтверждения путем организации дополнительных RS-232 линий для обеспечения функций определения статуса и управления.
Порядок обмена по интерфейсу RS- 232C
Наименование |
Направление |
Описание |
Контакт |
Контакт |
Carrier Detect |
||||
Receive Data |
||||
Transmit Data |
||||
Data Terminal Ready |
||||
System Ground |
||||
Data Set Ready |
||||
Request to Send |
||||
Clear to Send |
||||
Ring Indicator |
Интерфейс RS- 232C предназначен для подключения к компьютеру стандартных внешних устройств (принтера, сканера, модема, мыши и др.), а также для связи компьютеров между собой. Основными преимуществами использования RS- 232C по сравнению с Centronics являются возможность передачи на значительно большие расстояния и гораздо более простой соединительный кабель. В то же время работать с ним несколько сложнее. Данные в RS- 232C передаются в последовательном коде побайтно. Каждый байт обрамляется стартовым и стоповыми битами. Данные могут передаваться как в одну, так и в другую сторону (дуплексный режим).
Компьютер имеет 25-контактный (DB25) или 9-контактный (DB9) разъем для подключения RS- 232C . Назначение контактов разъема приведено в таблице.
Назначение сигналов следующее:
FG — защитное заземление (экран).
TxD — данные, передаваемые компьютером (логика отрицательная).
RxD — данные, принимаемые компьютером (логика отрицательная).
RTS(Request to Send) — сигнал запроса передачи. Активен во все время передачи.
CTS(Clear to Send) — сигнал сброса (очистки) для передачи. Активен во все время передачи. Говорит о готовности приемника.
DSR — готовность данных. Используется для задания режима модема.
SG — сигнальное заземление, нулевой провод.
DCD — обнаружение несущей данных (детектирование принимаемого сигнала).
DTR — готовность выходных данных.
RI — индикатор вызова. Говорит о приеме модемом сигнала вызова по телефонной сети.
Наиболее часто используются трех- или четырехпроводная связь (для двунапрaвленной передачи). Схема соединения для четырехпроводной линии связи показана на рисунке 1.1.
Для двухпроводной линии связи в случае только передачи из компьютера во внешнее устройство используются сигналы SG и TxD. Все 10 сигналов интерфейса задействуются только при соединении компьютера с модемом.
Формат передаваемых данных показан на рисунке 1.2. Собственно данные (5, 6, 7 или 8 бит) соопровождаются стартовым битом, битом четности и одним или двумя стоповыми битами. Получив стартовый бит, приемник выбирает из линии биты данных через определннные интервалы времени. Очень важно, чтобы тактовые частоты приемника и передатчика были одинаковыми, допустимое расхождение — не более 10%). Скорость передачи по RS- 232C может выбираться из ряда: 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200 бит/с.
Рис. 1.1 Схема 4-проводной линии связи для RS- 232C .
Все сигналы RS- 232C передаются специально выбранными уровнями, обеспечивающими высокую помехоустойчивость связи (рис.1.3.). Отметим, что данные передаются в инверсном коде (логической единице соответствует низкий уровень, логическому нулю — высокий уровень).
Для подключения произвольного УС к компьютеру через RS- 232C обычно используют трех- или четырехпроводную линию связи (см. рис. 1.1), но можно задействовать и другие сигналы интерфейса.
Рис. 1.2 Формат данных RS- 232C
Обмен по RS- 232C осуществляется с помощью обращений по специально выделенным для этого портам COM1 (адреса 3F8h…3FFh, прерывание IRQ4), COM2 (адреса 2F8h…2FFh, прерывание IRQ3), COM3 (адреса 3F8h…3EFh, прерывание IRQ10), COM4 (адреса 2E8h…2EFh, прерывание IRQ11). Форматы обращений по этим адресам можно найти в многочисленных описаниях микросхем контроллеров последовательного обмена UART (Universal Asynchronous Receiver/Transmitter), например, i8250, КР580ВВ51.
Рис.1.3 Уровни сигналов RS- 232C на передающем и принимающем концах линии связи.
Ключевые моменты:
1. Любая программа, способная обращаться к COM-портам c номерами от 5 и выше, скорее всего использует вызовы Windows API и потому есть большая вероятность того, что она будет работать и с USB’шным COM-портом.
2. Прикладная программа, работающая через специфические драйверы, может вызвать проблемы: "заказные" драйверы могут отсылать портам специальные команды, не распознаваемые Windows. Такая ситуация может не позволить обращаться к COM-порту через USB.
3. В случаях, когда прикладное ПО требует от пользователя указать адрес ввода-вывода и IRQ, есть большая вероятность того, что это ПО не распознает адаптер USB / RS232.
Оценка статьи:
Описание интерфейса RS-232, формат используемых разъемов и назначение выводов, обозначения сигналов, протокол обмена данными.
Общее описание
Интерфейс RS-232, совсем официально называемый "EIA/TIA-232-E", но более известный как интерфейс "COM-порта", ранее был одним из самых распространенных интерфейсов в компьютерной технике. Он до сих пор встречается в настольных компьютерах, несмотря на появление более скоростных и "интеллектуальных" интерфейсов, таких как USB и FireWare. К его достоинствам с точки зрения радиолюбителей можно отнести невысокую минимальную скорость и простоту реализации протокола в самодельном устройстве.
Физический интерфейс реализуется одним из двух типов разъемов: DB-9M или DB-25M, последний в выпускаемых в настоящее время компьютерах практически не встречается.
Назначение выводов 9-контактного разъема
9-контактная вилка типа DB-9M Нумерация контактов со стороны штырьков Направление сигналов указано относительно хоста (компьютера) |
|
Назначение выводов 25-контактного разъема
|
|
Из таблиц видно, что 25-контактный интерфейс отличается наличием полноценного второго канала приема-передачи (сигналы, обозначенные "#2"), а также многочисленных дополнительных управляющих и контрольных сигналов. Однако, часто, несмотря на наличие в компьютере "широкого" разъема, дополнительные сигналы на нем просто не подключены.
Электрические характеристики
Логические уровни передатчика: "0" - от +5 до +15 Вольт, "1" - от -5 до -15 Вольт.
Логические уровни приемника: "0" - выше +3 Вольт, "1" - ниже -3 Вольт.
входное сопротивление приемника не менее 3 кОм.Данные характеристики определены стандартом как минимальные, гарантирующие совместимость устройств, однако реальные характеристики обычно существенно лучше, что позволяет, с одной стороны, питать маломощные устройства от порта (например, так спроектированы многочисленные самодельные data-кабели для сотовых телефонов), а с другой - подавать на вход порта инвертированный TTL-уровень вместо двуполярного сигнала.
Описание основных сигналов интерфейса
CD - Устройство устанавливает этот сигнал, когда обнаруживает несущую в принимаемом сигнале. Обычно этот сигнал используется модемами, которые таким образом сообщают хосту о обнаружении работающего модема на другом конце линии.
RXD - Линия приема хостом данных от устройства. Подробно описана в разделе "Протокол обмена данными".
TXD - Линия передачи хостом данных к устройству. Подробно описана в разделе "Протокол обмена данными".
DTR - Хост устанавливает этот сигнал, когда готов к обмену данными. Фактически сигнал устанавливается при открытии порта коммуникационной программой и остается в этом состоянии все время, пока порт открыт.
DSR - Устройство устанавливает этот сигнал, когда включено и готово к обмену данными с хостом. Этот и предыдущий (DTR) сигналы должны быть установлены для обмена данными.
RTS - Хост устанавливает этот сигнал перед тем, как начать передачу данных устройству, а также сигнализирует о готовности к приему данных от устройства. Используется при аппаратном управлении обменом данными.
CTS - Устройство устанавливает этот сигнал в ответ на установку хостом предыдущего (RTS), когда готово принять данные (например, когда предыдущие присланные хостом данные переданы модемом в линию или есть свободное место в промежуточном буфере).
RI - Устройство (обычно модем) устанавливает этот сигнал при получении вызова от удаленной системы, например при приеме телефонного звонка, если модем настроен на прием звонков.
Протокол обмена данными
В протоколе RS-232 существуют два метода управления обменом данных: аппаратный и программный, а также два режима передачи: синхронный и асинхронный. Протокол позволяет использовать любой из методов управления совместно с любым режимом передачи. Также допускается работа без управления потоком, что подразумевает постоянную готовность хоста и устройства к приему данных, когда связь установлена (сигналы DTR и DSR установлены).
Аппаратный метод управления реализуется с помощью сигналов RTS и CTS. Для передачи данных хост (компьютер) устанавливает сигнал RTS и ждет установки устройством сигнала CTS, после чего начинает передачу данных до тех пор, пока сигнал CTS установлен. Сигнал CTS проверяется хостом непосредственно перед началом передачи очередного байта, поэтому байт, который уже начал передаваться, будет передан полностью независимо от значения CTS. В полудуплексном режиме обмена данными (устройство и хост передают данные по очереди, в полнодуплексном режиме они могут делать это одновременно) снятие сигнала RTS хостом означает его переход в режим приема.
Программный метод управления заключается в передаче принимающей стороной специальных символов остановки (символ с кодом 0x13, называемый XOFF) и возобновления (символ с кодом 0x11, называемый XON) передачи. При получении данных символов передающая сторона должна соответственно остановить передачу или возобновить ее (при наличии данных, ожидающих передачи). Этот метод проще с точки зрения реализации аппаратуры, однако обеспечивает более медленную реакцию и соответственно требует заблаговременного извещения передатчика при уменьшении свободного места в приемном буфере до определенного предела.
Синхронный режим передачи подразумевает непрерывный обмен данными, когда биты следуют один за другим без дополнительных пауз с заданной скоростью. Этот режим COM-портом не поддерживается .
Асинхронный режим передачи состоит в том, что каждый байт данных (и бит контроля четности, в случае его наличия) "оборачивается" синхронизирующей последовательностью из одного нулевого старт-бита и одного или нескольких единичных стоп-битов. Схема потока данных в асинхронном режиме представлена на рисунке.
Один из возможных алгоритмов работы приемника следующий:
- Ожидать уровня "0" сигнала приема (RXD в случае хоста, TXD в случае устройства).
- Отсчитать половину длительности бита и проверить, что уровень сигнала все еще "0"
- Отсчитать полную длительность бита и текущий уровень сигнала записать в младший бит данных (бит 0)
- Повторить предыдущий пункт для всех остальных битов данных
- Отсчитать полную длительность бита и текущий уровень сигнала использовать для проверки правильности приема с помощью контроля четности (см. далее)
- Отсчитать полную длительность бита и убедиться, что текущий уровень сигнала "1".