UART (Universal Asynchronous Receiver-Transmitter)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 02:28, 1 июня 2016.

UART (англ. Universal Asynchronous Receiver-Transmitter – Универсальный асинхронный приемник / передатчик), является одним из многих компьютерных аппаратных устройств, который преобразует данные между параллельными и последовательными формами. УАППы обычно используются в сочетании со стандартами связи, такими как TIA (ранее EIA) RS-232, RS-422 или RS-485. Универсальное обозначение указывает на то, что скорости формата и передачи данных настраиваются. Электрические уровни сигнализации и методы (такие как дифференциальная передача сигналов и т.д.) обрабатываются схемой драйвера внешнего по отношению к УАПП.

УАПП, как правило, физическое лицо (или часть) интегральной схемы (ИС), используемой для последовательной передачи данных над компьютером или периферийным устройством последовательного порта. УАППы теперь обычно включаются в микроконтроллеры. Двойной УАПП или ДУАПП, сочетает в себе два УАППы в одном чипе. Восьмеричное УАПП или ВУАПП объединяет восемь УАППов в один пакет, такие как Exar XR16L788 или компании NXP SCC2698. Связанный с этим устройством, Universal Synchronous/Asynchronous Receiver/Transmitter (УУАПП) также поддерживает синхронную работу.

Передача и прием последовательных данных

УАПП принимает байт данных и передает отдельные биты в виде определенной последовательности. Каждый УАПП содержит регистр сдвига, который является основным методом преобразования между последовательными и параллельными формами. Последовательная передача цифровой информации (битов) через один провод или другой носитель является менее дорогостоящим, чем параллельная передача по нескольким проводам.

УАПП обычно не генерирует или принимает напрямую внешние сигналы, используемые между различными элементами оборудования. Отдельные интерфейсные устройства используются для логического преобразования уровней сигналов УАПП. Внешние сигналы могут иметь множество различных форм. Примеры стандартов для передачи сигналов напряжения являются RS-232, RS-422 и RS-485 от EIA . Исторически сложилось так, что ток (в токовой петле) был использован в телеграфных цепях. Некоторые схемы сигнализации не используют электрические провода. Примерами таких являются оптоволоконные, IrDA ( инфракрасный), и Bluetooth (беспроводной) в Serial Port Profile (SPP). Некоторые схемы сигнализации используют несущие модуляции сигнала (с или без проводов). Примерами могут послужить модуляция звуковых сигналов с телефонной линии модемов, ВЧ модуляции с радиостанциями данных, и DC-LIN для связи по линии электропередачи.

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

Кадрирование данных
Номер бита 1 2 3 4 5 6 7 8 9 10 11 12
Стартовый бит 5-9 биты данных Стоп бит(ы)
Начало 0 Данные 1 Данные 2 Данные 3 Данные 4 Данные 5 Данные 6 Данные 7 Данные 8 Данные Стоп

Каждый символ передается как низкий логический стартовый бит. В зависимости от конфигурации числа битов данных (обычно 8, но пользователи могут выбрать от 5 до 8 или 9 бит в зависимости от которых УАПП будет использоваться), дополнительный бит берется под четность. В большинстве случаев передается сначала наименее значимый бит данных, но есть и исключения (например, IBM 2741 печатающего терминала).

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

Если линия проходит в низком логическом состоянии дольше времени передачи информации, это создаст условие прерывания, которое может быть обнаружено с помощью УАПП.

Приемник

Все операции аппаратного УАПП управляются с помощью тактового сигнала, который работает на частоте, кратной скорости передачи данных, обычно в 8 раз. Приемник проверяет состояние входного сигнала на каждом тактовом импульсе, смотря на начало стартового бита. Стартовый бит длится, по меньшей мере, 1/2 времени передачи бита, которого хватает, чтобы сообщить о новом сигнале. Если нет, то сигнал считается паразитным и игнорируется. После того, как необходимое количество битовых периодов для длины символа ( от 5 до 8 бит, как правило) истекло, содержимое регистра сдвига становятся доступными к приемной системе. В УАПП будет установлен флаг, указывающий на новые данные, а также генерирующий процесс прерывания запроса о том, что процессор передает полученные данные.

Сообщающиеся УАППы обычно не имеют распределенную систему синхронизации отдельно от сигнала связи. Как правило, УАППы ресинхронизируют свои внутренние часы на каждой смене линии данных, которая не считается поддельным импульсом. Получение информации о времени происходит таким образом, что передатчик посылает сигнал с несколько иной скоростью, чем это необходимо. Упрощенные УАППы не делают этого, вместо этого они производят ресинхронизацию по заднему фронту только стартового бита, а затем читают центр каждого ожидаемого бита данных, и система работает, если скорость широковещательной передачи данных является достаточно точной, чтобы позволить стоп-битам производить такие пробы.

Есть стандартная функция для УАПП, чтобы сохранить самый последний символ во время приема следующего: "двойная буферизация". Она дает принимающему компьютеру время передачи символов для извлечения принятого символа. Многие УАППы имеют небольшой способ организации и манипулирования данными относительно времени и приоритетов в буфере памяти между регистром сдвига приемника и интерфейсом принимающей системы. Это дает центральному процессору еще больше времени для обработки прерывания от УАПП и предотвращает потерю данных, полученных на высоких скоростях.

Передатчик

Операция передачи проще, так как выбор времени определяется исходя из состояния линии, и не связан ни с одним фиксированным временным интервалом. Как только отправляющая система добавления символов в регистр сдвига (после завершения предыдущего символа) с помощью узла УАПП генерирует стартовый бит, происходит сдвиг на необходимое количество битов данных в линии, генерируется и посылается бит четности (если используется), и посылается стоповый бит. Так как передача одного символа может занять длительное время относительно скорости процессора, УАПП поддерживает флаг, показывающий состояние занятости, так что принимающая система не занимается новым символом для передачи, пока предыдущая не была завершена; команда "Готов к следующему символу" также может быть сигналом с прерыванием. Так как дуплексный режим требует символов, чтобы быть отправленным и полученным в одно и то же время, УАПП используют два различных регистра сдвига для переданных и принятых символов.

Применение

Передача и прием УАПП для правильной работы должна осуществляться на той же скорости, что и передача в битов длины символа, четности и стоп-битов. Во время приема УАПП может обнаружить некоторые несоответствующие параметры и установить флаг "ошибка кадрирования" для принимающей системы; в исключительных случаях приема УАПП будет производить неустойчивый поток битых символов и передавать их на принимающую систему.

Типичные последовательные порты, используемые с персональными компьютерами, подключенные к модемам используют восемь битов данных, отсутствие контроля четности, один стоп-бит; для данной конфигурации количество символов ASCII в секунду равно скорости передачи битов, деленной на 10.

Некоторые очень недорогие домашние компьютеры или встроенные системы могут обойтись и без УАПП и использованием процессора для выборки состояния входного порта и непосредственно оттуда управлять выходным портом для передачи данных. В это время очень интенсивно используются ресурсы процессора, но при этом вы экономите деньги и пространство. Метод известен как стук-бит.

История

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

Гордон Белл из DEC разработал первый УАПП, занимающий целую печатную плату, названную в последствии блок-линией, для PDP серии компьютеров, начиная с PDP-1. По словам Белла, основным нововведением УАПП было использование выборки для преобразования сигнала в цифровой области, что позволило производить более надежную синхронизацию, чем в предшествующих схемах, которые использовались аналоговыми синхронизационными устройствами с ручной коррекцией потенциометров. Для снижения стоимости проводки, объединительной платы и других компонентов, эти компьютеры также были оснащены управлением потоком данных с помощью XON и XOFF символов, а не аппаратных проводов.

В зависимости от производителя, для идентификации устройств, которые выполняли функцию УАПП, стали использоваться различные названия . Intel назвали свое 8251 устройство с этой поддержкой "Программируемым интерфейсом связи". В MOS Technology 6551 была известна под названием "интерфейсный адаптер асинхронной связи" (ACIA). Термин "Последовательный интерфейс связи" (SCI) впервые был использован в Motorola.

Структура

УАПП обычно содержит следующие компоненты:

  • тактовый генератор, как правило, с кратной скоростью передачи битов, чтобы обеспечить отбор проб в середине периода бита.
  • входные и выходные регистры сдвига
  • контроллер приема/передачи данных
  • контроллер чтения / записи логических схем
  • буферов передачи / приема (опционально)
  • параллельный буфер шины данных (опционально)
  • буфер памяти, работающий по принципу первым пришёл — первым обслужен (ПППО) (опционально)

Особые условия приемника

Ошибка переполнения

"Ошибка переполнения" происходит, когда приемник не может обрабатывать символ, который только что пришел так как предыдущий еще не обработан. Различные устройства имеют разные объемы буферной памяти для хранения полученных символов. Процессор должен поддерживать УАПП, чтобы удалить символы из входного буфера. Если процессор не поддерживает УАПП буфер достаточно быстро становится полным, будет происходить ошибка, и входящие символы будут потеряны.

Ошибка опустошения

"Ошибка опустошения" возникает, когда передатчик УАПП завершил отправку данных и буфер передачи пуст. В асинхронном режиме это трактуется как признак того, что не осталось никаких данных, подлежащих передаче, но дополнительные стоповые биты могут быть добавлены. Это сообщение об ошибке обычно возникает в УМПВВ (Universal Synchronous Asynchronous Receiver Transmitter - USART), так как опустошение является более серьезным в синхронных системах.

Ошибка кадрирования

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

Ошибка четности

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

Список литературы

  1. Adam Osborne, An Introduction to Microcomputers Volume 1: Basic Concepts, Osborne-McGraw Hill Berkeley California USA, 1980 ISBN 0-931988-34-9 pp. 116-126
  2. C. Gordon Bell, J. Craig Mudge, John E. McNamara, Computer Engineering: A DEC View of Hardware Systems Design, Digital Press, 12 May 2014, ISBN 1483221105, p.73
  3. Allison, David. "Curator, Division of Information Technology and Society, National Museum of American History, Smithsonian Institution". Smithsonian Institution Oral and Video Histories. Retrieved 14 June 2015.
  4. "UART Статья в Википедии"
  5. Oral History of Gordon Bell, 2005, accessed 2015-08-19
  6. Products; FTDI.
  7. Interfacing with a PDP-11/05: the UART, blinkenbone.com, accessed 2015-08-19
  8. "Zilog Product specification Z8440/1/2/4, Z84C40/1/2/3/4. Serial input/output controller" (PDF). 090529 zilog.com
  9. "FAQ: The 16550A UART & TurboCom drivers 1994". Retrieved January 16, 2016.
  10. T'so, Theodore Y. (January 23, 1999). "Re: Serial communication with the 16650". The Mail Archive. Retrieved June 2, 2013.
  11. bill.herrin.us - Hayes ESP 8-port Enhanced Serial Port Manual, 2004-03-02