You are on page 1of 2

COMUNICACIN SERIAL MEDIANTE USART En los sistemas con microcontroladores puede existir la necesidad de conectarse con el mundo exterior,

y esto se logra mediante las comunicaciones seriales y paralelas. En este tema se tratar la comunicacin serial asncrona mediante el mdulo USART. Dicha comunicacin permite establecer un enlace de comunicacin tipo Full Duplex. Dispositivo Externo TX TX RX RX GND RC6/TX RC7/RX C PROTOCOLO RS-232: Este protocolo es el utilizado por los microcontroladores y su mdulo USART. Cada dato se enva independientemente de los dems. Consta de 8 9 bits de datos Consta de 1 bit de Inicio (START) Consta de 1 bit de Parada (STOP) BIT INICIO BIT PARADA DATO LSB MSB MDULO USART: Circuito de Muestreo (RC7/RX) Generador de Baudios La frecuencia en baudios (bits por segundos) es la velocidad a la que se realiza la transferencia de datos. Valores normalizados: 330, 600, 1200, 2400, 4800, 9600, 19200, 38400, otros. El USART tiene un generador de Frecuencia en baudios, BRG. Su valor es controlado por el Registro SPBRG. La frecuencia en baudios del generador depende del bit BRGH del registro TXSTA (2). MDULO USART Si BRGH=1, se trabaja en alta velocidad y K= 16. Si BRGH=0, se trabaja en baja velocidad y K= 64. K se necesita para determinar la frecuencia de funcionamiento. TRANSMISOR ASNCRONO El dato a transmitirse se coloca en TXREG. De inmediato pasa al registro de desplazamiento TSR, que empieza a sacar los bits secuencialmente, segn la frecuencia establecida. Se incluye antes de los datos el bit de Inicio. Y despus de los bits de datos, se agrega el bit de parada. Como podemos ver, el corazn del transmisor lo constituye el TSR, cuyo contenido es cargado con el Dato a transmitir desde el TXREG. Lo va sacando bit a bit desde el LSB hasta el MSB. PASOS PARA LOGRAR TRANSMISIN ASNCRONA . Configurar RC6/TX como salida y RC7/RX como entrada. Inicializar el registro SPBRG con el valor apropiado segn los clculos realizados. Si se desea el margen alto se pondr a uno el bit BRGH . Habilitar USART en modo asncrono con SYN= 0 y SPEN= 1. Habilitar la interrupcin

(opcional) con TXIE=1. (PIE1,4). Poner a cero o a uno el bit TX9 (8 9 bits). Habilitar la transmisin con TXEN= 1 , el cual pondr a uno el bit TXIF. Si se han seleccionado 9 bits se deber poner el noveno en el bit TX9D . Cargar el dato en el registro TXREG (comenzar la transmisin). RECEPTOR ASNCRONO Los datos se reciben en serie, bit a bit, por el pin RC7/RX, y se van introduciendo secuencialmente en el registro de desplazamiento RSR, que opera a una frecuencia 16 veces ms rpida que la de trabajo. Despus de recibir el bit de Stop los datos acumulados en este registro se cargan en el de datos RCREG (si est vaco). Cuando la transferencia se ha completado, el bit RCIF ( PIR1,5 ) se pone a uno. La interrupcin puede habilitarse o deshabilitarse colocando a uno o borrando, respectivamente, el bit RCIE ( PIE1,5 ). El bit RCIF se borra cuando el registro RCREG se ha ledo (se "vaca" el registro). Cuando se tiene el formato de 9 bits de datos, hay que programar el RX9=1 (RCSTA,6) y el 9no bit de dato se colocar en RX9D (RCSTA,0) PASOS PARA LOGRAR RECEPCIN ASNCRONA. Configurar RC6/TX como salida y RC7/RX como entrada. Inicializar el registro SPBRG con el valor apropiado segn los clculos realizados. Si se desea el margen alto se pondr a uno el bit BRGH . Habilitar USART en modo asncrono con SYN= 0 y SPEN= 1. Habilitar la interrupcin (si se desea ) poniendo a uno el bit RCIE (PIE1,5). Poner a uno el bit RX9 (RCSTA,6) para habilitar 9 bits de recepcin. Habilitar la recepcin poniendo a uno el bit CREN . El flag RCIF subir a uno cuando se complete la recepcin y se ocasionar una interrupcin si est habilitado el bit RCIE. Leer el registro RCSTA , cargar el noveno bit (si est habilitado) y comprobar si ha ocurrido un error durante la recepcin. Leer el octavo bit recibido y dar lectura al registro RCREG para conocer si el dispositivo se ha direccionado. Si ha ocurrido un error borrarlo poniendo a cero el bit CREN . Si el dispositivo ha sido direccionado, borrar el bit ADDEN para permitir que los datos puedan leerse del buffer receptor.