- Види протоколів зв'язку
- Режими передачі в послідовному зв'язку
- Синхронізація годинника
- Інші терміни, пов’язані з послідовним зв’язком
- Синхронні послідовні протоколи
- Асинхронні послідовні протоколи
- Висновок
Перш ніж починати з протоколів послідовного зв'язку, давайте розберемо термінологію на три частини. Зв'язок дуже добре відома термінологію, яка включає в себе обмін інформацією між двома або більш середовищ. У вбудованих системах комунікація означає обмін даними між двома мікроконтролерами у формі бітів. Цей обмін бітами даних у мікроконтролері здійснюється за деяким набором визначених правил, відомих як протоколи зв'язку. Тепер, якщо дані надсилаються послідовно, тобто один за одним, тоді протокол зв'язку відомий як протокол послідовного зв'язку. Більш конкретно, біти даних передаються по черзі послідовно по шині даних або каналу зв'язку в послідовному зв'язку.
Види протоколів зв'язку
У цифровій електроніці доступні різні типи передачі даних, такі як послідовний зв’язок та паралельний зв’язок. Подібним чином протоколи поділяються на два типи, такі як Протокол послідовного зв'язку та Протоколи паралельного зв'язку. Прикладами протоколів паралельного зв'язку є ISA, ATA, SCSI, PCI та IEEE-488. Так само є кілька прикладів протоколів послідовного зв'язку, таких як CAN, ETHERNET, I2C, SPI, RS232, USB, 1-Wire та SATA тощо.
У цій статті будуть розглянуті різні типи протоколів послідовного зв'язку. Послідовний зв’язок є найбільш широко застосовуваним підходом для передачі інформації між периферійними пристроями для обробки даних. Кожен електронний пристрій, будь то персональний комп'ютер (ПК) або мобільний, працює на послідовному зв'язку. Протокол - це безпечна та надійна форма зв'язку, що має набір правил, до яких звертаються джерело-хост (відправник) та хост-адресат (приймач), подібні паралельному зв'язку.
Режими передачі в послідовному зв'язку
Як вже було сказано вище, при послідовному зв'язку дані надсилаються у вигляді бітів, тобто двійкових імпульсів, і добре відомо, що двійковий представляє логіку ВИСОКО, а нуль - логіку НИЗЬКИЙ. Існує кілька типів послідовного зв'язку залежно від типу режиму передачі та передачі даних. Режими передачі класифікуються на симплекс, напівдуплекс та повний дуплекс.
Симплексний метод:
У симплексному методі одночасно може бути активним будь-який із середовищ, тобто відправник або одержувач. Отже, якщо відправник передає дані, то одержувач може приймати лише і навпаки. Тож симплексний метод - це техніка одностороннього спілкування. Відомими прикладами симплексного методу є телебачення і радіо.
Напівдуплексний метод:
У напівдуплексному методі і відправник, і одержувач можуть бути активними, але не одночасно. Отже, якщо відправник передає, то приймач може прийняти, але не може відправити, і так само навпаки. Відомими прикладами напівдуплексу є Інтернет, де користувач надсилає запит на дані, а отримує їх із сервера.
Повнодуплексний метод:
У повнодуплексному методі і приймач, і передавач можуть одночасно надсилати дані один одному. Відомий приклад - мобільний телефон.
Окрім цього, для відповідної передачі даних годинник відіграє важливу роль, і він є одним з основних джерел. Несправність годинника призводить до несподіваної передачі даних, навіть іноді втрати даних. Отже, синхронізація годинника стає дуже важливою при використанні послідовного зв’язку.
Синхронізація годинника
Годинник відрізняється для послідовних пристроїв, і він класифікується на два типи, а саме. Синхронний послідовний інтерфейс та асинхронний послідовний інтерфейс.
Синхронний послідовний інтерфейс:
Це точковий зв’язок від ведучого до веденого. У цьому типі інтерфейсу всі пристрої використовують єдину шину процесора для обміну даними та годинником. Передача даних стає швидшою за допомогою тієї ж шини для спільного використання годинника та даних. Крім того, в цьому інтерфейсі немає невідповідності швидкості передачі даних. На стороні передавача відбувається зсув даних на послідовну лінію, забезпечуючи годинник як окремий сигнал, оскільки до даних не додаються біти запуску, зупинки та парності. На стороні приймача дані витягуються за допомогою годинника, що надається передавачем, і перетворює послідовні дані назад у паралельну форму. Відомими прикладами є I2C та SPI.
Асинхронний послідовний інтерфейс:
В асинхронному послідовному інтерфейсі зовнішній тактовий сигнал відсутній. Асинхронні послідовні інтерфейси можна побачити в основному в міжміських програмах і ідеально підходять для стабільного зв'язку. В асинхронному послідовному інтерфейсі відсутність зовнішнього джерела годинника змушує його покладатися на кілька параметрів, таких як управління потоком даних, контроль помилок, контроль швидкості передачі даних, контроль передачі та контроль прийому. З боку передавача відбувається переміщення паралельних даних на послідовну лінію за допомогою власного годинника. Також він додає біти запуску, зупинки та перевірки парності. На стороні приймача приймач витягує дані за допомогою власного годинника та перетворює послідовні дані назад у паралельну форму після зняття бітів запуску, зупинки та паритету. Відомими прикладами є RS-232, RS-422 та RS-485.
Інші терміни, пов’язані з послідовним зв’язком
Окрім синхронізації годинника, є деякі речі, про які слід пам’ятати при послідовній передачі даних, наприклад, швидкість передачі даних, вибір бітів даних (обрамлення), синхронізація та перевірка помилок. Давайте коротко обговоримо ці терміни.
Швидкість передачі даних: Швидкість передачі даних - це швидкість передачі даних між передавачем і приймачем у вигляді бітів в секунду (біт / с). Найбільш часто використовувана швидкість передачі - 9600. Але є й інші варіанти швидкості передачі, такі як 1200, 2400, 4800, 57600, 115200. Чим більше швидкість передачі даних буде жирами, дані будуть передаватися за раз. Також для передачі даних швидкість передачі даних повинна бути однаковою як для передавача, так і для приймача.
Фреймінг: Фреймінг називається кількістю бітів даних, що надсилаються від передавача до приймача. Кількість бітів даних різниться у випадку застосування. Більшість програм використовує 8 біт як стандартні біти даних, але його також можна вибрати як 5, 6 або 7 бітів.
Синхронізація: Біти синхронізації важливі для вибору частини даних. Він повідомляє про початок і кінець бітів даних. Передавач встановлює біти запуску та зупинки для кадру даних, а приймач ідентифікує його відповідно та виконує подальшу обробку.
Контроль помилок: Контроль помилок відіграє важливу роль під час послідовного зв'язку, оскільки існує безліч факторів, які впливають і додають шум у послідовному зв'язку. Щоб позбутися цієї помилки, використовуються біти парності, де парність перевіряє парність і непарність. Отже, якщо фрейм даних містить парне число 1, тоді він відомий як парне парність, а біт парності в регістрі встановлюється як 1. Аналогічно, якщо фрейм даних містить непарне число 1, тоді він відомий як непарна парність і очищає непарний біт парності в реєстрі.
Протокол - це подібно до загальної мови, яку система використовує для розуміння даних. Як описано вище, протокол послідовного зв'язку поділяється на типи, тобто синхронний та асинхронний. Тепер обидва будуть детально обговорені.
Синхронні послідовні протоколи
Синхронний тип послідовних протоколів, такі як SPI, I2C, CAN і LIN використовується в різних проектах, тому що це один з кращих ресурсів для вбудованих периферійних пристроїв. Також це широко використовувані протоколи у основних додатках.
Протокол SPI
Послідовний периферійний інтерфейс (SPI) - це синхронний інтерфейс, який дозволяє з'єднати кілька мікроконтролерів SPI. У SPI для передачі даних та тактової лінії потрібні окремі дроти. Крім того, годинник не входить до потоку даних і повинен бути представлений як окремий сигнал. SPI може бути налаштований як ведучий, так і як ведений. Чотири основних сигнали SPI (MISO, MOSI, SCK та SS), Vcc та Ground є частиною передачі даних. Отже, йому потрібно 6 проводів для надсилання та отримання даних від підлеглого або головного. Теоретично SPI може мати необмежену кількість рабів. Передача даних налаштована в регістрах SPI. SPI може забезпечувати швидкість до 10 Мбіт / с і ідеально підходить для високошвидкісного передавання даних.
Більшість мікроконтролерів мають вбудовану підтримку SPI і можуть бути підключені безпосередньо до пристрою, що підтримує SPI:
- SPI-зв'язок з мікроконтролером PIC16F877A
- Як використовувати комунікацію SPI в мікроконтролері STM32
- Як використовувати SPI в Arduino: Зв'язок між двома платами Arduino
Послідовний зв’язок I2C
Дворядна комунікація між інтегральною схемою (I2C) між різними мікросхемами або модулями, де двома лініями є SDA (послідовна лінія даних) і SCL (послідовна лінія годинника). Обидві лінії повинні бути підключені до позитивного джерела живлення за допомогою підтягуючого резистора. I2C може забезпечувати швидкість до 400 Кбіт / с, і він використовує 10-бітну або 7-бітну систему адресації для націлювання на певний пристрій на шині i2c, щоб він міг підключити до 1024 пристроїв. Він має обмежену довжину зв'язку та ідеально підходить для спілкування на борту. Мережі I2C прості в налаштуванні, оскільки вони використовують лише два дроти, а нові пристрої можна просто підключити до двох загальних ліній шини I2C. Так само, як SPI, мікроконтролер зазвичай має висновки I2C для підключення будь-якого пристрою I2C:
- Як використовувати зв’язок I2C у мікроконтролері STM32
- Зв'язок I2C з мікроконтролером PIC16F877
- Як використовувати I2C в Arduino: Зв'язок між двома платами Arduino
USB
USB (Universal Serial Bus) - це широко протокол з різними версіями та швидкодіями. До одного хост-контролера USB можна підключити максимум 127 периферійних пристроїв. USB діє як пристрій "підключи і працюй". USB використовуються майже на таких пристроях, як клавіатури, принтери, мультимедійні пристрої, камери, сканери та миша. Він розроблений для простоти встановлення, швидшого обміну даними, меншої кількості кабелів та гарячої заміни. Він замінив громіздкіші та повільніші послідовні та паралельні порти. USB використовує диференціальну сигналізацію, щоб зменшити перешкоди та дозволити високошвидкісну передачу на велику відстань.
Диференціальна шина побудована з двома дротами, одна з яких представляє передані дані, а інша - її доповнення. Ідея полягає в тому, що `` середня '' напруга на проводах не несе ніякої інформації, що призводить до менших перешкод. У USB пристрої можуть отримувати певну кількість енергії, не запитуючи хоста. USB використовує лише два дроти для передачі даних і швидший, ніж послідовний та паралельний інтерфейс. Версії USB підтримують різні швидкості, такі як 1,5 Мбіт / с (USB v1.0), 480 Мбіт / с (USB2.0), 5 Гбіт / с (USB v3.0). Довжина окремого кабелю USB може досягати 5 метрів без концентратора та 40 метрів з концентратором.
МОЖЕ
Мережа контролера (CAN) використовується, наприклад, у автомобілебудуванні, щоб забезпечити зв'язок між ЕБУ (блоками управління двигуном) та датчиками. Протокол CAN надійний, недорогий і заснований на повідомленнях і охоплює багато додатків - наприклад, автомобілі, вантажівки, трактори, промислові роботи. Система шини CAN дозволяє централізовано діагностувати помилки та конфігурувати всі ЕБУ. Повідомлення CAN мають пріоритет через ідентифікатори, так що ідентифікатори з найвищим пріоритетом не перериваються. Кожен ECU містить чіп для прийому всіх переданих повідомлень, вирішує відповідність і діє відповідно - це дозволяє легко модифікувати та включати додаткові вузли (наприклад, реєстратори даних шини CAN). Програми включають запуск / зупинку транспортних засобів, системи запобігання зіткненням. Системи шини CAN можуть забезпечувати швидкість до 1 Мбіт / с.
Мікропровід
MICROWIRE - це послідовний 3-провідний інтерфейс 3 Мбіт / с, по суті, підмножина інтерфейсу SPI. Microwire - це послідовний порт вводу-виводу на мікроконтролерах, тому шина Microwire також буде знайдена на EEPROM та інших периферійних чіпах. 3 рядки - SI (послідовний вхід), SO (серійний вихід) і SK (послідовний годинник). Послідовний вхід (SI) до мікроконтролера, SO - послідовний вихідний рядок, а SK - послідовний тактовий сигнал. Дані переміщуються по нижньому краю SK і оцінюються по висхідному краю. SI переміщується на вищий край SK. Додаткове покращення шини до MICROWIRE називається MICROWIRE / Plus. Основна відмінність між двома шинами, здається, полягає в тому, що архітектура MICROWIRE / Plus всередині мікроконтролера є більш складною. Він підтримує швидкість до 3 Мбіт / с.
Асинхронні послідовні протоколи
Асинхронний тип послідовних протоколів дуже важливий, коли мова йде про надійну передачу даних на великі відстані. Асинхронне спілкування не вимагає синхронізатора, який є загальним для обох пристроїв. Кожен пристрій самостійно прослуховує та передає цифрові імпульси, що представляють біти даних із узгодженою швидкістю. Асинхронний послідовний зв’язок іноді називають послідовно транзисторно-транзисторною логікою (TTL), де рівень високої напруги є логікою 1, а низька напруга дорівнює логіці 0. Майже кожен мікроконтролер на ринку сьогодні має принаймні один універсальний асинхронний приймач - Передавач (UART) для послідовного зв'язку. Прикладами є RS232, RS422, RS485 тощо.
RS232
RS232 (рекомендований стандарт 232) є дуже поширеним протоколом, що використовується для підключення різних периферійних пристроїв, таких як монітори, ЧПУ тощо. RS232 - топологія точок-точка з підключеним максимум одним пристроєм і охоплює відстань до 15 метрів при 9600 біт / с. Інформація про інтерфейс RS-232 передається в цифровому вигляді за допомогою логічних 0 і 1. Логічний "1" (MARK) відповідає напрузі в діапазоні від -3 до -15 В. Логічний "0" (ПРОБІЛ) відповідає напруга в діапазоні від +3 до +15 В. Він поставляється в роз'ємі DB9, який має 9 розпіровок, таких як TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND.
RS422
RS422 схожий на RS232, який дозволяє одночасно надсилати та отримувати повідомлення на окремих лініях, але використовує для цього диференціальний сигнал. У мережі RS-422 може бути лише один передавальний пристрій і до 10 приймальних пристроїв. Швидкість передачі даних у RS-422 залежить від відстані і може варіюватися від 10 кбіт / с (1200 метрів) до 10 Мбіт / с (10 метрів). Лінія RS-422 - це 4 дроти для передачі даних (2 скручені дроти для передачі та 2 скручені дроти для прийому) і один загальний провід заземлення GND. Напруга на лініях передачі даних може бути в діапазоні від -6 В до +6 В. Логічна різниця між А і В перевищує +0,2 В. Логічна 1 відповідає різниці між А і В менше -0,2 В. Стандарт RS-422 не визначає конкретний тип роз'єму, зазвичай це може бути клемна колодка або роз'єм DB9.
RS485
Оскільки RS485 використовує багатоточкову топологію, вона найбільше використовується у галузях промисловості та є найкращим протоколом у галузі. RS422 може підключити 32 лінійні драйвери та 32 приймачі в диференціальній конфігурації, але за допомогою додаткових ретрансляторів та підсилювачів сигналу до 256 пристроїв. RS-485 не визначає конкретний тип роз'єму, але часто це клемний блок або роз'єм DB9. Швидкість роботи також залежить від довжини лінії і може досягати 10 Мбіт / с на 10 метрів. Напруга на лініях знаходиться в діапазоні від -7 В до +12 В. Існує два типи RS-485, такі як напівдуплексний режим RS-485 з 2 контактами і повнодуплексний режим RS-485 з 4 контактами. Щоб дізнатись більше про використання RS485 з іншими мікроконтролерами, перевірте посилання:
- Послідовний зв’язок RS-485 MODBUS із використанням Arduino UNO як веденого пристрою
- Послідовний зв’язок RS-485 між Raspberry Pi та Arduino Uno
- Послідовний зв’язок RS485 між Arduino Uno та Arduino Nano
- Послідовний зв’язок між STM32F103C8 та Arduino UNO за допомогою RS-485
Висновок
Послідовний зв’язок - одна з широко використовуваних систем інтерфейсу зв’язку в електроніці та вбудованих системах. Швидкість передачі даних може бути різною для різних додатків. Протоколи послідовного зв'язку можуть відігравати вирішальну роль при роботі з подібними програмами. Тому вибір правильного послідовного протоколу стає дуже важливим.