Todo Sobre El PUERTO SERIE RS 232
Todo Sobre El PUERTO SERIE RS 232
Todo Sobre El PUERTO SERIE RS 232
Introduccin............................................................................................................................2
Que es el puerto Serie?........................................................................................................2
Conectores...........................................................................................................................4
Funciones de DOS Y BIOS
..4
Direcciones..........................................................................................................................5
Transmisin de datos...........................................................................................................6
La estructura de datos del Puerto Serie RS-232..................................................................7
1. PRINCIPIOS DE TRANSMISIN EN SERIE..................................................................8
1.1 Metodos de transmision en serie...................................................................................8
2. ESTANDAR RS-232..........................................................................................................9
2.1 Historia......................................................................................................................9
2.2 Descripcion del estandar.........................................................................................10
2.2.1 Caracteristicas electricas......................................................................................10
2.2.2 Caracteristicas mecanicas....................................................................................10
3. PUERTO SERIE DE LA PC.............................................................................................15
3.1. La UART (Universal asynchronous receiver transmiter).......................................15
3.2. Direcciones de entrada/salida e IRQs....................................................................17
4. CONFIGURACION DEL PUERTO SERIE EN WINDOWS..........................................18
5. Conexin de un microcontrolador al puerto serie del PC...........................20
5.1 El chip MAX 232....................................................................................................21
6. PROGRAMA DE EJEMPLO EN ENSAMBLADOR......................................................22
Introduccin
QueeselpuertoSerie?
Considerada como una de los ms bsicas conexiones externas a una computadora,
el puerto serie ha sido una parte integral de todas las computadoras por mas de 20 aos. A
pesar de que muchos sistemas nuevos han abandonado el puerto serie completamente y
adoptado conexiones por USB, muchos modems aun usan el puerto serie, as como algunas
impresoras, PDAs y cmaras digitales. Pocas computadoras tienen mas de 2 puertos serie.
Los puertos serie, tambin llamados puertos de comunicacin (COM), son bidireccionales. La comunicacin bidireccional permite a cada dispositivo recibir datos, as
como tambin transmitirlos. Los dispositivos seriales usan distintos pines para recibir y
transmitir datos. Usando el mismo pin, limitara la comunicacin a half-duplex, esto quiere
decir que la informacin solamente podra viajar en una direccin a la vez. Usando distintos
pines, permite que la comunicacin sea full-duplex, en la cual la informacin puede viajar
en ambas direcciones al mismo tiempo.
Conectores
En nuestros PC's, se emplea como conector del interface serie un
terminal macho al que llamaremos DTE (Data Terminal Equipment)
que, a travs de un cable conectamos a un perifrico que posee un
conector hembra al que llamaremos DCE (Data Comumunications
Equipment). En nuestro terminal DTE, tenemos las siguientes
conexiones (para un conector DB-25):
PIN
1
2
3
4
5
6
7
8
20
23
Nombre
P.G.
TD
RD
RTS
CTS
DSR
GND
DCD
DTR
DSRD
Direccin
--->DCE
-->DTE
-->DCE
-->DTE
-->DTE
--->DTE
-->DCE
<-->
Funcin
Tierra de seguridad
Salida datos DTE
Entrada de datos DTE
Peticin de emisin DTE
Listo para trasmitir DCE
CE listo para com. con DTE
Masa comn del circuito
Deteccin de portadora
Seal de terminal disponible
Indicador de velocidad de Tx.
FuncionesdeDOSyBIOS
Hay dos maneras de direccionar el puerto serie, a traves de la interrupcin 14H de la BIOS
y a traves de la interrupcin 21H del DOS.
La interrupcin 14H de la BIOS utiliza cuatro funciones para programar el puerto serie.
Cada funcion es seleccionada asignando un valor al registro AH del microprocesador. Las
cuatro funciones son listadas a continuacin:
Direcciones
El puerto serie utiliza direcciones y una lnea de seales, un IRQ
para llamar la atencin del procesador. Adems el software de
control debe conocer la direccin.
La mayora de los puertos series utilizan direcciones standard
predefinidas. stas estn descritas normalmente en base
hexadecimal. Cuando se instala un nuevo puerto, normalmente se
mueve un jumper o switch para seleccionar un puerto (COM1,
COM2, COM3, etc., con lo que se asigna una direccin y una
interrupcin usada por la tarjeta del puerto.
Las direcciones e IRQ usadas por los puertos serie fueron definidas
al disear el ordenador originalmente ; sin embargo, las del COM3 y
COM4 no se han definido oficialmente, aunque estn aceptadas por
convenios.
Las seales son :
Direccin
COM1
COM2
COM3
COM4
Interrupcin
3F8
2F8
3E8
2E8
(IRQ)
4
3
4
3
Interrupcin
3F8
2F8
3E8
2E8
4220
4228
5220
(IRQ)
4
3
4
3
3
3
3
Transmisindedatos
Para el protocolo de transmisin de datos, slo se tienen en cuenta
dos estados de la lnea, 0 y 1, tambin llamados Low y High. Cuando
no se transmite ningn carcter, la lnea esta High. Si su estado pasa
a Low, se sabe que se transmiten datos. Por convenio se transmiten
entre 5 y 8 bits, pero la BIOS slo soporta una anchura de datos de 7
u 8 bits. Durante la transmisin, si la lnea est Low, se enva un 0 y
si est High indica un bit a uno. Se enva primero el bit menos
significativo, siendo el ms significativo el ltimo en enviarse.
A continuacin se enva un bit de paridad para detectar errores.
Finalmente se mandan los bits de stop, que indican el fin de la
transmisin de un carcter. El protocolo permite utilizar 1, 1,5 y 2 bits
de stop.
El nmero de bits que componen cada palabra dependen del cdigo
a emplear, as, si se quieren transmitir datos ASCII normales, sern
de 7 bits, pero si se quiere enviar el juego completo de caracteres,
cada una debera estar formada por 8 bits.
Dependiendo de esto, si se emplea paridad y el numero de bits de
stop, se mandarn un determinado nmero de caracteres
dependiendo de la velocidad en baudios (bits por segundo) por el
puerto serie.
LaestructuradedatosdelPuertoSerieRS232
La comunicacin de datos en un puerto serial, se usa normalmente para efectuar
comunicaciones asncronas, es decir, sin tiempo preestablecido para iniciarse, es decir, los
datos llegan en rfagas paquetes de informacin, normalmente cada paquete es de 8
bits=1 byte (equivalente a un carcter en cdigo ASCII), algunos equipos envan caracter
por caracter, otros guardan muchos caracteres en la memoria y cuando les toca enviarlos,
los envanuno tras otro.
Uno de los parmetros ms importantes en la comunicacin serie, es la velocidad con la que
los datos se transmiten, para el caso del RS-232, pueden transmitir de los 300 Baudios (1
Baudio=1 bit/seg) hasta 115,200 Baudios, la velocidad depende de los equipos conectados
en el puerto serie y la calidad y longitud de los cables. Otro de los parmetros de
trascendencia es el bit de inicio, es decir, el bit que le indica al puerto receptor que va a
llegar un Byte de informacin.
Hay dos tipos de paridad adicional que se usan y estos son:
Marca (mark)
El bit de paridad que se intercala siempre es un uno.
Espacio (space)
El bit de paridad que se intercala siempre es un cero.
1. PRINCIPIOS DE TRANSMISIN
EN SERIE
El concepto de las comunicaciones en serie es el siguiente, los datos son
enviados del emisor al receptor bit a bit a traves de una unica linea o
circuito. El puerto serie toma 8, 16 o 32 bits en paralelo del bus del
computador y los convierte en un flujo de 8, 16 o 32 bits en serie. El
nombre de transmision en serie viene de aqui, cada bit de informacion
es transmitido en serie de un sitio a otro.
En la practica en una transmison en serie algunos bits pueden perderse
o bien ser aadidos y por lo tanto alterar el resultado final. Si un bit se
pierde o se aade, todos los bits sucesivos son cambiados de posicion y
se obtiene un resultado incorrecto. Asi que para establecer
comunicaciones en serie fiables se deben corregir posibles errores en la
transmision.
1.1Metodosdetransmisionenserie
Existen dos metodos de transmision en serie que corrigen errores de bit.
El primero es la comunicacion sincrona. El emisor y el receptor son
sincronizados usando una seal de reloj que indica el tiempo entre cada
2.ESTANDARRS232
2.1 Historia
En los aos 60, cada fabricante usaba un interfaz diferente para
comunicar un DTE (Data Terminal Equipment) y un DCE (Data
Communications Equipment). Cables, conectores y niveles de voltage
eran diferentes e incompatibles, por lo tanto, la interconexion entre
equipos de diferentes fabricantes requeria el uso de convertidores de los
niveles de voltage y la fabricacion de cables y conectores especiales.
Seales de control
"Off"
"On"
Emisor (necesario)
de -5 a -15
de 5 a 15
Voltios
Receptor (esperado)
de -3 a -25
de 3 a 25
Voltios
Puede verse que los voltajes del emisor y el receptor son diferentes.
Esta definicion de los niveles de voltaje compesa las perdidas de voltaje
a traves del cable. Las seales son atenuadas y distorsionadas a lo largo
del cable. Este efecto es debido en gran parte a la capacidad del cable.
En el estandar la capacidad maxima es de 2500 pf (picoFaradios). La
capacidad de un metro de cable es normalmente de 130 pf. Por lo tanto,
la longitud maxima del cable esta limitada a unos 17 metros. Sin
embargo, esta es una longitud nominal definida en el estandar y es
posible llegar hasta los 30 metros con cables de baja capacidad o
utilizando velocidades de transmision bajas y mecanismos de correccion.
En la
DB25
Pin
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
4
9
SDCD
SCTS
STD
TC
SRD
RC
SCF
SCB
SBA
DB
SBB
DD
122
121
118
114
119
115
SRTS
DTR
SQ
RI
SCA 120
CD 108.2
CG 110
CE
125
CH/C 111/11
I
2
DA 113
-->
-->
<-<--
Frama Ground
Transmitted Data
Received Data
Request To Send
Clear To Send
Data Set Ready
Signal Ground
Data Carrier Detect
+P
-P
No asignado
Secondary Data Carrier
Secondary Clear To Send
Secondary Transmitted
Transmission Signal
Secondary Received Data
Receiver Signal Element Timing
No asignado
Secondary Request To Send
Data Terminal Ready
Signal Quality Detector
Ring Indicator
<-->
<--
Transmitter Signal
No asignado
<-<--->
<-<--->
the lead wire (if applicable). By connecting this line on both sides you
make sure that no large currents flow through the signal ground in case
of an insulation defect or other defect on either side. On the other side,
when two devices are seperated by great dinstances you may not wish
to use tis signal, because of different ground potential and it is possible
that it may carry a substantial current as a ground loop. If it is great
enough, it may cause electrical interference.
Transmitted data (BA)
Esta seal es usada para transmitir datos del DTE al DCE. Se mantiene
con un 1 logico cuando no hay nada que transmitir. El terminal empieza
a transmitir cuando un uno logico esta presente en las siguientes lineas:
Clear To Send, Data Terminal Ready, Data Set Ready, Data Carrier
Detect
Received data (BB)
La seal es usada por el DTE para recibir datos desde el DCE. El terminal
empieza a transmitir cuando un 1 logico esta presente en las siguientes
lineas: Request To Send, Data Terminal Ready, Data Set Ready, Data
Carrier Detect.
Request To Send (CA)
El DTE utiliza esta seal cuando quiere transmitir al DCE. En
combinacion con la seal Clear To Send coordina la transmision de datos
entre el DTE y el DCE Un cero logico en esta linea mantiene al DCE en
modo de transmision, es decir, el DCE recibe datos del DTE y los
transmite. Una transicion On-Off en esta linea hace que el DCE complete
la transmision de datos y cambie al modo de recepcion (el DCE recibe
datos y los transmite al DTE). En una linea half-duplex, cuando el DTE
tiene que enviar datos activa la seal Request To Send y entonces
espera hasta que el DCE cambia del modo de recepcion al modo de
transmision. Cuando la transmision es posible el DCE activa la seal
Clear To Send y la transmision puede empezar. En una linea full duplex
las seales Request To Send y Clear To Send estan activadas
permanentemente
Clear To Send (CB)
Se trata de una seal de respuesta al DTE. Cuando esta seal esta
activa, indica al DTE que puede empezar a transmitir. Por ejemplo,
cuando un modem se conecta a otro modem por la red telefonica.
Cuando esta senal esta activa junto con las seales Request To Send,
Data Set Ready y Data Terminal Ready, el DTE puede estar seguro de
que los datos seran enviados por el enlace de comunicacion. Sin
embargo, cuando si las seales Data Set Ready y Data Terminal Ready
no estan implementadas, como en una conexion local que no involucra
la red telefonica, las seales Clear To Send y Request To Send son
suficientes para controlar la transmision de datos.
3. PUERTO SERIE DE LA PC
El puerto serie del PC es un dispositivo de entrada/salida compatible con
el estndar RS-232-C. Casi todos los PCs tienen uno o dos puertos serie.
Cada uno de estos puertos tiene un conector de nueve pines (algunas
veces veinticinco) en la parte trasera del ordenador. Los programas de
ordenador pueden enviar y recibir datos a travs del puerto serie.
4.CONFIGURACIONDELPUERTOSERIEEN
WINDOWS
En Windows la configuracin de los puertos serie instalados en el PC
puede realizarse en el Administrador de Dispositivos. La ruta es la
siguiente: MiPc->Panel de control->Sistema->Administrador de
Dispositivos. Dentro del administrador, en el apartado Puertos, se
muestra una lista con todos los puertos de comunicacin del PC. Los que
aparecen como COM1, COM2, ... son los puertos serie.
Administrador de dispositivos
Al hacer doble click sobre alguno de los puerto serie aparece la ventana
de propiedades del puerto. Dentro de esta ventana, en la pestaa
Recursos, podemos ver la direccin de entrada/salida y la IRQ asignadas
al puerto. El sistema operativo se encarga de la gestin de las IRQs y
direcciones de entrada/salida de los dispositivos y, por lo tanto, estos
valores se obtienen automticamente. Si existe algn conflicto entre
dispositivos, estos valores pueden establecerse manualmente quitando
5. Conexin de un microcontrolador al
puerto serie del PC
Para conectar el PC a un microcontrolador por el puerto serie se utilizan
las seales Tx, Rx y GND. El PC utiliza la norma RS232, por lo que los
niveles de tensin de los pines estn 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:
6.PROGRAMADEEJEMPLOENENSAMBLADOR
;MANDA Y RECIBE CARACTERES VIA SERIAL
;MANIPULA DIRECTAMENTE EL UART (NO USA INTERRUPCIONES)
;USA MTODO POLLING
CODIGO
SEGMENT
'CODE'
ORG 100h
ASSUME CS:CODIGO,DS:CODIGO,ES:CODIGO,SS:CODIGO
;
START: JMP
INICIO
CADENA
DB
'BIENVENIDO AL CHAT SERIAL',0AH,0DH,24
;
;Inicializa el puerto serie
INICIO: MOV AL,0
MOV DX,03F9H
OUT
DX,AL ;Turn off interrupts - Port1. COM1+1
;
;PORT 1 - Communication Settings
MOV AL,80H
MOV DX,03FBH
OUT
DX,AL ;SET DLAB ON. COM1+3
MOV AL,0CH
;Divisor para 9600 BPS
MOV DX,03F8H
OUT
DX,AL ;COM1
;Default 0x03 = 38,400 BPS */
;01 = 115,200 BPS */
;02 = 56,700 BPS */
;06 = 19,200 BPS */
;0CH = 9,600 BPS */
;18H = 4,800 BPS */
;30H = 2,400 BPS */
MOV
MOV
OUT
MOV
MOV
OUT
MOV
MOV
AL,0
DX,03F9H
DX,AL
AL,03
DX,03FBH
DX,AL
AL,0C7H
DX,03FAH
OUT
MOV
MOV
OUT
DX,AL
AL,0BH
DX,03FCH
DX,AL
CALL
MOV
IN
TEST
JZ
MOV
IN
WRITE2
DX,03FDH
AL,DX
AL,1
mandar
DX,03F8H
AL,DX
;
otra:
CALL
mandar: MOV
INT
JZ
MOV
INT
CMP
JE
FIN:
MOV
OUT
JMP
MOV
INT
PUTC
AH,01
16H
otra
AH,00
16H
AL,1BH
FIN
DX,03F8H
DX,AL
OTRA
AH,4CH
21H
;
PUTC PROC
PUSH AX
MOV AH, 0Eh
INT 10h
POP AX
RET
PUTC ENDP
;
WRITE2 PROC
PUSH AX
PUSH DX
LEA
DX,CADENA
MOV AH,09
INT
21H
POP
DX
POP
AX
RET
WRITE2 ENDP
CODIGO
ENDS
;COM1+5
;Check to see if char has been received.
END
START