Универсальный асинхронный приёмопередатчик

Материал из Machinepedia
(перенаправлено с «UART»)
Перейти к: навигация, поиск

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

Представляет собой логическую схему, с одной стороны подключенную к шине вычислительного устройства, а с другой имеющую два или более выводов для внешнего соединения.

UART может представлять собой отдельную микросхему или являться частью большой интегральной схемы. Используется для передачи данных через последовательный порт компьютера, часто встраивается в микроконтроллеры.

Метод передачи и приема

Передача данных в UART осуществляется по одному биту в равные промежутки времени. Этот временной промежуток определяется заданной скоростью UART и для конкретного соединения указывается в бодах (битах в секунду). Существует общепринятый ряд стандартных скоростей: 300 бод, 600 бод, 1200 бод, 2400 бод, 4800 бод, 9600 бод, 19200 бод, 38400 бод, 57600 бод, 115200 бод, 230400 бод, 460800 бод, 921600 бод.

Помимо собственно информационного потока UART автоматически вставляет в поток синхронизирующие метки, так называемые стартовый и стоповый биты. При приеме эти лишние биты удаляются из потока. Обычно стартовый и стоповый биты обрамляют один байт информации (8 бит), однако встречаются реализации UART которые позволяют передавать по 5,6,7, 8 или 9 бит. Обрамленные стартом и стопом биты являются минимальной посылкой. Некоторые реализации UART позволяют вставлять два стоповых бита при передаче для уменьшения вероятности рассинхронизации приемника и передатчика при плотном трафике. Приемник игнорирует второй стоповый бит, воспринимая его как короткую паузу на линии.

Принято соглашение что пассивным (в отсутствие потока данных) состоянием входа и выхода UART является логическая 1. Стартовый бит всегда логический 0, поэтому приемник UART ждет перепада из 1 в 0 и отсчитывает от него временной промежуток в половину длительности бита (середина передачи стартового бита). Если в этот момент на входе все еще 0, то запускается процесс приема минимальной посылки. Для этого приемник отсчитывает 9 битовых длительностей подряд (для 8-бит данных) и в каждый момент фиксирует состояние входа. Первые 8 значений являются принятыми данными, последнее значение проверочное (стоп-бит). Значение стоп-бита всегда 1, если реальное принятое значение иное UART фиксирует ошибку.

Для формирования временных интервалов передающий и приемный UART имеют источник точного времени (тактирования). Точность этого источника должна быть такой чтобы сумма погрешностей (приемника и передатчика) установки временного интервала от начала стартового импульса до середины стопового импульса не превышала половины (а лучше хотя бы четверти) битового интервала. Для 8-бит посылки 0,5/9,5 = 5% (в реальности не более 3%). Поскольку эта сумма ошибок приемника и передатчика плюс возможные искажения сигнала в линии, то рекомендуемый допуск на точность тактирования UART не более 1,5%.

Поскольку синхронизирующие биты занимают часть битового потока то результирующая пропускная способность UART не равна скорости соединения. Например для 8-битных посылок синхронизирующие биты занимают 20% потока, что для физической скорости 115 200 бод дает битовую скорость данных 92160 бит/сек или 11 520 байт/сек.

Личные инструменты
Пространства имён

Варианты
Действия
Присоединиться сейчас к бесплатной торговой площадке №1 для промышленников в России machinebook
Навигация
Навигация
Рекламодателям
Инструменты
Яндекс.Метрика