jueves, 11 de agosto de 2011

Curso Electronica industrial y microcontroladores: Comunicaciones seriales entre pc y micro (Rs232).

El puerto com en las computadoras es como se ve en la imagen siguiente:






Comenzaremos por una descripción de lo que es el puerto serie en las computadoras

El estándar RS-232C

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.

Descripcion fisica de las conexiones del puerto serie.

 

 

Originalmente, el uso primario de un puerto serie era de conectar un modem a la computadora. La asignación de los pines refleja eso:
  1. Carrier Detect (Portador detector)- Determina si el modem está conectado a una línea telefónica en funcionamiento.

  2. Receive Data (RX) (Receptor)- La computadora recibe la información enviada por el modem.

  3. Transmit Data (TX) (Transmisor)- La computadora envía información al modem.

  4. Data Terminal Ready - La computadora le dice al modem que está listo para hablar.

  5. Signal Ground (Tierra)- Este pin es aterrizado.

  6. Data Set Ready - El Modem le dice a la computadora que esta listo para hablar.

  7. Request To Send =(RTS)(Solicitar para envió)- La computadora le pregunta al modem si esta puede enviar información.

  8. Clear To Send =(CTS)– El modem le dice a la computadora que ya le puede enviar información.

  9. Ring Indicator - Una vez que una llamada ha tomado lugar, la computadora reconoce por esta señal (enviada por el modem) que una llamada es detectada.

Para las comunicaciones los pines mas importantes son TXD(transmite datos) y RXD (recive datos), ademas de GND, los demás pines se pueden utilizar para establecer algún tipo de control sobre los dispositivos. Entonces los terminales que usaremos para comunicar nuestros dispocitivos seran TXD y RXD.

Niveles de tensión

Los voltajes enviados por los pines TX y RX pueden ser de 2 estados, Encendido o Apagado. Encendido (valor binario "1") significa que el pin está transmitiendo una señal entre -3 y -25 voltios, mientras que Apagado (valor binario de "0") quiere decir que está transmitiendo una señal entre +3 y +25 voltios. 
 




NIVEL
TTL
RS232c
ALTO (1 LOGICO)
5 V
de -3v a -25v
BAJO (0 LOGICO)
0 V
de 3v a 25v


 

Para la adaptacion de niveles podemos usar varios esquemas pero nosotros por ahora solo usaremos el mas difundido que es el MAX232 que es un circuito que nos permite hacer una adaptacion rapida facil y eficiente, esto lo veremos mas adelante.

Protocolo estandar de comunicacion serie.

Velocidad de comunicacion (Los baudios)

El baudio es equivalente a expresar la cantidad de informacion por la linea en un segundo tambien conosido como BPS (Bits por Segundo).

La velocidad está estandarizada según la norma RS-232C en baudios: 75, 110, 150, 300, 600, 1200, 2400, 4800, 9600, 19200.

Existen dos formas de comunicación serial: la sincrona y la asíncrona. 

Comunicación sincrónica: además de una línea sobre la que se transfieren los datos, se necesita otra que contenga pulsos de reloj que indiquen cuando un dato es valido; la duración de el BIT esta determinada por la duración del pulso de sincronismo. 

Comunicación asincrónica: los pulsos de reloj no son necesarios y se acude a otros mecanismos para realiza la lectura/escritura de los datos; la duración de cada BIT esta determinada por la velocidad con la cual se realiza la transferencia de datos.

Conformacion de un byte de datos transmitido

Dedifinicion de algunos terminos usados:

Bit start: Para empezar a transmitir datos, el transmisor coloca esta línea en bajo durante el tiempo de un BIT, lo cual se conoce como bit de arranque.

Bit de datos: luego del bit start los bits de datos son enviados al receptor empezando por el bit menos significativo (osea el primero de derecha a izquierda) terminando con el bit mas significativo.

Bit de parida: este bit suele no utilizarse y sirve para correccion de errores, se puede establecer paridad par o impar.

Bit stop: los bits de parada (Stop) que pueden se 1 ó 2, en los cuales la línea regresa a un estado alto. Al concluir esta operación el transmisor estará preparado para transmitir el siguiente dato.

 

La anterior figura muestra la estructura de un carácter que se transmite serialmente de forma asíncrona. Normalmente, cuando no se realiza ninguna transferencia de datos, la línea de el transmisor es pasiva ( idle ) y permanece en un estado alto. Para empezar a transmitir datos, el transmisor coloca esta línea en bajo durante el tiempo de un BIT, lo cual se conoce como bit de arranque ( start BIT ) y a continuación, empieza a transmitir con el mismo intervalo de tiempo los bits correspondientes al dato que pueden se 7 u 8 bits ). Empezando por el menos significativo (LSB), y terminando con el mas significativo (MSB). Al finalizar se agrega el bit de paridad (Parity), si es que esta activada esta opción, y los bits de parada (Stop) que pueden se 1 ó 2, en los cuales la línea regresa a un estado alto. Al concluir esta operación el transmisor estará preparado para transmitir el siguiente dato.
El receptor no esta sincronizado con el transmisor y desconoce cuando va a recibir los datos. La transición de alto a bajo de la línea del transmisor activa el receptor y este genera un conteo de tiempo de tal manera que realiza una lectura de la línea medio BIT después de el evento; si la lectura realizada es un estado alto, asume que la transición ocurrida fue ocasionada por ruido en la línea; si por el contrario, la lectura es un estado bajo, considera como valida la transición y empieza a realizar lecturas secuenciales a intervalos de un BIT hasta conformar el dato trasmitido.
El receptor puede tomar el BIT de paridad para determinar la existencia o no de errores y realizar las acciones correspondientes al igual que los bits de parada para situaciones similares.
Lógicamente, tanto el transmisor como el receptor deberán tener los mismos parámetros de velocidad, paridad, numero de bits del dato transmitido y bits de parada.
Para la comunicacion con microcontroladores usaremos la transmicion asincrona.
Control del flujo de datos:
Para evitar pérdidas de datos, el receptor tiene que poder detener la transmisión de datos, si no se pueden procesar más datos. Este llamado Handshake puede realizarse de dos maneras:
  • Handshake de Software:
    El receptor envía signos especiales al transmisor para el control del flujo de datos. Está muy divulgado el Handshake XON/XOFF, con el que se usan los signos ASCII 11H y 13H.

  • Handshake de Hardware:
    El receptor dirige el flujo de datos a través del nivel de líneas especiales de Handshake

Un aspecto importante de la comunicación serial es el concepto de control de flujo. Esta es la habilidad de un dispositivo de decirle a otro que pare de enviar datos por un tiempo. Los comandos Request to send (RTS), Clear To Send(CTS), Data Terminal Ready(DTR) y Data Set Ready(DSR), son usados para permitir el control de flujo.
Veamos un ejemplo de como funciona el control de flujo. Tu tienes un modem que se comunica a 56Kbps. La conexión serial entre tu computadora y tu modem transmite a 115Kbps, el cual es mas del doble de rápido. Esto significa que el modem está recibiendo mas información de la computadora que la que puede transmitir por la línea telefónica. Aun si el modem tuviera un buffer de 128K para almacenar datos, este rápidamente se llenaría y sería incapaz de funcionar correctamente con toda la información llegándole de la computadora.
Con este control de flujo, el modem puede parar el flujo de datos de la computadora antes de que agote el buffer del modem. La computadora está enviando constantemente una señal de Petición de Envió (RTS) y verificando por una señal en el pin Libre para enviar (CTS). Si no hay una respuesta por este pin, la computadora para de enviar información, esperando hasta que le llegue la señal CTS para resumir. Esto permite que el modem mantenga un flujo de datos corriendo finamente.

Software para el puerto serie. (Programa Mikroterminal)

Para todos los ejemplos expresados en este tutorial vamos a usar este programa que he desarrollado expecialmente para el puerto serie.


 Este programa nos permite hacer varias pruebas de el puerto serie, como el test de las salidas RTS y DTR aun me falta añadir mas pruebas pero queda para un futuro. descargar el programa mikroterminal

Prueba del puerto serie

Es importante determinar el buen funcionamiento del puerto serie para estar seguros de que funciona.
Prueba de comunicacion TX-RX, en esta prueba vamos a conectar los pines del puerto 2 y 3 juntos respectivamente, luego de esto activaremos el programa y prosedemos a escribir en la seccion de texto blanca del programa mikroterminal, debemos recordar ejecutar el programa y extablecer la conexion al puerto usado, luego presionamos el boton Send y deberemos ver los datos que enviamos apareser en la parte negra del programa mikroterminal.




0 comentarios:

Publicar un comentario