You are on page 1of 12

1.

PRINCIPIOS DE TRANSMISION 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.1 Metodos de transmision en serie 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 bit. Controlando esta seal, el receptor puede determinar si se ha perdido o se ha aadido un bit. Por ejemplo, imaginemos una cinta transportadora en la que un producto pasa a traves de un sensor cada cinco segundos, si el sensor detecta algo antes de cinco segundos asume que es un objeto extrao y suena la alarma, si despues de cinco segundos no detecta nada asume que el producto se ha perdido y suena la alarma. Un aspecto a tener en cuenta en este tipo de comunicacion es que si alguno de los extremos de la comunicacion pierde la seal de reloj, la comunicacion finaliza. El metodo alternativo, conocido como comunicacion asincrona, es aadir marcadores dentro del flujo de bits para seguir la pista a cada bit de datos. Si se introduce un bit de comienzo que indica el comienzo de un bloque de bits, la posicion de cada bit puede ser determinada temporizando los bits en periodos regulares. Enviando bits de comienzo al principio de cada bloque de bits, los dos extremos no tienen que estar sincronizados por una seal de reloj. Al utilizar bloques de pequeo tamao no hay tiempo para que el temporizador se desincronize. El unico factor importante es que receptor y emisor tengan configurada la misma velocidad en el puerto. Los datos se dividen en bloques de 5 a 8 bits llamados palabras. El bit menos significativo de la palabra se envia primero y el mas significativo el ultimo. En la comunicacion el emisor codifica cada palabra aadiendo al principio de esta un bit de comienzo y uno o dos bits de parada al final. Algunas veces se aade un bit de paridad entre el ultimo bit de la palabra y el bit de parada para comprobar la integridad de los datos. En el siguiente ejemplo puede verse la composicion de un bloque de datos y como es sincronizado con la seal de reloj. En el ejemplo se usa una palabra de 8 bits con paridad impar y un bit de parada.

2. ESTANDAR RS-232 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. En 1969, el EIA (Electronic ---) junto con Bell Laboratories y otros fabricantes establecieron un estandar para la interfaz entre DTE's y DCEs. El objetivo de este estandar era simplificar la interconexion de equipos fabricados por diferentes firmas. Este estandar llego a ser el RS-232-C (Recommended Standard number 232, revision C from the Electronic Industry Association). Un estandar similar fue desarrollado en Europa por el CCITT (Comite Consultatif Internatinale de Telegraphie et Telephonie) conocido como V.24 (descripcion funcional) y V.28 (especificaciones electricas). El RS-232-C fue adoptado por la mayor parte de fabricantes de terminales y equipamiento. En 1980 la creciente industria de los microcomputadores encontro el estandar RS232-C barato y apropiado para conectar perifericos al microcomputador. El RS-232C llego a ser rapidamente un estandar para conectar al microcomputador: impresoras, cintas de backup, terminales y otros microcomputadores. Como el estandar solamente soporta velocidades de transmision hasta 20 kbps y distancias hasta 16 metros, se adoptaron nuevos estandares por la EIA. El RS449 (descripcion mecanica) y RS423 (descripcion electrica) son compatibles con el RS232-C y se puede operar a velocidades de hasta 10 Mbps y alcanzar distancias de hasta 1200 metros. Sin embargo, la adopcion de un nuevo estandar es un proceso largo y costoso. El RS-232-C esta muy expandido y por lo tanto le queda bastante vida. 2.2 Descripcion del estandar El estandar RS-232-C describe un interfaz entre un DTE y un DCE que emplea un intercambio en serie de datos binarios. En el se definen caracteristicas electricas, mecanicas, funcionales del interfaz y modos de conexion comunes. Las caracteristicas electricas incluyen parametros tales como niveles de voltage e impedancia del cable. La seccion mecanica describe los pines. La descripcion funcional define las funciones de las seales electricas que se usan. 2.2.1 Caracteristicas electricas Los niveles de voltage descritos en el estandar son los siguientes: Seales de datos Emisor (necesario) "0" de 5 a 15 "1" de -5 a -15 Voltios de -3 a -25 Voltios "On" Voltios Voltios

Receptor (esperado) de 3 a 25 Seales de control Emisor (necesario) "Off"

de -5 a -15 de 5 a 15

Receptor (esperado) de -3 a -25 de 3 a 25

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. 2.2.2 Caracteristicas mecanicas En el estandar no se hace referencia al tipo de conector que debe usarse. Sin embargo los conectores mas comunes son el DB-25 (25 pines) y el DB-9 (9 pines). El conector hembra debe estar asociado con el DCE y el macho con el DTE.

Diagrama de los conectores DB-25 y DB-9 En la siguiente tabla puede verse la seal asociada a cada pin. 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 9 4 SRTS DTR SQ RI SCA CD CG CE DA 120 108.2 110 125 113 --> --> <-<-<-SDCD SCTS STD TC SRD RC SCF SCB SBA DB SBB DD 122 121 118 114 119 115 <-<---> <-<---> 3 2 7 8 6 5 1 DB9 Pin Nombre EIA FG TD RD RTS CTS DSR SG DCD AA BA BB CA CB CC AB CF CCITT 101 103 104 105 106 107 102 109 <---> <---> <-<-DTEDCE Nombre Formal 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 Data Signal Rate Selector Transmitter Signal No asignado

CH/CI 111/112 <-->

2.2.3 Seales del puerto Cada una de las seales pertenece a un tipo de circuito distinto. En el nombre EIA de la seal se hace referencia al circuito al que pertenece. (A) Tierra (B) Datos (C) Control (D) Tiempo (S) Canal secundario

Protective Ground (AA) This line is connected to the power ground of the serial adapter. It should not be used as signal ground. Connect this line to the screen of 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. Data Set Ready (CC) En esta linea el DCE le indica al DCE que el canal de comunicacion esta disponible. Por ejemplo, cuando un modem ha establecido una conexion con un modem remoto y esta en modo de transmision. Signal ground Esta seal es la tierra usada como punto de referencia para todas las seales recibidas o transmitidas. Es muy importante y debe de estar presente en toda comunicacion. Data Carrier Detect (CF) Esta seal es utilizada por el DCE para indicarle al DTE que se ha establecido una portadora con el dispositivo remoto. +P Este pin se mantiene a +12 Voltios para test -P Este pin se mantiene a -12 Voltios para test Secondary Receive Line Signal Detect (SCF) Esta seal esta activa cundo el canal de comunicacion secundario recibe una portadora. Es analoga a la seal Receive Line Signal Detect. Secondary Clear To Send (SCB) Cuando esta activa le indica al DTE que puede empezar a transmitir por el canal secundario. Equivalente a la seal Clear To Send. Secondary Transmitted Data (SBA) Por esta linea se envian los datos del canal secundario del DTE al DCE. Esta seal es equivalente a la seal Transmitted Data. Transmission Signal Element Timing (DB) En esta linea el DCE envia una seal de reloj al DTE. Lo que permite al DTE introducir esta seal de reloj en el circuito de transmision de datos. Una transicion On-Off marca el centro de cada elemento de seal (bit) en la linea Transmitted Data. La frecuencia de la seal de reloj es la misma a la que se envian los datos. Secondary Receive Data (SBB) La seal es usada por el DTE para recibir datos del canal secundario desde el DCE. Cuando se utiliza el canal secundario para diagnostico o para interrumpir el flujo de datos en el canal primario, esta seal no esta implementada. Receiver Signal Element Timing (DD) En esta linea el DCE envia una seal de reloj al DTE. Lo que permite al DTE introducir esta seal de reloj en el circuito de recepcion de datos. Una transicion On-Off marca el centro de cada elemento de seal (bit) en la linea Transmitted Data. La frecuencia de la seal de reloj es la misma a la que se reciben los datos.

Secondary Request To Send (SCA) El DTE utiliza esta seal cunado quiere transmitir al DCE por el canal secundario. Es equivalente a la seal Request To Send Data Terminal Ready (CD) Cuando esta activa le indica al DCE que el DTE esta listo para recibir datos . Esta seal debe estar activa antes de que el DCE pueda activar la seal Data Set Ready indicando que esta conectado al enlace de comunicacion. Cuando la linea pasa a estar desactivada, el DCE finaliza la comunicacion. Signal Quality Detector (CG) Esta linea es utilizada por el DCE para indicar si existe una alta probabilidad de error en los datos recibidos. Cuando hay una probabilidad alta de error, la seal esta en Off. No es muy utilizada. Ring Indicator (CE) En esta linea el DCE avisa al DTE que se ha recibido una llamada. Esta seal esta en Off hasta que el DCE recibe una seal de llamada. Data Signal Rate Selector (CH) El DTE utiliza esta seal para seleccionar la velocidad de transmision del DCE. Data Signal Rate Selector (CI) Esta seal es la misma que la seal anterior (CH) pero en este caso es el DCE quien selecciona la velocidad. Transmitter Signal Element Timing (DA) En esta linea el DTE envia al DCE una seal de reloj. Esto solo sucede cuando el reloj maestri esta en el DTE. Una transicion On-Off marca el centro de cada elemento de seal (bit) en la linea Transmitted Data. 2.2.4 Cableados tipicos A pesar de la gran difusin de la norma RS-232-C no existe un nico modelo estndar de cable que permita la interconexin de dos dispositivos RS-232-C cualquiera, sino que vara dependiendo de dos factores. El tipo de dispositivo. Si se trata de dos dispositivos de distinto tipo (DTE-DCE) la conexin es la natural, es decir se conectan entre si la patillas con el mismo nmero. Sin embargo, si son del mismo tipo (DTE-DTE) es necesario intercambiar algunas pines con el fin de mantener las entradas unidas con las salidas. El tipo de control de flujo. Si este se hace a travs de algn protocolo software, como el XON/XOFF, basta con la lneas de transmisin y recepcin de datos, puesto que el control se realiza a travs de estas. En el caso de control de flujo por hardware son necesarias ms lneas para la gestin de la comunicacin. Existen, adems, algunas formas de control de flujo hbridas a travs de software ayudadas por algunas lneas hardware. 2.2.4.1 Configuraciones estandar. En la siguiente tabla pueden verse las seales presentes en distintas configuraciones de cable segun el estandar RS-232-C. Circuito RS-232-C (1) (2) (3) (4) (5) (6) (7)

(AA)Protective Ground (AB)Signal Ground (BA)Transmitted Data (BB)Received Data (CA)Request to Send (CB)Clear to Send (CC)Data Set Ready (CD)Data Terminal Ready (CE)Ring Indicator (CF)Received Line Signal Detector (1)Solo transmision (2)Solo transmision con RTS (control de flujo) (3)Solo recepcion (4)Half-duplex (5)Full-Duplex (6)Full-Duplex con RTS (control de flujo) (7)Especial X = necesario S = necesario para el uso de una linea telefonica o = especificado por el fabricante X X S S X X X S S X S S X X X X X X X X X X X X X S S X X X S S X X X X X X X X X X S S X

o X o o o o o o o o

En la siguiente figura puede verse una conexion full duplex con control de flujo y capacidad para operar en un red telefonica, segun el estandar RS-232-C.

Conexion RS-232-C full duplex 2.2.4.2 Configuraciones no estandar. Uno de los usos no estndar ms comunes de la norma RS-232-C es la conexin de dos DTE entre si. La forma ms sencilla de conectar dos DTE (por ejemplo dos PCs)

es unir la lnea Transmitted Data de uno de ellos a la linea Received Data del otro, y viceversa. En la versin ms bsica de este tipo de cable, que se denomina "mdem nulo", no se conecta ninguno de los otros circuitos excepto la seal Signal Ground, que conforma el retorno comn para los circuitos transmisor y receptor. En la figura inferior se muestra este tipo de conexion.

Configuracion simple de un modem nulo Algunos programas inspeccionan las lneas CTS, DSR y DCD y no funcionaran a no ser que alguna de ellas o todas esten activadas. No obstante se puede engaar al programa conectando adecuadamente entre si las lneas de control de los dos DTE. Existen muchos ejemplos de estos tipos de cableados, dependiendo normalmente su configuracin del software de comunicaciones empleado. Una de las configuraciones posibles es la que se muestra en la siguiente figura.

Modem nulo

3. PUERTO SERIE DEL 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. 3.1. La UART (Universal asynchronous receiver transmiter)

La mayor parte de la electrnica del puerto serie esta implementada en un chip denominado UART. La misin principal de la UART es convertir los bytes del bus paralelo del PC a un flujo de bits en serie. Adems cambia el voltaje utilizado en la seal para representar los bits y aade o extrae los bits de inicio y parada. El tipo de UARTS que pueden encontrarse normalmente en un PC son de la serie 8250 que incluye las UARTs 16450, 16550, 16650 y 16750. Existen dos tipos bsicos de UARTs: UARTs simples: 8250, 16450, 16550 y 16650. UARTs FIFO: 16550A, 16C552, 16750 y 16C950.

Para entender la diferencia entre UARTs simples y UARTs FIFO primero debemos entender que sucede cuando una UART enva o recibe un byte. En las UARTs simples cada vez que un byte es enviado o recibido se enva una interrupcin a la CPU. Entonces la CPU mueve del buffer de la UART a la memoria el byte recibido , o bien le da a la UART otro byte para enviar. Con velocidades de transmisin altas, este mecanismo puede robar mucho tiempo de procesamiento a la CPU y no dejar que se realicen otras tareas. Incluso puede darse el caso de que la CPU no pueda atender una interrupcin a tiempo debido al gran numero de interrupciones generadas y se pierdan uno o varios bytes de la transmisin. Este tipo de UARTs con un buffer de un byte estn obsoletas. Las UARTs FIFO ayudan a resolver este problema. La UART 16550A viene con un buffer FIFO de 16 bytes. Esto significa que puede recibir hasta 14 bytes o enviar 16 bytes antes de tener que interrumpir a la CPU. La CPU puede mover todos los bytes al mismo tiempo. Esto supone un gran avance respecto de las UARTs simples, la CPU recibe menos interrupciones y esta libre para realizar otras tareas. En este tipo de UARTs es difcil que se pierda algn dato. Un detalle importante es que la interrupcin se enva a la CPU antes de que el buffer este completamente lleno (cuando hay 14 bytes), de esta forma, pueden recibirse dos bytes mas antes de que la interrupcin sea tratada. El numero de bytes en el buffer necesarios para disparar la interrupcin puede ser modificado. En el caso de un byte el comportamiento es similar al de una UART simple. Adems, existe un mecanismo de timeout para evitar que existan bytes en el buffer de la UART sin recibir porque no se ha llegado al numero mnimo de bytes necesarios para enviar una interrupcin. Si se recibe un byte y el siguiente byte no llega dentro de un espacio de tiempo determinado se enva una interrupcin.

Diagrama de las UARTS 16550, 8250 y 16450 3.2. Direcciones de entrada/salida e IRQs El sistema operativo debe conocer que puertos serie existen, su direccin de entrada/salida y el numero de IRQ que utilizan. Cada puerto serie almacena en una memoria no voltil sus direcciones de entrada/salida y su numero de IRQ. Cuando el puerto serie requiere la accin de la CPU lanza una interrupcin. Cuando la CPU atiende esta interrupcin, inicia una rutina de tratamiento de interrupcin que es parte del controlador del puerto serie. En primer lugar, el controlador intenta averiguar que sucedi en el puerto serie. Esto puede hacerse ya que el puerto serie tiene registros en las direcciones de E/S conocidas por el controlador que contienen informacin de estado. El controlador lee estos registros y a continuacin realiza la accin apropiada. Los valores estndar de las IRQs y direcciones de E/S de los puertos serie de un PC son los siguientes: Puerto IRQ Direccion Base 3F8 2F8 3E8 2E8

ttyS0 / COM1 4 ttyS1 / COM2 3 ttyS2 / COM3 4 ttyS3 / COM4 3

4. CONFIGURACION DEL PUERTO SERIE EN 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 la opcin de Usar configuracin automtica. En este caso, pueden proporcionarse unos valores determinados pulsando el botn Cambiar configuracin...o elegir un conjunto de valores en Configuracin basada en.

Recursos de COM1 En la pestaa Configuracin de puerto, aparecen los parmetros de comunicacin del puerto serie: la velocidad de transmisin, el tamao de palabra, el tipo de paridad utilizada en el control de flujo, el numero de bits de parada y, por ultimo, el tipo de control de flujo.

Ventana de propiedades de COM1

You might also like