La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Clase 12: Comunicación Serial Asíncrona UART-RS232.

Presentaciones similares


Presentación del tema: "Clase 12: Comunicación Serial Asíncrona UART-RS232."— Transcripción de la presentación:

1 Clase 12: Comunicación Serial Asíncrona UART-RS232.

2 Antes de Comenzar Conociendo la CPU y sus Periféricos… CPU MEMORIA ADC
ADC E/S SIM 1 1 1 IRQ SCI TIMER

3 Agenda para la clase 1 Protocolo UART y RS-232 generalidades de este protocolo de comunicación serial 2 Módulo SCI Características de este módulo para comunicación serial en un PIC 3 Manipulación del SCI Transmisión y recepción de caracteres mediante este módulo 4 Ejemplo Comunicación PC – MCU empleando el protocolo serial UART y RS-232

4 A continuación… Protocolo UART y RS-232 Protocolo UART y RS-232
Módulo SCI de los PIC Manipulación del SCI Ejemplo comunicación PC - MCU

5 Comunicación Serial CPU
¿Cómo se transmite el dato serialmente? Esquemas de Comunicación o Especificación Eléctrica: UART. (Protocolo) RS-232. (Eléctrica) RS-485. (Eléctrica) Universal Serial Bus (USB). (Ambos) Serial ATA. (Ambos) PCI Express. (Ambos) Un valor puede estar representado por n bits (con n > 1). La CPU normalmente transfiere bits a la memoria de manera paralela. De igual forma lo hace con los periféricos. Un periférico particular puede disponer de un canal de comunicación con una sola línea. En el anterior esquema, solo un bit puede ser transmitido al tiempo. CPU UART Memoria MUNDO EXTERIOR La CPU lo toma de memoria La CPU se lo pasa a la UART El dato se transmite serialmente. 8 1 1 1 1

6 Protocolo UART CPU MPU UART P1 UART P2 P5 P3 P4
Universal Asynchronous Receiver Transmitter Pieza de hardware que convierte datos paralelos en una secuencia de bits y viceversa. Circuito integrado usado normalmente en los computadores para transferir datos entre CPU y periféricos. Ahora, las CPUs modernas incluyen una UART propia como periférico interno. Los MCUs también incluyen esta unidad (o parte de ella). Anteriormente Ahora CPU UART MPU P1 UART P2 P5 P3 P4

7 Protocolo UART Trama o Frame en la transmisión:
Si no hay transmisión, la línea permanece a ‘1’ lógico. Debe satisfacer que la trama de n bits junto con P tenga un número par de ‘1’s. Para iniciar una transmisión, la línea debe cambiar de ‘1’ a ‘0’ lógico La transmisión de otra trama puede comenzar justo después del STOP. Indica, finalización de la trama. Duración entre 1 y 2 bits. Debe satisfacer que la trama de n bits junto con P tenga un número impar de ‘1’s. Trama o Frame en la transmisión: Línea en espera (Stand-By). Bit de Start. 5 a 8 Bits de datos. Paridad: Par, Impar, sin Paridad. Bit de Stop. LSB MSB START ‘1’ B0 B1 B2 B3 B4 B5 B6 B7 P ‘0’ START STOP tBIT Velocidad = bps = 1/tbit

8 Protocolo UART Velocidad de transferencia de datos Bits por Segundo.
Incorrectamente se usa el término de baudios. 9600bps, 19200bps, etc. Un símbolo se puede representar con un solo bit para este caso. Un símbolo se puede representar con dos bits para este caso. 1 seg Baudios = 8 BPS = 8 1 seg Baudios = 8 BPS = 16

9 Protocolo UART Funcionamiento UART 10011100 10011100 BUFFER TX UART
BUFFER RX Registro Desplazamiento Tx Registro Desplazamiento Rx P 1 L 1 H 1 1 L 1 L L 1 L 1 L P 1 L 1 L L 1 L 1 L H P 1 H P 1 H P 1 H P 1 H P 1 L H P 1 H P 1 H P H P 1 H P 1 H 1 1 L 1 1 P H

10 Norma RS-232 Usado para conectar DTEs y DCEs Especificación Eléctrica.
DTE: Equipo Terminal de Datos. DCE: Equipo de Comunicación de Datos. PC y Modem. DTE DTE MEDIO COMUNICACIÓN DCE DCE

11 La misma TRAMA de la UART, teniendo en cuenta los niveles RS-232
Norma RS-232 Trama basada en UART. Representación de ‘1’ y ‘0’ Un ‘1’ se denomina Marca (Mark) Representado por un voltaje entre -15V y -3V. Un ‘0’ se denomina Espacio (Space) Representado por un voltaje entre 3V y 15V. Si no se transmiten datos, la señal debe permanecer en Marca: RS-232 Idle State Se utilizan los bits de Start y Stop como sincronización. La misma TRAMA de la UART, teniendo en cuenta los niveles RS-232 START ‘0’ = 3V y 15V B0 B1 B2 B3 B4 B5 B6 B7 P ‘1’ = -15V y -3V START STOP

12 Norma RS-232 Conexión DTE (PC) – DCE (MODEM): DTE DCE
Ambos equipos se alistan para la comunicación. Establecimiento de Conexión. El otro equipo se apodera del canal. DTE no va a Tx más… DTR: Equipo Terminal Listo. DSR: Equipo de Comunicación Listo. MODEM comprueba que el medio esté disponible El MODEM está recibiendo una llamada… Señal de RING… DTE quiere Tx… Tx Rx DTR DSR RI RTS CTS CD DTE DCE MEDIO COMUNICACIÓN Portadora detectada MODEM informa a DTE que puede Tx…

13 Norma RS-232 Conexión DTE – DTE: Full Fuplex. DTE
Transmisión, Recepción. Establecimiento de Conexión. Control de Flujo. Tx Rx DTR DSR RI RTS CTS DCD DTE

14 A continuación… Protocolo UART y RS-232 Módulo SCI de losPIC
Manipulación del SCI Ejemplo comunicación PC - MCU

15 Módulo SCI de un PIC MCU DTE SCI SCI RELOJ TX/RX PROG
Módulo SCI como UART dentro del MCU. Tasas de Baudios Programable Transmisión Recepción Para algunos MCUs, se puede elegir como fuente de reloj, el bus interno o la frecuencia externa MCU SCI DTE Registro TXREG para Tx y RCREG para Rx Se pueden escoger las tasas de velocidad SCI RELOJ PROG Tx Rx TX/RX BUS CONFIG Comunicación Full Dúplex, una línea para Tx y otra para Rx EXT

16 Módulo SCI de un PIC El nombre genérico de los pines de E/S es:
Rx (Recepción de Datos). Tx (Transmisión de Datos). Las líneas de E/S están compartidas con pines de los puertos: RC7/RxD (PIC16F887) RC6/TxD (PIC16F887) Al habilitar la Tx/Rx, los pines TxD/RxD se convierten en pines del módulo SCI.

17 Módulo SCI de un PIC Los registros asociados al módulo SCI son:
SPBRG: Generador del ratio de baudios. TXSTA: Estado de transmisión y control. RCSTA: Estado de recepción y control. TXREG: Registro de datos de transmisión. RCREG: Registro de datos de recepción. PIR1: Flag de interrupción. PIE1: Habilitación de la interrupción.

18 Módulo SCI de un PIC Formato de Transmisión: 8 Bit de Datos.
START B0 B1 B2 B3 B4 B5 B6 B7 P STOP START B0 B1 B2 B3 B4 B5 B6 B7 STOP B8 P

19 A continuación… Protocolo UART y RS-232 Módulo SCI de los PIC
Manipulación del SCI Manipulación del SCI Ejemplo comunicación PC - MCU

20 Manipulación del SCI Configuración genérica del UART:
#USE RS232 (opciones) Esta directiva permite configurar varios parámetros del UART: Velocidad de transmisión Pines utilizados Bit de paridad Modos de operación Tiempos

21 Manipulación del SCI Estas opciones se pueden modificar en cualquier parte del programa, pero siempre después de haber definido la directiva #USE DELAY Esta directiva habilita el uso de funciones tales como: GETCH PUTCHAR PRINTF

22 Manipulación del SCI Ejemplos: #use delay (clock=4000000)
OPCIÓN DESCRIPCIÓN BAUD = x Velocidad de Baudios XMIT = pin Pin de transmisión RCV = pin Pin de recepción RESTART_WDT Provoca que la función GETC( ) borre el WDT si espera un carácter. PARITY = x Donde x es N, E, O. BITS = x Donde x es 5-9 STOP = x Número de bits de stop (por defecto 1) Ejemplos: #use delay (clock= ) #use rs232(BAUD=9600, XMIT=PIN_C6, RCV=PIN_C7, BITS=8) #use rs232(BAUD=19200, XMIT=PIN_C6, RCV=PIN_C7)

23 Manipulación del SCI Configuración de la Velocidad Tx/Rx:
Es la misma tanto para Transmisión como Recepción Para una frecuencia de 4MHz y una rata de transmisión de 9600 ¿Cuánto sería el error el la velocidad de transmisión?

24 Manipulación del SCI Configuración del UART: setup_uart(baud);
baud es una constante que define la velocidad. 1 enciende el USART 0 apaga el UART. Con cualquier valor de velocidad, el USART se enciende.

25 Transmisión Transmisión de datos: putc(data); putchar(data);
Data es un carácter de 8 bits. Esta función envía un carácter mediante el pin XMIT. La directiva #USE RS232 debe situarse siempre antes de utilizar esta función.

26 Transmisión Transmisión cadenas de caracteres constantes:
puts (string); string es una cadena de caracteres constante o matriz de caracteres terminada con un \0. La función puts() manda los caracteres de la cadena, uno a uno, a través del bus RS-232 utilizando la función putc(); Al terminar la cadena envía: RETURN(13)

27 Transmisión Transmisión cadenas de caracteres y variables:
printf(fname,cstring,values); fname especifica la función a utilizar para escribir la cadena en el módulo indicado. Para escribir en el bus RS-232 se utiliza la función putc (funcion por defecto). cstring es una cadena de caracteres o matriz de caracteres terminada con un \0. values son los valores a incluir en la cadena. Estos de envían de acuerdo al formato selecionado: %c %u %s…

28 Recepción Recepción de datos: value = getc(); value = getc(h);
value = getchar(); values es un carácter de 8 bits. Estas funciones esperan recibir un carácter por la línea RS-232 y devuelve

29 Recepción Para evitar esperas en la recepción se puede utilizar las interrupciones: #INT_RDA enable_interrupts(INT_RDA); La interrupción ocurre cuando existe un valor en buffer de recepción.

30 A continuación… Protocolo UART y RS-232 Módulo SCI de los PIC
Manipulación del SCI Ejemplo comunicación PC - MCU Ejemplo comunicación PC - MCU

31 Ejemplos Desarrollar un programa que (1):
Imprima mensajes en la ventana. Realice eco de los caracteres escritos en el HyperTerminal. Desarrollar un programa que (2): Imprima mensajes en la ventana Un menú que permita al usuario ingresar su nombre, apellido y edad. Además debe poder imprimir la información suministrada.

32 Fin de la clase 12


Descargar ppt "Clase 12: Comunicación Serial Asíncrona UART-RS232."

Presentaciones similares


Anuncios Google