Make your own free website on Tripod.com

 

RS-232

El puerto serie RS-232C, presente en todos los ordenadores actuales, es la forma mas comúnmente usada para realizar transmisiones de datos entre ordenadores. El RS-232C es un estándar que constituye la tercera revisión de la antigua norma RS-232, propuesta por la EIA (Asociaci¢n de Industrias Electrónicas), realizándose posteriormente un versión internacional por el CCITT, conocida como V.24. Las diferencias entre ambas son mínimas, por lo que a veces se habla indistintamente de V.24 y de RS-232C (incluso sin el sufijo "C"), refiriéndose siempre al mismo estándar.

El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB-9, mas barato e incluso mas extendido para cierto tipo de periféricos (como el ratón serie del PC). En cualquier caso, los PCs no suelen emplear mas de 9 pines en el conector DB-25. Las señales con las que trabaja este puerto serie son digitales, de +12V (0 lógico) y  -12V (1 lógico), para la entrada y salida de datos, y a la inversa en las señales de control. El estado de reposo en la entrada y salida de datos es -12V. Dependiendo de la velocidad de transmisión empleada, es posible tener cables de hasta 15 metros.

Cada pin puede ser de entrada o de salida, teniendo una función especifica cada uno de ellos. Las mas importantes son:

Pin

Función

TXD 

(Transmitir Datos)

RXD

(Recibir Datos)

DTR

(Terminal de Datos Listo)

DSR

(Equipo de Datos Listo)

RTS

(Solicitud de Envío)

CTS

(Libre para Envío)

DCD

(Detección de Portadora)

Las señales TXD, DTR y RTS son de salida, mientras que RXD, DSR, CTS y DCD son de entrada. La masa de referencia para todas las señales es SG (Tierra de Señal). Finalmente, existen otras señales como RI (Indicador de Llamada), y otras poco comunes que no se explican en este artículo por rebasar el alcance del mismo.

Numero 

de Pin

Señal

Descripción

E/S

En DB-25

En DB-9

 

 

 

1

1

-

Masa chasis

-

2

3

TxD 

Transmit Data

S

3

2

RxD

Receive Data

E

4

7

RTS

Request To Send

S

5

8

CTS

Clear To Send

E

6

6

DSR

Data Set Ready

E

7

5

SG

Signal Ground

-

8

1

CD/DCD

(Data) Carrier Detect

E

15

-

TxC(*)

Transmit Clock

S

17

-

RxC(*)

Receive Clock

E

20

4

DTR

Data Terminal Ready

S

22

9

RI

Ring Indicator

E

24

-

RTxC(*)

Transmit/Receive Clock

S

 

 

 

 

 

 

El ordenador controla el puerto serie mediante un circuito integrado especifico, llamado UART (Transmisor-Receptor-Asíncrono Universal). Normalmente se utilizan los siguientes modelos de este chip: 8250 (bastante antiguo, con fallos, solo llega a 9600 baudios), 16450 (versión corregida del 8250, llega hasta 115.200 baudios) y 16550A (con buffers de E/S). A partir de la gama Pentium, la circuiteria UART de las placa base son todas de alta velocidad, es decir UART 16550A. De hecho, la mayoría de los módems conectables a puerto serie necesitan dicho tipo de UART, incluso algunos juegos para jugar en red a través del puerto serie necesitan de este tipo de puerto serie. Por eso  hay veces que un 486 no se comunica con la suficiente velocidad con un PC Pentium... Los portátiles suelen llevar otros chips: 82510 (con buffer especial, emula al 16450) o el 8251 (no es compatible).

Para controlar al puerto serie, la CPU emplea direcciones de puertos de E/S y líneas de interrupción (IRQ). En el AT-286 se eligieron las direcciones 3F8h (o 0x3f8) e IRQ 4 para el COM1, y 2F8h e IRQ 3 para el COM2. El estándar del PC llega hasta aquí, por lo que al añadir posteriormente otros puertos serie, se eligieron las direcciones 3E8 y 2E8 para COM3-COM4, pero las IRQ no están especificadas. Cada usuario debe elegirlas de acuerdo a las que tenga libres o el uso que vaya a hacer de los puertos serie (por ejemplo, no importa compartir una misma IRQ en dos puertos siempre que no se usen conjuntamente, ya que en caso contrario puede haber problemas). Es por ello que últimamente, con el auge de las comunicaciones, los fabricantes de PCs incluyan un puerto especial PS/2 para el ratón, dejando así libre un puerto serie.

Mediante los puertos de E/S se pueden intercambiar datos, mientras que las IRQ producen una interrupción para indicar a la CPU que ha ocurrido un evento (por ejemplo, que ha llegado un dato, o que ha cambiado el estado de algunas señales de entrada). La CPU debe responder a estas interrupciones lo mas rápido posible, para que de tiempo a recoger el dato antes de que el siguiente lo sobrescriba. Sin embargo, las UART 16550A incluyen unos buffers de tipo FIFO, dos de 16 bytes (para recepción y transmisión), donde se pueden guardar varios datos antes de que la CPU los recoja. Esto también disminuye el numero de interrupciones por segundo generadas por el puerto serie.

El RS-232 puede transmitir los datos en grupos de 5, 6, 7 u 8 bits, a unas velocidades determinadas (normalmente, 9600 bits por segundo o mas). Después de la transmisión de los datos, le sigue un bit opcional de paridad (indica si el numero de bits transmitidos es par o impar, para detectar fallos), y después 1 o 2 bits de Stop. Normalmente, el protocolo utilizado ser 8N1 (que significa, 8 bits de datos, sin paridad y con 1 bit de Stop).

Una vez que ha comenzado la transmisión de un dato, los bits tienen que llegar uno detrás de otro a una velocidad constante y en determinados instantes de tiempo. Por eso se dice que el RS-232 es asíncrono por caracter y sincrono por bit. Los pines que portan los datos son RXD y TXD. Las demás se encargan de otros trabajos: DTR indica que el ordenador esta encendido, DSR que el aparato conectado a dicho puerto esta encendido, RTS que el ordenador puede recibir datos (porque no esta ocupado), CTS que el aparato conectado puede recibir datos, y DCD detecta que existe una comunicación, presencia de datos.

Tanto el aparato a conectar como el ordenador (o el programa terminal) tienen que usar el mismo protocolo serie para comunicarse entre si. Puesto que el estándar RS-232 no permite indicar en que modo se esta trabajando, es el usuario quien tiene que decidirlo y configurar ambas partes. Como ya se ha visto, los parámetros que hay que configurar son: protocolo serie (8N1), velocidad del puerto serie, y protocolo de control de flujo. Este ultimo puede ser por hardware (el que ya hemos visto, el handshaking RTS/CTS) o bien por software (XON/XOFF, el cual no es muy recomendable ya que no se pueden realizar transferencias binarias). La velocidad del puerto serie no tiene por que ser la misma que la de transmisión de los datos, de hecho debe ser superior. Por ejemplo, para transmisiones de 1200 baudios es recomendable usar 9600, y para 9600 baudios se pueden usar 38400 (o 19200).

EL PUERTO SERIE Y LA COMUNICACIÓN ASÍNCRONA

El puerto serie es un dispositivo muy extendido y ya sea uno o dos, con conector grande o pequeño, todos los equipos PC lo incorporan actualmente. Debido a que el estándar del puerto serie se mantiene desde hace muchos años, la institución de normalización americana (EIA) ha escrito la norma RS-232-C que regula el protocolo de la transmisión de datos, el cableado, las señales eléctricas y los conectores en los que debe basarse una conexión RS-232.

La comunicación realizada con el puerto serie es una comunicación asícrona. Para la sincoronización de una comunicación se precisa siempre de una línea adicional a través de la cual el emisor y el receptor intercambian la señal del pulso. Pero en la transmisión serie a través de un cable de dos líneas esto no es posible ya que ambas están ocupadas por los datos y la masa. Por este motivo se intercalan antes y después de los datos informaciones de estado según el protocolo RS-232. Esta información es determinada por el emisor y receptor al estructurar la conexión mediante la correspondiente programación de sus puertos serie. Esta información puede ser la siguiente:

  1. Bit de paridad.- con este bit se pueden descubrir errores en la transmisión. Se puede dar paridad par o impar. En la paridad par, por ejemplo, la palabra de datos a transmitir se completa con el bit de paridad de manera que el número de bits 1 enviados se par.
  2. Bit de parada.- indica la finalización de la transmisión de una palabra de datos. El protocolo de transmisión de datos permite 1, 1.5 y 2 bits de parada.
  3. Bit de inicio.- cuando el receptor detecta el bit de inicio sabe que la transmisión ha comenzado y es a partir de entonces que debe leer la transmisión ha comenzado y es a partir de entonces que debe leer las señales de la línea a distancias concretas de tiempo, en función de la velocidad determinada.

Conexión de las líneas.

Para hacer posible la comunicación entre dos equipos PC se han interconectado las descritas anteriormente. La conexión ha sido realizada de la siguiente manera:

(PC1) RxD <================== TxD (PC2)
(PC1) TxD ==================> RxD (PC2)
(PC1) DTR ==================> DSR (PC2)
(PC1) DSR <================== DTR (PC2)
(PC1) RTS ==================> CTS (PC2)
(PC1) CTS <================== RTS (PC2)
(PC1) MASA =================== MASA (PC2)

Descripción del puerto.

El puerto serie del PC es compatible con el estandar RS-232C. Este estandar fue diseñado en los 60s para comunicar un equipo terminal de datos o DTE (Data Terminal Equipment, el PC en este caso) y un equipo de comunicación de datos o DCE (Data Communication Equipment, habitualmente un modem).

El estandar especifica 25 pins de señal, y que el conector de DTE debe ser macho y el conector de DCE hembra. Los conectores mas usados son el DB-25 macho, pero muchos de los 25 pins no son necesarios. Por esta razón en muchos PC modernos se utilizan los DB-9 macho. Luego, encontrareis uno o mas de estos conectores en el panel trasero del PC. Los voltages para un nivel logico alto estan entre -3V y -15V. Un nivel logico bajo tendra un voltage entre +3V and +15V. Los voltages más usados son +12V y -12V.

El circuito integrado que convierte los datos de paralelo a serie y viceversa se llama UART (Universal Asynchronous Receiver-Transmitter). La UART tipica para un PC es el Intel 8251A, este circuito integrado puede ser programado para realizar comunicaciones serie síncronas o asíncronas.

Control de flujo

El control de flujo determina cómo enviar la información entre el emisor y el receptor de forma que se vaya recibiendo correctamente sin saturar al receptor. Nótese que puede darse el caso de un emisor rápido y un receptor lento (o un receptor rápido pero que esté realizando otras muchas tareas).

El mecanismo más sencillo de control de flujo se basa en devolver una confirmación o acuse de recibo (ACK) cada vez que el receptor reciba algún dato correcto o una señal de error (NACK) si el dato ha llegado dañado. Cuando el emisor recibe un ACK pasa a enviar el siguiente dato. Si, en cambio, recibe un NACK reenviará el mismo dato.

El procedimiento anterior tiene el gran inconveniente de que el canal se encuentra infrautilizado: hasta que el emisor no reciba un ACK no enviará ningún dato más, estando el canal desaprovechado todo ese tiempo. Una mejora de este método es el envío de una serie de datos numerados, de tal forma que en un sentido siempre se estén enviando datos (dato1, dato2, dato3...) y en el otro sentido se vayan recibiendo las confirmaciones (ACK1, ACK2, ACK3...). La cantidad de datos pendientes de ACK o NACK se establecerá según la memoria temporal del emisor.

Comunicación simplex, half-duplex y full-duplex

·         En una comunicación simplex existe un solo canal unidireccional: el origen puede transmitir al destino pero el destino no puede comunicarse con el origen. Por ejemplo, la radio y la televisión.

·         En una comunicación half-duplex existe un solo canal que puede transmitir en los dos sentidos pero no simultáneamente: las estaciones se tienen que turnar. Esto es lo que ocurre con las emisoras de radioaficionados.

·         Por último, en una comunicación full-duplex existen dos canales, uno para cada sentido: ambas estaciones pueden transmitir y recibir a la vez. Por ejemplo, el teléfono.

 

Loopback Puerto Serial DB9 para Norton y Checkit

Aplica para verificación del puerto Serial DB9 si está operable. Para Norton y Checkit.

DB9 Hembra(Al Computador).

DB9 PIN Hembra al Computador.

Señal

Pin

Pin

Pin

Pin

Puentear

2

3

 

 

Puentear

7

8

 

 

Puentear

1

4

6

9

 

Cable Ethernet 10/100Base-T4 Cruzado (Crossover) Full Duplex.

Este cable puede ser usado para conectar dos Hubs en cascada,
o para conectar 2 Estaciones Ethernet sin necesidad de un Hub,
Trabaja para ambos 10 Base-T y 100 Base-T.

Conector RJ45 Hembra(A tarjeta de Red o Hub 1).
Conector RJ45 Hembra(A tarjeta de Red o Hub 2).

Conector RJ45 Macho a tarjeta de Red o Hub1.
Conector RJ45 Macho a tarjeta de Red o Hub2.

Señal

Pin

Colores por par

Pin

Señal

TX_D1+

1

Naranja / Blanco

3

RX_D2+

TX_D1-

2

Naranja

6

RX_D2-

RX_D2+

3

Verde / Blanco

1

TX_D1+

RX_D2-

6

Verde

2

TX_D1-

BI_D3+

4

Azul

7

BI_D4+

BI_D3-

5

Azul / Blanco

8

BI_D4-

BI_D4+

7

Café / Blanco

4

BI_D3+

BI_D4-

8

Café

5

BI_D3-

 

Nota 1: Es importante que cada PAR sea mantenido como PAR, TX+ y TX- deben ser PAR, y RX+ y RX- deben ser el otro par. (Como se muestra en la tabla de arriba). Y así por cada PAR.

 Cable Anulador de Modem DB9 a DB9

Este adaptador o cable funciona para conectar una computadora
a un dispositivo serial DTE (Data Terminal Equipment) puede ser impresora serial, terminal, etc.

DB9 PIN Hembra(Al Computador 1).
DB9 PIN Hembra(al Computador 2).

DB9 PIN Hembra al Computador 1.
DB9 PIN Hembra al Computador 2.

Señal

DB9-1

DB9-2

Señal

Receive Data

2

3

Transmit Data

Transmit Data

3

2

Receive Data

Data Terminal Ready

4

6+1

Data Set Ready + Carrier Detect

System Ground

5

5

System Ground

Data Set Ready + Carrier Detect

6+1

4

Data Terminal Ready

Request to Send

7

8

Clear to Send

Clear to Send

8

7

Request to Send

Nota: DSR y CD se puentean para simular que los equipos están "On Line".

 

 ATRAS