Протоколи обміну даними rs 232. Розпинування COM порту (RS232)

Протоколи обміну даними rs 232. Розпинування COM порту (RS232)

Під позначеннями RS-232, RS-422 та RS-485 розуміються інтерфейси для цифрової передачі даних. Стандарт RS-232 більш відомий як звичайний СОМ порт комп'ютера або послідовний порт (хоча послідовним портом можна вважати Ethernet, FireWire і USB). Інтерфейси RS-422 та RS-485 широко застосовуються в промисловості для з'єднання різного обладнання.

У таблиці наведено основні відмінності інтерфейсів RS-232, RS-422 та RS-485.

НазваRS-232RS-422RS-485
Тип передачіПовний дуплексПовний дуплексНапівдуплекс (2 дроти), повний дуплекс (4 дроти)
Максимальна дистанція15 метрів за 9600 біт/с1200 метрів за 9600 біт/с1200 метрів за 9600 біт/с
Задіяні контактиTxD, RxD, RTS, CTS, DTR, DSR, DCD, GND*TxA, TxB, RxA, RxB, GNDDataA, 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.

DB9DB25ПозначенняНазваОпис
1 8 CDCarrier DetectВиявлення несучої
2 3 RXDReceive DataПрийом даних
3 2 TXDTransmit DataПередача даних
4 20 DTRData Terminal ReadyГотовність кінцевого обладнання
5 7 GNDSystem GroundЗагальний провід
6 6 DSRData Set ReadyГотовність обладнання передачі
7 4 RTSRequest to SendЗапит на передачу
8 5 CTSClear to SendГотовий передавати
9 22 RIRing 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, тоді вам потрібно розпаяти спеціальну заглушку. У ній мають бути з'єднані між собою такі контакти:

DB9DB25З'єднати
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 В.

Сигнали та контакти інтерфейсу RS232
Роз'єм 9-ти
піновий #
Роз'єм 25
піновий #
Позначення Повне найменування Напрямок Що означає
Передача даних (Transmit Data) Передача даних від комп'ютера
Прийом даних (Receive Data) Прийом даних комп'ютером
Запит на передачу (Request to Send)
Готовність передачі (Clear to Send) Апаратний контроль передачі даних типу RTS/CTS
Готовність джерела даних (Data Set Ready) Я готовий для обміну даними
Готовність приймача даних (Data Terminal Ready) Я готовий для обміну даними
Наявність несучої (Carrier Detect) Один модем з'єднаний з іншим
Сигнал дзвінка (Ring Indicator) Дзвінок (дзвінок) на телефонній лінії
Земля

Примітка: DCD іноді маркується як CD

Сигнали можуть мати інше значення

Тільки 3 контакти з 9 мають строго певне значення: передача, прийом та земля. Це апаратні лінії і ви не можете вплинути на зміну призначення. Але всі інші сигнальні лінії управляються програмно і можуть бути (або мається на увазі що можуть) здебільшого іншого призначення. Однак вони можуть приймати тільки два стани: високий (встановлений) (+12 вольт) і низький (скинутий) (-12 вольт). Встановлений стан це "ввімкнено" і скинутий стан "вимкнено". Для прикладу, Advanced Serial Port Monitor (або точніше користувач програми) може керувати сигналом DTR, апаратна частина в свою чергу подає на нього напруга 12 вольт з тією чи іншою полярністю. Модем (або інший пристрій), який приймає сигнал DTR, може інтерпретувати його по-різному. В одному випадку модем (залежно від моделі та прошивки) може зайняти телефонну лінію, якщо сигнал DTR скинутий. В іншому випадку модем проігнорувати сигнал DTR у скинутому стані.

Це стосується всіх 6-ти сигнальних ліній. Апаратна частина тільки посилає та приймає ці сигнали, але дія залежить (якщо вона взагалі є) від програми (наприклад, Advanced Serial Port Monitor) та конфігурації того обладнання, яке ви підключаєте до послідовного порту.

Кабельні з'єднання між послідовними портами

Робота за послідовним інтерфейсом має свої переваги. Однією з причин є те, що всі сигнали односпрямовані. Якщо контакт 2 надсилає дані (і не дозволяє приймати інші сигнали) то очевидно, що не можна приєднати до контакту 2 контакт того ж типу. Якщо ви все ж таки зробите це, то ви не зможете не відсилати, ні приймати сигнали по цій лінії. Є два різних способівз'єднання пристроїв. Один з них має на увазі з'єднання двох пристроїв різного типу, коли контакт №2 одного надсилає дані на контакт №2 другого (який приймає цей сигнал). Це шлях, коли ви з'єднуєте комп'ютер (DTE) та модем (DCE). Також існує другий шлях, в якому пристрої можуть бути одного типу: з'єднайте контакт відправки даних №2 з контактом №3, що приймають дані пристрою того ж типу. Це шлях, коли можна з'єднувати два комп'ютери (DTE-DTE). Тип кабелю, використовуваний у цьому випадку називається null-modem cable (нуль-модемний кабель), оскільки він з'єднує два комп'ютери без використання модемів. Нуль-модемний іноді називають перевернутим кабелем, т.к. дроти між контактами 2 і 3 ідуть навпаки. Приклад вище наведено для контактів 25 контактного роз'єму, але також відповідно можна використовувати і 9 контактний роз'єм.

Контроль передачі даних типу RTS/CTS та DTR/DSR

Це званий " апаратний " контроль передачі. Контроль передачі даних був більш детально розкритий на іншій сторінці в розділі "Контроль передачі даних" , проте контакти і сигнали не були описані. Advanced Serial Port Monitor підтримує RTS/CTS та DTR/DSR типи апаратного контролю передачі даних. Тільки RTS/CTS тип контролю передачі даних буде розглянутий тут, оскільки DTR/DSR тип контролю передачі даних функціонує за тим же принципом. Для того, щоб активувати RTS/CTS контроль передачі даних, необхідно лише вибрати цю опцію в налаштуваннях Advanced Serial Port Monitor .

Отже, якщо DTE пристрій (такий як комп'ютер) хоче припинити передачу даних, воно скидає стан RTS сигналу. Скинутий сигнал "Запит на передачу" (-12 вольт) означає "не надсилати запити до мене" (припинити передачу). Коли комп'ютер готовий прийняти чергового блоку даних він встановлює сигнал RTS (+12 вольт) і потік даних відновлюється. Сигнали контролю передачі завжди посилаються в протилежному напрямку від потоку даних контроль яких вони здійснюють. DCE пристрої (модеми) працюють за тим самим принципом, тільки посилають сигнал на контакті CTS. Тому тип контролю передачі даних RTS/CTS використовує 2 лінії (дроти).

Строго кажучи, кабель 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. Він є стандартним інтерфейсом, на одному з кінців якого використовується

При такому способі дані передаються послідовно по одному дроту біт за бітом. Формат посилки - 1 байт даних, а також деяка кількість контрольних біт, при цьому не всі обов'язково повинні бути присутніми при передачі.

Обмін інформацією між периферійним пристроємі комп'ютером за інтерфейсом RS232 двосторонній, тому дані можуть зчитуватися комп'ютером з периферійного пристрою, так і відправлятися комп'ютером в периферійний пристрій.

У більшості комп'ютерів встановлено спеціальний комунікаційний роз'єм (COM-порт); у деяких комп'ютерах може бути два (СОМ1 та COM2) або більше COM-портів. До порту комп'ютера підключається кабель даних зв'язку з периферійним пристроєм. Кабель складається з кількох провідників, які називаються лініями послідовного інтерфейсу.

На рис. 1 показаний формат даних, що надсилаються лінії даних TxD інтерфейсу RS232. Як видно з малюнка, передача починається зі стартового біта, потім передається від п'яти до восьми біт даних, далі слідує необов'язковий біт паритету або парності і завершують передачу один або два стопові біти. Насправді найчастіше використовується 8 біт даних; два стоп-біти (для більшої надійності при високих швидкостях обміну).

Стан лінії інтерфейсу RS232 за відсутності передачі називається Mark (позначка), стан лінії на початку передачі (стартовий біт) - Space (пробіл). Низький рівень напруги щодо "землі" на лінії в стані Mark відповідає від -3 до -15 В, високий рівень напруги лінії в стані Space - від +3 до +15 В. В інтервалі -3...+3 визначено. На практиці найчастіше високий рівень напруги становить близько +10 В, низький - близько -10 В. Іноді напруги можуть бути зменшені відповідно до +5 і -5 В. Такі значення використовуються, коли від інтерфейсу не потрібна висока швидкість передачі, а пристрій, яке обмінюється даними з комп'ютером по лінії RS232, має автономне живлення від батареї та критично до витрати енергії.

Щоб уникнути плутанини, домовимося умовно називати логічним нулем низький рівень напруги на лінії інтерфейсу у стані Mark (-10 В) та логічною одиницею – високий рівень на лінії у стані Space (+10 В). Такі рівні логічного нуля та одиниці не відповідають стандартним. По-перше, стандартний високий TTL-рівень, або логічна одиниця, відповідає +5, низький рівень, або логічний нуль, відповідає 0 В. Можна побачити явну аналогію за відповідними рівнями напруг. По-друге, при подачі високого рівня TTL (логічна одиниця) на вхід передавача RS232 на його виході отримуємо низький рівень напруги (логічний нуль). Тому досить часто стан Mark називають логічною одиницею, що може призвести до плутанини. І, нарешті, по-третє, при програмуванні інтерфейсу RS232 у комп'ютері, наприклад, для встановлення на лінії DTR високого рівнянапруги, необхідно встановити біт, керуючий лінією DTR, 1 (out 3fch,l).

Крім рівнів напруги лінії інтерфейсу RS232 важливою характеристикоютакож є швидкість змін станів з логічної одиниці на логічний нуль і назад, тобто. тривалістю фронту та тривалістю спаду сигналу. Значення тривалості пов'язані зі швидкістю обміну, яка вимірюється в бітах на секунду (або бодах). Максимальна можлива швидкість обміну по лінії RS232 становить 115 200 бод (для комп'ютера). Якщо використовується пакет з 8 біт даних без контролю за паритетом і одним стоповим бітом, то разом зі стартовим бітом такий пакет складатиметься з 10 біт. Неважко підрахувати, що в цьому випадку час передачі кожного біта дорівнюватиме близько 8,68 мкс. У відповідних довідкових даних - dataheet виробники мікросхем - перетворювачів рівнів RS232 вказують швидкість обміну конкретної моделіперетворювач, або швидкість зміни сигналів з логічної одиниці в логічний нуль і назад. Значення цієї швидкості в більшості випадків має бути більшим або дорівнює 30 В/мкс.

Ось як здійснюється передача лінії одного імпульсу, тривалість якого відповідає часу передачі 1 біта при швидкості обміну 115200 бод. При рівнях логічної одиниці та логічного нуля відповідно +10 і -10 В та швидкості зміни станів лінії з логічного нуля в логічну одиницю і назад, що дорівнює 30 В/мкс, тривалість фронту та спаду імпульсу дорівнюватиме (кожна) близько 0,67 мкс ( у сумі 1,33 мкс). Таким чином, тривалість стану лінії в логічній одиниці буде 8,68 - 1,33 = 7,35 мкс, що відповідатиме приблизно 84,7% тривалості всього імпульсу. Перевищення тривалостей фронту та спаду імпульсу і, як наслідок, зменшення даного відсоткового співвідношення може призвести до зриву обміну та втрати даних.

Необхідно відзначити, що далеко не всі мікросхеми - перетворювачі рівнів інтерфейсів RS232 здатні забезпечити таку високу швидкість обміну даними, хоча деякі мікросхеми можуть працювати навіть швидше, передаючи дані на швидкостях до 460 кбод. Ще одна особливість полягає в тому, що високу швидкість обміну даних в 115 кбод можуть забезпечити лише високошвидкісні оптрони (якщо йдеться про гальванічні розв'язки). Насправді у промислових пристроях найчастіше використовуються такі швидкості обміну: 9600, 115200 і 57600 бод.

Розпинування - розташування контактів у гніздах RS-232 DB9 та DB25.

Стандартні адреси для COM портів: COM1=3f8h, COM2=2f8h, COM3=3e8h, COM4=2e8h. COM1 займає адресний простір від 3f8h до 3ffh

Встановлення швидкості обміну. У порт з адресою 3fbh записуємо байт 80h, потім 3f8h - молодший байт дільника максимально можливої ​​швидкості 115200, далі в порт 3f9h старший байт дільника. Старший байт використовується рідко та служить для встановлення малих швидкостей.

Дізнайтесь умови проведення налагодження автоматики, надіславши запит на

Час виконання запиту: 0,00202894210815 секунд.

 

 

Це цікаво: