Está en la página 1de 7

c 


    
 

 
        

    


      
   

 
    
    


     


  

    

  


! 

  "#$%&'$()&


   
  



  



*++
 


    
,$-'.&$-%$/.&$-%)01

Un puerto serie es una interfaz de comunicaciones entre ordenadores y periféricos endonde


la información es transmitida bit a bit enviando un solo bit a la vez (en contraste con el
puerto paralelo que envía varios bits a la vez).
El puerto serie por excelencia es el RS-232 que utiliza cableado simple desde 3 hilos hasta
25 y que conecta ordenadores o microcontroladores a todo tipo de periféricos, desde
terminales a impresoras y módems pasando por ratones.
El RS-232 original tenía un conector tipo D de 25 pines, sin embargo la mayoría de dichos
pines no se utilizaban, por lo que IBM incorporó desde su PS/2un conector más pequeño de
solamente 9 pines que es el que actualmente se utiliza.
En Europa la norma RS-422 de origen alemán es también un estándar muy usado en el
ámbito industrial.
Uno de los defectos de los puertos serie iniciales era su lentitud en comparación con los
puertos paralelos, sin embargo, con el paso del tiempo, están apareciendo multitud de
puertos serie con una alta velocidad que los hace muy interesantes ya que tienen la ventaja
de un menor cableado y solucionan el problema de la velocidad con un mayor
apantallamiento; son más baratos ya que usan la técnica del par trenzado; por ello, el puerto
RS-232 e incluso multitud de puertos paralelos están siendo reemplazados por nuevos
puertos serie como el USB, el Firewire o el Serial ATA. Los puertos serie sirven para
comunicar al ordenador con la impresora, el ratón o el módem; Sin embargo,
específicamente, el puerto USB sirve para todo tipo de periféricos, desde ratones, discos
duros externos, hasta conexión bluetooth. Los puertos SATA (Serial ATA): tienen la
misma función que los IDE, (a éstos se conecta, la disquetera, el disco duro, lector/grabador
de CD y DVD) pero los SATA cuentan con mayor velocidad. Un puerto de red puede ser
puerto serie o puerto paralelo.

%2.&3$4.(,"%4)4%5"$"&$-%$
%(20$6: En este caso el emisor 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.
,20$67 8)093,20$6 . &$(%:3,20$6: 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 de manera simultánea. Este tipo de comunicación se utiliza
habitualmente en la interacción entre terminales y una computadora central.
,00,20$6: El sistema es similar al duplex, pero los datos se desplazan en ambos sentidos
simultáneamente. Para que sea posible ambos emisores 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 computadores
este tipo de comunicaciones son más eficientes que las transmisiones semi-dúplex.
.(,"%4)4%."$&&$-%$)&;"4-.")&

Los datos serie se encuentran encapsulados en tramas de la forma:

Primero se envía un bit de start, a continuación los bits de datos (primero el bit de mayor
peso) y finalmente los bits de STOP.

El número de bits de datos y de bits de Stop es uno de los parámetros configurables, así
como el criterio de paridad par o impar para la detección de errores. Normalmente, las
comunicaciones serie tienen los siguientes parámetros: 1 bit de Start, 8 bits de Datos, 1 bit
de Stop y sin paridad.

En esta figura se puede ver un ejemplo de la transmisión del dato binario 10011010. La
línea en reposo está a nivel alto:

.-()
*<*

La Norma RS-232 fue definida para conectar un ordenador a un modem. Además de


transmitirse los datos de una forma serie asíncrona son necesarias una serie de señales
adicionales, que se definen en la norma. Las tensiones empleadas están comprendidas entre
+15/-15 voltios.
."$6%5"3$,"(%4-.4."'-.0)3.-)02,$-'.&$-%$3$0

Para conectar el PC a un microcontrolador por el puerto serie se utilizan las


señales Tx, Rx y GND. El PC utiliza la norma RS232, por lo que los niveles de tensión de
los pines están comprendidos entre +15 y -15 voltios. Los microcontroladores normalmente
trabajan con niveles TTL (0-5v). Es necesario por tanto intercalar un circuito que adapte los
niveles:

El ordenador controla el puerto serie mediante un circuito integrado específico, llamado


UART (Transmisor-Receptor-Asíncrono Universal). Normalmente se utilizan los siguientes
modelos de este chip: 8250 (bastante antiguo, con fallos, sólo 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 circuitería UART de las placas 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. 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  +, y 2F8h e IRQ 3 para el  *. El estándar del PC llega hasta aquí, por lo que al
añadir posteriormente otros puertos serie, se eligieron las direcciones <= y *= para
 <- >, 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).

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 más rápido posible, para que dé 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 número de
interrupciones por segundo generadas por el puerto serie.
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 síncrono 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 está ocupado), CTS que el aparato conectado
puede recibir datos, y DCD detecta que existe una comunicación, presencia de datos.
Uno de estos circuitos, que se utiliza mucho, es el MAX232.

04."$4'.-3$0

En los PCs hay conectores DB9 macho, de 9 pines, por el que se conectan los dispositivos
al puerto serie. Se utiliza principalmente para conexiones en serie, ya que permite una
transmisión asíncrona de datos según lo establecido en la norma RS-232 (RS-232C). Los
conectores hembra que se enchufan tienen una colocación de pines diferente, de manera
que se conectan el pin 1 del macho con el pin 1 del hembra, el pin2 con el 2, etc...

La información asociada a cada uno de los pines es la siguiente:

Número de pin Señal


1 DCD (Data CarrierDetect-Detector de transmición)
2 RX ± Recibir Datos
3 TX ± Transmitir Datos
4 DTR (Data Terminal Ready ± Terminal de datos lista)
5 GND ± Señal de tierra
6 DSR (Data SheetReady ± Ajuste de datos listo)
7 RTS (RequestToSend ± Permiso para transmitir)
8 CTS (Clear ToSend ± Listo para enviar)
9 RI (Ring Indicator ± Indicador de llamada)

)?0$3$4."$6%5"/ 1

Para realizar la conexión entre el PC y nuestro circuito podemos usar diferentes


alternativas. Una manera es utilizar un cable serie macho-hembra no cruzado, y en el
circuito un conector hembra DB9 para circuito impreso:
Cuando conectamos un micro al PC normalmente sólo usamos los pines TX, RX y GND,
sin embargo en este tipo de cables se llevan los 9 pines. Por ello puede resultar útil el
utilizar otro tipo de cable, como el utilizado para la tarjeta CT6811.

También se puede fabricar un cable serie utilizando cable plano de bus, conectando un
conector DB9 hembra para bus:

También hay un tipo de conexión con cable telefónico.


    
Para controlar el puerto serieprimero hay que agregar en el formulario en objeto
CommControl, se agrega a la barra de herramientas y se lo coloca en cualquier lado del
formulario, este no es visible, así que no importa donde quede.
Para hacerlo funcionar se tiene que tocar algunas propiedades, primero es la propiedad
.((.-', por defecto está en el Comm1, ahí, si es otro número se lo cambia, luego se
selecciona la velocidad de conexión en la propiedad $''%"#, por defecto está a 9600
baudio, ahí también se tiene que colocar el valor correspondiente a la velocidad de trabajo
de ese PLC.
Luego para entablar una comunicación sólo es necesario poner
.((+.-'2$"@ -,$; esto abre el puerto de comunicación, si te da algún error es
porque el puerto que se seleccionó no lo puede utilizar, ya sea porque lo está utilizando otro
programa o no existe.
De esa manera queda el control del puerto, éste queda escuchando todo lo que entra,
cuando ingresa algún caracter por el puerto, se dispara el evento ".(( del objeto
Comm control, ahíse tiene que leer lo que ha ingresado, se hace de la siguiente manera

-%A)'$,? .((+B".((/1
9.((A$"'@* 8$"
)'.@ .((+ "2,'
"3 9
"3,?
Así lo que entra se guarda en la variable "Dato", el CommEvent 2 verifica que éste sea
disparado por un ingreso de datos.

Para enviar algo por el puerto es más sencillo:


&.((+,'2,'@C .0)C
Estoenvía la palabra Hola por el puerto.

Existen algunos parámetros también importantes, que por lo general funciona bien con los
valores por defecto.

También podría gustarte