Универсальный асинхронный приёмопередатчик | это... Что такое Универсальный асинхронный приёмопередатчик? (original) (raw)

Универсальный асинхронный приёмопередатчик (УАПП, англ. 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 байт/сек.

Puerto serie Rs232.png

Контроль четности

Многие реализации UART имеют возможность автоматически контролировать целостность данных методом контроля битовой четности. Когда эта функция включена последний бит данных ("бит четности") контролируется логикой UART и содержит информацию о четности количества единичных бит в посылке.

Управление потоком

В старые времена устройства с UART могли быть настолько медлительными что не успевали обрабатывать поток принимаемых данных. Для решения этой проблемы модули UART иногда снабжались отдельными выходами и входами управления потоком. При заполнении входного буфера логика принимающего UART выставляла на соответствующем выходе запрещающий уровень и передающий UART приостанавливал передачу.

Позже управление потоком возложили на коммуникационные протоколы и надобность в отдельных линиях управления потоком постепенно исчезла.

Физический уровень

Логическая схема UART имеет входы-выходы с логическими уровнями, соответствующими полупроводниковой технологии схемы: КМОП, ТТЛ и т.д. Такой физический уровень может быть использован в пределах одного устройства, однако непригоден для коммутируемых длинных соединений по причине низкой защищенности от электрического разрушения и помехоустойчивости. Для таких случаев были разработаны специальные физические уровни, такие, как токовая петля, RS-232, RS-485, LIN и тому подобные.

Специфической разновидностью физического уровня асинхронного интерфейса является физический уровень IrDA.

Существуют физические уровни UART для сложных сред. В некотором смысле стандартный компьютерный телефонный модем также можно назвать специфическим физическим уровнем асинхронного интерфейса. Существуют специальные микросхемы проводных модемов, сделанных специально как физический уровень асинхронного интерфейса (т.е. протокольно прозрачные). Выпускается также радиоканальный физический уровень в виде модулей радиоприемников и радиопередатчиков.

Стандартизация

Идея асинхронной передачи данных появилась в те далекие времена когда о стандартизации еще мало заботились и лучшее что можно было ожидать от поставщиков разрозненных решений так это открытой публикации алгоритмов работы своих изделий. Собственно поэтому стандарта UART как такового нет, но логика работы UART описана как часть продукта во многих других стандартах: токовая петля, RS-232, ISO/IEC 7816 и т.п.

Ссылки

См. также

Просмотр этого шаблона UART
Физические уровни Точка-точка токовая петляRS-232IrDAHARTмодем Сетевые RS-422RS-423RS-485LIN Специальные en:Kansas City Standard (Компакт-кассета, грампластинка).
Протоколы Точка-точка PPPSLIPIrDAHARTISO 7816 Сетевые ModbusLINDMX-512P-NETProfibus
Сферы использования Последовательный портIrDA
Реализации 8250 UART16550 UART
Просмотр этого шаблона Микроконтроллеры
Архитектура 8-бит MCS-51MCS-48PICAVR • Z8 • H8 • COP8 • 68HC08 • 68HC11 16-бит MSP430 • MCS-96 • MCS-296 • PIC24 • MAXQ • Nios • 68HC12 • 68HC16 32-бит ARMMIPSAVR32PIC32 • 683XX • M32R • SuperHNios II • Am29000 • LatticeMico32 • MPC5xx • PowerQUICC • Parallax Propeller
Производители Analog DevicesAtmel • Silabs • FreescaleFujitsu • Holtek • HynixInfineonIntelMicrochip • Maxim • Parallax • NXP Semiconductors • Renesas • Texas InstrumentsToshiba • Ubicom • Zilog • Cypress
Компоненты РегистрПроцессорSRAMEEPROMФлеш-памятьКварцевый резонаторКварцевый генераторRC-генераторКорпус
Периферия ТаймерАЦПЦАПКомпараторШИМ-контроллер • СчётчикLCD • Датчик температуры • Watchdog Timer
Интерфейсы CANUARTUSBSPII²CEthernet1-Wire
ОС FreeRTOSμClinux • BeRTOS • ChibiOS/RT • eCosRTEMS • Unison • MicroC/OS-IINucleus
Программирование JTAG • C2 • ПрограмматорАссемблерПрерывание • MPLAB • AVR Studio • MCStudio