Disponible la versión 6 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Tecnología del PC

[Home]  [Inicio]  [Índice]


2.5.1.1  Puertos Serie: La UART

§1  Sinopsis

El corazón del sistema de comunicaciones serie es la UART, acrónimo de Universal Asynchronous Receiver-Transmitter.  Es un chip cuya misión principal es convertir los datos recibidos del bus del PC en formato paralelo, a un formato serie que será utilizado en la transmisión hacia el exterior.  También realiza el proceso contrario: transformar los datos serie recibidos del exterior en un formato paralelo entendible por el bus.

La UART es un dispositivo programable en el que pueden establecerse las condiciones que se utilizarán para la transmisión (velocidad, paridad, longitud y bits de parada).  En los primeros PCs, eran circuitos integrados 8250 de National Semiconductor (un chip de 40 patillas DIP -Dual-In-Line-), pero se han ido utilizando otros a lo largo de la evolución del PC.  Los más significativos se señalan a continuación:

  • NS 8250  La UART del IBM PC original; este circuito tenía un pequeño "bug" que fue corregido mediante las oportunas modificaciones en las rutinas BIOS.  Fue sustituido por el 8250-B.
  • NS 8250A  Este chip corregía los problemas de los predecesores, sin embargo no podía ser utilizado en los modelos XT precisamente porque sus BIOSes trataban de corregir un problema inexistente.  En cualquier caso este chip no funcionaba más allá de 9600 bps.
  • NS 8250B  Este chip fue el último de la saga de los 8250, y reinstaló el antiguo bug, de forma que pudiera funcionar correctamente con las BIOSes de los XT.  Todos los de esta serie tenían un acceso muy lento, lo que obligaba a incluir estados de espera en el procesador.  Tampoco funcionaba por encima de 9600 bps.
  • NS 16450  Fue el chip elegido para acompañar a los procesadores i286 de clase AT.  Funcionaba bien a 9600 bps, e inauguró la época de módems de alta velocidad.  Sin embargo no funcionaba correctamente en los sistemas XT, debiendo ser sustituido por el 16550.
  • NS 16550  Fue el primer chip de su clase dotado con búferes FIFO [4] para transmisión y recepción de 16 bytes, que le hacen especialmente indicado para comunicaciones rápidas.  Era más rápido que el 16450, operando por encima de los 9600 bps, pero seguía adoleciendo de algunos problemas, especialmente en los búferes, por lo que también fue sustituido.
  • NS 16550A  Es la más rápida y fiable de las UARTs; adecuada para operar con módems de alta velocidad, puede operar a 115 Kbps.  Su lógica es compatible pin a pin con el 16450, al que puede sustituir.  Además puede utilizar canales DMA.
  • A partir de aquí existen versiones mejoradas de NS o compatibles con el 16550A de otros fabricantes.

Como puede verse, National Semiconductors estableció el estándar, y durante mucho tiempo todas las UART incluían sus integrados.  Sin embargo, en la actualidad, muchas placas-base incluyen uno o dos puertos serie cuyas UART están integradas en el chipset de la propia placa, aunque siguen siendo compatibles con los 16550 de NS.  Muchos otros fabricantes han producido también chips compatibles con los 16550, de forma que las letras que aparecen delante de los números no son importantes.  Por ejemplo UM16550.  Otros caracteres que aparecen junto a los números tampoco tienen importancia, pueden indicar características especiales o encapsulado, por ejemplo (Advanced, New, MILitary etc).  Las letras entre números indican la tecnología empleada.  Por ejemplo, la "C" de 16C450 significa CMOS.

El correcto funcionamiento y velocidad de la UART es fundamental para las comunicaciones serie; con independencia de la velocidad del módem o del adaptador RDSI [5] que tengamos, la comunicación no podrá ser más rápida que la que permita la UART.

Nota:  Esto no es de aplicación para los adaptadores ADSL ("Asymmetric Digital Subscriber Line").  Un tipo específico de DSL desarrollado para enviar señales de video a través de líneas telefónicas normales bajo el concepto de 'comunicaciones en una sola dirección', ya que emplea la mayor parte del ancho de banda en la recepción de información, y una parte menor en el envío.

Se caracteriza porque el flujo descendente de datos "downstream", desde el conmutador de la Cía telefónica hasta el suscriptor, es mayor que el flujo ascendente "upstream".  Como las demás variantes de DSL está sometida a un ciertas limitaciones, incluida la distancia de la central telefónica (cuanto mas lejos, mas lento), las transmisiones son variables desde 1.5 a 8 Mbps.  La conexión de una línea ADSL con un PC no puede efectuarse a través de un puerto estándar serie debido a su elevada velocidad, los adaptadores ADSL deben ser instalados como dispositivos internos o mediante puertos suficientemente rápidos, por ejemplo USB ( 2.5.3) o Fire-wire (IEEE 1394).

§8  Puertos serie de alta velocidad

Las crecientes necesidades de velocidad han empujado a algunos fabricantes a aumentar las capacidades de los 16550, extendiéndolas hasta 28.8 Kbps o 56 Kbps y más. Esto se ha conseguido principalmente incrementando el tamaño de los búferes de transmisión y recepción. De forma genérica estos puertos se denominan ESP ("Extended Serial Port") o Super ESP.  Las UART se designan 16650 y 16750, aunque no son de National Semiconductors.

§9  Detección del tipo de UART

Los programas de diagnóstico suelen informar del tipo de UART utilizada por los puertos serie.  En MS DOS puede utilizarse el programa de diagnóstico de Microsoft msd.exe;  este programa viene incluido en el directorio Tools\OldMSDOS del CD de distribución de Windows 98.

En Windows 98 seleccionar:  Menú de inicio    configuración    Panel de Control    Modems.  Se selecciona la pestaña Diagnóstico, y se selecciona el puerto COMx en la columna Puerto.  A continuación se selecciona el botón Más información.  Si existe un módem instalado, después de una pausa se muestran las características del módem y la UART del puerto.

En la figura adjunta se muestra la información correspondiente a un puerto serie al que se ha conectado un módem PC Card de ejecución combinada (combo) junto con una tarjeta de red Ethernet 10/100.

Nota:  Se trata de un puerto serie de alta velocidad, hasta 115 Kbps.  Observe que la dirección 2E8h es estándar de puerto serie; no así el valor 9 de la petición de interrupción (IRQ9) que no es usual para estos puertos. Se debe a que el dispositivo trabaja junto con un adaptador de red.

§10  Comprobación de la UART

Los programas de diagnóstico que comprueban la UART utilizan un sistema de realimentación para verificar que los datos se envían y se leen correctamente.  La ejecución práctica utiliza un conector con algunos pines puenteados para simular las señales de un interlocutor aunque este no esté presente, y que las señales emitidas por la patilla TX se reciban por la patilla de recepción RX.  Este conector se denomina de circuito cerrado ("Loop back"), y su utilización permite que la UART reciba los datos que ella misma envía, en una situación análoga a la que tendría dialogando con otro dispositivo, con lo que puede verificarse la corrección del proceso.

En las tablas adjuntas se muestran las conexiones necesarias para construir sendos conectores de prueba para salidas DB9 y DB25.

Conector "Loopback" para DB9
Receive Data 2---3 Transmit Data
Data Terminal Ready 4--6--1 Data Set Ready + Carrier Detect
Request to Send 7---8 Clear to Send
Conector "Loopback" para DB25
Receive Data 3---2 Transmit Data
Data Terminal Ready 20--6--8 Data Set Ready + Carrier Detect
Request to Send 4---5 Clear to Send

  Inicio.


[4]  FIFO ("First In First Out") Un tipo de almacenamiento tipo "tubería" el primer dato en entrar es el primero en salir.  Se utiliza en contraposición con los almacenamientos tipo pila LIFO ("Last In First Out"); el último en entrar es el primero en salir.

[5]  RDSI  Red Digital de Servicios Integrados,  nombre con que se ha traducido ISDN ("Integrated Services Digital Network"),  que en España se ha comercializado con el nombre de Novacom.