Receptor-transmisor asíncrono universal - Universal asynchronous receiver-transmitter

Diagrama de bloques para un UART

A asíncrono receptor-transmisor universal ( UART / JU ɑr t / ) es un hardware de ordenador dispositivo para la comunicación en serie asíncrono en el que el formato de datos y velocidades de transmisión son configurables. Envía bits de datos uno por uno, del menos significativo al 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.

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

Un UART es generalmente un circuito integrado (IC) individual (o parte de un ) que se utiliza para comunicaciones en serie a través de una computadora o un puerto en serie de un 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 . Los primeros teletipos utilizaron bucles de corriente .

Un dispositivo relacionado, el receptor-transmisor universal síncrono y asíncrono (USART) también admite el funcionamiento síncrono.

Transmisión y recepción de datos en serie

El receptor-transmisor asíncrono universal (UART) toma bytes de datos y transmite los bits individuales de forma 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 en serie 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.

El UART generalmente no genera ni recibe directamente las señales externas utilizadas entre 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 externa, que pueden ser niveles de voltaje estandarizados, niveles de corriente u otras señales.

La comunicación puede ser simplex (en una sola dirección, sin que el dispositivo receptor envíe información al dispositivo transmisor), dúplex completo (ambos dispositivos envían y reciben al mismo tiempo) o semidúplex (los dispositivos se turnan para transmitir y recibir ).

Encuadre de datos

Diagrama que muestra la sincronización de UART

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 lógico bajo, 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 el terminal de impresión IBM 2741 ).

El bit de inicio indica al receptor que viene un nuevo carácter. Los siguientes cinco a nueve bits, según el conjunto de códigos empleado, representan el carácter. Si se utiliza un bit de paridad, se colocará después de todos los bits de datos. Los siguientes uno o dos bits están siempre en la condición de marca (lógica alta, es decir, '1') y se denominan bit (s) de parada. Indican 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 de un tiempo de carácter, esta es una condición de interrupción que puede ser detectada por el UART.

Receptor

Todas las operaciones del hardware UART están controladas por una señal de reloj interno que se ejecuta a un múltiplo de la velocidad de datos, normalmente 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. De lo contrario, se considera un pulso falso y se ignora. Después de esperar un poco más de tiempo, el estado de la línea se muestrea nuevamente y el nivel resultante se registra en un registro de desplazamiento. Una vez transcurrido el número requerido de períodos de bits para la longitud del carácter (de 5 a 8 bits, típicamente), el contenido del registro de desplazamiento se pone a disposición (en paralelo) para el sistema de recepción. La UART establecerá una bandera que indica que hay nuevos datos disponibles y también puede generar una interrupción del procesador para solicitar que el procesador central transfiera los datos recibidos.

Los UART que se comunican no tienen un sistema de temporización compartido aparte de la señal de comunicación. Normalmente, 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 sincronización de esta manera, reciben de manera confiable cuando el transmisor está enviando a una velocidad ligeramente diferente a la que debería. Los UART simplistas no hacen esto; en su lugar, 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 "almacenamiento en búfer doble" le da a una computadora receptora un tiempo completo de transmisión de caracteres para obtener un carácter recibido. Muchos UART tienen una pequeña memoria intermedia de 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 de la UART y evita la pérdida de datos recibidos a altas velocidades.

Transmisor

El funcionamiento de la transmisión es más sencillo ya que la temporización no tiene que determinarse a partir del estado de la línea, ni está vinculada a intervalos de temporización fijos. 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 de dúplex completo 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 de transmisión (primero en entrar, primero en salir) 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 una bandera que muestra el estado de ocupado para que el sistema anfitrión sepa si hay al menos un carácter en el búfer de transmisión o en el registro de desplazamiento; "Listo para el (los) siguiente (s) carácter (es)" también se puede señalar con una interrupción.

Solicitud

Los UART transmisores y receptores 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 que no coinciden y establecer un bit de marca de "error de trama" para el sistema host; en casos excepcionales, el UART receptor producirá un flujo errático de caracteres mutilados y los transferirá al sistema anfitrión.

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. Si bien consume mucha CPU (ya que la sincronización de la CPU es fundamental), el chip UART se puede omitir, lo que ahorra dinero y espacio. La técnica se conoce como bit-banging .

Historia

Algunos de los primeros esquemas telegráficos utilizaban pulsos de longitud variable (como en el código Morse ) y mecanismos de relojería rotativos para transmitir caracteres alfabéticos. Los primeros dispositivos de comunicación en serie (con pulsos de longitud fija) fueron interruptores mecánicos giratorios ( conmutadores ). Varios códigos de caracteres que utilizan 5, 6, 7 u 8 bits de datos se volvieron comunes en los teleimpresores y más tarde como periféricos de computadora. El teletipo era un excelente dispositivo de E / S de uso general para una computadora pequeña.

Gordon Bell de diciembre diseñó el primer UART, ocupando una placa de circuito entero llamado una unidad de línea , para los PDP serie de ordenadores comienzan con el PDP-1 . Según Bell, la principal innovación de la UART fue su uso de muestreo para convertir la señal en el dominio digital, lo que permite una sincronización más confiable que los circuitos anteriores que usaban dispositivos de sincronización analógica con potenciómetros ajustados manualmente . Para reducir el costo de cableado, backplane 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 uno de los primeros UART 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 UART de principios de la década de 1980 fue el National Semiconductor 8250 utilizado en la tarjeta adaptadora de comunicaciones asíncronas de la PC IBM original . En la década de 1990, se desarrollaron UART más nuevos con búferes en chip. Esto permitió una mayor velocidad de transmisión sin pérdida de datos y sin requerir una 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 .

Dependiendo del 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 en serie asíncrona de arranque y parada, que otros llamaban UART. Zilog fabricó varios 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 eliminaron sus puertos COM RS-232 externos y utilizaron puertos USB que pueden enviar datos más rápido. Para los usuarios que todavía necesitan puertos serie RS-232, ahora se utilizan comúnmente puentes externos USB a UART . Combinan los cables de hardware y un chip para realizar 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 generalmente contiene los siguientes componentes:

  • un generador de reloj, generalmente un múltiplo de la tasa de bits para permitir el muestreo en medio de un período de bits
  • registros de desplazamiento de entrada y salida
  • control de transmisión / recepción
  • lógica de control de lectura / escritura
  • Medición de autobaudios (opcional)
  • búfer de transmisión / recepción (opcional)
  • búfer de bus de datos del sistema (opcional)
  • Memoria búfer de primero en entrar , primero en salir ( FIFO ) (opcional)
  • Señales que necesita un controlador DMA de terceros (opcional)
  • Controlador DMA de masterización de bus integrado (opcional)

Condiciones especiales del transceptor

Error de desbordamiento

Se produce un "error de saturación" cuando el receptor no puede procesar el carácter que acaba de llegar antes de que llegue el siguiente. Varios dispositivos tienen diferentes cantidades de espacio de búfer para contener los caracteres recibidos. La CPU o el controlador DMA deben dar servicio a la UART para eliminar caracteres del búfer de entrada. Si la CPU o el controlador DMA no dan servicio a la UART con la suficiente rapidez y el búfer se llena, se producirá un error de saturación y se perderán los caracteres entrantes.

Error de insuficiencia

Se produce un "error de insuficiencia de datos" 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 por 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 ve un bit de "parada" en el tiempo de bit de "parada" esperado. Como el bit de "inicio" se usa 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 se espera el bit de "parada" (de acuerdo con el número de datos y bits de paridad para los que se establece el UART), el UART señalará un error de trama. Una condición de "ruptura" en la línea también se indica como un error de trama.

Error de paridad

Se produce un error de paridad cuando la paridad del número de bits uno no coincide con la especificada por el bit de paridad. La verificación de paridad se utiliza 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 rotura

Una condición de interrupción ocurre cuando la entrada del receptor está en el nivel de "espacio" (lógica baja, es decir, '0') durante más tiempo que un período de tiempo, típicamente, por más de un tiempo de carácter. Esto no es necesariamente un error, pero el receptor lo ve como un carácter de todos los bits cero con un error de trama. El término "interrupción" deriva de la señalización de bucle de corriente , que era la señalización tradicional utilizada para teletipos . La condición de "espaciado" de una línea de bucle de corriente se indica porque no fluye corriente, y un período muy largo sin flujo de corriente a menudo es causado por una ruptura u otra falla en la línea.

Algunos equipos transmitirán deliberadamente el nivel de "espacio" durante más tiempo que un personaje como señal de atención. Cuando las velocidades de señalización no coinciden, no se pueden enviar caracteres significativos, pero una señal larga de "interrupción" puede ser una forma útil de llamar la atención de un receptor no coincidente para hacer algo (como reiniciarse). Los sistemas informáticos pueden utilizar el nivel de "interrupción" larga 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 señalar 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 u OCTART octal combina ocho UART en un paquete, como el Exar XR16L788 o el NXP SCC2698.

Modelo Descripción
WD1402A El primer UART de un solo chip a la venta general. Introducido alrededor de 1971. Los chips compatibles incluyen el Fairchild TR1402A y el General Instruments AY-5-1013.
Exar XR21V1410
Intersil 6402
CDP 1854 (RCA, ahora Intersil)
Zilog Z8440 Receptor-transmisor universal síncrono y asíncrono . 2000 kbit / s. Async, Bisync , SDLC , HDLC , X.25 . CRC . Búfer RX de 4 bytes. Búfer TX de 2 bytes. Proporciona las señales que necesita un controlador DMA de terceros para realizar transferencias DMA.
Z8530 / Z85C30 Este receptor-transmisor universal síncrono y asíncrono tiene un búfer de recepción de 3 bytes y un búfer 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 realizar comunicaciones asíncronas, síncronas a nivel de bytes y síncronas a nivel de bits.
8250 Obsoleto con búferes de 1 byte. La velocidad máxima del puerto serie estándar de estos UART es de 9600 bits por segundo si el sistema operativo tiene una latencia de interrupción de 1 milisegundo . Se utilizaron 8250 UART en IBM PC 5150 e IBM PC / XT, mientras que 16450 UART se utilizaron en computadoras IBM PC / AT de la serie.
8251
Motorola 6850
6551
Rockwell 65C52
16450
82510 Este UART permite el funcionamiento asíncrono hasta 288 kbit / s, con dos FIFO independientes de cuatro bytes. Fue producido por Intel al menos de 1993 a 1996, e Innovastic Semiconductor tiene una hoja de datos de 2011 para IA82510.
16550 El FIFO de este UART está roto, por lo que no puede correr con seguridad más rápido que el 16450 UART. El 16550A y versiones posteriores corrigen este error.
16550A Este UART tiene búferes FIFO de 16 bytes. Sus niveles de activación de interrupción de recepción se pueden establecer en 1, 4, 8 o 14 caracteres. La velocidad máxima del puerto serie estándar si el sistema operativo tiene una latencia de interrupción de 1 milisegundo es de 128 kbit / s. Los sistemas con latencias de interrupción más bajas o con controladores DMA podrían manejar velocidades de transmisión más altas. Este chip puede proporcionar señales necesarias para permitir que un controlador DMA realice transferencias DMA hacia y desde la UART si el modo DMA que introduce esta UART está habilitado. Fue presentado por National Semiconductor, que se vendió a Texas Instruments. National Semiconductor afirmó que este UART podría funcionar a hasta 1,5 Mbit / s.
16C552
16650 Este UART fue presentado por Startech Semiconductor, que ahora es propiedad de Exar Corporation y no está relacionado con Startech.com. Las primeras versiones tienen un búfer FIFO roto y, por lo tanto, no pueden ejecutarse de manera segura más rápido que el 16450 UART. Las versiones de este UART que no se rompieron tienen búferes FIFO de 32 caracteres y podrían funcionar a velocidades de puerto serie estándar de hasta 230,4 kbit / s si el sistema operativo tiene una latencia de interrupción de 1 milisegundo. Las versiones actuales de este UART de Exar afirman poder manejar hasta 1,5 Mbit / s. Este UART presenta las funciones Auto-RTS y Auto-CTS en las que la señal RTS # es controlada por el UART para indicar al dispositivo externo que deje de transmitir cuando el búfer del UART esté lleno hasta o más allá de un punto de activación establecido por el usuario y que deje de transmitir. al dispositivo cuando el dispositivo impulsa la señal CTS # alta (0 lógico).
16750 Búferes de 64 bytes. Este UART puede manejar una velocidad de puerto serie estándar máxima de 460,8 kbit / s si la latencia de interrupción máxima es de 1 milisegundo. Este UART fue presentado por Texas Instruments. TI afirma que los primeros modelos pueden funcionar hasta 1 Mbit / s, y los modelos posteriores de esta serie pueden funcionar hasta 3 Mbit / s.
16850 Búferes de 128 bytes. Este UART puede manejar una velocidad de puerto serie estándar máxima de 921,6 kbit / s si la latencia de interrupción máxima es de 1 milisegundo. Este UART fue presentado por Exar Corporation. Exar afirma que las primeras versiones pueden correr hasta 2 Mbit / s, y las versiones posteriores pueden correr hasta 2.25 Mbit / s dependiendo de la fecha de fabricación.
16C850
16950 Búferes de 128 bytes. Este UART puede manejar una velocidad de puerto serie estándar máxima de 921,6 kbit / s si la latencia de interrupción máxima es de 1 milisegundo. Este UART admite caracteres de 9 bits además de los caracteres de 5 a 8 bits que admiten otros UART. 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. Las variantes de PCI Express de Oxford / PLX están integradas con un controlador PCIe DMA de masterización de bus de origen. Este controlador DMA utiliza las señales de modo DMA de la UART que se definieron para el 16550. El controlador DMA requiere que la CPU configure cada transacción y sondee un registro de estado después de que se inicie la transacción para determinar si la transacción se realizó. Cada transacción DMA puede transferir entre 1 y 128 bytes entre un búfer de memoria y la UART. Las variantes de PCI Express también pueden permitir que la CPU transfiera datos entre sí y la UART con transferencias de 8, 16 o 32 bits cuando se utilizan E / S programadas.
16C950
16954 Versión de cuatro puertos del 16950 / 16C950. Búferes de 128 bytes. Este UART puede manejar una velocidad de puerto serie estándar máxima de 921,6 kbit / s si la latencia de interrupción máxima es de 1 milisegundo. Este UART admite caracteres de 9 bits además de los caracteres de 5 a 8 bits que admiten otros UART. 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. Las variantes de PCI Express de Oxford / PLX están integradas con un controlador PCIe DMA de masterización de bus de origen. Este controlador DMA está controlado por las señales de modo DMA de UART que se definieron para el 16550. El controlador DMA requiere que la CPU configure cada transacción y sondee un registro de estado después de que se inicie la transacción para determinar si la transacción se realizó. Cada transacción DMA puede transferir entre 1 y 128 bytes entre un búfer de memoria y la UART. Las variantes de PCI Express también pueden permitir que la CPU transfiera datos entre ella y la UART con transferencias de 8, 16 o 32 bits cuando se utilizan E / S programadas.
16C954
16C1550 / 16C1551 UART con búferes 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.
16C2450 UART dual con búferes FIFO de 1 byte.
16C2550 UART dual con búferes FIFO de 16 bytes. Pin-a-pin y funcional compatible con 16C2450. Software compatible con INS8250 y NS16C550.
SCC2691 Actualmente producido por NXP , el 2691 es un UART de un solo canal que también incluye un contador / temporizador programable. El 2691 tiene un registro de retención de transmisor de un solo byte y un FIFO de recepción de 4 bytes . La velocidad estándar máxima del 2692 es 115,2 kbit / s.

El 28L91 es una versión compatible con versiones superiores del 2691, con FIFO de transmisor y receptor de 8 o 16 bytes seleccionables, soporte mejorado para velocidades de datos extendidas y características de sincronización de bus más rápidas, lo que hace que el dispositivo sea más adecuado para su uso con microprocesadores de alto rendimiento.

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

SCC28L91
SCC2692 Actualmente producidos por NXP, estos dispositivos son UART duales (DUART), que constan de dos canales de comunicación, registros de control asociados y un contador / temporizador. Cada canal de comunicación se puede programar de forma independiente y admite velocidades de transmisión y recepción de datos independientes.

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

El 26C92 es una versión compatible con versiones superiores del 2692, con FIFO de transmisor y receptor de 8 bytes para mejorar el rendimiento durante la transmisión asíncrona bidireccional continua (CBAT) en ambos canales a la velocidad estándar máxima de 230,4 kbit / s. La letra C en el número de pieza 26C92 no tiene nada que ver con el proceso de fabricación; todos los UART de NXP son dispositivos CMOS .

El 28L92 es una versión compatible con versiones superiores del 26C92, con FIFO de transmisor y receptor de 8 o 16 bytes seleccionables, soporte mejorado para velocidades de datos extendidas y características de sincronización de bus más rápidas, lo que hace que el dispositivo sea más adecuado para su uso con microprocesadores de alto rendimiento.

Los modelos 2692, 26C92 y 28L92 pueden funcionar en los modos TIA-422 y TIA-485, y también pueden programarse para admitir velocidades de datos no estándar. Los dispositivos se producen en paquetes PDIP-40, PLCC-44 y QFP de 44 pines, y se adaptan fácilmente a los buses de Motorola e Intel. También se han adaptado con éxito a los autobuses 65C02 y 65C816. El 28L92 funcionará con 3,3 o 5 voltios.

SC26C92
SC28L92
SCC28C94 Actualmente producido por NXP, el UART cuádruple 28C94 (QUART) es funcionalmente similar a un par de DUART SCC26C92 montados en un paquete común, con la adición de un sistema de interrupción arbitrada para un procesamiento eficiente durante períodos de intensa actividad del canal. Algunas señales adicionales están presentes para respaldar las funciones de administración de interrupciones y los pines de entrada / salida auxiliares están dispuestos de manera diferente a los del 26C92. De lo contrario, el modelo de programación para el 28C94 es similar al del 26C92, requiriendo solo cambios menores de código para utilizar completamente todas las funciones. El 28C94 admite una velocidad estándar máxima de 230,4 kbit / s, está disponible en un paquete PLCC-52 y se adapta fácilmente a los buses Motorola e Intel. También se ha adaptado con éxito al autobús 65C816.
SCC2698B Producido actualmente por NXP, el UART octal 2698 (OCTART) es esencialmente cuatro DUART SCC2692 en un solo paquete. Las especificaciones son las mismas que las del SCC2692 (no las del SCC26C92). Debido a la falta de FIFO del transmisor y al tamaño pequeño de los FIFO del receptor, el 2698 puede causar una "tormenta" de interrupción si todos los canales están conectados simultáneamente en comunicación bidireccional continua. El dispositivo se produce en paquetes PDIP-64 y PLCC-84, y se adapta fácilmente a los buses de Motorola e Intel. El 2698 también se ha adaptado con éxito a los autobuses 65C02 y 65C816.
SCC28L198 Producido actualmente por NXP, el OCTART 28L198 es esencialmente una mejora mejorada del SCC28C94 QUART descrito anteriormente, con ocho canales de comunicaciones independientes, así como un sistema de interrupción arbitrada para un procesamiento eficiente durante períodos de intensa actividad del 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 se adapta fácilmente a los buses Motorola e Intel. El 28L198 funcionará con 3.3 o 5 voltios.
Z85230 Modos síncronos / asíncronos, 2 puertos. Proporciona las señales que necesita un controlador DMA de terceros para realizar transferencias DMA. Búfer de 4 bytes para enviar, búfer de 8 bytes para recibir por canal. Modos SDLC / HDLC. 5 Mbit / s en modo síncrono.
Hayes ESP Búferes de 1 KB , 921,6 kbit / s , 8 puertos.
Exar XR17V352, XR17V354 y XR17V358 UART PCI Express dual, cuádruple y octal con juego de registro compatible con 16550, FIFO TX y RX de 256 bytes, niveles de activación TX y RX programables, contadores de nivel FIFO TX / RX, generador de velocidad de transmisión fraccional, hardware RTS / CTS o DTR / DSR automático control de flujo con histéresis programable, control de flujo de software Xon / Xoff automático, salida de control de dirección semidúplex RS-485 con retardo de respuesta programable, multipunto con detección automática de direcciones, codificador / decodificador de datos infrarrojos (IrDA 1.1). Se especifican hasta 25 Mbit / s. Las hojas de datos datan de 2012.
Exar XR17D152, XR17D154 y XR17D158 UART de bus PCI dual, cuádruple y octal con conjunto de registro 5G compatible con 16C550, FIFO de transmisión y recepción de 64 bytes, contadores de nivel FIFO de transmisión y recepción, nivel de activación FIFO de TX y RX programable, control de flujo automático RTS / CTS o DTR / DSR, automático Control de flujo por software Xon / Xoff, salida de control RS485 HDX con retardo de giro seleccionable, codificador / decodificador de datos infrarrojos (IrDA 1.0), velocidad de datos programable con preescalador, velocidad de datos en serie de hasta 6,25 Mbit / s. Las hojas de datos datan de 2004 y 2005.
Exar XR17C152, XR17C154 y XR17C158 UART de bus PCI dual, cuádruple y octal de 5 V con registros compatibles con 16C550, FIFO de transmisión y recepción de 64 bytes, contadores de nivel FIFO de transmisión y recepción, control de flujo automático RTS / CTS o DTR / DSR, control automático de flujo por software Xon / Xoff, RS485 Control semidúplex con retardo seleccionable, codificador / decodificador de datos infrarrojos (IrDA 1.0), velocidad de datos programable con preescalador, velocidad de datos en serie de hasta 6,25 Mbit / s. Las hojas de datos datan de 2004 y 2005.
Exar XR17V252, XR17V254 y XR17V258 UART de bus PCI dual, cuádruple y octal de 66 MHz con soporte para administración de energía, conjunto de registros compatible con 16C550, FIFO TX y RX de 64 bytes con contadores de nivel y niveles de activación programables, generador de tasa de baudios fraccional, flujo de hardware RTS / CTS o DTR / DSR automático control con histéresis programable, control de flujo de software Xon / Xoff automático, salida de control de dirección semidúplex RS-485 con retardo de respuesta seleccionable, codificador / descodificador de datos infrarrojos (IrDA 1.0), velocidad de datos programable con preescalador. Las hojas de datos tienen fecha de 2008 y 2010.

UART en módems

Los módems para computadoras personales que se conectan a una ranura de la placa base también deben incluir la función UART en la tarjeta. El chip UART 8250 original enviado con la computadora personal de IBM tenía un búfer de un carácter para el receptor y el transmisor cada uno, lo que significaba que el software de comunicaciones funcionaba mal a velocidades superiores a 9600 bit / s, especialmente si se opera en un sistema multitarea o si se manejan interrupciones. desde 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 altas velocidades de bits 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 deshabiliten 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 superiores a esta pueden recibir un nuevo carácter antes de que se haya recuperado el antiguo y, por lo tanto, se perderá el antiguo. Esto se conoce como un error de saturación y da como resultado 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 entre el 8 y el 12% de las 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.

Ver también

Referencias

Otras lecturas

  • Puerto serie completo: puertos COM, puertos COM virtuales USB y puertos para sistemas integrados ; 2ª edición; Jan Axelson; Investigación de Lakeview; 380 páginas; 2007; ISBN  978-1-931-44806-2 .
  • Puerto serie completo: programación y circuitos para enlaces y redes RS-232 y RS-485 ; 1ª edición; Jan Axelson; Investigación de Lakeview; 306 páginas; 1998; ISBN  978-0-965-08192-4 .
  • Puerto serie y microcontroladores: principios, circuitos y códigos fuente ; 1ª edición; Grzegorz Niemirowski; CreateSpace; 414 páginas; 2013; ISBN  978-1-481-90897-9 .
  • Programación en serie (Wikibook) .

enlaces externos