Microcontroladores (C) Bibliografia: • Hoja de datos del PIC 16F84 y 16F628 (www.microchip.com) • Microcontroladores PIC: la clave del diseño (biblioteca) • Microcontroladores PIC: diseño práctico de aplicaciones (www.unsl.edu.ar/~pmp/libros) • Internet: wikipedia Sistemas embebidos y microcontroladores (C) Un sistema embebido (SE) es una unidad de cómputo diseñado para realizar una o algunas pocas funciones muy específicas (al contrario de lo que ocurre con una computadora de propósito general, que está pensada para cubrir un amplio rango de necesidades). Algunos ejemplos de SE: - taxímetros, - sistemas de control de acceso, - electrónica que controla un motor a inyección (naftero o diesel common rail), - sistema de control de una fotocopiadora, - entre muchas otras aplicaciones… Características: - En un SE en general se busca reducir los costos y mejorar el consumo. - Suelen usar un P relativamente pequeño y no requieren gran cantidad de memoria. - Generalmente están implementados en una única placa PCB. - Cuentan con entradas y salidas necesarias para conectar sensores y actuadores, asi como también comunicación e interfaz con el usuario. - Los programas que corren en general resuelven tareas de tiempo real. El constituyente más común de un sistema embebido es el denominado microcontrolador. El microcontrolador (C) Es la realización en un chip (o circuito integrado) de una unidad de cómputo completa (aunque de capacidad limitada): P, memoria de programa, memoria de datos, puertos de I/O, timers, etc. Se encuentra en sistemas embebidos en general: - Las comunicaciones y los productos de consumo, absorben más de la mitad de la producción de microcontroladores. - El resto se distribuye entre el sector de automoción, las computadoras y la industria: Computadoras 15% Industria 10% Automoción 18% Comunicaciones 30% Consumo 27% Microcontroladores (C) P versus C: • Un P es un sistema abierto: permite implementar una unidad de cómputo con las características que se deseen, acoplándole los módulos necesarios. • Un C es un sistema cerrado que contiene un computador completo y de capacidades limitadas que no se pueden modificar (cantidades fijas de RAM, ROM y número de I/O). Otras diferencias: • Un sistema formado por P ocupa en general más espacio y es mas caro, aunque es más versátil en lo que respecta a la cantidad de RAM, ROM y puertos de I/O. • Los C son ideales en aplicaciones en las que el espacio, consumo y precio son más importantes que la potencia y versatilidad. Microcontroladores: familias En la práctica, cada fabricante ofrece toda una familia de C constituida por un gran número de modelos diferentes, desde los más limitados hasta los más poderosos. Algunas de las características que es posible seleccionar en una dada familia son: - la capacidad y el tipo de las memorias. - el número y características de las líneas de I/O. - la velocidad de funcionamiento. - los elementos auxiliares o periféricos integrados (timers, ADC, DAC, serial, etc.) - etc… Una parte muy importante a la hora del diseño es justamente la selección del C a usar para una aplicación particular. Algunas familias de C son: - Intel MCS-48, MCS-51 (8051) y MCS-96 - Motorola MC68HC05 y MC68HC11 - Zilog Z180 y Z8 (derivados del P Z80) - Microchip PICs - etc… Selección del microcontrolador Características a tener en cuenta: 1) Arquitectura básica: - Von Newmann (bus común para instrucciones y datos) - Harvard (juegos de buses separados para instrucciones y datos) 2) Tipo de procesador: - CISC (complex instruction set computer) - RISC (reduced instruction set computer) 3) Memorias: - ROM (máscara, OTP, EPROM, EEPROM, FLASH) - RAM 4) Puertos de I/O 5) Recursos especiales: - Timers, Watchdog - Protección Brownout, POR (power on reset) - Estado de bajo consumo (halt, sleep) - Conversores A/D, D/A y comparadores - PWM, USART, I2C, USB - etc… Microcontroladores: Arquitecturas Control DIR µP DATOS Memoria de Programa y Datos 8 Arquitectura von Neumann Control Mem. de Programa (instrucciones) DIR Control µP DIR DATOS DATOS 14 8 Mem. de Datos Arquitectura Harvard La tendencia actual, en el campo de los C, es a la arquitectura Harvard. Microcontrolador: tipo de procesador Procesador CISC: - Conjunto extenso de instrucciones (del orden de 100 o más), algunas complejas. - Las instrucciones pueden ocupar varios ciclos para ejecutarse. - Cada instrucción puede ocupar más de una palabra en la memoria de programa. - Puede manejar varios modos de direccionamiento (cuatro o incluso más). - Poseen pocos registros internos de uso general. - Ejemplo: P 8085, algunos C basados en el Z80, etc. Procesador RISC: - Set de instrucciones pequeño (del orden de 30) e instrucciones simples y rápidas. - La mayoría de las instrucciones se ejecutan en un único ciclo. - La mayoría de las instrucciones son ortogonales. - Poseen pocos modos de direccionamiento: comúnmente inmediato y directo. - La programación es orientada a registros. - Poseen una gran cantidad de registros de uso general (varias decenas o más). - Ejemplo: P Alpha y PowerPC, C PIC, ARM, etc. Microcontrolador: segmentación La arquitectura Harvard sumada a la filosofía RISC permiten aplicar la denominada técnica de segmentación (pipeline). Consiste básicamente en descomponer el ciclo completo de una instrucción en varias etapas que se puedan realizar simultáneamente (en paralelo). Ejemplo: - Ejecución de la instrucción actual (data read/write, operaciones de la ALU, etc). - Búsqueda de la siguiente instrucción (opcode fetch). Microcontrolador: memorias • Tanto la memoria de instrucciones como la de datos están integradas en el propio chip. • Una parte debe ser no volátil, tipo ROM, destinada a contener las instrucciones (programa). • Otra parte será tipo RAM, destinada a las variables y los datos (generalmente es de poca capacidad). • Capacidades habituales son entre 512 bytes y 8 Kbytes para ROM y entre 20 y 512 bytes para RAM. • El tipo de memoria ROM que posee un C determina su aplicación: ROM de máscara: destinado solamente a grandes producciones (varios miles). OTP: prototipos y series más pequeñas. EPROM: pueden ser borrados con luz ultravioleta. EEPROM: ideales para la enseñanza y la experimentación (lenta). FLASH: más rápidas y de mayor densidad que las EEPROM. Muy populares en la actualidad. Microcontrolador: recursos Puertos de Entrada y Salida: Permiten comunicar al procesador con el mundo exterior. Están asociados a los diferentes pines que posee el C. Pueden actuar como entradas, salidas o control, de uso general o asociadas a alguno de los periféricos integrados (Ej. Timers, ADC, etc.). Reloj principal: Circuito oscilador encargado de generar una onda cuadrada usada para la sincronización de todas las operaciones del sistema. En general se encuentra integrado en el C salvo por algunos componentes externos, como ser un cristal de cuarzo o una red RC. Recursos especiales: Algunos de los periféricos que un fabricante puede incluir en los diversos modelos de C, pueden ser: • Timers • Watchdog (perro guardián) • Protección ante fallo de alimentación • Estado de bajo consumo (modo Halt o Sleep) • Conversores A/D (analógicos digitales) • Conversores D/A (digitales analógicos) • Comparadores analógicos • Modulador por ancho de pulso (PWM) • Puertos de comunicación especiales (USART, I2C, USB) Microcontrolador: herramientas de desarrollo Herramientas de soporte: • Ensamblador • Compiladores e intérpretes • Simuladores • Emuladores en tiempo real • Grabadores • Entornos integrado de desarrollo