prÁctica 2 microprocesadores ii usart

Upload: arturo72

Post on 18-Oct-2015

44 views

Category:

Documents


0 download

TRANSCRIPT

LABORATORIO DE MICROPROCESADORES IIPRCTICA N 21. Objetivo: Desarrollar una aplicacin que permita comunicar el microcontrolador PIC18F4550 con una PC mediante el uso del protocolo serial RS-232.2. Marco terico: Los modos de comunicacin serie y paralelo poseen ciertas ventajas y desventajas una sobre otra. La comunicacin serial es una opcin que se aconseja cuando se quiere alcanzar largas distancias entre emisor y receptor adems de la capacidad de deteccin de error. Los microcontroladores de la serie PIC 18 poseen un mdulo de comunicacin USART (Universal Synchronous Asynchronous Reception and Transmission) capaz de soportar la comunicacin serie sncrona y asncrona.El USART llamado SCI (Serial Communication Interface) puede funcionar en los modos de comunicacin full dplex (bidireccional asncrono) y half dplex (sncrono unidireccional). Se puede especificar los modos de comunicacin del USART como:1. Asncrona (full dplex bidireccional)2. Sncrona maestro (half dplex, unidireccional)3. Sncrona esclavo (half dplex, unidireccional)En el modo asncrono la transferencia de informacin se realiza sobre dos lneas TX (transmisin) y RX (recepcin) enviando y recibiendo los bits por dichas lneas bajo la frecuencia del reloj del USART. En el modo sncrono la comunicacin se realiza sobre dos lneas DT que transmite los datos en ambos sentidos al ritmo de la frecuencia emitida por el dispositivo maestro por la lnea CK. En los modos asncrono y sncrono los pines que se utilizan son RC6/TX/CK y y RC7/RX/DT.Los microcontroladores PIC en el modo asncrono utilizan la norma RS-232-C donde cada palabra se enva independientemente de las dems. El dato puede estar conformado por 8 o 9 bits y le precede un bit de inicio de comunicacin (START) y otro de finalizacin (STOP).Los bloques que configuran la arquitectura USART en modo asncrono son:1. Circuito de muestreo2. Generador de baudios3. Transmisor asncrono4. Receptor asncrono

3.

1. Circuito de muestreo: Acta sobre el pin RC7/RX/DT que recibe la informacin o control y se encarga de muestrear 3 veces su valor.2. Generador de baudios: La frecuencia en baudios (bits por segundo) a la que se realiza la transferencia toma valores estandarizados (1200, 2400, 4800, 9600, 19200, etc.). El mdulo USART del microcontrolador posee un generador de baudios BRG que posee un registro de control denominado SPBRG. La frecuencia en baudios tambin depende del bit BRGH que se encuentra dentro del registro TXSTA. Este bit determina el modo de velocidad alta o baja, de acuerdo a las siguientes ecuaciones y condiciones de los bits:Frecuencia en baudios = Fosc / (K (X+1))X: valor cargado en el registro SPBRGBRGH = 0 baja velocidad K = 64BRGH = 1 alta velocidad K = 16X = Fosc / Frecuencia / K 1

Protocolo de comunicacin asncrona. Fuente: Microcontroladores PIC Diseo prctico de aplicaciones, Angulo, Romero, Angulo. 3. Transmisor asncrono: El dato que se desea transmitir por el USART se deposita en el registro TXREG y a continuacin se pasa al registro de desplazamiento TSR. Adems de los bits de datos se envan los bits de control de inicio y parada. El USART del equipo receptor recibe los bits uno por uno, elimina los dos de control y mueve los de datos del registro receptor RSR al registro RCREG.

La secuencia de pasos para implementar la transmisin serial con el microcontrolador PIC 18 es la siguiente:1. Configurar las lneas RC6/TX/CK como salida y RC7/RX/DT como entrada.2. Poner el bit SYNC = 0 (bit de seleccin de modo asncrono del USART, en el registro TXSTA) y SPEN = 1 (bit 7 del registro RCSTA, habilitacin del puerto serie).3. Si se trabaja con interrupcin del puerto serie colocar TXIE = 1 y GIE = 1.4. Si los datos son de 9 bits en lugar de 8 colocar TX9 = 1.5. Cargar el valor de X para obtener la frecuencia de baudios deseada en el registro SPBRG.6. Activar la transmisin con TXEN = 1. El bit TXIF = 1, debido a que al empezar TXREG est vaco.7. Cargar en TXREG el dato a transmitir.

4. Receptor asncrono: Los datos se reciben en serie bit a bit por el pin RC7/RX/DT y se introducen en forma secuencial al registro RSR que opera a una frecuencia 16 veces mayor que la frecuencia de trabajo. Si el dato consta de 9 bits se debe programar el bit RX9 = 1.Los pasos que se deben seguir para lograr la recepcin de datos es la siguiente:1. Cargar con el valor X al registro SPBRG para operar con la tasa de baudios deseada. Se debe determinar el valor de BRGH para baja o alta velocidad.2. Habilitar el USART en modo asncrono con SPEN = 1 y SYNC = 0.3. Si se trabaja con interrupcin del puerto serie con la llegada del bit de STOP colocar RCIE = 1 y GIE = 1.4. Poner RX9 = 1 en caso de recibir 9 bits5. Deteccin de direccin con ADDEN = 1 (comunicacin de un maestro y mltiples esclavos)6. Habilitacin de recepcin CREN = 1 (bit 4 del registro RCSTA, recepcin continua de bits)7. Al completarse la recepcin RCIF = 1 y se produce una interrupcin.8. Lectura de RCSTA para determinar si se ha producido algn error.9. Leer el byte del registro RCREG para determinar si el microcontrolador ha sido direccionado (modo maestro mltiples esclavos).10. Si se produce un error CREN = 0.11. Si el microcontrolador ha sido direccionado ADDEN = 0 (bit 3 del registro RCSTA) en modo maestro mltiples esclavos.Registros utilizados en la transmisin y recepcin asncrona

DIRECCIN (hexadecimal)NOMBREBIT 7BIT 6BIT 5BIT 4BIT 3BIT 2BIT 1BIT 0

8CPIE1PSPIEADIERCIETXIESSPIECCP1IETMR2IETMR2IE

0CPIR1PSPIFADIFRCIFTXIFSSPIFCCP1IFTMR2IFTMR2IF

98TXSTACSRCTX9TXENSYNC--BRGHTMRTTX9D

19TXREGRegistro de transmisin del USART

18RCSTASPENRX9SRENCRENADDENFERROERRRX9D

1ARCREGRegistro de recepcin del USART

99SPBRGRegistro generador de baudios

3. Trabajo de laboratorioRealizar la comunicacin del microcontrolador PIC18F4550 y una PC mediante el USART en modo asncrono utilizando el protocolo RS-232.C.El microcontrolador enviar un cdigo binario de 8 bits hacia la PC. El cdigo ser introducido por el estudiante mediante 8 interruptores externos conectados al puerto A. El PC recibir el dato y lo mostrar en pantalla, mediante una aplicacin elaborada en VISUAL BASIC. Es necesario contar con un cable de comunicacin serial para puerto DB-9 y el conversor de niveles de tensin MAX 232 con sus respectivos capacitores. La velocidad de comunicacin ser de 9600 baudios inicialmente.

En esta prctica utilizaremos el software MikroC Pro de Mikroelectronica que tiene las siguientes funciones bsicas para usar el puerto serie del PIC:FUNCINMikroC Pro

InicializacinUART1_init

DatosUART1_Data_ready

LeerUART1_read

EscribirUART1_write

Se muestra a continuacin un programa de ejemplo de comunicacin serial entre una PC y el microcontrolador, haciendo que el microcontrolador re enve la informacin que recibe de la PC.char uart_rd;

void main() { ANSEL = 0; // Configure AN pins as digital ANSELH = 0; UART1_Init(9600); // Initialize UART module at 9600 bps Delay_ms(100); // Wait for UART module to stabilize UART1_Write_Text("Start"); UART1_Write(10); UART1_Write(13); while (1) { // Endless loop if (UART1_Data_Ready()) { // If data is received, uart_rd = UART1_Read(); // read the received data, UART1_Write(uart_rd); // and send data via UART } }}