Control Con Microprocesadores

   EMBED

Share

Preview only show first 6 pages with water mark for full document please download

Transcript

Control con Microprocesadores CONTROL CON MICROPROCESADORES Nelson Sotomayor O., MSc Departamento de Automatización y Control Industrial ESCUELA POLITECNICA NACIONAL Quito - Ecuador Septiembre 2009 OBJETIVOS: • • • Diseñar sistemas de control basados en microcontroladores Construir sistemas de control basados en microcontroladores Integrar el conocimiento de Hardware y Software para resolver problemas prácticos CONTENIDO: Sistemas basados en microcontroladores Microcontrolador en modo extendido Periféricos de entrada/salida Circuitos de barrido de displays, displays LCD Técnica de barrido y decodificación de teclados Interfaz de comunicación serial RS-232, 485 Comunicación Serial Sincrónica, USART, SPI, IIC Tratamiento de señales análogas y digitales Técnicas de conversión A/D y D/A Comparador Analógico Técnicas de Control digital Modulación senoidal de ancho de pulso Controlador PID Circuitos auxiliares, (fuentes, protecciones, tipos de reset´s, alimentación y respaldo de memoria) 1 Nelson Sotomayor Control con Microprocesadores 1. INTRODUCCIÓN Los microcontroladores constituyen la parte “inteligente” de gran cantidad de sistemas tales como: • Control de procesos automáticos, de máquinas, herramientas, aparatos de maniobra, de posición, de velocidad, etc. • Sistemas de alarmas de todo tipo: Indicadores y control de nivel, regulación de caudal, apertura automática de dispositivos, etc. • Controladores de periféricos como impresoras, módem, teclados, unidades de disco, etc. • Equipos de sonido y televisores, donde son tratadas las señales de audio y video. • Sistemas industriales para contar elementos, generación de bases de tiempo, etc. Como se puede apreciar hay un número infinito de aplicaciones en las que se puede incluir a un microcontrolador. Prácticamente lo que se pueda imaginar se puede implementar con un mayor o menor grado de dificultad. Pero hay que tomar en cuenta que los microcontroladores son dispositivos muy sensibles por lo que al utilizarlos se debería colocar a la par circuitos auxiliares que mejoren su desempeño y lo hagan menos sensible a perturbaciones externas. 2. MICROCONTROLADOR EN MODO EXTENDIDO Los microcontroladores para comunicarse con el mundo exterior tienen puertos de entrada/salida a los cuales se puede conectar distintos periféricos, en algunos casos directamente (PICS; ATMEGA) y en otros usando elementos adicionales como latch’s o buffer’s que permiten hacer a esos periféricos compatibles con microprocesador. Nelson Sotomayor 2 Control con Microprocesadores LATCH (74LS373) Figura 2.1 Latch BUFFER (74LS244) Figura 2.2 Buffer MUX (74LS138) Figura 2.3 Decodificador de 3 a 8 3 Nelson Sotomayor Control con Microprocesadores En microcontroladores que tienen bus de datos y bus de direcciones es necesario el uso de latch, buffer y decodificador de direcciones para colocar periféricos al mismo. Ejercicios de aplicación (se realizan en el aula) En microcontroladores que tienen salidas de corriente alta como los PICS o los ATMEGA los periféricos pueden ser conectados directamente Figura 2.4 Periféricos conectados directamente a los puertos Si se necesita manejar con un microcontrolador un número de periféricos mayor al número de entradas y salidas que tiene el microcontrolador se tiene dos caminos a seguir; Cambiar de microcontrolador por uno que tenga un número mayor de entradas/salidas o utilizar el mismo esquema que se utiliza en microcontroladores que tienen bus de datos y bus de direcciones. Ejercicios de aplicación (se realizan en el aula) 4 Nelson Sotomayor Control con Microprocesadores 2. DISPLAYS DE 7 SEGMENTOS Si lo que se desea es mostrar números una alternativa es utilizar displays de siete segmentos, donde cada dígito estará formado por el encendido adecuado de los leds que forman cada segmento o un cristal líquido en el caso de LCD’s. Esta constituido por siete leds, puede ser ánodo común o cátodo común, algunos displays un punto a la derecha y/o a la izquierda o dos puntos. Para usar el display de ánodo común se debe conectar este terminal al voltaje positivo garantizando la corriente adecuada y controlando el encendido de los segmentos por un estado lógico bajo en los terminales del cátodo de cada diodo. En los displays de cátodo común, se pone este terminal a la referencia o tierra y se controla con niveles lógicos altos a los terminales del ánodo de cada segmento, asegurándose siempre un flujo de corriente adecuado. Para limitar la corriente es necesario conectar una resistencia. Como interfaz para manejar estos displays, existen los decodificadores de BCD a siete segmentos, con los cuales se utiliza menos líneas de control para el encendido del display, por lo que con un bus de 8 bits se podría manejar dos display al mismo tiempo. Si se desea utilizar más de dos displays, se puede utilizar la técnica de barrido secuencial o usar chips especializados que manejan y controlan múltiples dígitos. En este tipo de displays solo se puede mostrar números y ciertos caracteres por lo que no son muy útiles si se quiere mostrar mucha información. Otra alternativa para mostrar números es utilizar LCD´s de siete segmentos que son fáciles de manejar al igual que la de los leds. Tienen la ventaja de consumir menos corriente, pero la desventaja de tener un menor ángulo de visibilidad por lo que necesitan de luz externa o adicional para poder ver la información, lo que no sucede con los leds. Por lo tanto la selección dependerá de la aplicación particular y las condiciones de trabajo. 5 Nelson Sotomayor Control con Microprocesadores Figura 3.1 Circuito para barrido de displays 3.1 Barrido Secuencial • • Se coloca todos los segmentos en paralelo, y una resistencia en serie con cada segmento común Se habilita un cátodo a la vez a una velocidad lo suficientemente alta como para que el ojo humano no distinga el barrido, pero no tan alta como para que el display no responda. Normalmente se trabaja entre 300Hz y 2KHz. Figura 3.2 Señal de barrido Irms = δ I 6 ∧ Nelson Sotomayor Control con Microprocesadores Teniendo como dato la Irms, se calcula la corriente pico y con ese valor utilizando la ley de ohm se calcula el valor de la resistencia que se coloca en serie con cada segmento. 3.2 DRIVER ICM7211, ICM7212 Son dispositivos de 40 pines que permiten manejar 4 displays de 7 segmentos, con entrada BCD. Las salidas tienen retención. Tiene dos presentaciones para ingreso de datos, una que utiliza un multiplexor BCD, y otro con interfaz para microcontrolador. • • 7211 maneja displays tipo LCD 7212 maneja displays tipo LED En estos dispositivos un oscilador interno enciende uno a uno los dígitos en secuencia, de manera que cada display estará encendido 1/4 del tiempo. El chip tiene la ventaja de garantizar la corriente necesaria a cada display. Para escribir un valor en el display se debe escoger el dígito con el data address, escribir un dato en ID0-ID7 y dar un pulso en bajo en WRITE, este pulso debe ser de por lo menos 200 nanosegundos de ancho y el dato debe mantenerse por lo menos 100 nseg después de que WRITE regreso a un nivel alto. Una acción de escritura con el microcontrolador cumple satisfactoriamente con este requisito [1]. 7 Nelson Sotomayor Control con Microprocesadores Figura 3.3 Configuración de pines ICM7211/7212, tomado de [1] 4. DISPLAY DE CRISTAL LÍQUIDO Este tipo de display tiene ciertas ventajas al compararlos con los de 7 segmentos, ya que en ellos se puede presentar mayor información ya que en estos displays, se pueden ver caracteres numéricos, alfabéticos y otros caracteres. Se presentan en formatos de datos alfanuméricos o completamente gráficos. Cada segmento del LCD tiene componentes orgánicos que actúan de acuerdo con el voltaje aplicado. Los de imagen positiva, los más comunes, opacan el segmento cuando tiene un voltaje aplicado y son transparentes cuando no existe el voltaje y los de imagen negativa, se opacan cuando no tiene aplicado el voltaje y son transparentes cuando existe voltaje en sus terminales 8 Nelson Sotomayor Control con Microprocesadores De acuerdo a la aplicación se debe escoger el display más adecuado. 4.1 DISPLAY ALFANUMÉRICO Es un display LCD que puede mostrar caracteres alfanuméricos formados con una matriz de puntos. Se los conoce por el número de caracteres por fila y el número de filas. (ejemplo: LCD 16x2). Este tipo de displays puede trabajar con un bus de datos de 8 bits o de 4 bits Figura 4.1 Matriz de puntos, tomado de [2] Figura 4.2 Mapa de memoria, tomado de [2] Figura 4.3 Distribución de pínes 9 Nelson Sotomayor Control con Microprocesadores Tabla 4.1 Distribución de pines Pin Símbolo Nivel 1 2 3 4 5 VSS VDD VEE RS R/W ------------H/L H/L GND Función Fuente de polarización Contraste Señal selección de registro Selección lectura / escritura. Escritura R: Lectura, W: 6 7 8 9 10 11 12 13 14 15 16 E DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 Ánodo Cátodo H/L H/L H/L H/L H/L H/L H/L H/L H/L --------- Señal de habilitación Línea bus de datos a 4 bits Línea bus de datos a 4 bits Línea bus de datos a 4 bits Línea bus de datos a 4 bits Línea bus de datos Línea bus de datos Línea bus de datos Línea bus de datos Terminal ánodo del led Terminal cátodo del led / Sin conexión para operación / Sin conexión para operación / Sin conexión para operación / Sin conexión para operación Para ajustar el contraste se utiliza el potenciómetro P de 10 K Ω , por recomendación del fabricante [3] (Figura 4.3). 10 Nelson Sotomayor Control con Microprocesadores Para que la luz de fondo se encienda debe circular una corriente de aproximadamente 33mA a través del led, por lo que se recomienda usar una resistencia R de 150 Ω . Para poder utilizar el LCD, este debe ser inicializado. Normalmente este proceso se debe hacer como parte de la inicialización del microcontrolador que se utilice. Tabla 4.2 Secuencia de inicialización, tomado de [2] *Más información pdf Instrucciones LCD del material didáctico 11 Nelson Sotomayor Control con Microprocesadores 5. TÉCNICAS DE BARRIDO Y DECODIFICACIÓN DE TECLADOS El teclado más básico puede ser implementado usando pulsadores, la ventaja de este tipo de teclado radica en su fácil implementación, pero se necesita un pin del microcontrolador por cada tecla, por lo que se lo debería usar únicamente en sistemas microproceados que necesiten un número reducido de teclas Figura 5.1 Conexión de un pulsador al uC Los pulsadores inevitablemente generan rebotes cuando son utilizados, la cantidad de estos depende del tamaño del mismo. Por esta razón junto a un pulsador se debe utilizar un circuito eliminador de rebotes. 5.1 ELIMINACIÓN DE REBOTES Figura 5.2 Rebotes en un pulsador 12 Nelson Sotomayor Control con Microprocesadores Para contrarrestar los efectos indeseables de los rebotes se tiene 2 técnicas, la eliminación por hardware y la eliminación por software. Para eliminar rebotes por hardware se añade al circuito un retardo de tiempo usando una red RC, o una red RC y un inversor con histéresis como se aprecia en la Figura 5.3. Figura 5.3 Eliminación de rebotes por hardware Para eliminar rebotes por software se añade retardos justo en el momento de detectar el primer flanco de bajada. Al terminar el retardo se lee el estado del pin. Si se desea un número mayor de teclas usando pulsadores es necesario utilizar una técnica de decodificación en hardware. 5.2 DECODIFICACIÓN EN HARDWARE Para usar un número mayor de pulsadores con pocas líneas del microcontrolador se utiliza el circuito de la Figura 5.4, como se puede apreciar al presionar una tecla se tiene en la entrada del microcontrolador (pines A, B, C) un número correspondiente a la posición de la tecla presionada. El número de teclas que se puede colocar viene dado por la siguiente expresión: 13 Nelson Sotomayor Control con Microprocesadores Número de teclas = 2 n − 1 Donde: n = número de líneas del microcontrolador Todas las líneas en alto indicaría el estado de reposo del teclado Figura 5.4 Teclado de 7 teclas con interrupción 5.3 DECODIFICADOR DE TECLADO (74C922) Existe en el mercado decodificadores que sirven de interfaz entre el teclado y el microprocesador, un ejemplo es el CI 74C922 para 16 teclas y 74C923 para 20 teclas. Estos integrados tienen su propio circuito de búsqueda a la frecuencia determinada por capacitores externos o señal de reloj que se le coloque, tiene resistencias de pull-up internas y permite identificar la tecla presionada. En este caso cada tecla no necesita una línea dedicada y se puede detectar 16 teclas con 4 líneas 14 Nelson Sotomayor Control con Microprocesadores 74C22 tiene las siguientes características [4]: • • Transforma automáticamente el código de la tecla presionada en un número de 4 bits (0000 - 1111). El chip tiene 4 entradas para X1.X4 y 4 salidas Y1..Y4 que se conectan a las X1..X4 y Y1..Y4 del teclado matricial y 4 salidas de datos A,B,C,D que identifican la tecla presionada. • Tiene su propio circuito de detección, incluyendo resistencias de pull up para las filas. Pero necesita añadir un capacitor externo a la entrada OSC para la frecuencia de búsqueda o utilizar un reloj externo con este propósito. Se sabe que existe una tecla presionada por que la salida DA (data available) se pone en alto cuando esto ocurre y puede ser utilizada como señal de interrupción. Se debe poner además un capacitor para eliminación de rebotes en KBM, dimensionado de acuerdo al periodo de rebote, por ejemplo un capacitor de 1 microfaradio, ignora los rebotes de hasta 10 milisegundos La tecla presionada debe ser almacenada en el momento que DA se pone en alto. 15 Nelson Sotomayor Control con Microprocesadores Figura 5.5 Decodificador hexadecimal de teclado, tomado de [4] 6. COMUNICACIÓN SERIAL Para comunicarse entre dispositivos se utiliza comunicación sincrónica o asincrónica. En la transmisión sincrónica los datos se envían uno a continuación del otro desde la línea TXD a la RXD. Tanto el transmisor como el receptor son sincronizados con una línea adicional que transmite los pulsos de reloj. En la transmisión asincrónica no se emplea una señal de reloj, pero para que los dispositivos se entiendan se encapsulan los datos con un bit de inicio y uno o dos bits de parada, y se tiene un acuerdo en la velocidad de transferencia de los datos. Al transmitir los datos estos deben estar referidos a tierra del TX y RX. Y se los puede enviar de manera diferencial o balanceada, en cuyo caso las tierras del TX y RX no están unidas y se envía dos líneas de datos (de manera diferencial) 16 Nelson Sotomayor Control con Microprocesadores o de manera desbalanceada cuando las tierras de ambos se unen y se coloca una sola línea de datos. Sea cual sea el medio que se utilice balanceado o desbalanceado y el tipo de comunicación sincrónico o asincrónico, la comunicación general puede ser realizada de 3 maneras: • • • Simplex: Cuando se realiza una comunicación unidireccional Duplex (Full duplex): Comunicación bidereccional al mismo tiempo Half Duplex: Comunicación bidireccional pero no al mismo tiempo. (Maestro esclavo). 6.1 INTERFACES DE COMUNICACIÓN 6.1.1 INTERFAZ RS232 [5] Este estándar fue diseñado en los 60s para comunicar un equipo Terminal de datos o DTE (Data Terminal Equipment, PC) y un equipo de comunicación de datos o DCE (Data Communication Equipment, modem). Antes de realizar cualquier comunicación por el puerto RS232 se debe fijar el protocolo a seguir, es decir especificar número de bits de inicio, paridad, número de bits de datos, bits de parada, además de la velocidad. El estándar RS232 trabaja con voltajes de +/- 15V con lógica invertida, es decir un 1L se representa con un voltaje comprendido entre -3V y -15V, mientras que un OL esta comprendido entre 3V y 15V. Los voltajes más utilizados son +/- 12V. El estado de reposo de los drivers es 1L es decir -12V. El voltaje umbral es +/- 5V. 17 Nelson Sotomayor Control con Microprocesadores Dependiendo de la velocidad de comunicación se puede transmitir hasta una distancia de 50 pies (15 metros). Tabla 6.1 Especificaciones eléctricas, tomado de [5] Parámetros Driver Output Voltage Open Circuit Driver Output Voltage Loaded Driver Output Resistance Power Off Slew Rate Maximum Load Capacitance Receiver Input Resistance Receiver Input Threshold: Output = Mark Output = Space -3 3 3 3k < RL < 7 k -2V