UART

Автор: | 25.12.2013

UART

В разных источниках трудно отследить точное определение термину UARTУниверсальный асинхронный приёмопередатчик (УАПП, Universal Asynchronous Receiver-Transmitter) Где то написано, что это “узел вычислительных устройств, предназначенный для связи с другими цифровыми устройствами”, иногда написано, что это интерфейс, порт, протокол и т.п. UART появился очень давно, и не был стандартизирован, но самое главное, что его выделяет – это логика работы UART. Гораздо важней как UART сформировал будущее физической реализации своих потомков, которые существуют и поныне, и несмотря на заверения различных источников (в том числе и Википедии) не собираются сдавать позиции ни на шаг.

Какие же существуют физические реализации UART ? RS-485 (токовая петля), RS-232, ISO/IEC 7816, IrDA (инфракрасный порт, где информация передаётся не по проводам, а светом) и др. Все эти стандарты имеют одинаковую логику работы UART, а отличаются лишь физическим способом передачи информации. К примеру, сам UART – имеет уровни напряжения 5В, RS-232  +/- 12В, а
IrDA вообще использует свет. Есть физические реализации, где используются радиоволны. Но всё их объединяет – логика работы, которой очень много лет, но которая настолько удобна, что никто её не помышляет менять и давно стандартизировали.

Давайте рассмотрим как соединяются два устройства UART. Да, именно два, только одно устройство с другим. Сразу же оговорюсь, что существуют работоспособные реализации, когда одно устройство UART может работать с несколькими такими же, но это всё квази и псевдо) (Помните КвазиСтерео? 🙂 )


uart_rx-txКаждое из устройств UART имеет два главных провода (пина, шины) – RX (Receive – принимать) и TX (TRansmit – передавать). Логика проста, провод передачи одного устройства соединяется с проводом приёма другого. Иначе – это как ухо одного человека приложить к уху другого и слушать. Ничего не слышно. Одно устройство что то говорит другому, другое – его слушает. Происходит обмен информацией, собственно в этом и профит 🙂


Рассмотриuart_rx-tx_loopм ещё один интересный момент, к которому иногда прибегают. На рисунке на одном из устройств RX подключили к его же TX. Теперь Устройство_1 “слушает” само себя. Это называют: заворот, петля, loop, эхо и др. Данный метод позволяет проверить сразу кучу вещей – линию связи, исправность выводов   RX и TX, а также и саму логику работу и электронные компоненты.

Протокол обмена информацией по шинам

Обмен идёт логическими 0 и 1. За логический ноль приняли +5В, а за логическую единицу – 5В. Тот или иной потенциал (0 или 1)- это бит информации. Вначале  – старт, передатчик подаёт в линию -5 В (или даёт ноль). Приёмник это дело увидел и начинает считывать следующие друг за другом биты, пока не придёт стоповый бит. О скорости, чётности, сколько бит слушать приёмнику приёмник и передатчик договариваются заранее, и выбирает, например скорость 9600 и схему 8-N-1 с которой вы наверняка сталкивались, где цифра 8 обозначает количество битов информации в пакете, буква N указывает на отсутствие служебного бита проверки на четность/нечетность, цифра 1 обозначает число стоп-битов в конце пакета. Все подробности протокола – это отдельная тема, которая вам понадобится в том случае, если вы сами возьмёте сами программировать устройства с UART портом. А в большинстве случаев при повторении схем – эти знания в таком объёме не понадобятся. Достаточно знать основы.