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

Аппаратное устройство компьютера
Блок-схема для UART

Универсальный асинхронный приёмопередатчик ( UART / ˈjuː ɑːr t / ) — это периферийное устройство для асинхронной последовательной связи , в котором формат данных и скорости передачи настраиваются. Он отправляет биты данных один за другим, от наименее значимого к наиболее значимому, обрамлённые стартовыми и стоповыми битами, так что точная синхронизация обрабатывается каналом связи. Уровни электрических сигналов обрабатываются схемой драйвера, внешней по отношению к UART. Распространенными уровнями сигналов являются RS-232 , RS-485 и необработанный TTL [1] для коротких отладочных связей. Ранние телетайпы использовали токовые петли .

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

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

Связанное с этим устройство — универсальный синхронный и асинхронный приёмопередатчик (USART) — также поддерживает синхронную работу.

В терминах уровня OSI UART находится на уровне 2, уровне канала передачи данных .

История

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

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

DEC сжала конструкцию линейного блока до раннего однокристального UART для собственного использования. [2] Western Digital разработала его в первый широкодоступный однокристальный UART, WD1402A, около 1971 года. Это был ранний пример среднемасштабной интегральной схемы . Другой популярной микросхемой была SCN2651 из семейства Signetics 2650 .

Примером UART начала 1980-х годов был National Semiconductor 8250, использовавшийся в оригинальной плате адаптера асинхронной связи IBM PC . [5] В 1990-х годах были разработаны новые UART с буферами на кристалле. Это позволило увеличить скорость передачи данных без потери данных и не требовало столь частого внимания со стороны компьютера. Например, популярный National Semiconductor 16550 имеет 16-байтовый FIFO и породил множество вариантов, включая 16C550, 16C650, 16C750 и 16C850 .

В зависимости от производителя, для обозначения устройств, выполняющих функции UART, используются разные термины. Intel назвала свое устройство 8251 «Программируемым интерфейсом связи». MOS Technology 6551 была известна под названием «Адаптер интерфейса асинхронной связи» (ACIA). Термин «Интерфейс последовательной связи» (SCI) был впервые использован в Motorola около 1975 года для обозначения их старт-стопного асинхронного последовательного интерфейсного устройства, которое другие называли UART. Zilog выпустила ряд контроллеров последовательной связи или SCC.

Начиная с 2000-х годов большинство IBM PC-совместимых компьютеров удалили свои внешние RS-232 COM-порты и использовали USB -порты, которые могут отправлять данные быстрее. Для пользователей, которым по-прежнему нужны последовательные порты RS-232, теперь обычно используются внешние мосты USB-UART . Они объединяют аппаратные кабели и чип для преобразования USB и UART. Cypress Semiconductor и FTDI являются двумя из основных коммерческих поставщиков этих чипов. [6] Хотя порты RS-232 больше не доступны пользователям снаружи большинства компьютеров, многие внутренние процессоры имеют UART, встроенные в свои чипы, чтобы дать разработчикам оборудования возможность взаимодействовать с другими чипами или устройствами, которые используют RS-232 или RS-485 для связи.

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

UART содержит следующие компоненты:

  • генератор тактовых импульсов, обычно кратный битовой скорости, позволяющий производить выборку в середине битового периода
  • входные и выходные регистры сдвига, а также буферы передачи/приема или FIFO
  • управление приемом/передачей
  • логика управления чтением/записью

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

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

Коммуникация может осуществляться тремя способами:

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

Для работы UART следующие настройки должны быть одинаковыми как на передающей, так и на принимающей стороне:

Что касается уровня напряжения, 2 модуля UART работают хорошо, когда у них обоих одинаковый уровень напряжения, например, 3 В-3 В между 2 модулями UART. Чтобы использовать 2 модуля UART на разных уровнях напряжения, необходимо добавить внешнюю схему переключения уровня. [8]

Фрейминг данных

Пример кадра UART. На этой схеме отправляется один байт , состоящий из стартового бита, за которым следуют восемь битов данных (D1-8) и два стоповых бита для 11-битового кадра UART. Количество битов данных и форматирования, наличие или отсутствие бита четности, форма четности (четная или нечетная) и скорость передачи должны быть предварительно согласованы взаимодействующими сторонами. «Стоповый бит» на самом деле является «периодом остановки»; период остановки передатчика может быть произвольно длинным. Он не может быть короче указанного количества, обычно 1-2 битовых времен. Приемнику требуется более короткий период остановки, чем передатчику. В конце каждого кадра данных приемник ненадолго останавливается, чтобы дождаться следующего стартового бита. Именно эта разница обеспечивает синхронизацию передатчика и приемника. BCLK = Base Clock

Кадр UART состоит из 5 элементов:

  • Ожидание (высокий логический уровень (1))
  • Стартовый бит (логический низкий уровень (0)): стартовый бит сигнализирует приемнику о поступлении нового символа.
  • Биты данных: следующие пять-девять бит, в зависимости от используемого кодового набора, представляют символ.
  • Бит четности: если используется бит четности, он будет помещен после всех битов данных. Бит четности — это способ для принимающего UART определить, изменились ли какие-либо данные во время передачи.
  • Стоп (логический высокий уровень (1)): следующие один или два бита всегда находятся в состоянии отметки (логический высокий уровень, т. е. 1) и называются стоповыми битами. Они сигнализируют приемнику о том, что символ завершен. Поскольку стартовый бит имеет логический низкий уровень (0), а стоповый бит имеет логический высокий уровень (1), между символами всегда есть по крайней мере два гарантированных изменения сигнала. Если линия удерживается в состоянии логического низкого уровня дольше, чем время символа, это состояние разрыва , которое может быть обнаружено UART.

В наиболее распространенных настройках 8 бит данных, без четности и 1 стоповый бит (т. е. 8N1 ), эффективность протокола составляет 80%. Для сравнения, эффективность протокола Ethernet при использовании кадров максимальной пропускной способности с полезной нагрузкой 1500 байт составляет до 95% и до 99% с 9000-байтовыми кадрами jumbo . Однако из-за накладных расходов протокола Ethernet и минимального размера полезной нагрузки 42 байта, если необходимо отправить небольшие сообщения из одного или нескольких байтов, эффективность протокола Ethernet падает намного ниже постоянной эффективности UART 8N1, составляющей 80%.

Состояние ожидания, отсутствие данных — это высокое напряжение, или питание. Это историческое наследие телеграфии, в которой линия удерживается на высоком уровне, чтобы показать, что линия и передатчик не повреждены.

Каждый символ представлен в виде логического низкого стартового бита, битов данных, возможно, бита четности и одного или нескольких стоповых битов. В большинстве приложений наименее значимый бит данных (тот, что слева на этой диаграмме) передается первым, но есть исключения (например, печатный терминал IBM 2741 ).

Приемник

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

У UART, взаимодействующих друг с другом, нет общей системы синхронизации, кроме сигнала связи. Обычно UART повторно синхронизируют свои внутренние часы при каждом изменении линии данных, которое не считается ложным импульсом. Получая таким образом информацию о синхронизации, они надежно получают, когда передатчик посылает данные с немного иной скоростью, чем следовало бы. Упрощенные UART этого не делают; вместо этого они повторно синхронизируются только на заднем фронте стартового бита, а затем считывают центр каждого ожидаемого бита данных, и эта система работает, если скорость передачи данных достаточно точна, чтобы обеспечить надежную выборку стоповых битов. [9] [10]

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

Передатчик

Операция передачи проще, поскольку синхронизация не должна определяться из состояния линии и не привязана к каким-либо фиксированным интервалам синхронизации. Как только отправляющая система помещает символ в сдвиговый регистр (после завершения предыдущего символа), UART генерирует стартовый бит, сдвигает требуемое количество бит данных в линию, генерирует и отправляет бит четности (если используется) и отправляет стоповые биты. Поскольку полнодуплексная работа требует, чтобы символы отправлялись и принимались одновременно, UART используют два разных сдвиговых регистра для передаваемых и принимаемых символов. Высокопроизводительные UART могут содержать буфер передачи FIFO (первым пришел — первым вышел), чтобы позволить ЦП или контроллеру DMA помещать несколько символов в пакет в FIFO, а не помещать по одному символу за раз в сдвиговый регистр. Поскольку передача одного или нескольких символов может занять много времени относительно скорости ЦП, UART поддерживает флаг, показывающий статус занятости, чтобы хост-система знала, есть ли хотя бы один символ в буфере передачи или сдвиговом регистре; «готов к приему следующего символа(ов)» также может быть передано с помощью прерывания.

Приложение

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

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

Некоторые очень недорогие домашние компьютеры или встроенные системы , в которых отсутствует физический UART, могут вместо этого эмулировать протокол с помощью программного обеспечения, производя выборку состояния входного порта или напрямую манипулируя выходным портом для передачи данных. Несмотря на то, что он очень интенсивно использует ресурсы процессора (поскольку синхронизация процессора имеет решающее значение), чип UART можно исключить, что позволит сэкономить деньги и место. Этот метод известен как bit-banging .

Модели

Двойной UART, или DUART , объединяет два UART в один чип. Аналогично, четверной UART или QUART , объединяет четыре UART в один пакет, например, NXP 28L194. Восьмеричный UART или OCTART объединяет восемь UART в один пакет, например, Exar XR16L788 или NXP SCC2698.

МодельОписание
WD1402AПервый однокристальный UART в широкой продаже. Представлен около 1971 года. Совместимые чипы включают Fairchild TR1402A и General Instruments AY-5-1013. [11]
Экзар XR21V1410
Интерсил 6402
CDP 1854 (RCA, теперь Intersil)
Зилог Z8440Универсальный синхронный и асинхронный приёмопередатчик (USART). 2000 кбит/с . Асинхронный, бисинхронный , SDLC , HDLC , X.25 . CRC . 4-байтовый буфер RX. 2-байтовый буфер TX. Предоставляет сигналы, необходимые контроллеру DMA стороннего производителя для выполнения передач DMA. [12]
Z8530/Z85C30Этот USART имеет 3-байтовый буфер приема и 1-байтовый буфер передачи. Он имеет аппаратное обеспечение для ускорения обработки HDLC и SDLC. Версия CMOS (Z85C30) обеспечивает сигналы, позволяющие стороннему контроллеру DMA выполнять передачи DMA. Он может выполнять асинхронную, синхронную на уровне байтов и синхронную на уровне битов связь. [13]
8250Устаревшие с 1-байтовыми буферами. Максимальная стандартная скорость последовательного порта этих UART составляет 9600 бит в секунду, если операционная система имеет задержку прерывания 1 миллисекунду . 8250 UART использовались в IBM PC 5150 и IBM PC/XT, в то время как 16450 UART использовались в компьютерах серии IBM PC/AT . 8251 имеет возможность USART.
8251
Моторола 6850
6551
Роквелл 65C52
16450
82510Этот UART допускает асинхронную работу со скоростью до 288 кбит/с с двумя независимыми четырехбайтовыми FIFO. Он выпускался Intel по крайней мере с 1993 по 1996 год, а у Innovastic Semiconductor есть Data Sheet 2011 года для IA82510.
16550Этот UART был представлен Startech Semiconductor, которая теперь принадлежит Exar Corporation и не связана с Startech.com. Ранние версии имели сломанный буфер FIFO и, следовательно, не могли безопасно работать быстрее, чем 16450 UART. [14] Версии этого UART, которые не были сломаны, имели 32-символьные буферы FIFO и могли функционировать на стандартных скоростях последовательного порта до 230,4 кбит/с, если операционная система имеет задержку прерывания в 1 миллисекунду. Текущие версии этого UART от Exar заявляют, что могут обрабатывать до 1,5 Мбит/с . Этот UART представляет функции Auto-RTS и Auto-CTS, в которых сигнал RTS# управляется UART, чтобы сигнализировать внешнему устройству о прекращении передачи, когда буфер UART заполнен до или превышает установленную пользователем точку срабатывания, и прекратить передачу на устройство, когда устройство переводит сигнал CTS# в высокий уровень (логический 0).
16550АЭтот UART имеет 16-байтовые буферы FIFO. Его уровни прерывания приема могут быть установлены на 1, 4, 8 или 14 символов. Его максимальная стандартная скорость последовательного порта, если операционная система имеет задержку прерывания в 1 миллисекунду, составляет 128 кбит/с . Системы с меньшими задержками прерывания или с контроллерами DMA могут обрабатывать более высокие скорости передачи данных. Этот чип может предоставлять сигналы, необходимые для того, чтобы контроллер DMA мог выполнять передачи DMA в UART и из него, если включен режим DMA, который представляет этот UART. [15] Он был представлен компанией National Semiconductor, которая была продана Texas Instruments. National Semiconductor заявила, что этот UART может работать со скоростью до 1,5 Мбит/с .
16C552
1675064-байтовые буферы. Этот UART может обрабатывать максимальную стандартную скорость последовательного порта 460,8 кбит/с, если максимальная задержка прерывания составляет 1 миллисекунду. Этот UART был представлен Texas Instruments. TI утверждает, что ранние модели могут работать со скоростью до 1 Мбит/с , а более поздние модели этой серии могут работать со скоростью до 3 Мбит/с .
16850128-байтовые буферы. Этот UART может обрабатывать максимальную стандартную скорость последовательного порта 921,6 кбит/с, если максимальная задержка прерывания составляет 1 миллисекунду. Этот UART был представлен корпорацией Exar. Exar утверждает, что ранние версии могут работать со скоростью до 2 Мбит/с , а более поздние версии могут работать со скоростью до 2,25 Мбит/с в зависимости от даты производства.
16C850
16950128-байтовые буферы. Этот UART может обрабатывать максимальную стандартную скорость последовательного порта 921,6 кбит/с, если максимальная задержка прерывания составляет 1 миллисекунду. Этот UART поддерживает 9-битные символы в дополнение к 5-8-битным символам, которые поддерживают другие UART. Это было представлено Oxford Semiconductor, которая теперь принадлежит PLX Technology. Oxford/PLX утверждает, что этот UART может работать со скоростью до 15 Мбит/с . Варианты PCI Express от Oxford/PLX интегрированы с контроллером PCIe DMA первой стороны, управляющим шиной. Этот контроллер DMA использует сигналы режима DMA UART, которые были определены для 16550. Контроллер DMA требует, чтобы ЦП настраивал каждую транзакцию и опрашивал регистр состояния после начала транзакции, чтобы определить, завершена ли транзакция. Каждая транзакция DMA может передавать от 1 до 128 байт между буфером памяти и UART. Варианты PCI Express также позволяют ЦП передавать данные между собой и UART с помощью 8-, 16- или 32-битных передач при использовании программируемого ввода-вывода.
16C950
16954Четырехпортовая версия 16950/16C950. Буферы по 128 байт. Этот UART может обрабатывать максимальную стандартную скорость последовательного порта 921,6 кбит/с , если максимальная задержка прерывания составляет 1 миллисекунду. Этот UART поддерживает 9-битные символы в дополнение к 5–8-битным символам, которые поддерживают другие UART. Это было представлено Oxford Semiconductor, которая теперь принадлежит PLX Technology. Oxford/PLX утверждает, что этот UART может работать со скоростью до 15 Мбит/с . Варианты PCI Express от Oxford/PLX интегрированы с контроллером PCIe DMA первой стороны, управляющим шиной. Этот контроллер DMA управляется сигналами режима DMA UART, которые были определены для 16550. Контроллер DMA требует, чтобы ЦП настраивал каждую транзакцию и опрашивал регистр состояния после начала транзакции, чтобы определить, завершена ли транзакция. Каждая транзакция DMA может передавать от 1 до 128 байт между буфером памяти и UART. Варианты PCI Express также позволяют ЦП передавать данные между собой и UART с помощью 8-, 16- или 32-битных передач при использовании программируемого ввода-вывода.
16C954
16С1550/16С1551UART с 16-байтовыми буферами FIFO. До 1,5 Мбит/с . ST16C155X несовместим с промышленным стандартом 16550 и не будет работать со стандартным драйвером последовательного порта в Microsoft Windows.
16C2450Двойной UART с 1-байтовыми буферами FIFO.
16C2550Двойной UART с 16-байтовыми буферами FIFO. Совместим по выводам и функционально с 16C2450. Программно совместим с INS8250 и NS16C550.
SCC2691В настоящее время NXP выпускает 2691 [10] — это одноканальный UART, который также включает программируемый счетчик/таймер. 2691 имеет однобайтовый регистр хранения передатчика и 4-байтовый FIFO- приемник . Максимальная стандартная скорость 2692 составляет 115,2 кбит/с .

28L91 — это совместимая снизу вверх версия 2691, отличающаяся возможностью выбора 8- или 16-байтовых FIFO передатчика и приемника, улучшенной поддержкой расширенных скоростей передачи данных и более быстрыми характеристиками синхронизации шины, что делает устройство более подходящим для использования с высокопроизводительными микропроцессорами.

Оба 2691 и 28L91 могут также работать в режимах TIA-422 и TIA-485 , а также могут быть запрограммированы для поддержки нестандартных скоростей передачи данных. Устройства производятся в корпусах PDIP-40, PLCC-44 и 44-контактный QFP и легко адаптируются к шинам Motorola и Intel . Они также были успешно адаптированы к шинам 65C02 и 65C816 . 28L91 будет работать от 3,3 или 5 вольт.

SCC28L91
SCC2692В настоящее время эти устройства, производимые компанией NXP, представляют собой двойные UART (DUART), состоящие из двух каналов связи, связанных регистров управления и одного счетчика/таймера. Каждый канал связи программируется независимо и поддерживает независимые скорости передачи и приема данных.

2692 имеет однобайтовый регистр хранения передатчика и 4-байтовый FIFO приемника для каждого канала. Максимальная стандартная скорость обоих каналов 2692 составляет 115,2 кбит/с .

26C92 — это совместимая снизу вверх версия 2692 с 8-байтовыми FIFO передатчика и приемника для улучшения производительности при непрерывной двунаправленной асинхронной передаче (CBAT) на обоих каналах с максимальной стандартной скоростью 230,4 кбит/с . Буква C в номере детали 26C92 не имеет никакого отношения к процессу изготовления; все UART NXP являются устройствами CMOS .

28L92 — это совместимая снизу вверх версия 26C92, отличающаяся возможностью выбора 8- или 16-байтовых FIFO передатчика и приемника, улучшенной поддержкой расширенных скоростей передачи данных и более быстрыми характеристиками синхронизации шины, что делает устройство более подходящим для использования с высокопроизводительными микропроцессорами.

2692, 26C92 и 28L92 могут работать в режимах TIA-422 и TIA-485, а также могут быть запрограммированы для поддержки нестандартных скоростей передачи данных. Устройства выпускаются в корпусах PDIP-40, PLCC-44 и 44-контактный QFP и легко адаптируются к шинам Motorola и Intel. Они также были успешно адаптированы к шинам 65C02 и 65C816. 28L92 будет работать от 3,3 или 5 вольт.

SC26C92
SC28L92
SCC28C94В настоящее время производимый NXP, четверной UART 28C94 (QUART) функционально похож на пару SCC26C92 DUART, смонтированных в общем корпусе, с добавлением арбитражной системы прерываний для эффективной обработки в периоды интенсивной активности канала. Некоторые дополнительные сигналы присутствуют для поддержки функций управления прерываниями, а вспомогательные входные/выходные контакты расположены иначе, чем у 26C92. В остальном, программная модель для 28C94 похожа на модель 26C92, требуя лишь незначительных изменений кода для полного использования всех функций. 28C94 поддерживает максимальную стандартную скорость 230,4 кбит/с , доступен в корпусе PLCC-52 и легко адаптируется как к шинам Motorola, так и к шинам Intel. Он также был успешно адаптирован к шине 65C816.
SCC2698BВ настоящее время NXP выпускает восьмеричный UART (OCTART) 2698, который по сути представляет собой четыре SCC2692 DUART в одном корпусе. Технические характеристики такие же, как у SCC2692 (не SCC26C92). Из-за отсутствия FIFO передатчика и малого размера FIFO приемника, 2698 может вызвать «шторм» прерываний, если все каналы одновременно задействованы в непрерывной двунаправленной связи. Устройство выпускается в корпусах PDIP-64 и PLCC-84 и легко адаптируется как к шинам Motorola, так и к шинам Intel. 2698 также был успешно адаптирован к шинам 65C02 и 65C816.
SCC28L198В настоящее время выпускаемый NXP, 28L198 OCTART по сути является усовершенствованным SCC28C94 QUART, описанным выше, с восемью независимыми каналами связи, а также арбитражной системой прерываний для эффективной обработки в периоды интенсивной активности канала. 28L198 поддерживает максимальную стандартную скорость 460,8 кбит/с , доступен в корпусах PLCC-84 и LQFP-100 и легко адаптируется к шинам Motorola и Intel. 28L198 будет работать от 3,3 или 5 вольт.
Z85230Синхронный/асинхронный режимы (USART), [16] 2 порта. Предоставляет сигналы, необходимые контроллеру DMA стороннего производителя для выполнения передач DMA. 4-байтовый буфер для отправки, 8-байтовый буфер для приема на канал. Режимы SDLC/HDLC. 5 Мбит/с в синхронном режиме.
Хейс ESPБуферы 1 КБ , 921,6 кбит/с , 8 портов. [17]
Экзар XR17V352, XR17V354 и XR17V358Двойные, счетверенные и восьмеричные PCI Express UART с совместимым набором регистров 16550, 256-байтовые TX и RX FIFO, программируемые уровни запуска TX и RX, счетчики уровней TX/RX FIFO, генератор дробной скорости передачи данных, автоматическое аппаратное управление потоком RTS/CTS или DTR/DSR с программируемым гистерезисом, автоматическое программное управление потоком Xon/Xoff, полудуплексный выход управления направлением RS-485 с программируемой задержкой поворота, многоточечный с автоматическим определением адреса, инфракрасный (IrDA 1.1) кодер/декодер данных. Они специфицированы до 25 Мбит/с . Технические описания датированы 2012 годом.
Экзар XR17D152, XR17D154 и XR17D158Двойные, счетверенные и восьмеричные PCI-шины UART с совместимым набором регистров 5G 16C550, 64-байтовые FIFO передачи и приема, счетчики уровней FIFO передачи и приема, программируемый уровень запуска TX и RX FIFO, автоматическое управление потоком RTS/CTS или DTR/DSR, автоматическое программное управление потоком Xon/Xoff, управляющий выход RS485 HDX с выбираемой задержкой поворота, инфракрасный (IrDA 1.0) кодер/декодер данных, программируемая скорость передачи данных с предварительным делителем, скорость последовательной передачи данных до 6,25 Мбит/с . Технические описания датированы 2004 и 2005 годами.
Экзар XR17C152, XR17C154 и XR17C158Двойные, счетверенные и восьмеричные 5 В шины PCI UART с совместимыми регистрами 16C550, 64-байтовые буферы FIFO передачи и приема, счетчики уровней FIFO передачи и приема, автоматическое управление потоком RTS/CTS или DTR/DSR, автоматическое программное управление потоком Xon/Xoff, полудуплексное управление RS485 с выбираемой задержкой, инфракрасный (IrDA 1.0) кодер/декодер данных, программируемая скорость передачи данных с предварительным делителем, скорость последовательной передачи данных до 6,25 Мбит/с . Технические описания датированы 2004 и 2005 годами.
Экзар XR17V252, XR17V254 и XR17V258Двойные, счетверенные и восьмеричные 66 МГц PCI шины UART с поддержкой управления питанием, совместимый с набором регистров 16C550, 64-байтовые TX и RX FIFO со счетчиками уровней и программируемыми уровнями срабатывания, генератор дробной скорости передачи данных, автоматическое аппаратное управление потоком RTS/CTS или DTR/DSR с программируемым гистерезисом, автоматическое программное управление потоком Xon/Xoff, полудуплексный выход управления направлением RS-485 с выбираемой задержкой поворота, инфракрасный (IrDA 1.0) кодер/декодер данных, программируемая скорость передачи данных с предварительным делителем. Технические описания датированы 2008 и 2010 годами.

Использует

Модемы для персональных компьютеров, подключаемые к слоту материнской платы, также должны включать функцию UART на карте. Оригинальный чип 8250 UART, поставляемый с персональным компьютером IBM, имел буфер размером в один символ для приемника и передатчика, что означало, что программное обеспечение связи плохо работало на скоростях выше 9600 бит/с , особенно при работе в многозадачной системе или при обработке прерываний от контроллеров дисков. Высокоскоростные модемы использовали UART, которые были совместимы с оригинальным чипом, но включали дополнительные буферы FIFO, что давало программному обеспечению дополнительное время для ответа на входящие данные.

Взгляд на требования к производительности при высоких скоростях передачи данных показывает, почему 16-, 32-, 64- или 128-байтовый FIFO является необходимостью. Спецификация Microsoft для системы DOS требует, чтобы прерывания не отключались более чем на 1 миллисекунду за раз. [ необходима цитата ] [ сомнительнообсудить ] Некоторые жесткие диски и видеоконтроллеры нарушают эту спецификацию. 9600 бит/с будут доставлять символ примерно каждую миллисекунду, поэтому 1-байтовый FIFO должен быть достаточным при этой скорости в системе DOS, которая соответствует максимальному времени отключения прерываний. Скорости выше этого могут принимать новый символ до того, как будет извлечен старый, и, таким образом, старый символ будет потерян. Это называется ошибкой переполнения и приводит к потере одного или нескольких символов.

16-байтовый FIFO позволяет получить до 16 символов, прежде чем компьютер должен будет обработать прерывание. Это увеличивает максимальную скорость передачи данных, которую компьютер может надежно обработать, с 9600 до 153 000 бит/с , если у него есть время простоя прерывания в 1 миллисекунду. 32-байтовый FIFO увеличивает максимальную скорость до более чем 300 000 бит/с . Второе преимущество наличия FIFO заключается в том, что компьютер должен обслуживать только около 8–12% от количества прерываний, что дает больше процессорного времени для обновления экрана или выполнения других задач. Таким образом, ответы компьютера также улучшатся.

Эмуляция

Поскольку протокол связи UART прост, его можно эмулировать путем побитового переключения контактов GPIO в программном обеспечении современных микроконтроллеров (например, Arduino [18] или Teensy [19] ) или программируемых конечных автоматов ввода-вывода (например, PIO Raspberry Pi Pico [20] [21] или FlexIO NXP [ 22] ).

Смотрите также

Ссылки

  1. ^ "RS-232 против последовательной связи TTL - SparkFun Electronics". www.sparkfun.com .
  2. ^ ab C. Gordon Bell, J. Craig Mudge, John E. McNamara, Computer Engineering: A DEC View of Hardware Systems Design, Digital Press, 12 мая 2014 г., ISBN 1483221105 , стр. 73 
  3. ^ Эллисон, Дэвид. «Куратор, Отдел информационных технологий и общества, Национальный музей американской истории, Смитсоновский институт». Устные и видеоистории Смитсоновского института . Получено 14 июня 2015 г.
  4. ^ Устная история Гордона Белла , 2005, доступ 2015-08-19
  5. ^ Технический справочник 6025008 (PDF) . Справочная библиотека по аппаратному обеспечению персональных компьютеров. IBM. Август 1981 г. С.  2–123 .
  6. ^ "FTDI Products". www.ftdichip.com . Получено 22 марта 2018 г. .
  7. ^ Адам Осборн, Введение в микрокомпьютеры. Том 1: Основные концепции , Osborne-McGraw Hill Berkeley California USA, 1980 ISBN 0-931988-34-9 стр. 116–126 
  8. ^ Texas Instrument (01.03.2021). "Универсальный асинхронный приемник/передатчик (UART)" (PDF) . ti.com . стр. 6, "2.3.1 Преобразование напряжения с помощью UART" . Получено 25 августа 2023 г. .
  9. ^ "Определение требований к точности часов для связи по протоколу UART" (PDF) . an2141 . Maxim Integrated . 2003-08-07 . Получено 1 ноября 2021 г. .
  10. ^ ab "Универсальный асинхронный приемник/передатчик (UART)" (PDF) . SCC2691 . Philips NXP . 2006-08-04. стр. 14 . Получено 1 ноября 2021 г. .
  11. ^ Взаимодействие с PDP-11/05: UART , blinkenbone.com, дата обращения 19 августа 2015 г.
  12. ^ "Спецификация продукта Zilog Z8440/1/2/4, Z84C40/1/2/3/4. Контроллер последовательного ввода-вывода" (PDF) .090529 zilog.com
  13. ^ "Zilog Document Download" (PDF) . www.zilog.com . Получено 22 марта 2018 г. .
  14. ^ T'so, Theodore Y. (23 января 1999 г.). "Re: Последовательная связь с 16650". Архив почты . Получено 2 июня 2013 г.
  15. ^ "FAQ: Драйверы UART и TurboCom 16550A 1994" . Получено 16 января 2016 г. .
  16. ^ Zilog. "Руководство пользователя SCC/ESCC UM010901-0601" (PDF) . leocom.kr . Получено 13 мая 2023 г. .
  17. ^ bill.herrin.us - Руководство по усовершенствованному последовательному порту Hayes ESP на 8 портов, 2004-03-02
  18. ^ "SoftwareSerial Library | Arduino Documentation". Arduino . 2022-10-05. Архивировано из оригинала 2023-06-01 . Получено 2023-06-10 .
  19. ^ Stoffregen, Paul. "Библиотека AltSoftSerial, для дополнительного последовательного порта". www.pjrc.com . Архивировано из оригинала 2023-03-22 . Получено 2023-06-10 .
  20. ^ "Пример последовательной связи Raspberry Pi Pico (MicroPython)". Electrocredible . 2023-01-24. Архивировано из оригинала 2023-06-03 . Получено 2023-06-10 .
  21. ^ МакКинни, Джош (2022-11-05). "Программируемый ввод-вывод (PIO) для MIDI с Rasberry Pi Pico". joshka.net . Архивировано из оригинала 2023-04-04 . Получено 2023-06-10 .
  22. ^ Krenek, Pavel (2015). "Эмуляция UART с помощью FlexIO" (PDF) . NXP . Архивировано (PDF) из оригинала 2022-10-05 . Получено 2023-06-10 .

Дальнейшее чтение

  • Serial Port Complete: COM-порты, виртуальные COM-порты USB и порты для встраиваемых систем ; 2-е издание; Ян Аксельсон; Lakeview Research; 380 страниц; 2007; ISBN 978-1-931-44806-2 . 
  • Serial Port Complete: Programming and Circuits for RS-232 and RS-485 Links and Networks ; 1-е издание; Ян Аксельсон; Lakeview Research; 306 страниц; 1998; ISBN 978-0-965-08192-4 . 
  • Последовательный порт и микроконтроллеры: принципы, схемы и исходные коды ; 1-е издание; Гжегож Немировский; CreateSpace; 414 страниц; 2013; ISBN 978-1-481-90897-9 . 
  • Последовательное программирование (Викиучебник).
  • Учебное пособие по последовательному интерфейсу и UART для FreeBSD, включающее определения стандартных сигналов, историю микросхем UART и схему расположения выводов для часто используемого разъема DB25.
  • Учебник по робототехнике UART, содержит множество практических примеров.
Взято с "https://en.wikipedia.org/w/index.php?title=Универсальный_асинхронный_приемник-передатчик&oldid=1265045044"