Disponible la nueva versión "donationware" 7.3 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  Puertos E/S:  Puertos Serie

§1  Sinopsis

Los diseñadores del IBM PC ya previeron la posibilidad de comunicación serie, para lo que posibilitaron la instalación de hasta 7 puertos de comunicaciones serie asíncronas RS-232.C (aunque es raro instalar más de dos);  para atender estos puertos dispusieron de los correspondientes servicios en la BIOS .  En los primeros modelos la electrónica necesaria no estaba incluida en la placa-base, por lo que los puertos debían instalarse en adaptadores de tarjeta que se insertaban en cualquiera de los zócalos disponibles.

Generalmente, las direcciones de puerto e interrupciones utilizadas ( 2.4), son las siguientes:

Nombre [4] Dirección IRQ
 COM1 / ttyS0   3F8-3FF  IRQ4 
 COM2 / ttyS1   2F8-2FF  IRQ3 
 COM3 / ttyS2  3E8-3EF  IRQ4 
 COM4 / ttyS3  2E8-2EF  IRQ3 

La comunicación serie ha permitido conectar diversos dispositivos al ordenador, como un ratón; una impresora u otro ordenador, aunque su aplicación principal han sido las telecomunicaciones a través de módem.

§2  El estándar RS-232

RS-232.C significa literalmente "Recomended Standard232 revisión C" (también conocida como EIA 232).  Es un estándar publicado en 1969 por la EIA ("Electronic Standard Association") que define las características eléctricas que deben presentar los elementos de conexión para la comunicación serie entre ordenadores y equipos periféricos [1].  Su título dice exactamente: "Conexión entre un Equipo Terminal de Datos y un Equipo de Comunicación de Datos empleando un intercambio de datos binario serie", y comprende diversos apartados:

  • Características eléctricas de la conexión
  • Características mecánicas de la conexión
  • Descripción funcional del intercambio, proporcionando nombres a las señales utilizadas.
  • Conexiones ejemplo para una selección de sistemas de comunicación

Como puede verse en el propio título del estándar, en la comunicación serie se distinguen dos tipos de dispositivos:  Los equipos terminales de datos DTE ("Data Terminal Equipment"), y los equipos de comunicación de datos DCE ("Data Communication Equipment").  En la terminología de las comunicaciones serie se denomina "Sexo" de un equipo a su tipo; en este sentido DTE y DCE son "sexos" contrarios.  A efectos prácticos el sexo del equipo determina que asignación de señales tendrá su conector externo .

Recordemos que en la comunicación serie, como en cualquier otra comunicación informática, existen dos aspectos complementarios:  Uno relativo a las características físicas de la conexión; en este caso las características eléctricas y mecánicas, aspectos que están contemplados en el estándar RS-232 (a estos elementos los denominaremos capa física).  Otros son los protocolos de comunicación, que incluyen los sistemas de codificación de la señal que se enviará por la capa física (los denominamos capa lógica).

§3  Características de la comunicación serie

Para comprender bien algunos aspectos de las comunicaciones serie, hay que tener en cuenta que este tipo de comunicación eléctrica precede en bastantes años a la aparición de los ordenadores electrónicos.  La comunicación serie tiene sus raíces en el telégrafo, que posteriormente derivó en el teleimpresor  (Telex), donde se utilizaron diversos protocolos de comunicación; los más famosos el Morse [1a] el Baudot [1b] y el ASCII.  Posteriormente las comunicaciones serie informáticas adoptaron algunos de los usos y costumbres existentes adaptándolos a las nuevas necesidades, empezando por su propio sistema de códigos (ASCII), pero que conservando algunas reminiscencias de sus ancestros telegráficos [3].

Nota:  Tanto el sistema de codificación ASCII (American Standard Code for Information Interchange 2.2.1a), como el propio estándar RS-232, nacieron pensado en transmisiones serie utilizadas casi exclusivamente para tele-impresión.  Las señales y protocolos empleados se referían a cuestiones tales como sonar una campana para recabar la atención del operador, y enviar un retorno de carro CR (Carriage Return) o un salto de línea LF (Line feed) -eran impresoras electro-mecánicas-.  La comunicación serie entre ordenadores no requiere tantas señales. Sin embargo, se siguieron utilizando la terminología y muchas de las señales del estándar primitivo .

En la comunicación serie los bits se transmiten uno detrás de otro (de ahí el nombre), lo que hace que sean mucho más lentas que sus homólogas "paralelo" en las que se transmiten varios bits a la vez.  La ventaja es que puede utilizarse un solo par de hilos, o incluso uno solo (si el retorno se realiza por la tierra).

Existen varias formas de transmisiones serie:

  • Simplex:  Un equipo transmite, el otro recibe.
  • Half-duplex:  Transmiten ambos equipos pero no simultáneamente;  los equipos se alternan en la transmisión, uno transmite mientras el otro recibe.
  • Full-duplex:  Ambos equipos transmiten simultáneamente.  Para ello se requieren dos líneas independientes, transmisión y recepción; la línea de transmisión de un equipo se conecta a la entrada de recepción del otro y viceversa.  Los puertos serie del PC son capaces de utilizar este modo.
  • Síncronas:  Los dispositivos que comunican se sincronizan en el momento inicial de la transmisión y constantemente se intercambian información a una cadencia predefinida.  Con objeto de mantener la sincronización, cuando no existen datos que enviar se transmiten caracteres sin valor ("idle characters).  Esta transmisión es más rápida que la asíncrona porque no es necesario transmitir señales de inicio o fin de dato; constantemente se reciben caracteres que pueden ser de datos o sin valor (de relleno).
  • Asíncronas:  En este modo de transmisión no existe sincronización; no es necesario enviar caracteres de relleno, pero hay que indicar cuando empieza un dato y cuando termina.  Esto se hace incluyendo en la transmisión señales de inicio y fin de dato (bits de "start" y "stop").  En la comunicación asíncrona, la información (cada carácter) es enviada en el interior de un cuadro ("Frame") de tamaño variable, que comienza con la mencionada señal de inicio y termina con la de final;  es el tipo de comunicación utilizada en los puertos serie del PC [7].

    En este tipo de comunicación, el estado de reposo (cuando no se transmite nada) se identifica con un "1" (marca).  Cuando se recibe un bit de inicio, que es un "0" (espacio), el receptor toma nota que va a comenzar a recibir un dato.

Nota histórica:  Esta forma de asignación aparentemente ilógica (llamar "1" -marca- a la ausencia de señal), tiene también sus orígenes en el telégrafo (las comunicaciones utilizadas en telégrafos y teleimpresores eran asíncronas), donde se constató que había menos errores si se utilizaba siempre una tensión en la línea (para indicar reposo) y se cambiaba para señalar el dato. Este sistema tiene la ventaja adicional que el receptor puede distinguir una línea ociosa de una desconectada.

Esta forma de operación es también el origen de un malentendido respecto a las transmisiones por módem, que utilizan un equivalente audible de las tensiones de señal (ver a continuación el apartado Características Eléctricas ).  En este caso, los dos estados de tensión han sido sustituidos por dos tonos audibles; el estado de reposo (marca) está señalado por el tono más elevado, de modo que cuando no existe transmisión se está transmitiendo un tono que ha sido erróneamente interpretado como señal de portadora, circunstancia reforzada por el nombre de la señal CD (Carrier Detect) que en realidad debía denominarse Detección de Señal de Recepción.

Los parámetros que caracterizan estas comunicaciones son:  Velocidadparidadbits de datos y bits de parada.  En la literatura sobre el tema es frecuente expresar estos datos en forma resumida.  Por ejemplo: 1200 8 N 1 para indicar una transmisión de 1200 baudios con 8 bits de datos sin paridad y un bit de Stop.

Los parámetros anteriores están relacionados con la forma en que se transmite la información serie.  En esta comunicación cada carácter va incluido en un cuadro ("Frame");  generalmente el comienzo es un bit de inicio (siempre un 1); después le sigue el dato, que puede ser de 5 a 8 bits de longitud; después puede haber un bit de control de paridad, y por último un bit final (siempre es un 1) de longitud variable (el equivalente a 1, 1.5 o 2 bits).

§3.1  Velocidad de transmisión ("Connection speed") es la cantidad de datos transmitidos en unidad de tiempo.  Se expresa en bits por segundo (bps).  En las transmisiones serie a través de líneas telefónicas, en las que se emplean módems ( H11.1) era frecuente utilizar como medida de velocidad el Baudio ("Baud rate"), en honor de Emile Baudot, al que ya hemos hecho referencia  [1b].  Baudio se define como el número de veces que cambia la portadora en un segundo.  La velocidad que puede emplearse depende en gran medida de la calidad del medio de transmisión (calidad de la línea), que si (como es frecuente) se trata de líneas telefónicas, depende a su vez de la distancia.

Los primeros dispositivos serie operaban a velocidades muy bajas, del orden de 110 a 1200 baudios [2].   Las comunicaciones telefónicas serie actuales están muy cerca del máximo teórico que pueden soportar los pares de cobre utilizados en la telefonía estándar.  Además, para aumentar el rendimiento de la comunicación se utilizan técnicas de compresión de los datos a transmitir, y velocidades variables, que pueden ser negociadas entre los equipos que comunican en función del estado de la línea en cada momento.

§3.2  Longitud del carácter ("Char length").  Se han utilizado caracteres de 5, 6, 7 y 8 bits, aunque actualmente los datos son enviados como caracteres ASCII,  por lo que pueden utilizarse 7 u 8 bits según se trate del juego de caracteres US-ASCII o el extendido ( E2.2.1a).  El conjunto de bits que componen un carácter se denominan bits de dato ("Data bits")

§3.3  Paridad ("Parity").  Para poder comprobar la calidad de la transmisión se suele utilizar un sistema de control de paridad que añade un bit a los bits de datos.  Los sistemas utilizados son:

  • Paridad par ("Even")
  • Paridad impar ("Odd")
  • Paridad marca ("Marck")
  • Paridad espacio ("Space")
  • Sin paridad (no se añade ningún bit de paridad al datagrama)

Los sistemas de paridad par e impar se ha explicado al tratar de la memoria ( H5.3); ambos métodos cuentan el número de unos contenidos en los bits de datos y añade un uno o un cero según el resultado.  Por su parte la paridad Mark indica que se incluirá siempre una marca (bit de valor "1") como bit de paridad, mientras que la paridad Space añade siempre un espacio ("0").  Evidentemente estos dos últimos sistemas no aportan absolutamente ninguna información, por lo que son usados muy raramente.

§3.4  Bits de parada ("Stop bits").  Después que se envía un carácter se envía un bits de parada, que tienen el valor "1" (marca);  la duración de este bit puede ser 1, 1.5 o 2 periodos.

§4  Características eléctricas

Como hemos señalado, las normas y terminología de las comunicaciones serie están muy influenciadas por sus orígenes telegráficos.  Esto incluye algunas de las definiciones utilizadas por la norma RS-232.

Una curiosidad de esta norma es que la transmisión de los caracteres ASCII se realiza empezando por el bit menos significativo.  Puesto que estamos acostumbrados a representarlos de derecha a izquierda (empezando por el más significativo), podría decirse que los bits son transmitidos al revés.

Los datos se transmiten en binario, pero no es frecuente referirse a ceros y unos como en la informática convencional, sino a espacios y marcas.

En la figura 1 se muestran los niveles de tensión correspondientes a las salidas.   Como puede verse, la lógica utilizada es poco convencional, utiliza una lógica bipolar con tensiones negativas para los "1" lógicos [6].

En la figura 2 se muestran los niveles correspondientes a las entradas.   Puede verse que su espacio de transición es más reducido que para las salidas.

§5  Conectores

El estándar RS-232 define un conector DB de 25 pines del que solo se utilizan 22; las señales están pensadas para la comunicación remota de teleimpresores, y actualmente no son realmente necesarias para comunicar ordenadores, por lo que se han estandarizado el uso de 8 (las ocho grandes) que pueden ser utilizadas en conectores de 25 pines o de 9.

En la tabla 1 se muestran los nombres las señales y la asignación de pines utilizada en el estándar para un DTE (se han resaltado las señales correspondientes a las ocho grandes, el nivel de referencia    y a la protección   ).

Nota:  Básicamente el DTE transmite por la patilla 2 y recibe por la 3.  El significado de las flechas es el siguiente:

-->  señal originada en el DTE
<--  señal originada en el DCE.

A efectos prácticos podemos considerar que el puerto serie del PC es un DTE.

25 PIN D-SUB MALE
DTE
(Data Terminal Equipment)
25 PIN D-SUB FEMALE
DCE
(Data Communiction Equipment)
 
Tabla 1   Señales RS-232 C
Pin Nombre RS232 Direc. Descripción
1 GND n/a --- Shield Ground (tierra de protección)
2 TXD BA --> Transmit Data
3 RXD BB <-- Receive Data
4 RTS CA --> Request to Send
5 CTS CB <-- Clear to Send
6 DSR CC <-- Data Set Ready
7 GND AB --- System Ground (nivel de referencia)
8 CD CF <-- Carrier Detect
9 -   - RESERVADO
10 -   - RESERVADO
11 STF   --> Select Transmit Channel
12 S.CD SCF <-- Secondary Carrier Detect
13 S.CTS SCB <-- Secondary Clear to Send
14 S.TXD SBA --> Secondary Transmit Data
15 TCK DB <-- Transmission Signal Element Timing
16 S.RXD SBB <-- Secondary Receive Data
17 RCK DD <-- Receiver Signal Element Timing
18 LL LL --> Local Loop Control
19 S.RTS SCA --> Secondary Request to Send
20 DTR CD --> Data Terminal Ready
21 RL RL --> Remote Loop Control
22 RI CE <-- Ring Indicator
23 DSR CH --> Data Signal Rate Selector
24 XCK DA --> Transmit Signal Element Timing
25 TI TM <-- Test Indicator
 

Tabla 2

Pin

DB9 DB25
1 CD GND
2 RXD TXD
3 TXD RXD
4 DTR RTS
5 GND CTS
6 DSR DSR
7 RTS GND
8 CTS CD
9 RI N.C.
10 N.A. N.C.
11 N.A. N.C.
12 N.A. N.C.
13 N.A. N.C.
14 N.A. N.C.
15 N.A. N.C.
16 N.A. N.C.
17 N.A. N.C.
18 N.A. N.C.
19 N.A. N.C.
20 N.A. DTR
21 N.A. N.C.
22 N.A. RI
23 N.A. N.C.
24 N.A. N.C.
25 N.A. N.C.

Las conexiones externas de los puertos serie del PC se han estandarizado en 2 tipos de conectores de 9 y 25 pines (DB9 y DB25), con el macho del lado del ordenador.

En la tabla-2 se muestra la asignación de pines para ambos conectores.  Los nombres de las señales se refieren a los utilizados en la tabla-1 (N.A.  = No aplicable;  N.C. = No conectado).

§6  Servicios BIOS de puerto serie

Los servicios BIOS ( H2.4.1) relacionados con el puerto serie se gestionan mediante el vector de interrupción 20 (14h); este servicio tiene 4 subservicios numerados del 0 al 3.

  • Servicio 0:  Inicializar el puerto; permite ajustar los parámetros de transmisión.
  • Servicio 1:  Enviar un carácter
  • Servicio 2:  Recibir un carácter
  • Servicio 3:  Obtener el estado del puerto, tanto de funcionamiento como estados de error.

Por lo general, la secuencia POST de la BIOS ( H4) solo detecta los dos primeros puertos serie;  como el DOS utiliza los datos de la BIOS, salvo módulos software especiales, los programas DOS solo pueden utilizar COM1 y COM2.  Sin embargo esta limitación no existe para Windows 98 o 2000, que pueden utilizar hasta 128 puertos.

  Inicio.


[1]  Una buena referencia al respecto es "The RS-232 solution" de Joe Campbell. Sybex inc. 1984.

[1a]  Samuel Finley Breese Morse desarrolló el primer telégrafo americano, inventando también un código binario para la transmisión de caracteres.  La diferencia entre los dos signos (rayas y puntos) estriba en la duración de la señal;  la raya dura tres veces más que el punto.    www.samuelfbmorse.com/

[1b]  El nombre deriva de su inventor, un telegrafista francés, Jean-Maurice-Emile Baudot, que a finales del siglo IXX desarrolló un código telegráfico de cinco caracteres    www.sonic.net/.

[2]  El PCjr tenía una velocidad máxima de 4800 baudios !!;  en 1985 la velocidad más común era de 1200 baudios.

[3]  Hasta fechas relativamente recientes, el organismo español de Correos y Telégrafos disponía de líneas de telégrafo independientes de las telefónicas.

[4]  Junto a la designación tradicional, IBM-DOS y MS-DOS, se ha incluido la designación Linux

[6]  Los circuitos lógicos de los ordenadores suelen utilizar una lógica monopolar, en la que las diferencias entre ceros y unos están marcadas por el valor de la tensión que solo tiene un signo; un voltaje "alto" suele representar un "1" y un voltaje "bajo", próximo a cero, representa un "0".

[7]  En el PC también existen comunicaciones serie síncronas.  Es el caso de la comunicación del teclado con su controlador, incluido en la placa-base.