Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Introducción a los sistemas basados en microprocesador y microcontrolador Lección 1 Ing. Jorge Castro-Godı́nez MT7003 Microprocesadores y Microcontroladores Área de Ingenierı́a Mecatrónica Instituto Tecnológico de Costa Rica I Semestre 2014 Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 1 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Contenido 1 Historia Cronologı́a 2 Generalidades Desde el 4004 hasta el 80x86 Microcontroladores 3 Arquitecturas de memoria 4 Arquitecturas RISC y CISC 5 Microcontrolador PIC Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 2 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Era mecánica ¿Desde cuando existen las computadoras? Aún antes de dispositivos eléctricos y electrónicos, habı́a computación. El ábaco, el odómetro, máquina analı́tica. Ábaco y diseño de la máquina analı́tica Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 3 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Era eléctrica (1) Surgimiento del motor eléctrico. Tarjetas y código de Hollerith, IBM. ENIAC: primer sistema computacional programable. ENIAC: 17000 tubos al vacı́o, + 500 millas de cable, 30 toneladas, 100000 operaciones/segundo. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 4 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Era eléctrica (2) La Whirlwind fue una computadora diseñada a finales de los 40’s en el MIT para controlar el simulador de bombarderos. Fue la primera que soportaba tiempo real. Fı́sicamente era muy grande, contenı́a alrededor de 4000 tubos al vacı́o. Circuiterı́a y pila de memoria de la Whirlwind. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 5 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (1) 1939 - Tecnologı́a de computadoras: John Atanasoff y Clifford Berry crearon el primer prototipo de Atanasoff-Berry Computer (ABC), la primera computadora digital. 1945 - Depuración: La primera “pulga” de computadoras fue encontrada por Grace Hopper. 1946 - Tecnologı́a de computadoras: ENIAC la primera computadora digital con programas almacenados del mundo fue creada. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 6 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (2) El primer bug reportado. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 7 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (3) 1950s - Evolución de lenguajes: Los lenguajes de ensamblador fueron creados. 1952 - Compiladores: Grace Hopper escribió el primer compilador para una computadora digital. 1954 - Evolución de lenguajes: John Backus y su equipo en IBM empezaron el desarrollo de FORTRAN (FORmula TRANslator). 1958 - Electrónica: Jack St. Clair inventó el circuito integrado en Texas Instruments. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 8 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (4) Primer CI desarrollado. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 9 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (5) 1962 - Electrónica: Texas Instruments introdujo la serie 7400 de circuitos integrados. 1965 - Tecnologı́a de computadoras: Gordon Moore publica en un artı́culo la famosa ley de Moore. 1967 - Evolución de lenguajes: Niklaus Wirth empieza el desarrollo de PASCAL. 1970 - Electrónica: Texas Instruments desarrolla un circuito integrado programable llamado PLA (programmable logic array). 1970 - Tecnologı́a de computadoras: Intel libera el chip 1103, el primer chip de memoria DRAM. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 10 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (6) 1971 - Tecnologı́a de computadoras: Intel libera el primer microprocesador, el 4004, que es una unidad central de proceso (CPU) de 4 bits. El mismo fue creado para el diseño de la primera calculadora digital. 1971 - Electrónica: General Electric desarrolla el primer dispositivo de lógica programable y borrable (PLD), basado en la tecnologı́a PROM. 1972 - Evolución de lenguajes: Dennis Ritchie desarrolla C en los laboratorios Bell para ser empleado en el sistema operativo UNIX. 1973 - Tecnologı́a de computadoras: Ethernet fue desarrollado. 1975 - Compiladores: Bill Gates and Paul Allen enviaron el compilador BASIC a MITS. Microsoft fue fundado. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 11 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (7) 1979 - Evolución de lenguajes: Bjarne Stroustrup desarrolló C++ en los laboratorios Bell como una mejora al lenguaje C. 1979 - Tecnologı́a de computadores: Laboratorios Bell introdujo el primer procesador de señales digitales (DSP). 1981 - Tecnologı́a de computadores: Un equipo liderado por John L. Hennessy en la Universidad de Standford empezaron a trabajar en el primer procesador MIPS. 1983 - Sistemas operativos: Richard Stallman anuncia el sistema operativo GNU. 1984 - Electrónica: Xilinx desarrolló el FPGA. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 12 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (8) 1984 - Tecnologı́a de computadoras: Fujio Masuoka inventó la memoria flash (NAND y NOR) mientras trabajaba para Toshiba. 1985 - Tecnologı́a de computadoras: Acorn Computers lanza el ARM1. 1991 - Sistemas operativos: Linux es diseñado por un estudiante avanzado de universidad llamado Linus Torvarlds. 1993 - Tecnologı́a de computadoras: IBM, Apple y Motorola liberan la arquitectura PowerPC. 1990s - Métodos de programación: Agile aparece en escena. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 13 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Cronologı́a Cronologı́a (9) 1995 - Evolución de lenguajes: Sun Microsystems libera Java. 1996 - Sistemas operativos: Microsoft libera la primera versión de Windows Embedded CE. 2005 - Tecnologı́a de computadoras: IBM, Intel y AMD liberan sus primeros procesadores de múltiple núcleo. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 14 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Era del microprocesador Primer microprocesador: Intel 4004. 4 bits, 4096 posiciones de memoria (4 bits) ISA: 45 instrucciones. Tecnologı́a MOSFET de canal tipo p. 50000 instrucciones/segundo. Aplicaciones de videojuegos. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 15 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 4004 (1) Encapsulado DIP del 4004. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 16 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 4004 (2) Arquitectura del 4004. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 17 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Chips de soporte del 4004 (1) 4001: ROM de 256 bytes (256 instrucciones de programa de 8bits), y un puerto incorporado de I/O de 4 bits. 4002: RAM de 40 bytes (80 palabras de datos de 4 bits), y un puerto de salida incorporado de 4 bits. La porción de RAM del chip está organizada en cuatro “registro” de veinte palabras de 4 bits: 16 palabras de datos (usadas para los dı́gitos significativos en el diseño original de la calculadora). 4 palabras de estado (usadas para los dı́gitos de exponente en el diseño original de la calculadora). Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 18 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Chips de soporte del 4004 (2) 4003: shift register (registro de desplazamiento) de salida paralela de 10 bits para explorar teclados, pantallas, impresoras, etc. 4008: latch de 8 bits de dirección para acceso a chips de memoria estándar, y un chip incorporado de 4 bits de selección y puerto de I/O. 4009: programa y convertidor de acceso I/O a memoria estándar y a chips de I/O. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 19 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 8008 Versión extendida de 8 bits del microprocesador 4004. Direccionamiento de memoria de 16 Kbytes (recordar que 1 B = 8 bits y 1 K son 1024). 48 instrucciones. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 20 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 8080 (1) Microprocesador de 8 bits. 10x más rápido que el 8008 Compatible con tecnologı́a TTL. 4x direccionamiento de memoria (64 Kbytes) Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 21 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 8080 (2) Primera computadora personal MITS Altair 8800. Bill Gates y Paul Allen desarrollan intérprete de BASIC escrito para esta computadora, 1975. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 22 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 8080 (3) Publicidad impresa del MITS Altair 8800. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 23 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 8080 (4) Apple I basada en 8080. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 24 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores 8085 El 8085 fue una versión actualizada del 8080. 1,3 µs / instrucción. Ventas por más de 100 millones de microprocesadores. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 25 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microprocesador moderno Intel lanza el microprocesador 8086 en 1978. Un año después lanza el 8088. Ambos de 16 bits, con tasa de procesamiento de 400 ns/instrucción. Direccionamiento 1M de memoria, 16x más que el 8085. Caché o cola de 4 - 6 bytes, precargar instrucciones. CISC (computadoras de conjunto de instrucciones complejas) debido al número y la complejidad de las instrucciones. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 26 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Computadora genérica Diagrama Bloques Computadora. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 27 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Diagrama Bloques 8086 Diagrama Bloques 8086. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 28 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Diagrama Bloques 8088 Diagrama Bloques 8088. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 29 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microprocesadores y Microcontroladores Microcomputadora consiste básicamente de: Unidad central de procesamiento (CPU), memoria y sistema de entrada/salida (I/O). Las lı́neas eléctricas de interconexión entre los componentes se llaman buses. Buses de dirección: Transportan direcciones de memoria o I/O. Buses de datos: Transportan datos o instrucciones. Buses de control: Transportan señales de control. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 30 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microprocesadores y Microcontroladores Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 31 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microprocesadores y Microcontroladores El CPU constituye el cerebro de una microcomputadora. Busca las instucciones almacenas en memoria, las interpreta y ejecuta. Incluye la circuiterı́a necesaria para realizar operaciones lógicas y aritméticas (ALU: Arithmetic Logic Unit). En una microcumputadora, el CPU es su microprocesador. Un microcontrolador es considerado como una microcomputadora construida dentro de un solo circuito integrado (CI) o chip. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 32 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microprocesadores Los microprocesadores se encuentran principlamente en estaciones de trabajo. Empleadas donde se requiere una gran potencia computacional y la habilidad de manejar instrucciones grandes. Trabajan a altas velocidades. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 33 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microcontroladores Son empleados en una gran variedad de aplicaciones. Se encuentran en electrónica de consumo, aplicaciones médicas, equipos de hospital e industrias, juguetes, y muchos más. Llevan a cabo un número de tareas reducido. Tienen su programa almacenado permanentemente en memoria. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 34 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microcontroladores Algunos requerimientos son importantes para el diseño y uso de microcontroladores. Recursos de entrada y salida. Optimización de espacio. Uso apropiado del microcontrolador para la aplicación dada. Protección contra falla. Bajo consumo de potencia. Protección de programas contra copias. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 35 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Desde el 4004 hasta el 80x86 Microcontroladores Microcontrolador Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 36 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Arquitecturas de memoria La memoria es donde se almacenan los datos y las instrucciones. La forma en que está organizada la memoria y la forma en que se comunica con el CPU determina la eficiencia de un dispositivo. Existen dos modelos genéricos de HW para estructuras de memoria: von Neumann y Harvard. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 37 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC von Neunmann Propuesta por el matemático John von Neumann. Se emplea una sola memoria para almacenar los datos y las instrucciones. Un único bus de direcciones permite el acceso a datos e instrucciones. Análogamente solo se posee un bus para obtener las instrucciones y los datos. No hay señales de control independientes. Aún cuando se emplea ROM para instrucciones y RAM para datos, el CPU no está al tanto de esto y los trata de la misma manera sin distinción. (RAM + ROM una sola memoria) Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 38 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC von Neunmann Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 39 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Harvard Emplea diferentes memorias para almacenar instrucciones y datos. Cada memoria posee su propio bus de direcciones, datos y control. La memoria de programa solo puede ser leı́da, mientras la de datos puede ser leı́da y escrita. La arquitectura von Neumann posee menos lı́neas lo que hace más simple la conexión entre la memoria y el CPU, no obstante no permite manejo simultáneo entre instrucciones y datos. La arquitectura Harvard permite accesos simultáneos de instrucciones y memoria, lo que permite mayor velocidad de ejecución de programas. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 40 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Harvard Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 41 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Arquitecturas RISC y CISC CISC: Complex set instruction computer. RISC: Reduced set instruction computer. En el inicio de los microprocesadores y microcontroladores se buscó darle el set de instrucciones más poderoso posible. CISC se convirtió en el más popular, aun cuando posee instrucciones muy simples (mover información a memoria), y muy complejas a la vez (mover una cadena de datos entre locaciones de memoria). Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 42 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Arquitecturas RISC y CISC RISC implica instrucciones más simples, encargadas de tareas simples y que se llevan a cabo rápidamente. Los procesadores con RISC poseen menor cantidad de transistores y son más baratos en el proceso de manufactura. Los microcontroladores PIC poseen una arquitectura RISC. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 43 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Caracterı́sticas generales Los microcontroladores PIC están basados en una arquitectura de memoria Harvard. El acceso a diversas E/S se lleva a cabo mediante registros en la memoria de datos llamados registros de función especial (SFR). Los PIC son microcontroladores RISC. Microcontroladores PIC poseen un registro de trabajo (W, working register ) y múltiples registros de memoria. PIC posee una pila de tamaño fijo y que no es parte de la memoria de datos. Gran variedad de dispositivos de E/S: temporizadores, puerto serie y paralelo, convertidores A/D y D/A. Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 44 / 45 Historia Generalidades Arquitecturas de memoria Arquitecturas RISC y CISC Microcontrolador PIC Arquitectura Harvard en PIC 16F877A Jorge Castro-Godı́nez Sistemas Basados en µP y MCU 45 / 45