Proced i Mien To

3
Procedimiento El presente proyecto consta de un software y hardware que permite la comunicación serial síncrona entre dos dispositivos Microcontroladores (PIC18F452) utilizando el protocolo de comunicación serial RS232, es importante anotar que uno de los microcontroladores cumple la función de recibir una señal análoga(un voltaje) en una representación digital(números binarios) mediante su conversor análogo digital interno y enviar esta información mediante su pin Tx al otro microcontrolador,el otro PIC18f452 recibe la información mediante su pin Rx y se encarga de mostrar estos datos en una LCD 2x16. Para poder lograr la comunicación entre estos 2 pic debemos de tomar en cuenta que los dos dispositivos deben de estar configurados a la misma velocidad(baud) de transmisión.Para el dispositivo que recibe se habilitan las interrupciones por recepción de datos(INT_RDA) ya que el dispositivo necesita estar checando si le llego o no un dato nuevo. El pic emisor necesita ser configurado desde el software Pic compiler habilitando la Conversion A/D a 8 bits y la comunicación serial RS232, por lo que será utizado un cristal de 20Mhz y la velocidad de la comunicación 9600 baud.La salida del dato estará dada por el pin c6(tx) del pic18f452. Para habilitar la comunicación serial se usa la siguiente línea de código #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7). En el main() de este pic emisor se inicializa la conversión a\d y el puerto análogo que se leera ,seguido de esto se guarda esta conversión en una variable y esta es enviada mediance la sentencia putc. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7) El pic receptor necesita habilitar mediante el pic compiler la comunicación serial y los pines que definirán las salidas para la visualización en la LCD 2x16.Este pic tiene que trabajar a la misma velocidad que el anterior por lo que también utilizaremos un cristal de 20Mhz y una velocidad de 9600 baud.

description

jjj

Transcript of Proced i Mien To

Page 1: Proced i Mien To

Procedimiento

El presente proyecto consta de un software y hardware que permite la comunicación serial síncrona entre dos dispositivos Microcontroladores (PIC18F452) utilizando el protocolo de comunicación serial RS232, es importante anotar que uno de los microcontroladores cumple la función de recibir una señal análoga(un voltaje) en una representación digital(números binarios) mediante su conversor análogo digital interno y enviar esta información mediante su pin Tx al otro microcontrolador,el otro PIC18f452 recibe la información mediante su pin Rx y se encarga de mostrar estos datos en una LCD 2x16.

Para poder lograr la comunicación entre estos 2 pic debemos de tomar en cuenta que los dos dispositivos deben de estar configurados a la misma velocidad(baud) de transmisión.Para el dispositivo que recibe se habilitan las interrupciones por recepción de datos(INT_RDA) ya que el dispositivo necesita estar checando si le llego o no un dato nuevo.

El pic emisor necesita ser configurado desde el software Pic compiler habilitando la Conversion A/D a 8 bits y la comunicación serial RS232, por lo que será utizado un cristal de 20Mhz y la velocidad de la comunicación 9600 baud.La salida del dato estará dada por el pin c6(tx) del pic18f452. Para habilitar la comunicación serial se usa la siguiente línea de código #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7).

En el main() de este pic emisor se inicializa la conversión a\d y el puerto análogo que se leera ,seguido de esto se guarda esta conversión en una variable y esta es enviada mediance la sentencia putc. #use rs232(baud=9600, xmit=pin_c6, rcv=pin_c7)

El pic receptor necesita habilitar mediante el pic compiler la comunicación serial y los pines que definirán las salidas para la visualización en la LCD 2x16.Este pic tiene que trabajar a la misma velocidad que el anterior por lo que también utilizaremos un cristal de 20Mhz y una velocidad de 9600 baud.

En el código de este receptor se utiliza la sentencia int_rda para ir checando la recepción de nuevos datos por lo que en una variable=getc() se guarda el dato recibido por el emisor.

Finalmente en el main() de se habilitan las interrupciones , se inicializa la LCD y se imprimen los datos recibidos.

Conversor analógico digital

La conversión analógica digital, es la que nos permite transformar una señal analógica (un voltaje),

en una representación digital (números binarios) del valor correspondiente a la tensión en el pin de

entrada para poder trabajar con ella

Page 2: Proced i Mien To

no tiene internamente ningún componente de hardware (UART) que le permita tener estas características de comunicación, debido a esto es necesario desarrollar el software que permita establecer la comunicación serial, asíncrona con 8 bit de datos, sin paridad; es por esta razón que este software esta basado en el manejo de la interrupción del TMR0 la cual es generada 3 veces en el intervalo correspondiente a cada bit durante la transmisión, podemos definir el periodo de disparo del TMR0 como Nb V T 1 = Donde T= periodo de disparo del TMR0 V= velocidad de transmisión en baudios Nb = Número de muestreos de cada bit Para V=2400 bps se tiene T=1/2400/3 = 138 µs (si se toman tres muestras por bit)

Se debe entonces configurar el TMR0 para interrumpirse cada 138 µs, para realizar variaciones de la velocidad de transmisión es posible cambiar el valor T o modificar el valor del cristal de oscilación externo del PIC, (para el funcionamiento propuesto se maneja un cristal de 4 Mhz) si duplica el valor del cristal (8Mhz) se duplica la taza de transmisión (4800 Mhz), para el desarrollo del presente prototipo se implementó una taza de transmisión de 2400 baudios (cristal 4Mhz) por consideraciones de estabilidad y consumo de potencia CENTRO DE INVESTIGACIONES Y DESARROLLO – FACULTAD DE INGENIERÍA Implementación de una interfaz … - Ramírez Delgado Wilder (2003) – pp 69-91 7 Como se mencionó anteriormente, cuando se tienen comunicaciones asíncronas, se manejan pulsos de señal con intervalos de duración constantes, debido a esto la función básica del software es la lectura del puerto de recepción a intervalos constantes y exactos de tiempo. Teniendo en cuenta lo anterior, existen varias maneras de realizar el enlace, la primera y la mas obvia es configurar un microcontrolador que contenga Uart lo cual no es el objetivo de este trabajo; una segunda manera es utilizando rutinas de retardo y realizar escaneos sobre los puertos, este tipo de estrategia presenta una gran simplicidad de implementación, pero se tiene la desventaja de no manejar altos niveles de exactitud. Una tercera manera de realizar la comunicación es utilizando rutinas de interrupción generadas desde un timer del microcontrolador, en estas rutinas se encuentran todas las funciones necesarias para cumplir con las exigencias del protocolo, esta tercera forma de realizar el enlace fue la seleccionada para el desarrollo del presente montaje, debido a que, desde el punto de vista didáctico pretende aclarar conceptos teóricos que van desde la misma implementación del protocolo hasta manejo de conceptos en lo referente a timers y microcontroladores; también es importante aclarar que en algunas secciones del programa se sacrificó en cierta medida la eficiencia de código en búsqueda de la facilidad de comprensión del mismo. Uart.asm