usart

16
COMUNICACIÓN SERIAL MEDIANTE USART Prof. Luis Zurita

Upload: lmzurita2008

Post on 23-Nov-2015

2 views

Category:

Documents


0 download

TRANSCRIPT

  • COMUNICACIN SERIALMEDIANTE USARTProf. Luis Zurita

  • INTRODUCCINEn 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.DispositivoExternoTXTXRXRXGNDRC6/TXRC7/RXC

  • PROTOCOLO RS-232Este 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 datosConsta de 1 bit de Inicio (START)Consta de 1 bit de Parada (STOP)BIT INICIOBIT PARADADATOLSBMSB

  • MDULO USARTCircuito de Muestreo (RC7/RX)Generador de BaudiosLa 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 USARTSi 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.Ejemplo. Halle el valor a cargar en SPBRG, si se desea trabajar con un PIC16F873, con un XT, a una baja velocidad y frecuencia de 9600 baudios.

  • TRANSMISOR ASNCRONOEl 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.

  • TRANSMISOR ASNCRONOExiste un sealizador TXIF (PIR1,4) que se pone a 1, indicando que el TSR se ha vaciado. Si se ha habilitado la interrupcin por esta causa con el bit TXIE (PIE1,4), se entrar en una RSI.Cuando se escribe un nuevo dato a ser transmitido en el TXREG, el sealizador TXIF se pone a 0. Tambin existe otro bit, el TRMT (TXSTA,1) que se pone a 1 cuando el TSR est vaco.

  • TRANSMISOR ASNCRONO

  • PASOS PARA LOGRAR TRANSMISIN ASNCRONA1.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).

  • TXSTAbit 7: CSRC: Bit de seleccin de relojModo Asncrono:Sin importanciaModo Sncrono1 = Modo master (reloj generado internamente para BRG (Generador de Baudios))0 = Modo esclavo (reloj externo)bit 6: TX9: Habilita transmisin de 9-8 bits1 = Transmisin de 9 bits0 = Transmisin de 8 bitsbit 5: TXEN: Bit de habilitacin del transmisor1 = Habilita transmisin0 = Deshabilita transmisin (Nota: SREN/CREN anula TXEN en modo SYNC.)bit 4: SYNC: Bit de seleccin del modo USART1 = Modo Sncrono0 = Modo Asncrono

  • bit 3: Sin implementar: En lectura es'0'bit 2: BRGH: Bit de seleccin del rango de baudios altoModo Asncrono1 = Alta velocidad0 = Baja velocidadModo Sncrono:No se usa este modobit 1: TRMT: Bit de estado del registro de desplazamiento del transmisor (TSR)1 = TSR vaco0 = TSR llenobit 0: TX9D: Noveno bit de datos de transmisin. Se puede emplear como bit de paridad.TXSTA

  • RECEPTOR ASNCRONOLos 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)

  • RECEPTOR ASNCRONO

  • PASOS PARA LOGRAR RECEPCIN ASNCRONA1.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

  • bit 7: SPEN: Bit de habilitacin del puerto serie1 = Habilita puerto serie (configura patillas RC7/RX/DT y RC6/TX/CK para el puerto serie)0 = Deshabilita puerto seriebit 6: RX9: Habilita recepcin de 9-8 bits1 = Selecciona 9 bits de recepcin0 = Selecciona 8 bits de recepcinbit 5: SREN: Bit de habilitacin de recepcin nicaModo asncrono: Este modo no se usaModo Sncrono master:1 = Habilita una recepcin nica0 = Deshabilita una recepcin nicaEste bit se borra despus de completar la recepcinModo Sncrono esclavo: En este modo no se usa.RCSTA

  • bit 4: CREN: Bit de habilitacin de recepcin continuaModo Asncrono1 = Habilita recepcin continua0 = Deshabilita recepcin continuaModo Sncrono1 = Habilita recepcin continua hasta que el bit CREN sea borrado.0 = Deshabilita la recepcin continuabit 3: Sin implementar: En lectura es '0'bit 2: FERR: Bit de error de empaquetamiento1 = Error de empaquetamiento (Puede actualizarse al leer el registro RCREG y recibir el siguiente byte)0 = No hay errorbit 1: OERR: Bit de error de desbordamiento1 = Error de desbordamiento (puede ser borrado al borrar CREN)0 = No hay desbordamientobit 0:RXGD: Noveno bit de datos de recepcin. Se puede emplear como bit de paridadRCSTA