Receptor-transmisor asíncrono universal

Compartir Imprimir Citar
Esquema de bloque para un UART

Un receptor-transmisor asíncrono universal (UART) es un dispositivo de hardware informático para la comunicación serie asíncrona en el que el formato de datos y las velocidades de transmisión son configurables. Envía bits de datos uno por uno, desde el menos significativo hasta el más significativo, enmarcados por bits de inicio y parada para que el canal de comunicación maneje la sincronización precisa. Los niveles de señalización eléctrica son manejados por un circuito controlador externo al UART. Dos niveles de señal comunes son RS-232, un sistema de 12 voltios, y RS-485, un sistema de 5 voltios. Los primeros teletipos usaban bucles de corriente.

Fue uno de los primeros dispositivos de comunicación informática, utilizado para conectar teletipos para una consola de operador. También fue uno de los primeros sistemas de hardware para Internet.

Un UART suele ser un circuito integrado (IC) individual (o parte de un) que se utiliza para comunicaciones en serie a través de un puerto serie de computadora o dispositivo periférico. Uno o más periféricos UART se integran comúnmente en chips de microcontroladores. Los UART especializados se utilizan para automóviles, tarjetas inteligentes y SIM.

Un dispositivo relacionado, el receptor-transmisor síncrono y asíncrono universal (USART) también es compatible con la operación síncrona.

Transmisión y recepción de datos en serie

El transmisor-receptor asíncrono universal (UART) toma bytes de datos y transmite los bits individuales de manera secuencial. En el destino, un segundo UART vuelve a ensamblar los bits en bytes completos. Cada UART contiene un registro de desplazamiento, que es el método fundamental de conversión entre formas seriales y paralelas. La transmisión en serie de información digital (bits) a través de un solo cable u otro medio es menos costosa que la transmisión en paralelo a través de múltiples cables.

Por lo general, el UART no genera ni recibe directamente las señales externas que se utilizan entre los diferentes elementos del equipo. Se utilizan dispositivos de interfaz separados para convertir las señales de nivel lógico del UART hacia y desde los niveles de señalización externos, que pueden ser niveles de voltaje estandarizados, niveles de corriente u otras señales.

La comunicación puede ser de 3 modos:

Encuadre de datos

UART frame, field length in Bits
1 5-9 0-1 1-2
Comienzo Bit Marco de datos Parity Bits Parar los Bits

Para que UART funcione, las siguientes configuraciones deben ser las mismas tanto en el lado de transmisión como en el de recepción:

En la configuración más común de 8 bits de datos, sin paridad y 1 bit de parada (también conocido como 8N1), la eficiencia del protocolo es del 80 %. Ethernet, en comparación, es de hasta el 97%.

Ejemplo de un marco UART. En este diagrama se envía un byte, que consiste en un bit de inicio, seguido de ocho bits de datos (D0-7), y dos bits de parada, para un marco UART de 11 bits. El número de datos y bits de formato, la presencia o ausencia de un bit de paridad, la forma de paridad (incluso o extraña) y la velocidad de transmisión deben estar pre-acuerdos por las partes comunicantes. El "stop bit" es en realidad un "período alto"; el período de parada del transmisor puede ser arbitrariamente largo. No puede ser más corto que una cantidad especificada, generalmente 1 a 2 veces. El receptor requiere un período de parada más corto que el transmisor. Al final de cada marco de datos, el receptor se detiene brevemente para esperar el siguiente bit de inicio. Es esta diferencia que mantiene sincronizado el transmisor y el receptor. BCLK = Cierre de la base

Un marco UART consta de 5 elementos:

El estado inactivo, sin datos, es de alto voltaje o alimentado. Este es un legado histórico de la telegrafía, en el que la línea se mantiene alta para mostrar que la línea y el transmisor no están dañados.

Cada carácter se enmarca como un bit de inicio bajo lógico, bits de datos, posiblemente un bit de paridad y uno o más bits de parada. En la mayoría de las aplicaciones, el bit de datos menos significativo (el de la izquierda en este diagrama) se transmite primero, pero hay excepciones (como la terminal de impresión IBM 2741).

Bit de inicio

El bit de inicio le indica al receptor que viene un nuevo carácter.

Bit de datos

Los siguientes cinco a nueve bits, según el conjunto de códigos empleado, representan el carácter.

Bit de paridad

Si se usa un bit de paridad, se colocará después de todos los bits de datos.

Describe la impar o paridad del número.

Bit de parada

Los siguientes uno o dos bits siempre están en la condición marcar (lógica alta, es decir, '1') y se denominan bits de parada. Señalan al receptor que el personaje está completo. Dado que el bit de inicio es lógico bajo (0) y el bit de parada es lógico alto (1), siempre hay al menos dos cambios de señal garantizados entre caracteres.

Si la línea se mantiene en la condición lógica baja durante más tiempo que un carácter, esta es una condición de interrupción que puede detectar el UART.

Receptor

Todas las operaciones del hardware UART están controladas por una señal de reloj interna que se ejecuta a un múltiplo de la velocidad de datos, generalmente 8 o 16 veces la velocidad de bits. El receptor prueba el estado de la señal entrante en cada pulso de reloj, buscando el comienzo del bit de inicio. Si el bit de inicio aparente dura al menos la mitad del tiempo del bit, es válido y señala el inicio de un nuevo carácter. Si no, se considera un pulso espurio y se ignora. Después de esperar un tiempo de bit adicional, se vuelve a muestrear el estado de la línea y el nivel resultante se registra en un registro de desplazamiento. Después de que haya transcurrido el número requerido de períodos de bits para la longitud del carácter (5 a 8 bits, típicamente), el contenido del registro de desplazamiento se pone a disposición (en forma paralela) para el sistema receptor. El UART establecerá un indicador que indica que hay nuevos datos disponibles y también puede generar una interrupción del procesador para solicitar que el procesador host transfiera los datos recibidos.

Los UART de comunicación no tienen un sistema de temporización compartido aparte de la señal de comunicación. Por lo general, los UART resincronizan sus relojes internos en cada cambio de la línea de datos que no se considera un pulso espurio. Al obtener información de temporización de esta manera, reciben de manera confiable cuando el transmisor está enviando a una velocidad ligeramente diferente de la que debería. Los UART simplistas no hacen esto; en cambio, se resincronizan solo en el borde descendente del bit de inicio y luego leen el centro de cada bit de datos esperado, y este sistema funciona si la velocidad de transmisión de datos es lo suficientemente precisa como para permitir que los bits de parada se muestreen de manera confiable.

Es una función estándar para un UART almacenar el carácter más reciente mientras recibe el siguiente. Este "doble almacenamiento en búfer" le da a una computadora receptora un tiempo completo de transmisión de caracteres para buscar un carácter recibido. Muchos UART tienen una pequeña memoria de búfer de tipo primero en entrar, primero en salir (FIFO) entre el registro de desplazamiento del receptor y la interfaz del sistema host. Esto permite que el procesador host tenga aún más tiempo para manejar una interrupción del UART y evita la pérdida de datos recibidos a altas velocidades.

Transmisor

La operación de transmisión es más simple ya que no es necesario determinar el tiempo a partir del estado de la línea, ni está vinculado a ningún intervalo de tiempo fijo. Tan pronto como el sistema de envío deposita un carácter en el registro de desplazamiento (después de completar el carácter anterior), el UART genera un bit de inicio, desplaza el número requerido de bits de datos a la línea, genera y envía el bit de paridad (si se usa).), y envía los bits de parada. Dado que la operación full-duplex requiere que los caracteres se envíen y reciban al mismo tiempo, los UART utilizan dos registros de desplazamiento diferentes para los caracteres transmitidos y recibidos. Los UART de alto rendimiento podrían contener un búfer FIFO (primero en entrar, primero en salir) de transmisión para permitir que un controlador de CPU o DMA deposite varios caracteres en una ráfaga en el FIFO en lugar de tener que depositar un carácter a la vez en el registro de desplazamiento. Dado que la transmisión de uno o varios caracteres puede llevar mucho tiempo en relación con las velocidades de la CPU, un UART mantiene un indicador que muestra el estado ocupado para que el sistema host sepa si hay al menos un carácter en el búfer de transmisión o en el registro de desplazamiento; "listo para los siguientes personajes" también se puede señalar con una interrupción.

Solicitud

Los UART de transmisión y recepción deben configurarse para la misma velocidad de bits, longitud de caracteres, paridad y bits de parada para un funcionamiento adecuado. El UART receptor puede detectar algunas configuraciones no coincidentes y establecer un "error de trama" bit indicador para el sistema host; en casos excepcionales, el UART receptor producirá un flujo errático de caracteres mutilados y los transferirá al sistema host.

Los puertos seriales típicos que se usan con computadoras personales conectadas a módems usan ocho bits de datos, sin paridad y un bit de parada; para esta configuración, el número de caracteres ASCII por segundo es igual a la tasa de bits dividida por 10.

Algunas computadoras domésticas o sistemas integrados de muy bajo costo prescinden de un UART y usan la CPU para muestrear el estado de un puerto de entrada o manipular directamente un puerto de salida para la transmisión de datos. Aunque hace un uso intensivo de la CPU (dado que la temporización de la CPU es crítica), el chip UART puede omitirse, ahorrando dinero y espacio. La técnica se conoce como bit-banging.

Historia

Algunos de los primeros esquemas de telégrafo usaban pulsos de longitud variable (como en el código Morse) y mecanismos de relojería giratorios para transmitir caracteres alfabéticos. Los primeros dispositivos de comunicación en serie (con pulsos de longitud fija) eran interruptores mecánicos giratorios (conmutadores). Varios códigos de caracteres que usan 5, 6, 7 u 8 bits de datos se hicieron comunes en las teleimpresoras y más tarde como periféricos de computadora. El teletipo fue un excelente dispositivo de E/S de propósito general para una computadora pequeña.

Gordon Bell de DEC diseñó el primer UART, que ocupaba una placa de circuito completa llamada unidad de línea, para la serie de computadoras PDP que comenzó con la PDP-1. Según Bell, la principal innovación del UART fue el uso del muestreo para convertir la señal en el dominio digital, lo que permitió una temporización más confiable que los circuitos anteriores que usaban dispositivos de temporización analógicos con potenciómetros ajustados manualmente. Para reducir el costo del cableado, la placa posterior y otros componentes, estas computadoras también fueron pioneras en el control de flujo utilizando caracteres XON y XOFF en lugar de cables de hardware.

DEC condensó el diseño de la unidad de línea en un UART temprano de un solo chip para su propio uso. Western Digital desarrolló esto en el primer UART de un solo chip ampliamente disponible, el WD1402A, alrededor de 1971. Este fue un ejemplo temprano de un circuito integrado de escala media. Otro chip popular fue el SCN2651 de la familia Signetics 2650.

Un ejemplo de un UART de principios de la década de 1980 fue el National Semiconductor 8250 utilizado en la tarjeta adaptadora de comunicaciones asincrónicas de IBM PC original. En la década de 1990, se desarrollaron UART más nuevos con búfer en chip. Esto permitió una mayor velocidad de transmisión sin pérdida de datos y sin requerir atención tan frecuente de la computadora. Por ejemplo, el popular National Semiconductor 16550 tiene un FIFO de 16 bytes y generó muchas variantes, incluidas las 16C550, 16C650, 16C750 y 16C850.

Según el fabricante, se utilizan diferentes términos para identificar los dispositivos que realizan las funciones UART. Intel llamó a su dispositivo 8251 una 'Interfaz de comunicación programable'. MOS Technology 6551 se conocía con el nombre de "Adaptador de interfaz de comunicaciones asíncronas" (ACIA). El término "Interfaz de comunicaciones en serie" (SCI) se utilizó por primera vez en Motorola alrededor de 1975 para referirse a su dispositivo de interfaz serial asíncrona start-stop, que otros llamaban UART. Zilog fabricó una serie de controladores de comunicación en serie o SCC.

A partir de la década de 2000, la mayoría de las computadoras compatibles con IBM PC quitaron sus puertos COM RS-232 externos y usaron puertos USB que pueden enviar datos más rápido. Para los usuarios que aún necesitan puertos seriales RS-232, ahora se usan comúnmente puentes externos de USB a UART. Combinan los cables de hardware y un chip para hacer la conversión USB y UART. Cypress Semiconductor y FTDI son dos de los principales proveedores comerciales de estos chips. Aunque los puertos RS-232 ya no están disponibles para los usuarios en el exterior de la mayoría de las computadoras, muchos procesadores y microprocesadores internos tienen UART integrados en sus chips para brindar a los diseñadores de hardware la capacidad de interactuar con otros chips o dispositivos que usan RS-232 o RS- 485 para comunicación.

Estructura

Un UART normalmente contiene los siguientes componentes:

Condiciones especiales del transceptor

Error de desbordamiento

Se produce un error de desbordamiento cuando el receptor no puede procesar el carácter que acaba de entrar antes de que llegue el siguiente. Varios dispositivos tienen diferentes cantidades de espacio de búfer para contener los caracteres recibidos. El controlador de CPU o DMA debe dar servicio al UART para eliminar caracteres del búfer de entrada. Si el controlador de CPU o DMA no presta servicio al UART lo suficientemente rápido y el búfer se llena, se producirá un error de desbordamiento y se perderán los caracteres entrantes.

Error de insuficiencia de datos

Se produce un error de subejecución cuando el transmisor UART ha completado el envío de un carácter y el búfer de transmisión está vacío. En los modos asíncronos, esto se trata como una indicación de que no quedan datos para transmitir, en lugar de un error, ya que se pueden agregar bits de parada adicionales. Esta indicación de error se encuentra comúnmente en los USART, ya que una insuficiencia de datos es más grave en los sistemas síncronos.

Error de encuadre

Un UART detectará un error de trama cuando no vea un "detener" bit en la "parada" esperada poco tiempo. Como el "inicio" bit se utiliza para identificar el comienzo de un carácter entrante, su temporización es una referencia para los bits restantes. Si la línea de datos no está en el estado esperado (alto) cuando el "stop" se espera un bit (de acuerdo con la cantidad de datos y bits de paridad para los que está configurado el UART), el UART indicará un error de trama. Un "descanso" la condición en la línea también se señala como un error de trama.

Error de paridad

Un error de paridad ocurre cuando la paridad del número de bits no coincide con la especificada por el bit de paridad. La verificación de paridad se usa a menudo para la detección de errores de transmisión. El uso de un bit de paridad es opcional, por lo que este error solo ocurrirá si se ha habilitado la verificación de paridad.

Condición de ruptura

Se produce una condición de interrupción cuando la entrada del receptor está en el "espacio" (nivel bajo lógico, es decir, '0') durante más de un período de tiempo, generalmente, durante más de un tiempo de carácter. Esto no es necesariamente un error, pero aparece para el receptor como un carácter de todos los bits cero con un error de trama.

El término "romper" deriva de la señalización de bucle de corriente, que era la señalización tradicional utilizada para los teletipos. El "espaciado" La condición de una línea de bucle de corriente se indica por la falta de flujo de corriente, y un período muy largo sin flujo de corriente a menudo es causado por una interrupción u otra falla en la línea. Algunos equipos transmitirán deliberadamente el "espacio" nivel durante más tiempo que un personaje como señal de atención. Cuando las tasas de señalización no coinciden, no se pueden enviar caracteres significativos, pero sí un "descanso" largo. La señal puede ser una forma útil de llamar la atención de un receptor que no coincide para que haga algo (como reiniciarse). Los sistemas informáticos pueden utilizar el "descanso" nivel como una solicitud para cambiar la velocidad de señalización, para admitir el acceso telefónico a múltiples velocidades de señalización. El protocolo DMX512 utiliza la condición de interrupción para indicar el inicio de un nuevo paquete.

Modelos UART

Un UART dual, o DUART, combina dos UART en un solo chip. De manera similar, un UART cuádruple o QUART combina cuatro UART en un solo paquete, como el NXP 28L194. Un UART octal u OCTART combina ocho UART en un solo paquete, como el Exar XR16L788 o el NXP SCC2698.

ModeloDescripción
WD1402A El primer UART de un solo chip en venta general. Introducido alrededor de 1971. Las fichas compatibles incluyeron el Fairchild TR1402A y los instrumentos generales AY-5-1013.
Exar XR21V1410
Intersil 6402
CDP 1854 (RCA, now Intersil)
Zilog Z8440 Transmisor universal sincrónico y asincrónico. 2000 kbit/s. Async, Bisync, SDLC, HDLC, X.25. CRC. Buffer RX de 4 bytes. Buffer TX de 2 bytes. Proporciona señales necesarias por un controlador DMA de terceros para realizar transferencias DMA.
Z8530/Z85C30 Este receptor-transmisor universal sincrónico y asincrónico tiene un buffer de 3 bytes y un buffer de transmisión de 1 byte. Tiene hardware para acelerar el procesamiento de HDLC y SDLC. La versión CMOS (Z85C30) proporciona señales para permitir que un controlador DMA de terceros realice transferencias DMA. Puede hacer comunicaciones asincrónicas, a nivel de byte sincrónicas y poco nivel sincronizado.
8250 Obsoleto con buffers de 1 byte. La velocidad máxima estándar de estos UARTs es de 9600 bits por segundo si el sistema operativo tiene una latencia interrumpida de 1 milisegundos. Se utilizaron 8250 UARTs en el IBM PC 5150 e IBM PC/XT, mientras que los 16450 UART se utilizaron en computadoras IBM PC/AT-series.
8251
Motorola 6850
6551
Rockwell 65C52
16450
82510 Este UART permite una operación asincrónica de hasta 288 kbit/s, con dos FIFOs independientes de cuatro bytes. Fue producido por Intel al menos de 1993 a 1996, y Innovastic Semiconductor tiene una Hoja de Datos 2011 para IA82510.
16550 El FIFO de este UART está roto, por lo que no puede funcionar con seguridad más rápido que el UART 16450. Las versiones 16550A y posteriores fijan este error.
16550A Este UART tiene buffers FIFO de 16 bytes. Sus niveles de gatillo interrumpido se pueden establecer a 1, 4, 8 o 14 caracteres. Su velocidad máxima estándar de puerto serie si el sistema operativo tiene una latencia de 1 milisegundos es de 128 kbit/s. Los sistemas con retrasos de interrupción más bajos o con controladores DMA podrían manejar tasas de baudio más altas. Este chip puede proporcionar señales que son necesarias para permitir que un controlador DMA realice transferencias DMA a y desde el UART si el modo DMA que presenta este UART está habilitado. Fue introducida por National Semiconductor, que se ha vendido a Texas Instruments. National Semiconductor afirmó que este UART podría correr hasta 1,5 Mbit/s.
16C552
16650Este UART fue introducido por Startech Semiconductor que ahora es propiedad de Exar Corporation y no está relacionado con Startech.com. Las versiones tempranas tienen un búfer FIFO roto y por lo tanto no pueden funcionar con seguridad más rápido que el UART 16450. Las versiones de este UART que no se rompieron tienen amortiguadores FIFO de 32 caracteres y podrían funcionar a velocidades estándar de puerto serie de hasta 230.4 kbit/s si el sistema operativo tiene una latencia de 1 milisegundos. Las versiones actuales de esta reclamación UART de Exar pueden manejar hasta 1,5 Mbit/s. Este UART introduce las características Auto-RTS y Auto-CTS en las que la señal RTS# es controlada por el UART para indicar el dispositivo externo para dejar de transmitir cuando el búfer del UART está lleno o más allá de un punto de activación del usuario y parar de transmitir al dispositivo cuando el dispositivo conduce la señal CTS# alta (lógica 0).
16750Buffers de 64 bytes. Este UART puede manejar una velocidad máxima estándar de puerto serie de 460.8 kbit/s si la latencia máxima interrumpida es de 1 milisegundo. Este UART fue presentado por Texas Instruments. TI afirma que los modelos tempranos pueden funcionar hasta 1 Mbit/s, y los modelos posteriores de esta serie pueden funcionar hasta 3 Mbit/s.
16850 Buffers de 128 bytes. Este UART puede manejar una velocidad máxima estándar de puerto serie de 921.6 kbit/s si la latencia máxima interrumpida es de 1 milisegundo. Este UART fue presentado por Exar Corporation. Exar afirma que las versiones tempranas pueden funcionar hasta 2 Mbit/s, y versiones posteriores pueden funcionar hasta 2.25 Mbit/s dependiendo de la fecha de fabricación.
16C850
16950 Buffers de 128 bytes. Este UART puede manejar una velocidad máxima estándar de puerto serie de 921.6 kbit/s si la latencia máxima interrumpida es de 1 milisegundo. Este UART admite caracteres de 9 bits además de los caracteres de 5 a 8 bits que otros UART apoyan. Esto fue introducido por Oxford Semiconductor, que ahora es propiedad de PLX Technology. Oxford/PLX afirma que este UART puede funcionar hasta 15 Mbit/s. PCI Las variantes Express de Oxford/PLX están integradas con un controlador PCIe DMA de primer partido. Este controlador DMA utiliza las señales DMA del modo UART que fueron definidas para el 16550. El controlador DMA requiere que la CPU establezca cada transacción y evalúe un registro de estado después de que se inicie la transacción para determinar si se realiza la transacción. Cada transacción DMA puede transferir entre 1 y 128 bytes entre un búfer de memoria y el UART. PCI Las variantes Express también pueden permitir que la CPU transfiera datos entre sí y la UART con transferencias de 8, 16 o 32 bits al utilizar la I/O programada.
16C950
16954 Versión cuádruple de los buffers 16950/16C950. 128 bytes. Este UART puede manejar una velocidad máxima estándar de puerto serie de 921.6 kbit/s si la latencia máxima interrumpida es de 1 milisegundo. Este UART admite caracteres de 9 bits además de los caracteres de 5-8 bits que otros UART apoyan. Esto fue introducido por Oxford Semiconductor, que ahora es propiedad de PLX Technology. Oxford/PLX afirma que este UART puede funcionar hasta 15 Mbit/s. PCI Las variantes Express de Oxford/PLX están integradas con un controlador PCIe DMA de primer partido. Este controlador DMA está controlado por las señales DMA del modo UART que fueron definidas para el 16550. El controlador DMA requiere que la CPU establezca cada transacción y evalúe un registro de estado después de que se inicie la transacción para determinar si se realiza la transacción. Cada transacción DMA puede transferir entre 1 y 128 bytes entre un búfer de memoria y el UART. PCI Las variantes Express también pueden permitir que la CPU transfiera datos entre sí y la UART con transferencias de 8, 16 o 32 bits al utilizar la I/O programada.
16C954
16C1550/16C1551UART con buffers FIFO de 16 bytes. Hasta 1,5 Mbit/s. El ST16C155X no es compatible con el estándar de la industria 16550 y no funcionará con el controlador de puerto serie estándar en Microsoft Windows.
16C2450Doble UART con buffers FIFO de 1 byte.
16C2550Doble UART con amortiguadores FIFO de 16 bytes. Pin-to-pin y funcional compatible con 16C2450. Software compatible con INS8250 y NS16C550.
SCC2691 Actualmente producido por NXP, el 2691 es un único canal UART que también incluye un contador/timer programable. El 2691 tiene un registro de retención de transmisores de un solo byte y un FIFO de 4 bytes. La velocidad máxima estándar del 2692 es de 115.2 kbit/s.

El 28L91 es una versión ascendentemente compatible del 2691, con transmisores y receptores seleccionables de 8 o 16 bytes, mejor apoyo para las tasas de datos extendidas y características de tiempo de autobús más rápidas, haciendo que el dispositivo sea más adecuado para su uso con microprocesadores de alto rendimiento.

Tanto el 2691 como el 28L91 también pueden operarse en modos TIA-422 y TIA-485, y también pueden programarse para apoyar las tasas de datos no estándar. Los dispositivos se fabrican en paquetes PDIP-40, PLCC-44 y 44 pines QFP, y son fácilmente adaptables a los autobuses de Motorola e Intel. También se han adaptado con éxito a los autobuses 65C02 y 65C816. El 28L91 funcionará en 3.3 o 5 voltios.

SCC28L91
SCC2692 Actualmente producido por NXP, estos dispositivos son dual UARTs (DUART), que consiste en dos canales de comunicación, registros de control asociados y un contador/timer. Cada canal de comunicación es programable independientemente y es compatible con transmisión independiente y recibir tasas de datos.

El 2692 tiene un registro de retención de transmisores de un solo byte y un FIFO receptor de 4 bytes para cada canal. La velocidad máxima de ambos canales del 2692 es de 115,2 kbit/s.

El 26C92 es una versión ascendentemente compatible del 2692, con transmisor de 8 bytes y receptores FIFOs para mejorar el rendimiento durante la transmisión asincrónica bidireccional continua (CBAT) en ambos canales a la velocidad máxima estándar de 230.4 kbit/s. La carta C en el número 26C92 parte no tiene nada que ver con el proceso de fabricación; todos los NXP UARTs son dispositivos CMOS.

El 28L92 es una versión más compatible del 26C92, con transmisores y receptores seleccionables de 8 o 16 bytes, mejor apoyo para las tasas de datos extendidas y características de tiempo de autobús más rápidas, haciendo que el dispositivo sea más adecuado para su uso con microprocesadores de alto rendimiento.

Los modos 2692, 26C92 y 28L92 pueden ser operados en modos TIA-422 y TIA-485, y también pueden programarse para apoyar las tasas de datos no estándar. Los dispositivos se fabrican en paquetes PDIP-40, PLCC-44 y 44 pines QFP, y son fácilmente adaptables a los autobuses de Motorola e Intel. También se han adaptado con éxito a los autobuses 65C02 y 65C816. El 28L92 funcionará en 3.3 o 5 voltios.

SC26C92
SC28L92
SCC28C94Actualmente producido por NXP, el 28C94 quadruple UART (QUART) es funcionalmente similar a un par de DUARTs SCC26C92 montados en un paquete común, con la adición de un sistema de interrupción arbitraria para el procesamiento eficiente durante períodos de actividad de canal intenso. Algunas señales adicionales están presentes para soportar las funciones de gestión de interrupciones y los pines auxiliares de entrada / salida se organizan de forma diferente a las del 26C92. De lo contrario, el modelo de programación para el 28C94 es similar al del 26C92, que requiere sólo cambios menores de código para utilizar plenamente todas las características. El 28C94 admite una velocidad máxima estándar de 230,4 kbit/s, está disponible en un paquete PLCC-52, y es fácilmente adaptable a los autobuses Motorola e Intel. También se ha adaptado con éxito al autobús 65C816.
SCC2698BActualmente producido por NXP, el 2698 octal UART (OCTART) es esencialmente cuatro SCC2692 DUARTs en un solo paquete. Las especificaciones son las mismas que el SCC2692 (no el SCC26C92). Debido a la falta de FIFOs transmisores y el pequeño tamaño de los FIFOs receptores, el 2698 puede causar una "tormenta interrumpida" si todos los canales se dedican simultáneamente a la comunicación bidireccional continua. El dispositivo se produce en paquetes PDIP-64 y PLCC-84, y es fácilmente adaptable a los autobuses Motorola e Intel. El 2698 también se ha adaptado con éxito a los autobuses 65C02 y 65C816.
SCC28L198Actualmente producido por NXP, el OCTART 28L198 es esencialmente una mejora a escala de la SCC28C94 QUART descrita anteriormente, con ocho canales de comunicación independientes, así como un sistema de interrupción arbitraria para el procesamiento eficiente durante períodos de intensa actividad de canal. El 28L198 admite una velocidad estándar máxima de 460.8 kbit/s, está disponible en paquetes PLCC-84 y LQFP-100, y es fácilmente adaptable a los autobuses Motorola e Intel. El 28L198 funcionará en 3.3 o 5 voltios.
Z85230Modos sincronizados / sincronizados, 2 puertos. Proporciona señales necesarias por un controlador DMA de terceros necesario para realizar transferencias DMA. Buffer de 4 bytes para enviar, búfer de 8 bytes para recibir por canal. modos SDLC/HDLC. 5 Mbit/s en modo sincronizado.
Hayes ESP1 KB buffers, 921,6 kbit/s8 puertos.
Exar XR17V352, XR17V354 y XR17V358Control de flujo dual, cuádruplo y Octal PCI Express UARTs con 16550 sistema de registro compatible, 256 bytes TX y RX FIFOs, TX programable y RX Trigger Niveles, contadores de nivel TX/RX FIFO, generador de velocidad de baudio fraccional, control de flujo automático RTS/CTS o DTR/DSR con salida programable automático de velocidades Se especifican hasta 25 Mbit/s. DataSheets data de 2012.
Exar XR17D152, XR17D154 y XR17D158Autobús PCI dual, Quad y Octal UARTs con 16C550 Conjunto de Registro compatible 5G, Transmisión de 64 bits y Recibir FIFOs, Transmitir y Recibir contadores de nivel FIFO, Nivel de Trigger programable TX y RX FIFO, Control de flujo automático de RTS/CTS o DTR/DSR, Control de flujo automático Xon/Xoff, RS485 Control de control de control de control de control de alta velocidad Data Encoder/Decoder, Programmable Tasa de datos con Prescaler, hasta 6.25 Mbit/s Tasa de datos serie. DataSheets data de 2004 y 2005.
Exar XR17C152, XR17C154 y XR17C158Autobús PCI dual, Quad y Octal 5 V UARTs con 16C550 Registros compatibles, Transmitir y Recibir FIFOs, Transmitir y Recibir contadores de nivel FIFO, Control automático de flujo RTS/CTS o DTR/DSR, Control automático de flujo Xon/Xoff, Control medio dúplex RS485 con retraso seleccionable, infrarrojo (IrDA 1.0) Data Encoder/Decoder, Programmable Tasa de datos con Prescaler, hasta 6.25 Mbit/s Tasa de datos serie. DataSheets data de 2004 y 2005.
Exar XR17V252, XR17V254 y XR17V258Doble, Cuádruplo y Octal 66 MHz PCI bus UARTs with Power Management Support, 16C550 conjunto de registro compatible, TX y RX FIFOs de 64 bytes con contadores de nivel y niveles de activación programables, generador de velocidad de baudio fraccional, control de flujo de hardware automático RTS/CTS o DTR/DSR con salida programable hysteresis, Control de flujo de software Xon/Xoff DataSheets data de 2008 y 2010.

UART en módems

Los módems para computadoras personales que se conectan a una ranura de placa base también deben incluir la función UART en la tarjeta. El chip UART 8250 original que se envió con la computadora personal de IBM tenía un búfer de un carácter para el receptor y el transmisor, lo que significaba que el software de comunicaciones funcionaba mal a velocidades superiores a 9600 bit/s, especialmente si operaba bajo un sistema multitarea o si manejaba interrupciones. de los controladores de disco. Los módems de alta velocidad usaban UART que eran compatibles con el chip original pero que incluían búferes FIFO adicionales, lo que le daba al software tiempo adicional para responder a los datos entrantes.

Una mirada a los requisitos de rendimiento a velocidades de bits altas muestra por qué el FIFO de 16, 32, 64 o 128 bytes es una necesidad. La especificación de Microsoft para un sistema DOS requiere que las interrupciones no se desactiven durante más de 1 milisegundo a la vez. Algunas unidades de disco duro y controladores de video violan esta especificación. 9600 bit/s entregará un carácter aproximadamente cada milisegundo, por lo que un FIFO de 1 byte debería ser suficiente a esta velocidad en un sistema DOS que cumpla con el tiempo máximo de desactivación de interrupciones. Las tarifas por encima de esto pueden recibir un nuevo carácter antes de que se haya obtenido el anterior y, por lo tanto, el antiguo carácter se perderá. Esto se denomina error de desbordamiento y provoca la pérdida de uno o más caracteres.

Un FIFO de 16 bytes permite recibir hasta 16 caracteres antes de que la computadora tenga que atender la interrupción. Esto aumenta la tasa de bits máxima que la computadora puede procesar de manera confiable de 9600 a 153 000 bit/s si tiene un tiempo muerto de interrupción de 1 milisegundo. Un FIFO de 32 bytes aumenta la velocidad máxima a más de 300 000 bit/s. Un segundo beneficio de tener un FIFO es que la computadora solo tiene que atender alrededor del 8 al 12% de tantas interrupciones, lo que permite más tiempo de CPU para actualizar la pantalla o realizar otras tareas. Por lo tanto, las respuestas de la computadora también mejorarán.