REPORTE DE PRÁCTICA 1 Dirección General de Educación Superior
Tecnológica
“
PROGRAMACIÓN AVANZADA
”
PRESENTADO POR:
MATEO DIAZ DAVID MACIN CARBALLO GERARDO NO. DE CONTROL:
10TE0347 10TE0366 E n vío y r ecepci cepci ón de datos por medio medi o de RS232 PARTE 1 LICENCIATURA EN:
INGENIERÍA MECATRONICA DE LA ESPECIALIDAD EN:
Automatización de procesos. DOCENTE:
M.S.C. Montiel Martínez Miguel
Teziutlán, Puebla; Marzo 2014 Instituto Tecnológico Superior de Teziutlán
Índice Envío y recepción de datos por medio de RS232 ...................................................................................... 2 Resumen ....................................................................................................................................................... 2 Antecedentes ................................................................................................................................................ 2 Desarrollo ..................................................................................................................................................... 3 Código de microcontrolador....................................................................................................................... 8 Bibliografía ................................................................................................................................................ 11
1
Envío y recepción de datos por medio de RS232 Resumen La comunicación Serial se puede intercambiar información entre el micro controlador y la PC. La mayoría de los micros controladores AVR tienen un UART (Universal Asynchronous Receiver/Transmitter). La información transmitida entre el micro controlador y la PC es serial y asynchronous, serial significa que los bits son enviados uno después del otro y asynchronous significa que no hay señal de reloj en la información que es enviada o recibida. Como es bien sabido la comunicación del microcontrolador en la computadora, para poder realizar la práctica siguiente se deben tomar en cuenta varios componentes que se mencionaran más adelante estos elementos son de manera general cable RS232, MAXX232 un simulador de Hyperterminal y el uso del software MyOpenLab.
Antecedentes El estándar RS-23 En telecomunicaciones, RS-232 es el nombre tradicional de una serie de normas para los datos binarios en serie de una sola terminal y las señales de control de conexión entre DTE y DCE. Es de uso general en los puertos serie del ordenador. La norma define las características eléctricas y sincronización de las señales, el significado de las señales, y el tamaño físico y la disposición de las patillas de los conectores. La versión actual de la norma es la norma TIA-232-F interfaz entre equipo terminal de datos y datos de terminación del circuito de Equipos que utilicen la serie de intercambio de datos binarios, publicado en 1997. Un puerto serie RS-232 fue una vez una característica estándar de un ordenador personal, que se utiliza para las conexiones con módems, impresoras, ratones, almacenamiento de datos, fuentes de alimentación ininterrumpibles y otros dispositivos periféricos. Sin embargo, la velocidad de transmisión baja, gran oscilación de la tensión, y grandes conectores estándar motivados desarrollo del Universal Serial Bus, que ha desplazado a RS-232 de la mayoría de sus funciones de interfaz de periféricos. Muchos ordenadores modernos no tienen puertos RS-232 y deben utilizar un convertidor de USB a RS-232 para conectar periféricos RS-232. Dispositivos RS-232 todavía se encuentran, sobre todo en máquinas industriales, equipos de red, y los instrumentos científicos. (WebAcademia) El puerto serie RS-232C, presente en todos los ordenadores actuales, es la forma más comúnmente usada para realizar transmisiones de datos entre ordenadores. El RS-232C es un estándar que constituye la tercera revisión de la antigua norma RS-232, propuesta por la EIA (Asociaci¢n de Industrias Electrónicas), realizándose posteriormente un versión internacional por el CCITT, conocida como V.24. Las diferencias entre ambas son mínimas, por lo que a veces se habla indistintamente de V.24 y de RS-232C (incluso sin el su fijo "C"), refiriéndose siempre al mismo estándar. El RS-232C consiste en un conector tipo DB-25 de 25 pines, aunque es normal encontrar la versión de 9 pines DB-9, más barato e incluso más extendido para cierto tipo de periféricos (como el ratón serie del PC). En cualquier caso, los PCs no suelen emplear más de 9 pines en el conector DB-25. Las señales con las que trabaja este puerto serie son digitales, de +12V (0 lógico) y 12V (1 lógico), para la entrada y salida de datos, y a la inversa en las señales de control. El estado de reposo en la entrada y salida de datos es -12V. Dependiendo de la velocidad de transmisión empleada, es posible tener cables de hasta 15 metros. (Shizuka)
2
Desarrollo Objetivo: Diseñar software para el envío y recepción de datos por el puerto USB usando el protocolo USB-CDC con un microcontrolador. La práctica se divide en dos partes la primera parte consiste en diseñar una interfaz gráfica de usuario en la cual se realice la activación y monitorización de un sensor LM35 mediante la comunicación simulada con Isis Proteus y el uso de un microcontrolador ATmega48 en el cual simplemente se ara el funcionamiento de manera simulada. Tendremos un generador numérico en el cual pondremos los rangos de la temperatura sesada a la cual el sensor LM35 reaccionara de acuerdo a las condiciones dadas desde MyOpenLab, con esto se hace uso de una calculadora que cambiara y obtendrá como salida el valor que sea desea enviar al microcontrolador este mismo ira en aumento con valores de 10 en 10, en este caso serán grados centígrados, dicho aumento puede ser modificable para que usuario realice esta tarea de manera fácil. En primera tendremos la fase uno de la práctica en la cual tendremos los siguientes componentes que en conjunción realizaran la gráfica de una función sencilla: Elementos de decoración
Operadores numéricos Tratamiento de caracteres
Color Agrupación de elementos
Elementos de activación digital Elementos de Entrada y salida de cadenas de caracteres Elementos de comunicación
Dentro de este elemento podemos observar las características que lo componen tales
3
son: las entradas y salidas de carácter booleano y de forma de Bytes mismo que serán enviados y recibidos mediante la ayuda de Isis Proteus y el microcontrolador a usar. Gracias a estos componentes se podrá obtener el siguiente entorno dentro de MyOpenLab.
Figura 1.- Interfaz inicial del control de la temperatura de un LM35. En la figura anterior podemos observar una barra la cual nos indica el incremento o decremento de la temperatura y así mismo el valor real de la misma, de igual forma podemos ver un botón de control, en este nos ayuda para la realización de poner en modo start dicha interfaz. Ahora se procederá a realizar la parte del circuito que es la parte más importante ya que es la que realiza la función de generar la seria numérica y que esta sea vista por el usuario además de que se hace uso de los componentes o iconos.
4
Figura 2.- Muestra el diseño del circuito que realizaría la función generar el control de la temperatura de intervalos de 10. Como se puede observar en la figura anterior se hace uso de los iconos mostrados anteriormente, tales son los botones de iniciar, la barra de estado de temperatura y el icono que compone la conexión de la comunicación RS232. Una vez hecho esto mostrado anteriormente procederemos a la ejecución del programa:
5
Figura 3.- Muestra la interfaz en funcionamiento donde el usuario oprime un botón y este inicia el programa mandado del microcontrolador para poder realizar la etapa de censado de temperatura. Como podemos ver se va incrementado la temperatura de manera gradual y de manera física se mostrara algunas imágenes del funcionario de la misma pero esto será en la parte dos de la práctica. De manera siguiente se muestra el circuito usado para poder realizar la comunicación de nuestra interfaz con nuestro microcontrolador, dicho circuito es el siguiente:
6
Figura 4.- Imagen que muestra el circuito elaborado en Isis Proteus para la obtención de la señal a manipular con el sensor LM35. Ahora de igual forma se menciona el código fuente que se coloca dentro del microcontrolador para dicha simulación sea exitosa, el código se realizó en Atmel Studio 6.0 y es el siguiente:
7
Código de microcontrolador /* * practica_rs232.c * * Created: 01/03/2014 05:04:30 p.m. * Author: Macin, Mateo */ #include
#ifndef F_CPU #define F_CPU 8000000UL #endif #include "UARTAiNit.h" //#include "TIMER0.h" #include #include #define setbit(sfr,bit) (_SFR_BYTE(sfr)|=(_BV(bit))) #define clearbit(sfr,bit) (_SFR_BYTE(sfr)&=~(_BV(bit))) #define bittoggle(sfr,bit)(_SFR_BYTE(sfr)^=_BV(bit)) unsigned char x; unsigned char motor; unsigned char temp_deseada; unsigned char temp_ADC; unsigned char temperatura;
// XTAL de 8 MHz
ISR (USART_RX_vect){ //TODO:: Please write your application code x=ReceiveUART0(); if (x==48) //start { temp_deseada=10; } else if (x==49) //detenido { temp_deseada=20; } else if (x==50) //Aumentar rango de temp { temp_deseada=30; } else if (x==51) //Aumentar rango de temp { temp_deseada=40;
8
} else if (x==52) //Aumentar rango de temp { temp_deseada=50; } else if (x==53) //Aumentar rango de temp { temp_deseada=60; } else if (x==54) //Aumentar rango de temp { temp_deseada=70; } else if (x==55) //Aumentar rango de temp { temp_deseada=80; } else if (x==56) //Aumentar rango de temp { temp_deseada=90; } else if (x==57) //Aumentar rango de temp { temp_deseada=100; } } int main(void) { setbit(ADCSRA,ADEN); //ADC habilitado clearbit(ADCSRA,ADATE); //Modo manual (Normal) clearbit(ADCSRA,ADPS2); //Seleccion del Prescalador reloj setbit(ADCSRA,ADPS1); // n = 8 setbit(ADCSRA,ADPS0); //vref+ y Vref-: Vcc y GND //Justificación: Izquierda (Para lectura de 8 bits) clearbit(ADMUX,REFS1); //Referencia a AVcc setbit(ADMUX,REFS0); setbit(ADMUX,ADLAR); // Reloj del ADC0: F_CPU/8 = 125kHz // Estado del convertidor: ON // Modo: Manual _delay_us(10); //delay para estabilizar el voltaje de entrada del ADC DDRD|=(1<
9
setbit(UCSR0B,RXCIE0); sei(); while(1) { temperatura=((temp_deseada*255)/150); //255-----150 //bits de temp---temperatura _delay_ms(20); setbit(ADCSRA,ADSC); //se inicia la conversion while(bit_is_clear(ADCSRA,ADIF)) //Espera a que termine la conversion temp_ADC=ADCH;
TransmiteUART0(temp_ADC); if (temperatura
Dentro de la documentación de la parte dos de dicha práctica se expondrá de manera detallada la simulación así como evidencia del trabajo físico en funcionamiento de dicha práctica. La parte de la primera parte fue lo anterior ya que solo es una breve descripción de la interfaz creada.
10
Bibliografía Bricos.
(8 de Noviembre de 2012). Obtenido de http://bricos.com/2012/11/temporizadores-clases-yfuncionamiento/
Arias, L. N. (s.f.). Slideshare. Obtenido de http://www.slideshare.net/NoraO/contadores-y-acumuladores3185194 Kuo, B. C. (1996). Sistemasd de Control Automático. México: Pearson Prentice Hall. Shizuka. (s.f.). Euskalnet . Recuperado el 06 de Marzo de 2014 , de http://www.euskalnet.net/shizuka/rs232.htm WebAcademia.
(s.f.). Recuperado el 05 de Marzo de 20 14, de http://centrodeartigos.com/articulosinformativos/article_71073.html
11