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 (Receive — принимать) и TX (TRansmit — передавать). Логика проста, провод передачи одного устройства соединяется с проводом приёма другого. Иначе — это как ухо одного человека приложить к уху другого и слушать. Ничего не слышно. Одно устройство что то говорит другому, другое — его слушает. Происходит обмен информацией, собственно в этом и профит 🙂
Рассмотрим ещё один интересный момент, к которому иногда прибегают. На рисунке на одном из устройств RX подключили к его же TX. Теперь Устройство_1 «слушает» само себя. Это называют: заворот, петля, loop, эхо и др. Данный метод позволяет проверить сразу кучу вещей — линию связи, исправность выводов RX и TX, а также и саму логику работу и электронные компоненты.
Протокол обмена информацией по шинам
Обмен идёт логическими 0 и 1. За логический ноль приняли +5В, а за логическую единицу — 5В. Тот или иной потенциал (0 или 1)- это бит информации. Вначале — старт, передатчик подаёт в линию -5 В (или даёт ноль). Приёмник это дело увидел и начинает считывать следующие друг за другом биты, пока не придёт стоповый бит. О скорости, чётности, сколько бит слушать приёмнику приёмник и передатчик договариваются заранее, и выбирает, например скорость 9600 и схему 8-N-1 с которой вы наверняка сталкивались, где цифра 8 обозначает количество битов информации в пакете, буква N указывает на отсутствие служебного бита проверки на четность/нечетность, цифра 1 обозначает число стоп-битов в конце пакета. Все подробности протокола — это отдельная тема, которая вам понадобится в том случае, если вы сами возьмёте сами программировать устройства с UART портом. А в большинстве случаев при повторении схем — эти знания в таком объёме не понадобятся. Достаточно знать основы.