INTRODUCCIÓN A LOS MICROCONTROLADORES 1
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 GENERALIDADES 2
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... 3
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 4
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) 5
GENERALIDADES Ejemplos de aplicación de los µc en función de la longitud de palabra: BITS Aplicaciones Ejemplos Fabricantes 4 Sensibles al costo: juguetes Número de E/S limitado HMCS 400 µpd75p316a Hitachi NEC Entornos industriales específicos National 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... MCS 51 68HC11 Z8 COP800 Intel, Siemens Philips, AMD Motorola, Zilog, SGS National 6
Ejemplos de aplicación de los µc en función de la longitud de palabra: GENERALIDADES BITS Aplicaciones Ejemplos Fabricantes 16 Mayor velocidad en operaciones aritméticas Manejo de grandes volúmenes de datos 80186 8096 Intel, AMD Intel DSP Industria del automóvil, grandes periféricos TMS 320 H8/300 Texas Hitachi 32 Manejo de grandes cantidades de datos Gran capacidad de direccionamiento I860 I960 Intel Intel Impresoras Láser, intérpretes PostScript Pantallas gráficas de muy alta resolución 68300 340X0 Motorola National 64 Controladores TCP/IP, buses, etc TX4927 Toshiba 7
10000 MICROCONTROLADORES Ventas de microcontroladores en millones de dolares EL MERCADO DE LOS µc 9000 8000 7000 6000 5000 4000 3000 2000 1000 3000 8-bit 4-bit 16-bit 0 90 91 92 93 94 95 96 97 98 99 Ventas de microcontroladores en millones de unidades 2500 2000 1500 1000 500 4-bit 8-bit 16-bit 0 90 91 92 93 94 95 96 97 98 99 8
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. 9
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 10
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 PROGRAMA Instrucciones CPU datos MEMORIA DATOS 11
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 12
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) 13
CARACTERÍSTICAS Máscara Memorias 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 14
CARACTERÍSTICAS Memorias PROGRAMA ROM OTP EPROM EEPROM FLASH PARÁMETROS DATOS NO VOLÁTILES EEPROM FLASH RAM con batería VARIABLES PILA RAM 15
Alimentación CARACTERÍSTICAS 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, VB DD ) 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. 16
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. 17
Entradas / salidas CARACTERÍSTICAS 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 I 2 C: 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 18
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 19
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 20
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 21
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) 22
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 23
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 24
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 25
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. 26
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 críticas en ensamblador Disminución de la ocupación de memoria Aumento de las prestaciones Ensamblador Cruzado Fuente Ensamblador Objeto Relocalizable Montador de Enlaces Cargador Librerías Ejecutable No Relocalizable Máscara Fuente C Objeto Relocalizable Compilador Cruzado Fichero Configuración Microcontrolador 27
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 28
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,... 29
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) 30