Subido por jromnu2

Descripción del puerto serie

Anuncio
COMUNICACIONES SERIE
Comunicaciones serie
Introducción
Un puerto serie es una interfaz de comunicaciones de datos digitales, frecuentemente utilizado
por ordenadores y periféricos, en donde la información es transmitida bit a bit, enviando éstos
secuencialmente uno tras otro a través de la misma línea, en contraste con el puerto paralelo que
envía varios bits simultáneamente. Las comunicaciones serie tienen la ventaja frente a las
comunicaciones en paralelo de que permiten enviar datos a través de largas distancias, ya que los
bits se pueden modular, convirtiéndolos en señales de audio o montándolos sobre una portadora
de radio frecuencia y así transmitirlos incluso al espacio exterior.
A lo largo de la mayor parte de la historia de los ordenadores la transferencia de datos a través
de los puertos de serie ha sido generalizada. Se ha usado y sigue usándose para conectar los
ordenadores a dispositivos como terminales o módems. Los ratones, teclados, y otros periféricos
también se conectaban de esta forma.
Aunque otras interfaces como Ethernet, FireWire, y USB mandan datos como un flujo en serie,
el término "puerto serie" normalmente identifica el hardware más o menos conforme al estándar
RS-232, diseñado para interactuar con un módem o con un dispositivo de comunicación similar.
En muchos periféricos el puerto USB ha reemplazado al puerto serie; en 2009, la mayor parte de
los ordenadores están conectados a dispositivos a través de puertos USB, y a menudo ni siquiera
tienen un puerto serie. Sin embargo, los puertos serie todavía se encuentran en sistemas de
automatización industrial, sistemas de navegación electrónica y algunos productos industriales y
de consumo. Los dispositivos de redes (como routers y switches), receptores de televisión por
satélite o TDT, a menudo tienen puertos serie para su configuración o actualización del firmware
por medio de un PC. Los puertos serie se siguen usando en estas áreas porque son sencillos,
baratos y permiten la interoperabilidad entre dispositivos.
La complejidad de este puerto y la necesidad de conocerlo radica en lo siguiente:
Cuando se crea el puerto serie RS-232, se hace para comunicar un equipo DTE (Data Terminal
Equipment, normalmente un ordenador) con otro DCE (Data Communication Equipment,
normalmente un módem) y esta conexión no tenía problemas porque tanto los conectores como
el cableado estaban normalizados. El equipo DTE tenía un conector sub-D 25 macho, mientras
que el equipo DCE tenía uno sub-D 25 hembra y la conexión era directa, pin a pin.
Posteriormente, y con la aparición de los ordenadores AT y los IBM PS/2, se implementó el
puerto serie del equipo DTE en un sub-D 9 macho, también normalizado.
Al crearse nuevos dispositivos que se conectaban al ordenador mediante un puerto serie, este tipo
de conexión muchas veces no respetaba el estándar e incorporaba bien conectores distintos que
nada tienen que ver con los típicos sub-D 9 o sub-D 25, o bien conectores sub-D 9 o sub-D 25
pero que solían ser conectores hembra con la asignación de pines correspondientes al conector
macho, por lo que el cable normalmente utilizado para el módem no servía para esta conexión.
Todo esto se complica más si tenemos en cuenta que en las tiendas encontramos cambiadores de
género (macho-macho y hembra-hembra), que pueden inducir a confusión.
-1-
COMUNICACIONES SERIE
Tipos de comunicaciones serie
Simplex
En este caso el transmisor y el receptor están perfectamente definidos y la comunicación
es unidireccional. Este tipo de comunicaciones se emplean usualmente en redes de
radiodifusión, donde los receptores no necesitan enviar ningún tipo de dato al transmisor.
Half duplex o semi-duplex
En este caso ambos extremos del sistema de comunicación cumplen funciones de
transmisor y receptor y los datos se desplazan en ambos sentidos pero no
simultáneamente. Este tipo de comunicación se utiliza habitualmente en la interacción
entre terminales y un computador central. Otro ejemplo sería una comunicación por
radio, donde para transmitir hay que esperar primero que el canal esté libre.
Full Duplex
El sistema es similar al anterior, pero los datos se desplazan en ambos sentidos
simultáneamente (como por ejemplo, una comunicación telefónica). Para ello ambos
transmisores poseen diferentes frecuencias de transmisión o dos caminos de
comunicación separados, mientras que la comunicación semi-duplex necesita
normalmente uno solo. Para el intercambio de datos entre ordenadores este tipo de
comunicaciones son más eficientes que las transmisiones semi-duplex.
Puerto serie asíncrono
El puerto serie RS-232 (también conocido como COM) es del tipo asíncrono, quiere decir que
utiliza bits de sincronismo para cada byte transmitido, utiliza cableado simple desde 3 hilos hasta
25 y conecta ordenadores o microcontroladores a todo tipo de periféricos: terminales, ratones,
módems, sistemas de navegación o de automatización industrial, etc.
El circuito encargado de la conversión del byte que llega en paralelo por el bus de datos desde el
microprocesador a formato serie para transmitirlo y viceversa se denomina UART (Universal
Asynchronous Receiver/Transmitter). Independientemente del tipo de comunicación que se
establezca, las UART’s son capaces de funcionar en modo Full-Duplex. También existe otro tipo
de circuito integrado implementado en muchos equipos denominado USART, que es capaz de
transmitir datos tanto en formato síncrono como asíncrono.
Hay que distinguir entre la parte ‘lógica’ y la parte ‘física’ de una comunicación serie. Mientras
que la parte lógica establece la forma en que se transmite cada byte o carácter (los distintos bits
transmitidos y su orden en la transmisión), la parte física determina el tipo de conector, de cable
y las características de las señales eléctricas utilizadas en dicha transmisión, es decir, si al ‘0’ y al
‘1’ lógicos se les asigna un nivel de tensión o de corriente, si la salida es simple o diferencial, los
márgenes de tolerancia, etc. Según esto, disponemos de distintos interfaces físicos, como son el
RS-232, RS-422/485, o el lazo de 0-20mA, entre otros.
-2-
COMUNICACIONES SERIE
Control de flujo
Se conoce como control de flujo (en inglés Handshake) al método que se utiliza en cualquier tipo
de comunicación para impedir el envío de información si el receptor no está preparado para
recibirla y evitar así la pérdida de la misma.
Este control de flujo puede efectuarse vía hardware o vía software. Para el control de flujo por
hardware se utilizan señales específicas distintas de las líneas de transmisión y recepción de
datos (localizadas como pines individuales del conector) que según estén activas o inactivas,
indican al transmisor si puede enviar la información o no. El control por software se realiza por
medio de las mismas líneas de transmisión y recepción de datos, donde se especifican dos
caracteres (XOn [17] y XOff [19]) que envía el receptor al transmisor para indicarle si puede
enviar información o debe parar hasta que le avise.
Este control de flujo es opcional, es decir, habrá veces en que interese utilizarlo para evitar que
se pierda información, como por ejemplo en una transferencia de archivos, y otras veces
interesará que la información se envíe en cuanto esté disponible aunque no haya ningún receptor
activo, como es el caso de una navegación en tiempo real.
Descripción de las señales
Las distintas señales presentes en un puerto serie asíncrono se dividen en dos grandes grupos,
señales de datos y señales de control de flujo. Las de control de flujo se dividen a su vez en dos
subgrupos, de manera que no siempre se usan todas, muchas veces sólo se usa el par formado por
RTS/CTS y en raras ocasiones sólo el formado por DTR/DSR. En la siguiente tabla se enumeran
estas señales, acompañadas del número del pin que ocupan en el conector sub-D 9 o sub-D 25
estándar del puerto serie RS-232, para un equipo DTE (en un equipo DCE se invierte el sentido
de las señales):
Pin DB9
Pin DB25
Nombre
Sentido
Descripción
3
2
TXD
Transmit Data, transmisión de datos
2
3
RXD
Receive Data, recepción de datos
4
20
DTR
Data Terminal Ready, terminal de datos preparado
6
6
DSR
Data Set Ready, dispositivo preparado
1
8
CD
Carrier Detect, detección de portadora
7
4
RTS
Request to Send, petición de envío
8
5
CTS
Clear to Send, preparado para transmitir
9
22
RI
Ring Indicator, indicador de llamada entrante
5
7
GND
Signal Ground, señal de tierra o masa
-3-
COMUNICACIONES SERIE
En las imágenes de la izquierda se puede
observar la asignación de las distintas
señales del puerto serie a los pines de los
conectores sub-D 9 y sub-D 25 usados
como estándar para el puerto serie
RS-232.
El puerto serie RS-422/485 no tiene
normalizado
ningún
conector
y
generalmente no usa control de flujo por
hardware.
A continuación se explica la función de cada una de las señales, tal y como funcionarían en la
conexión entre un equipo DTE y otro DCE:









TXD: Señales de datos que se transmiten del DTE al DCE. En principio, los datos no se
pueden transmitir si alguno de los terminales RTS, CTS, DSR ó DTR está
desactivado. Su valor de reposo es el ‘1’ lógico.
RXD: Señales de datos transmitidos desde el DCE al DTE.
DTR: Señal del DTE que indica que está conectado, al activarse (valor lógico ‘0’) informa
al DCE de que está listo para transmitir o recibir.
DSR: Señal del DCE que indica que el dispositivo está en modo de transmisión de datos.
CD: Señal utilizada cuando el equipo DCE es un módem, para indicarle al DTE que la
línea está descolgada y se ha establecido la comunicación con el módem remoto.
RTS: Señal mediante la cual el DTE informa al DCE de que dispone de datos para enviar.
Una transición de ‘1’ a ‘0’ lógico avisa al DCE para que active sus circuitos y se
prepare para la recepción de los datos.
CTS: Señal del DCE al DTE indicando que está preparado para la recepción y puede
comenzar a transmitirle datos.
RI:
Señal del DCE (cuando éste es un módem) indicando que está recibiendo una señal
de llamada por la línea telefónica. Sólo se activa en los intervalos en que se recibe
la señal de timbre.
GND: Masa común para todas las líneas.
Una secuencia normal a través del puerto serie RS-232, entre un equipo DTE y otro DCE, es la
siguiente:



Al poner en funcionamiento ambos equipos, el DTE activa la señal DTR y el DCE activa la
señal DSR. Una interfaz RS-232 diseñada según el estándar no establecerá la comunicación
hasta que estas dos señales estén activas. El equipo DTE esperará la activación de la señal
DSR y el DCE la activación de la señal DTR. Aunque DTR y DSR algunas veces pueden
ser utilizadas para el control del flujo, estas señales sólo indican que los dispositivos están
conectados y en muchas ocasiones no se usan.
El equipo DTE pregunta al DCE si éste está listo, para ello activa la señal RTS. El DCE, si
está listo, responde activando la señal CTS. Una vez puestos de acuerdo ambos equipos
(todas las señales activas), se puede comenzar la comunicación.
Los datos son transferidos en ambos sentidos. El DTE envía información al DCE a través
del terminal TXD. El DCE envía información al DTE a través del terminal RXD.
-4-
COMUNICACIONES SERIE
Puertos serie según el estándar PC
Aunque un ordenador es capaz de soportar hasta 255 puertos serie conectados de distintos
modos, tarjetas PCMCIA, tarjetas ISA, PCI o PCI-Express, convertidores USB a serie, puertos
asociados al dispositivo Bluetooth, e incluso puertos virtuales, el estándar PC sólo contempla
cuatro puertos. Es decir, la BIOS reconoce la presencia física de hasta cuatro puertos serie,
denominados ‘COM1:’, ‘COM2:’, ‘COM3:’ y ‘COM4:’ y que a diferencia de lo que ocurre con
los puertos paralelo, cada uno de ellos tiene asignada una dirección específica, de manera que en
un PC puede existir el puerto serie ‘COM3:’ y no existir el ‘COM1:’ o el ‘COM2:’. Cualquier
puerto serie añadido al PC que no cumpla con las especificaciones del estándar debe ir
acompañado de sus correspondientes drivers o controladores para informar al sistema operativo
del dispositivo de que se trata.
La asignación de direcciones e interrupciones según el estándar es la siguiente:
Nombre
Dirección
Interrupción
COM1:
03F8h
4
COM2:
02F8h
3
COM3:
03E8h
4
COM4:
02E8h
3
Formato de la transmisión
En una transmisión serie asíncrona, al no haber una señal de reloj común que sincronice el envío
de datos, esta sincronización se hace añadiendo a cada dato transmitido (normalmente un byte),
un bit de arranque que avisa al receptor del comienzo de dicho dato. Además, para cada dato se
incorpora un bit de paridad para el control de errores (opcional) y uno o varios bits de parada que
marcan el final de la transmisión. Los valores de estos parámetros deben coincidir en todos los
equipos que intervienen en la comunicación.
Así, el envío de un dato quedaría como sigue:

Inicialmente la línea de transmisión se encuentra en su estado de reposo y que corresponde
al nivel lógico ‘1’.

Se envía el bit de arranque, de valor lógico ‘0’ y que provoca un cambio de estado en la
línea de transmisión. Este parámetro no es configurable.

A continuación vienen los bits de datos, que pueden ser 5, 6, 7 u 8 bits, según el tipo de
dato que se esté enviando, comenzando por el menos significativo (b0 > b1 > … > bn).

Después de los bits de datos se envía, si así se ha configurado, el bit de paridad. Éste puede
ser par, impar, marca o espacio.
o PAR:
Se añade un bit del valor lógico adecuado para que la cantidad de unos
transmitidos sea par.
-5-
COMUNICACIONES SERIE
Se añade un bit del valor lógico adecuado para que la cantidad de unos
transmitidos sea impar.
o MARCA: Se añade un bit de valor lógico ‘1’.
o ESPACIO: Se añade un bit de valor lógico ‘0’.
o IMPAR:
Los valores ‘marca’ y ‘espacio’ no se suelen usar, por lo que muchos programas de
comunicaciones o adquisición de datos no los contemplan en su configuración.
Si se configura como bit de paridad ‘NINGUNO’, no se transmite dicho bit.

Por último, el o los bits de parada, de duración 1, 1½ ó 2 bits y de valor lógico ‘1’. Con
esto se garantiza que después de la transmisión del dato, la línea vuelve a su estado de
reposo y es capaz de detectar así el comienzo de un nuevo dato (transición de ‘1’ a ‘0’ del
bit de arranque).
A continuación se muestran tres ejemplos de transmisión de un byte, el 01100101, con paridad
par, impar y sin paridad, respectivamente:
-6-
COMUNICACIONES SERIE
A todo esto hay que añadir un par de parámetros más a la hora de configurar una comunicación
serie asíncrona entre equipos y que son:
Velocidad
Define la velocidad en bits por segundo (bps) a la que se van a enviar los datos. Como en
los parámetros anteriores, este valor debe coincidir en todos los equipos que participen en
la transferencia de la información. A este parámetro también se le suele denominar
‘baudio’, aunque por definición, estrictamente hablando, no sea exactamente lo mismo.
Los posibles valores de velocidad van desde 50 hasta 115200 bps (máxima soportada por
el estándar RS-232) ó 10 Mbps (para el estándar RS-422). Las velocidades más habituales
son 9600 bps, como valor normalmente usado en adquisición de datos de GPS y sonda, y
4800 bps como velocidad estándar dentro de la norma NMEA-183 y que es el valor que
normalmente habrá que introducir para conectarse con los sistemas de navegación del
buque, como son la giroscópica, el piloto automático, etc.
Control de flujo
Este parámetro sirve para definir si queremos usar o no control de flujo en la
comunicación y en caso afirmativo, si queremos que se lleve a cabo vía software
(XON/XOFF) o vía hardware, normalmente mediante las señales RTS/CTS.
Interfaces físicos
Una vez conocida la interfaz ‘lógica’, es decir, cómo se envía un dato (byte, carácter,…) por el
puerto serie asíncrono, los distintos bits que intervienen, la velocidad en bps y el control de flujo,
se plantea la elección del medio físico por el que se va a enviar a los distintos receptores. Estas
normas regulan tanto el tipo de señal (tensión o corriente y sus niveles, simple o diferencial, etc.)
como el tipo de conector usado y las longitudes máximas de cable permitidas.
Los interfaces físicos más comunes son:
RS-232
Es el interfaz típico para puertos serie en equipos comerciales y domésticos, siendo, por
tanto, el más extendido. Esta norma contempla dos tipos de conectores, ambos del tipo
‘sub-D macho’ y que pueden ser de 9 o de 25 pines, aunque como se vio al principio, a
veces no se respeta en equipos que no sean ordenadores. Cada señal se asigna físicamente
a un pin del conector, siendo los márgenes de tensión para cada nivel lógico de
+3 .. +15V para el ‘0’ lógico y
-3 .. -15V para el ‘1’ lógico,
de manera que la tensión de salida en el pin del transmisor
suele ser de ±10 o ±12V (pero nunca inferior a ±5V),
mientras que se permite una caída de tensión a lo largo del
cable bastante amplia, siempre que el nivel de tensión en
el pin del receptor no entre en la franja comprendida entre
+3 y -3V, franja donde el nivel lógico se vuelve
indeterminado y no se puede interpretar ni como ‘0’ ni
como ‘1’.
-7-
COMUNICACIONES SERIE
En cuanto a la máxima longitud de cable permitida, originalmente se estableció 50 pies
(15.24 mts.) para una velocidad máxima de 20 Kbps (normalmente 19200 bps).
Posteriormente y con el desarrollo de cables más eficientes, se cambió el parámetro de
referencia para este límite sustituyéndose por el de máxima capacitancia del cable,
establecida en 2500 pF. Así, con un cable de 17 pF/pie por ejemplo, se podría tener una
longitud máxima de 147 pies (44.81 mts) para esa misma velocidad. Según todo esto y
con las calidades de cable adecuadas, a la velocidad habitual de 9600 bps, se podría usar
un cable de hasta 150 mts. aproximadamente. Si se quiere aumentar la distancia no hay
más que bajar la velocidad de transmisión.
RS-422
Esta interfaz, por su robustez y velocidad es usada habitualmente en equipos industriales
y en navegación. La norma NMEA especifica que las comunicaciones entre los equipos
electrónicos en un buque se deben implementar por medio de puertos serie RS-422.
A diferencia del RS-232, aquí la interfaz no establece el tipo de conector a usar, sólo las
características eléctricas de la conexión. Según esto, para la transmisión de datos se
emplea una línea diferencial y balanceada.
Diferencial significa que para la transmisión de los datos se emplean dos señales o hilos,
de manera que por uno circula el bit directo y por el otro, invertido; el receptor detecta el
nivel lógico por diferencia de tensión entre estos dos hilos, independientemente de su
tensión con respecto a masa. Estas dos señales reciben los nombres de ‘T-’ y ‘T+’ para
las de transmisión (también llamadas en algunos casos ‘A’ y ‘B’, respectivamente),
mientras que se denominan como ‘R-’ y ‘R+’ las de recepción.
Balanceada quiere decir que los dos hilos empleados para la transmisión son iguales, con
la misma impedancia y generalmente formando un par trenzado. Todo esto hace que este
tipo de conexión tenga un fuerte rechazo a interferencias externas, siendo más inmune a
alteraciones de la señal transmitida, ya que el ruido afecta por igual a los dos hilos.
Los niveles de tensión nominales correspondientes para cada valor lógico son 5V para el
‘1’ y 0V para el ‘0’ en el pin directo y 0V para el ‘1’ y 5V para el ‘0’ en el pin invertido.
En el lado del receptor, éste es capaz de discriminar el valor lógico enviado con una
diferencia de tensión entre ambos pines de tan solo 200mV.
Tanto la velocidad de transmisión como la máxima longitud de cable mejoran bastante
con respecto al RS-232, así, por ejemplo, se admiten longitudes de cable del orden de
1200 mts. para una velocidad de 100 Kbps, o 12 metros para 10 Mbps.
Otra característica importante de esta interfaz es la capacidad que tiene de conectar hasta
diez entradas a una misma salida, frente a las dos o tres (no recomendable) del RS-232.
-8-
COMUNICACIONES SERIE
Interconexión RS-232/RS-422
Los ordenadores que usamos habitualmente, así como los equipos de aplicaciones
hidrográficas (GPS, sondadores, perfiladores, etc.), disponen de puertos serie según el
estándar RS-232, por lo que su interconexión no presenta ningún problema. El problema
surge cuando se quiere conectar un equipo de navegación del buque (giroscópica, ángulo
de timón, radar, piloto automático,…) al ordenador de adquisición de datos, ya que según
la normativa NMEA, estos deben disponer de puertos serie RS-422 para su interconexión,
tal y como se vio en el apartado anterior. Lo ideal sería disponer de adaptadores de
interfaz. Este adaptador necesario para conectar una salida RS-232 a una entrada RS-422,
como por ejemplo, gobernar el piloto automático desde el ordenador con el programa
HyPack, mientras que se puede prescindir de él si lo que se quiere es conectar una salida
RS-422 a una entrada RS-232, como por ejemplo, conectar la salida de giroscópica al PC
con HyPack. En este segundo caso, la interconexión se establecería de la siguiente forma:
RS-422 (salida)
RS-232 (entrada)
T- (A)
T+ (B)
RXD
GND
Conexión NULL-MODEM
Como se vio en la introducción, inicialmente el puerto serie se crea para conectar un equipo DTE
a un DCE, es decir, un ordenador a un módem y así poder establecer una comunicación de datos
entre dos equipos remotos. Esta conexión no tiene problemas ya que tanto el conector como el
cableado están normalizados.
Llega un momento en que se quiere prescindir de los módems
telefónicos para así poder realizar una conexión directa entre los
dos ordenadores o equipos DTE. Es para esta nueva conexión
para la que se crea el cable conocido como NULL-MODEM.
En este caso, el diagrama de conexión del cable ya no es directa
pin a pin como antes, sino que es necesario realizar una serie de
cruces para conectar entradas con salidas y salidas con entradas,
respetando el significado y la función de cada una de las señales
del puerto serie.
Este nuevo cable recibe el nombre de NULL-MODEM o módem nulo, porque para el equipo
DTE (o PC) funciona como si en el otro extremo del puerto serie lo que hay conectado es un
módem y no otro DTE. Esta forma de conectar los equipos siempre funciona y lo importante es
conocer el significado y la interconexión de las distintas señales y no el pin del conector donde
se encuentran, ya que salvo en el caso de un PC, normalmente los conectores de los equipos no
se presentan en el formato estándar (sub-D 9 pines, macho), sino que incorporan conectores
propios (estancos, militarizados,…).
-9-
COMUNICACIONES SERIE
A continuación se presentan las tres configuraciones NULL-MODEM habituales, según se
utilice control de flujo completo (cable de 7 hilos), control de flujo sólo mediante las señales
RTS/CTS (cable de 5 hilos) o sin control de flujo (cable de 3 hilos):
Aunque en una comunicación en la que no se utilice el control de flujo no sería necesaria la
realización de los puentes indicados en el conector, sí es importante habituarse a realizarlos,
sobre todo el puente entre RTS y CTS en el cable de tres hilos, para garantizar el flujo de la
información en el caso de que no esté claro si alguno de los equipos que intervienen utilicen el
control de flujo y necesiten tener dichas señales activas.
- 10 -
Descargar