domingo, 15 de julio de 2007

Puertos en Serie

Los puertos serie -también conocidos como puertos de comunicaciones (COM)- están considerados como una interfaz externa fundamental. De hecho, dichos puertos han acompañado al PC desde hace más de veinte años. En general, todo PC incluye dos puertos serie RS-232, denominados COM1 y COM2.

En la actualidad, los fabricantes tienden a emplear medios de conexión más modernos, como el bus USB. Pero, sin embargo, todavía existe multitud de dispositivos diseñados para trabajar a través del puerto serie, incluyendo modems, equipos de medida, receptores GPS, plataformas de sincronización para PDA, etc.

En general, una característica básica del puerto serie hace referencia a la velocidad de transferencia de datos que es capaz de ofrecer: muy reducida. La mayoría de puertos serie son capaces de ofrecer relaciones de transferencia de hasta 115 kbps. En consecuencia, el puerto serie resulta una elección acertada para la comunicación a velocidades no muy exigentes. Por ejemplo, el funcionamiento de un ratón exige enviar información al PC a una velocidad nada llamativa en comparación con muchos otros periféricos. Por tanto, emplear un puerto serie es una solución más que suficiente, y de hecho es la solución típica (emplear un canal más rápido implicaría desaprovechar sus posibilidades).

Básicamente, el puerto serie define un conector y un protocolo para el intercambio de información. Tal y como su nombre indica, la información se transmite y recibe en serie. En otras palabras, toda la información a intercambiar circula por un único cable, moviendo un bit en cada ciclo de transferencia. Por tanto, para enviar una palabra digital de 8 bits, se enviará un bit tras otro, cubriendo un total de 8 ciclos de transferencia. La ventaja fundamental radica en que sólo es necesario un cable para el intercambio de información, lo que reduce costes. La desventaja principal ya ha sido introducida: la velocidad de transferencia es reducida. De hecho, si se emplearan 8 cables en lugar de uno, la transferencia de un byte requeriría tan sólo de un ciclo de reloj (léase, se trabajaría 8 veces más rápido).

Es importante destacar que los puertos serie son bidireccionales, es decir, permiten enviar y recibir información simultáneamente. Por ello, realmente existen dos cables dedicados al intercambio de información: uno de ellos se emplea para enviar datos y otro para recibirlos. El funcionamiento del puerto serie se implementa, al completo, mediante un chip llamado UART (Universal Asynchronous Receiver/Transmitter). Este chip toma palabras digitales procedentes del bus del sistema, las convierte a formato serie, y las envía al dispositivo de destino aplicando el protocolo pertinente. A su vez, la UART recibe los datos serie del dispositivo externo, y los entrega al sistema en forma de palabras digitales. Por tanto, la CPU no se debe preocupar de los detalles del protocolo de envío/recepción, quedando libre de dicha carga. La CPU tan sólo entrega la información a enviar a la UART y ésta se encarga de hacer efectivo el envío serie. Para leer datos, se acude a la UART en el momento deseado -que no tiene por qué ser el momento en que los datos están siendo enviados por el periférico externo-. Este modo de trabajo exige la existencia de dos elementos de memoria (buffers): uno se emplea para escribir la información que la UART debe enviar, mientras que al otro se acude para obtener los datos recibidos. Esto permite, por tanto, escribir los datos a enviar mientras se recibe información, y viceversa. La capacidad de dichos elementos de memoria suele oscilar entre 16 y 64 kB.

Los conectores correspondientes al puerto serie se presentan en versiones de 9 y 25 terminales, cuyas denominaciones estándares son DB-9 y DB-25, respectivamente.


Señales Empleadas por el Puerto Serie

Los conectores DB9 y DB25, a pesar de presentar un diferente número de terminales, transportan los mismos tipos de señales. El uso principal para el que fue diseñado el puerto serie consistía en la conexión de un módem, hecho que se refleja claramente en la disposición de los terminales.

En primer lugar, se encuentra el cable dedicado al envío de datos en serie hacia el módem (Transmit Data, TxD), así como el correspondiente a la recepción de datos procedentes del módem (Receive Data, RxD).

Para inicializar las comunicaciones, el módem emplea la señal Data Set Ready (DSR) para comunicar que éste se encuentra preparado para iniciar el proceso de intercambio de datos. De forma análoga, la UART utiliza la señal Data Terminal Ready (DTR) para indicar que el PC se encuentra listo.

Una vez iniciada la comunicación serie, la UART envía la señal Request to Send (RTS) al módem para consultar si éste está preparado para recibir información. El módem utiliza la señal Clear to Send (CTS) para contestar, indicando que la UART puede enviar datos. Generalmente, los modems actuales trabajan a 56 kbps, mientras que la conexión entre PC y módem suele ser mucho más rápida (típicamente 115 kbps). Aun teniendo en cuenta que el módem dispone de una memoria para almacenar los datos procedentes del PC, dicha memoria se llena muy rápidamente, mientras que el módem procesa los datos (es decir, vacía la memoria) con mayor lentitud. Es ahí donde se centra la utilidad principal de las señales RTS y CTS: el módem puede detener la recepción de datos, y reanudarla cuando es preciso, de forma que la memoria del módem no se desborde.

La señal Ring Indicator (RI) se emplea para detectar la recepción de una llamada. Por otro lado, la señal Carrier Detect (CD) indica si el módem se halla conectado a una línea telefónica. Todas las señales arriba expuestas presentan una naturaleza digital, y por tanto sólo pueden presentar dos estados lógicos (“1” o “0”). Todas las señales se hallan referidas a una misma referencia de tensión (masa), accesible mediante el terminal Signal Ground (GND).

No hay comentarios: