MICROCONTROLADORES INTRODUCCIÓN A LOS MICROCONTROLADORES SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 1 MICROCONTROLADORES GENERALIDADES Sistemas electrónicos de control: (se utilizan para el gobierno de uno o varios procesos) • Componentes lógicos (lógica cableada): Circuitos complejos. Elevado consumo Baja fiabilidad Poca versatilidad Gran tamaño • Microprocesadores de propósito general: Mejoran todas las características anteriores destacando: Versatilidad: son sistemas programables Reducción de tamaño Ejemplos: Zilog Z80, Motorola 6800, Intel 8085. • Microcontroladores: Se reúnen en un solo C.I. la mayoría de los componentes necesarios de un controlador SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 2 MICROCONTROLADORES GENERALIDADES ¿Qué es un microcontrolador? Se puede considerar como un computador en un chip Orientado al control de procesos Típicamente incorpora: CPU (Central Processing Unit). Microprocesador RAM (Random Access Memory) EPROM/PROM/ROM (Erasable/Programmable/Read Only Memory) E/S (entrada/salida) - serie y paralelo Temporizadores Controlador de interrupciones ... SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 3 MICROCONTROLADORES GENERALIDADES Clasificación: • Por su función: - Propósito general: CPU+Memoria+E/S+.... y juego de instrucciones no específicas - Especializados: Arquitectura e instrucciones orientadas hacia algún tipo de aplicaciones concretas: Comunicaciones, manejo de teclados, DSP, procesamiento de video ..... • Por su longitud de palabra: 4, 8 ,16, 32 y 64 bits SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 4 MICROCONTROLADORES GENERALIDADES •SISTEMAS EN TIEMPO REAL: Las acciones de salida deben estar disponibles en un intervalo de tiempo acotado. Ejem. Instrumentación, electrodomésticos, teléfonos móviles, juguetes, máquinas expendedoras, robótica, automóviles, domótica … •SISTEMAS EMPOTRADOS (embedded systems): Los sistemas tiempo real suelen estar integrados en un sistema de ingeniería más general, en el que realizan funciones de control y/o monitorización. Ejem. Ratón del computador, LCD, sistema de frenado de un automóvil (ABS) SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 5 MICROCONTROLADORES GENERALIDADES Ejemplos de aplicación de los µC en función de la longitud de palabra: BITS Aplicaciones 4 Sensibles al costo: juguetes Número de E/S limitado Entornos industriales específicos Telefonía, electrodomésticos 8 Aplicaciones sensibles al costo Periféricos inteligentes y controladores: teclados, ud. disco, displays ... Posibilidad de programación en alto nivel: Basic, C ... Ejemplos HMCS 400 µpd75p316a MCS 51 Fabricantes Hitachi NEC National 68HC11 Z8 Intel, Siemens Philips, AMD Motorola, Zilog, SGS COP800 National SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 6 MICROCONTROLADORES GENERALIDADES Ejemplos de aplicación de los µC en función de la longitud de palabra: BITS 16 32 64 Aplicaciones Mayor velocidad en operaciones aritméticas Manejo de grandes volúmenes de datos DSP Industria del automóvil, grandes periféricos Manejo de grandes cantidades de datos Gran capacidad de direccionamiento Impresoras Láser, intérpretes PostScript Pantallas gráficas de muy alta resolución Controladores TCP/IP, buses, etc Ejemplos 80186 8096 TMS 320 H8/300 Fabricantes Intel, AMD Intel Texas Hitachi I860 I960 68300 340X0 Intel Intel Motorola National TX4927 Toshiba SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 7 MICROCONTROLADORES EL MERCADO DE LOS µC Ventas de microcontroladores en millones de dolares 10000 9000 8000 7000 6000 5000 4000 3000 8-bit 2000 4-bit 1000 16-bit 0 90 91 92 93 94 95 96 97 98 99 96 97 98 99 Ventas de microcontroladores en millones de unidades 3000 2500 2000 1500 4-bit 1000 8-bit 500 16-bit 0 90 91 92 93 94 95 SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 8 MICROCONTROLADORES CARACTERÍSTICAS • Técnicas de fabricación CMOS: Complementary Metal Oxide Semiconductor • • • • La mayoría de los µC se fabrican en esta tecnología Menor consumo (favorecen alimentación a baterías) Mayor inmunidad al ruido Son chips casi o totalmente estáticos (no necesidad de refresco) : el reloj puede ser ralentizado o detenido: sleep mode PMP: Post Metal Programming (National Semiconductor) • Permite la programación de la ROM después de la metalización final, lo que reduce el tiempo de diseño de 6/8 semanas a 2. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 9 MICROCONTROLADORES CARACTERÍSTICAS • Arquitectura Von-Neuman • Un único bus de datos para datos e instrucciones. • Programa y datos se almacenan en la misma memoria principal. • Primero se busca la instrucción y a continuación el dato correspondiente: dos búsquedas consecutivas • Limita el ancho de banda CPU Programa y datos MEMORIA SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 10 MICROCONTROLADORES CARACTERÍSTICAS Arquitectura Harvard • Bus de datos y bus de instrucciones separados. • Permite búsquedas de instrucciones y datos simultáneas: prebúsqueda de la siguiente instrucción en paralelo con acceso a los datos de la instrucción en ejecución • Permite anchos de bus distintos para datos e instrucciones • Mayor velocidad de ejecución MEMORIA Instrucciones PROGRAMA CPU datos MEMORIA DATOS SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 11 MICROCONTROLADORES CARACTERÍSTICAS Arquitectura CISC (Complex Instruction Set Computer) • Muchas instrucciones diferentes (sobre 80). Potentes y especializadas, algunas requieren muchos ciclos de ejecución. • Facilita la programación. • Código muy compacto • Mayoría de los fabricantes. Ejem. Motorola RISC (Reduced Instruction Set Computer) • Pocas instrucciones muy sencillas. Ejecución rápida • La sencillez de las instrucciones permite liberar área de silicio para implementar características que mejoren las prestaciones. • Chips más baratos, de menor consumo, de menos pines. • Tendencia actual de la industria. Ejem. Microchip SISC (Specific Instruction Set Computer) • Juego instrucciones específico que potencia una aplicación concreta: facilidad y eficiencia en E/S, manipulación de bits, etc SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 12 MICROCONTROLADORES CARACTERÍSTICAS • MEMORIA EEPROM (Electrically Erasable Programable Read Only Memory) • Los µC pueden tener pequeñas cantidades de esta memoria para almacenar un limitado número de parámetros que no cambian frecuentemente • Lenta, número de ciclos lectura/escritura limitado FLASH • Mejor solución que la EEPROM cuando se requiere grandes cantidades de memoria no volátil • Más rápida, mayor número de ciclos lectura/escritura • RAM estática con batería • Mucho más rápida y sin limitación de ciclos lectura/ escritura • Grandes cantidades de memoria no volátil de acceso rápido (datos o aplicaciones de grandes prestaciones) SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 13 MICROCONTROLADORES CARACTERÍSTICAS Memorias Máscara • Memoria ROM • Programada durante el proceso de fabricación por el fabricante • Interesante en producción de grandes cantidades que no se van a modificar • Largo tiempo de obtención del producto (de 8 a 44 semanas) OTP (One Time Programmable) • Es un dispositivo PROM. En realidad una EPROM sin ventana de borrado. • Una vez que el programa ha sido grabado no puede ser borrado ni modificado • Alternativa a la máscara ROM para series pequeñas. • Programables por el usuario Reprogramación • El uso de EPROM, EEPROM, EPROM y FLASH para la memoria de programa facilita el desarrollo y puesta a punto de dispositivos • El uso de EEPROM, EPROM y FLASH permite la reprogramación del µC sin extraerlo del sistema que controla • Actualización de nuevas versiones o eliminación de errores SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 14 MICROCONTROLADORES CARACTERÍSTICAS Memorias PROGRAMA PARÁMETROS DATOS NO VOLÁTILES VARIABLES PILA ROM OTP EPROM EEPROM FLASH EEPROM FLASH RAM con batería RAM SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 15 MICROCONTROLADORES CARACTERÍSTICAS • Alimentación Bajo voltaje • Normalmente alimentación a 5V • La incorporación de los µC a nuevos segmentos conlleva la necesidad de alimentación a 3V (2 baterías de 1,5v). • Tendencia tecnológica: transistores más pequeños (menos consumo, más rápidos y baratos) que facilita la reducción de la tensión de alimentación y favorece el aumento en la densidad de integración. Protección ‘Brownout’ • Detecta si la alimentación disminuye por debajo de un valor límite (tensión de brownout, VBDD) y deja al µC en estado reset hasta que la alimentación vuele a tomar valores permitidos. • Puede ser interno al chip o un circuito de control externo. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 16 MICROCONTROLADORES CARACTERÍSTICAS Alimentación IDLE/HALT/Wakeup • Modos de bajo consumo, manteniendo valores de registros, memoria y salidas • En modo IDLE: • Se para la CPU (salvo algunos recursos como osciladores internos, el watchdog , timer asociado al ‘wakeup’…) • El consumo se reduce en un 30% • El micro se despierta (wakeup) con una interrupción externa o interna (timers) o con el RESET • Otra posibilidad es que se realice un ‘despertar’ cada cierto intervalo de tiempo mediante un timer específico del µC. • HALT: • se para todo (CPU, timers, periféricos), el µC se despierta sólo con una interrupción externa o RESET • El consumo se reduce típicamente a corrientes menores de 1µA. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 17 MICROCONTROLADORES CARACTERÍSTICAS • Entradas / salidas UART: Universal Asynchronous Receiver Transmitter SCI: Serial Comunication Interface (UART mejorada). SPI: Serial Periferal Interface (Motorola). E/S serie síncrona. USART: Universal Synchronous/Asynchronous Receiver Transmiter • Más rápida (unas 16 veces) que la UART I2C: Inter-Integrated Circuit bus (Philips) • Bus serie de dos hilos • Multi-master, multi-slave, detección de colisiones. 128 dispositivos, 10 metros Microwire/Plus. Comunicaciones serie entre dispositivos (displays, conversores de datos, EEPROM,..) de National CAN: Controller Area Network (Bosch, Intel). Cableado de automóviles J1850 (Society of Automotive Engineers). Estándar americano para cableado de automóviles SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 18 MICROCONTROLADORES CARACTERÍSTICAS Conversión Analógico-Digital • En general del tipo de aproximaciones sucesivas • Normalmente 8 ó 10 bits Conversión Digital-Analógica • No suele estar implementada en los µC • PWM: Pulse Width Modulator. Se usa como técnica de conversión D/A + circuitería exterior (filtro paso bajo) Contadores de pulsos • Cada pulso/evento incrementa un registro acumulador indicando el número de veces que ha sucedido un evento Comparadores. • Comparador analógico basado en un AO • Algunos µC pueden incluir un módulo de tensión de referencia Moduladores de anchura de pulsos (PWM) • Proporcionan una salida de impulsos de anchura variable SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 19 MICROCONTROLADORES CARACTERÍSTICAS • Interrupciones Desde los periféricos: timers, UARTS, A/D, E/S paralelo, componentes externos. Interrupciones enmascarables, se pueden activar y desactivar. Bien con carácter general (GIE, Global Interrupt Enable) o algun tipo de interrupción en particuar (por ejemplo la UART) Interrupciones vectorizadas: una dirección de salto para cada interrupción Prioridades SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 20 MICROCONTROLADORES CARACTERÍSTICAS •Características especiales Watchdog timer •Si el programa no reinicializa el watchdog antes de un cierto tiempo, éste procede a hacer el RESET del sistema Monitor del reloj •Circuito que detecta si el reloj funciona demasiado despacio y genera un RESET SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 21 MICROCONTROLADORES EJEMPLOS DE µC • 8051 (Intel) • Bus de 8 bits de datos • Puede direccionar 64K de programa (los 4K ó 8K bajos pueden residir en chip) y 64K de memoria de datos externa. 128 bytes de RAM interna + registros especiales. E/S direccionadas en espacio propio. • Bus de direcciones de 16 bits • Gran potencia en instrucciones de bit • Timers y puertos serie (no A/D ni PWM) • 8048 serie baja • 80c196 de 16 bits • 80186: microcontrolador con un 8086 como núcleo (PC XT) SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 22 MICROCONTROLADORES EJEMPLOS DE µC • 68HC11 (Motorola) • Arquitectura Von Neuman (datos, programa, E/S, timers comparten el mismo espacio de memoria) • Bus de 8 bits de datos, 16 bits de direcciones • Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers, A/D, PWM, acumuladores de pulsos, comunicación serie síncrona y asíncrona • Serie baja 68HC05 • 683xx: microcontrolador con un 68xxx como núcleo SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 23 MICROCONTROLADORES EJEMPLOS DE µC • 68HC08 (Motorola) • Arquitectura Von Neuman (datos, programa, E/S, timers comparten el mismo espacio de memoria) • Bus de 8 bits de datos, 16 bits de direcciones • Pueden tener: ROM/FLASH, RAM, E/S digitales, timers, A/D, PWM, acumuladores de pulsos, comunicación serie síncrona y asíncrona • Existen elementos de la familia con USB, IIC • Hasta 60K de Flash, hasta 2K de RAM SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 24 MICROCONTROLADORES EJEMPLOS DE µC • PIC (MicroChip) • Arquitectura Harvard (direccionamiento separado para datos e instrucciones) • solapamiento de instrucciones • Primer microcontrolador RISC • 16Fxx principal línea de la casa • 35 instrucciones • 8 bits de datos • 14 bits de instrucción (hasta 8K instrucciones) • Pueden tener: EEPROM/OTPROM, RAM, E/S digitales, timers, A/D, PWM, acumuladores de pulsos, comunicación serie síncrona y asíncrona SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 25 MICROCONTROLADORES • LENGUAJES DE PROGRAMACIÓN Ensamblador • Permiten el uso eficiente de los recursos Lenguajes de alto nivel • Desarrollo más rápido, mantenimiento menos costoso • Programas menos eficientes • Mayor ocupación en memoria • Ejem: C (permite el acceso a los recursos hardware), BASIC, ADA, etc. SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 26 MICROCONTROLADORES LENGUAJES DE PROGRAMACIÓN • Uso de C y Ensamblador • Programación en C • Puesta a punto de la lógica del programa • Reescritura de algunas partes Fuente Ensamblador Fuente C Compilador Cruzado Ensamblador Cruzado Objeto Relocalizable Objeto Relocalizable Librerías críticas en ensamblador • Disminución de la ocupación de memoria Fichero Configuración Montador de Enlaces Ejecutable No Relocalizable • Aumento de las prestaciones Cargador Máscara Microcontrolador SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 27 MICROCONTROLADORES HERRAMIENTAS DE DESARROLLO • Simuladores • Un simulador ejecuta un programa de un microcontrolador en un computador de propósito general (p.e. un PC) • Los contenidos de la memoria y registros pueden ser observados y alterados • No soporta interrupciones reales ni (generalmente) hardware adicional • La velocidad de ejecución es menor que en el µC SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 28 MICROCONTROLADORES HERRAMIENTAS DE DESARROLLO • Debuggers residentes Se ejecutan en el µC. Permiten visualizar la ejecución desde un terminal o un computador Utiliza recursos del µC (un puerto de comunicación, una interrupción y memoria) y ralentiza la ejecución (acceso a memoria y registros y comunicación) Visualización y actualización de memoria, breakpoints, ... SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 29 MICROCONTROLADORES HERRAMIENTAS DE DESARROLLO • Hardware que “emula” al µC y además permite obtener información y actuar sobre la aplicación sin gastar recursos del µC ni alterar la evolución temporal • Se comunica por una parte con un computador o terminal (en general vía RS232) SISTEMAS ELECTRÓNICOS AVANZADOS. ING. TÉC. INDUSTRIAL ELECTRÓNICO 30