UART
Ця стаття не містить посилань на джерела. Ви можете допомогти поліпшити цю статтю, додавши посилання на надійні (авторитетні) джерела. Матеріал без джерел може бути піддано сумніву та вилучено. (грудень 2010) |
Цю статтю треба вікіфікувати для відповідності стандартам якості Вікіпедії. Будь ласка, допоможіть додаванням доречних внутрішніх посилань або вдосконаленням розмітки статті. (жовтень 2011) |
UART (англ. universal asynchronous receiver/transmitter — універсальний асинхронний приймач/передавач) — тип асинхронного приймача-передавача, компонентів комп'ютерів та периферійних пристроїв, що передає дані між паралельною та послідовною формами. UART звичайно використовується спільно з іншими комунікаційними стандартами, такими як EIA RS-232.
UART – це зазвичай окрема мікросхема чи частина мікросхеми, що використовується для з'єднання через комп'ютерний чи периферійний послідовний порт. UART нині загалом включені в мікроконтролери. Здвоєний UART (Dual UART або DUART) об'єднує двоє UART в одній мікросхемі. Багато сучасних мікросхем сьогодні випускаються з можливістю комунікації в синхронному режимі, такі прилади називають USART.
Визначення
Послідовні передача та приймання
Біти даних передаються з одного місця в інше через дроти або інші носії. Якщо мова йде про великі відстані, вартість дротів стає великою. Щоб зменшити вартість довгих комунікацій, що переносять кілька біт паралельно, біти даних передають послідовно один за одним, і використовують UART для перетворення паралельної форми на послідовну на кожному кінці лінії зв'язку. Кожен UART має зсувний регістр, який є фундаментальним методом для перетворення між паралельними та послідовними формами.
Зазвичай UART не отримує і не генерує зовнішні сигнали, які подорожують між різними частинами обладнання. Як правило, для перетворення логічного рівня UART в та з зовнішнього рівня сигналів використовується окремий інтерфейсний блок.
Зовнішній сигнал може мати багато різних форм. Прикладами стандартизованих напруг сигналу можуть служити RS-232, RS-422 чи RS-485 від EIA. Історично присутність або відсутність струму (в електричному колі) використовувалася в телеграфних схемах. Деякі ж сигнальні схеми не використовують електричних дротів. Як приклад можна навести оптоволокно, інфрачервоний зв'язок чи Bluetooth в своєму Serial Port Profile (SPP). Прикладами модуляції є аудіо сигнал телефонних модемів, РЧ модуляція даних, або DC-LIN для комунікацій по силових дротах.
Зв'язок може бути «дуплексним» (можливість одночасного приймання та передачі) або «напівдуплексним» (пристрої переключаються між режимами приймання та передачі).
UART широко використовується в інтерфейсі RS-232 для вбудованих систем комунікацій. Він використовується для зв'язку між мікроконтролерами і комп'ютером. Багато чипів забезпечують функціональність UART, та існують дешеві мікросхеми для конвертації логічного рівня сигналу (типу TTL) в сигнал рівня RS-232.
Асинхронні передача та приймання
Під час асинхроної передачі UART телетайпного типу посилає стартовий біт, потім від п'яти до восьми бітів даних, перший — найменш значимий, потім опціональний біт парності, і потім один, півтора чи два стопових біти. Стартовий біт надсилається в зворотній полярності до звичайного незайнятого стану ліній зв'язку. Стоповий біт відповідає незайнятому стану лінії і забезпечує паузу перед наступною порцією даних. Це зветься асинхронною старт-стоповою передачею. В механічних телетайпах стоповий біт часто був розтягнутим вдвічі, щоб дати можливість механізму надрукувати символ. Розтягнутий стоповий біт також допомагав при ресинхронізації. Біт парності перевіряє кількість одиниць між стартовим і стоповим бітами або парним та непарним, або ж цей біт може бути відсутнім. Непарна перевірка надійніша, бо вона може засвідчити, що принаймні одна одиниця передалася, а це дозволяє багатьом UART пересинхронізуватися. В синхронній передачі частота тактового генератора відновлюється окремо з потоку даних і старт-стопові біти не використовуються. Це покращує ефективність каналу зв'язку для надійних ліній, також надсилається більше корисних даних. Асинхронна передача не посилає нічого, коли нема що передавати. Натомість синхронний інтерфейс має завжди посилати якісь дані, щоб підтримувати синхронізацію між передавачем і приймачем. Як заповнювач порожнечі часто використовується ASCII-символ «SYN», це робиться автоматично передавачем.
Чипи USART мають синхроний та асинхроний режими.
Структура
UART звичайно складається з наступних компонентів:
- тактовий генератор, частота якого як правило кратна бітрейту, щоб дозволити дискретизацію на середину циклу передачі біта.
- зсувні регістри вводу та виводу
- схему контролю передачі/приймання
- логіка контролю читання/запису
- буфери передачі/приймання (опціонально)
- буфер паралельної шини даних (опціонально)
- пам'ять буфера стека FIFO (опціонально)
Модуль приймання потоку
Модуль — це регістр змін, перевірки парності та отримання FIFO. Реєстри зсуву, підключені до проводів RXD, використовуються для перетворення вхідних послідовних даних у паралельні дані, які будуть відправлені перевіряючими парності, як тільки буде отриманий правильний кадр, і вони також перевіряють цілісність кадрів. Паритети перевірки паритету використовуються для здійснення перевірки парності, якщо це необхідно, та інформують FIFO, чи приймають FIFO, чи правильні кадри прийому.[що?] Приймаючі FIFO будуть зберігати дані, які були правильно отримані, поки мікропроцесор не має намір їх прочитати.
Модуль відправляючого потоку
Модуль надсилає FIFO, для перевірки парності та регістра зсуву. Відправляючі FIFO зберігатимуть дані, надіслані з мікропроцесора, поки ще є дані, що передаються по проводах TXD. Тут перевіряють парність, щоб прикріпити біти старту та зупинки до кадрів, що надходять, а також для заповнення біта каси в кадри, якщо це необхідно. Потім кадри будуть надсилатись послідовно реєстраторами зсуву через провід TXD.
Інші компоненти
Генератор швидкостей передачі даних генерує різні тактові частоти передачі, які використовуються як орієнтири часу в передачі UART. Інтерфейс процесора управляє зв’язком, включаючи управління шинами, перериваннями, зчитуванням сигналу, сигналом запису тощо, між мікропроцесором і контролером. Контролер переривання бере на себе відповідальність за управління запитами на переривання, що генеруються кожним каналом, та відправленням їх у мікропроцесор на основі певних принципів.[1]
Посилання
- ↑ HU Zhe, ZHANG Jun,LUO Xi-ling (2007). Chinese Journal of Aeronautics (English) . National Natural Science Foundation of China. с. 67.