El documento describe la comunicación serial asíncrona utilizando un solo hilo para transmitir información de forma secuencial bit a bit. Explica que la comunicación serial es más común que la paralela debido a su menor costo y mayor distancia de transmisión. Además, detalla el funcionamiento del módulo EUSART para comunicación serial asíncrona en microcontroladores PIC.
1. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
Algunos de los sistemas microcontrolados almacenan datos que en ciertas
ocasiones son tomados por otros sistemas para el estudio y análisis de dichos datos.
El puerto serial de las computadoras es conocido como puerto RS-232, la
ventaja de este puerto es que todas las computadoras traen al menos un puerto serial,
este permite la comunicaciones entre otros dispositivos tales como otra computadora,
el mouse, impresora y para nuestro caso con los microcontroladores.
Existen dos formas de intercambiar información binaria: En paralelo y en serial.
3. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
La comunicación paralela transmite todos los bits de un dato de manera simultánea,
por lo tanto la velocidad de transferencia es rápida, sin embargo tiene la desventaja
de utilizar una gran cantidad de líneas, por lo tanto se vuelve mas costoso y tiene las
desventaja de atenuarse a grandes distancias, por la capacitancia entre conductores.
En Comunicación Serial se utilizan un solo hilo para llevar la información , pero se
realiza en forma secuencial enviando bit a bit de cada palabra de información
binaria.
4. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
Tipos de Comunicaciones Seriales:
Existen dos tipos de comunicaciones seriales: la síncrona y asíncrona
En la comunicación serial sincronía además de una línea sobre la cual se
transmitirán los datos se necesita de una línea la cual contendrá los pulsos de reloj
que indicaran cuando un datos es valido.
Ejemplos de comunicación serial sincronía :
• I2C
• ONE WIRE
• SPI
5. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
En la comunicación serial asíncrona, no son necesarios los pulsos
de reloj.
La duración de cada bit esta determinada por la velocidad con la cual
se realiza la transferencia de datos (Baudios; bits por segundos).
La siguiente figura muestra la estructura de una carácter que setrasmite en forma
serial asíncrona.
6. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
Normalmente cuando no se realiza ninguna transferencia de datos, la
línea del transmisor se encuentra en esto de (idle) este quiere
decir en estado alto.
Para iniciar la transmisión de datos , el transmisor coloca esta línea en
bajo durante determinado tiempo, lo cual se le conoce como bit
de arranque (start bit) y a continuación empieza a transmitir con un intervalo de
tiempo los bits correspondientes al dato, empezando siempre por el BIT menos
significativo (LSB), y terminando con el BIT mas significativo.
Si el receptor no esta sincronizado con el transmisor, este desconoce
cuando se van a recibir los datos.
7. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
El USART es uno de los primeros sistemas de comunicación serie. Las
versiones nuevas de este sistema están actualizadas y se les
denomina un poco diferente - EUSART.
EUSART
El módulo Transmisor/Receptor Universal Síncrono/Asíncrono mejorado
(Enhanced Universal Synchronous Asynchronous Receiver Transmitter -EUSART)
es un periférico de comunicación serie de entrada/salida. Asimismo es conocido
como Interfaz de comunicación serie (Serial Communications Interface - SCI).
8. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
Este periférico incorporado en los PIC16F887 contiene todos los
generadores de señales de reloj, registros de desplazamiento y búfers de datos
necesarios para realizar transmisión de datos serie de entrada/salida,
independientemente de la ejecución de programa del dispositivo. Como indica su
nombre, aparte de utilizar el reloj para la sincronización, este módulo puede
establecer la conexión asíncrona, lo que lo hace único para algunas aplicaciones.
Por ejemplo, en caso de que sea difícil o imposible proporcionar canales
especiales para transmisión y recepción de datos y señales de reloj (por ejemplo,
mando a distancia de radio o infrarrojas), el módulo EUSART es definitivamente
la mejor opción posible.
9. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
El EUSART integrado en el PIC16F887 posee las siguientes
características:
• Transmisión y recepción asíncrona en modo Full-duplex;
• Caracteres de anchura de 8 – 9 bits programables;
• Detección de dirección en modo de 9 bits;
• Detección de errores por saturación del búfer de entrada; y
• Comunicación Half Duplex en modo síncrono.
10. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
EUSART EN MODO ASÍNCRONO
El EUSART transmite y recibe los datos utilizando la codificación de no
retorno a cero - NRZ (non-return-to-zero). Como se muestra en la
siguiente figura, no se utiliza una señal de reloj y los datos se transmiten de
forma muy simple:
Cada dato se transmite de la siguiente forma:
• En estado inactivo la línea de datos permanece en estado alto (1);
• Cada transmisión de datos comienza con un bit de arranque (START), el cual,
siempre es cero (0);
• Cada dato tiene un ancho de 8 o 9 bits (primero se transmite el bit menos
significativo - LSB); y
• Cada transmisión de datos termina con un bit de parada (STOP), el cual,
siempre es uno (1) La siguiente figura muestra cómo conectar de manera
habitual un microcontrolador PIC que utiliza el módulo EUSART. El circuito
RS-232 se utiliza como un convertidor de nivel de voltaje.
15. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
/* En este ejemplo, el módulo EUSART interno se inicializa y se ajusta para enviar
elmensaje inmediatamente después de recibirlo. La velocidad de transmisión en
baudios se ajusta a 9600 bps. El programa utiliza las siguientes rutinas de librería
UART:UART1_init(), UART1_Write_Text(), UART1_Data_Ready(), UART1_Write() y
UART1_Read().*/
char dato;
void main() {
ANSEL = ANSELH = 0; // Todos los pines se configuran como digitales
C1ON_bit = C2ON_bit = 0; // Deshabilitar los comparadores
UART1_Init(9600); // Inicializar el módulo UART a 9600 bps
Delay_ms(100); // Esperar a que señal de reloj del módulo UART se ponga
estable
UART1_Write_Text("Start");
while (1) { // Bucle infinito
if (UART1_Data_Ready()) { // Si el dato se ha recibido,
dato = UART1_Read(); // lea el dato recibido
UART1_Write(uart_rd); // y envíelo atrás por el UART
}
}
}
16. MICROPROCESADORES Y MICROCONTROLADORES I
UNIDAD V: COMUNICACION SERIAL
En la comunicación serial asíncrona, no son necesarios los pulsos
de reloj.
La duración de cada bit esta determinada por la velocidad con la cual
se realiza la transferencia de datos (Baudios; bits por segundos).
La siguiente figura muestra la estructura de una carácter que setrasmite en forma
serial asíncrona.