INTRODUCCION A LOS MICROCONTROLADORES
M. En C. Juan G. Gutiérrez Amaro Amaro
Historia 1971 Intel fabrica el primer microprocesador (el 4004) de tecnología PMOS. microprocesador de 4 bits, contenía 2,300 transistores y corría a 108 Khz podía direccionar sólo 4096 (4k) localidades de memoria de 4 bits, reconocía 45 instrucciones y podía ejecutar una instrucción en 20 µseg en promedio. 1972 Intel desarrolló una versión más poderosa (el 8008), el cual podía manipular bytes completos, por lo cual fue un microprocesador de 8 bits. La memoria que este podía manejar se incrementó a 16 kbytes, sin embargo, la velocidad de operación continuó igual. 1973 Intel lanza el 8080 de tecnología NMOS que supera la velocidad de su predecesor por un factor de diez, puede realizar 500 000 operaciones por segundo, incrementó la capacidad de direccionamiento de memoria a 64 kbytes. varias compañías fabricantes de circuitos integrados comenzaron a producir microprocesadores: microprocesadores: el IMP-4 y el SC/MP SC/MP de National National Semiconductors, Semiconductors, el PPS-4 y PPS-8 de Rockwell International, el MC6800 de Motorola, el F-8 de Fairchild. 1975 Zilog lanza al mercado el Z80, uno de los microprocesadores de 8 bits más poderosos. , Motorola abate los costos con sus microprocesadores microprocesadores 6501 y 6502 (adoptado (adoptado por APPLE para su primera microcomputadora personal), se comercializan en $20 y $25. Esto provoca un auge en el mercado de microcomputadoras de uso doméstico y un caos en la proliferación de lenguajes, sistemas operativos y programas. 1976 Surgen las primeras primeras microcomputadoras microcomputadoras de un sólo chip, chip, que más tarde se denominarán microcontroladores. Dos de los primeros microcontroladores, son el 8048 de Intel y el 6805R2 de Motorola.
Historia 1971 Intel fabrica el primer microprocesador (el 4004) de tecnología PMOS. microprocesador de 4 bits, contenía 2,300 transistores y corría a 108 Khz podía direccionar sólo 4096 (4k) localidades de memoria de 4 bits, reconocía 45 instrucciones y podía ejecutar una instrucción en 20 µseg en promedio. 1972 Intel desarrolló una versión más poderosa (el 8008), el cual podía manipular bytes completos, por lo cual fue un microprocesador de 8 bits. La memoria que este podía manejar se incrementó a 16 kbytes, sin embargo, la velocidad de operación continuó igual. 1973 Intel lanza el 8080 de tecnología NMOS que supera la velocidad de su predecesor por un factor de diez, puede realizar 500 000 operaciones por segundo, incrementó la capacidad de direccionamiento de memoria a 64 kbytes. varias compañías fabricantes de circuitos integrados comenzaron a producir microprocesadores: microprocesadores: el IMP-4 y el SC/MP SC/MP de National National Semiconductors, Semiconductors, el PPS-4 y PPS-8 de Rockwell International, el MC6800 de Motorola, el F-8 de Fairchild. 1975 Zilog lanza al mercado el Z80, uno de los microprocesadores de 8 bits más poderosos. , Motorola abate los costos con sus microprocesadores microprocesadores 6501 y 6502 (adoptado (adoptado por APPLE para su primera microcomputadora personal), se comercializan en $20 y $25. Esto provoca un auge en el mercado de microcomputadoras de uso doméstico y un caos en la proliferación de lenguajes, sistemas operativos y programas. 1976 Surgen las primeras primeras microcomputadoras microcomputadoras de un sólo chip, chip, que más tarde se denominarán microcontroladores. Dos de los primeros microcontroladores, son el 8048 de Intel y el 6805R2 de Motorola.
198x En la década de los 80's comienza la ruptura entre la evolución tecnológica de los microprocesadores y la de los microcontroladores, Ya que los primeros han ido incorporando cada vez más y mejores capacidades para las aplicaciones en donde se requiere el manejo de grandes volúmenes volúmenes de información información y por otro lado, lado, los segundos segundos han incorporado incorporado más capacidades que les permiten la interacción con el mundo físico en tiempo real, además de mejores desempeños en ambientes de tipo industrial.
•
¿Qué son los Microcontroladores?
Son circuitos integrados que incorporan todos los bloques funcionales de un Sistema Microprocesador en un encapsulado. •
¿Qué necesitan para funcionar?
Sólo una tensión continua estable (5V (5V,, 3.3V, 3.3V, 2.5V, 2.5V, 1.5V...) 1.5V...) y un oscilado osciladorr •
¿Qué hacen?
Interpretan (decodifican) combinaciones de bits (instrucciones) y generan señales digitales internas y/o externas •
¿Para qué?
Para “ejecutar” de manera continua una secuencia de instrucciones
(programa) que permita controlar un sistema o subsistema electrónico
Sistema mínimo de microprocesador El sistema mínimo está basado en la arquitectura de Von Newman CPU, Central Process Unit o Unidad Central de Proceso. Formada por dos bloques: Unidad de Control y Unidad de Proceso. Memoria, donde residen las instrucciones del programa y sus datos. Módulos E/S, elementos encargados de recibir y entregar información alexterior. •
CPU U.C.
•
U.P.
Bus de Direcciones MEMORIA
E/S
Bus de Datos Bus de Control
•
Reloj
Los tres módulos están conectados entre sí por medio de Buses de Comunicación.
Buses de comunicación Los buses de comunicación en un sistema mínimo microprocesador se dividen en tres: Bus de direcciones Es el empleado por la CPU para seleccionar la dirección de memoria o el dispositivo de E/S con el cual va a intercambiar información. Bus de datos El bus de datos es el conjunto de conductores a través del cual el µP intercambia información con la unidad de memoria o E/S seleccionada mediante el bus de direcciones. Bus de control Está formado por un conjunto de líneas por las que circulan las señales auxiliares de gobierno y sincronización del sistema
Bus de direcciones Unidireccional
•
Su tamaño, o número de conductores que lo constituyen, determina la capacidad de direccionamiento de la CPU, que es el máximo número de posiciones de memoria y dispositivos E/S a los que la CPU puede acceder. Para m líneas la capacidad de direccionamiento será: 2m. •
6502, Z80, 8088: m=16 Capacidad de 65536 posiciones (64 k) 80286: m=20 Capacidad de 1.048.576 posiciones (1 Mega)
Bus de datos Bidireccional sentidos. •
la información puede viajar en los dos
Número de líneas (N) representa la cantidad de bits que se pueden transmitir simultáneamente. Palabra del µP. •
Triestado: las líneas del bus de datos deben ser triestado: Estado alto, bajo y de alta impedancia •
Si el µP se está comunicando con un dispositivo E/S. Sólo estos dos dispositivos pueden disponer del bus de datos, el resto de dispositivos conectados físicamente al bus de datos deben permanecer con sus líneas en alta impedancia. La Unidad de Control de la CPU es la que toma la decisión.
Bus de control Las líneas existentes dependen del fabricante del µP y de las funciones que desee implementarle. •
Señales típicas Señal de reloj de sincronización
•
Señal de RESET o inicialización
•
Señal de lectura/escritura en memoria,
•
Líneas de petición de interrupción, etc.
•
Memoria Almacenamiento de las instrucciones que constituyen el programa codificadas a través de su Código de Operación. •
Almacenamiento de los datos y variables del programa. Normalmente agrupados en paquetes de 8 bits (Byte ), 16 bits (Word ) o 32 bits . •
La velocidad de la memoria debe ser compatible con el µP empleado: RAM, memorias de lectura/escritura para almacenamiento de variables y datos del programa. Son volátiles. •
ROM (EPROM, EEPROM), memorias de sólo lectura para almacenamiento programas fijos (aplicaciones, rutinas básicas de sistemas operativos, etc.) y constantes. Son no volátiles. •
Arquitectura según el hardware La comunicación entre las principales secciones de un sistema de computador (basado en microcontrolador o en microprocesador) tiene lugar sobre un cierto número de buses.
Harvard Princeton o Von Newman
Arquitectura de Von Newmann (Princeton) CPU
Se refiere a que existe un solo bus llamado de SISTEMA a través del cual se comunica y controla la Unidad Central de Proceso (CPU) su comunicación con las memorias y equipos periféricos.
Arquitectura Harvard
MEMORIA DE PROGRAMA
CPU
MEMORIA DE DATOS
La presente arquitectura establece que existan buses independientes para las memorias de programa y de datos, con lo que se hace más eficiente la ejecución de los programas.
Arquitectura según el software CISC Computadores de Juego de Instrucciones Complejo. Disponen de muchas instrucciones, algunas de las cuales son muy sofisticadas y potentes
requieren muchos ciclos para su ejecución.
RISC (Computadores de Juego de Instrucciones Reducido). En estos procesadores el repertorio de instrucciones máquina es muy reducido y las instrucciones son simples y, generalmente, se ejecutan en un ciclo.
optimizan el hardware y el software del procesador.
SISC Computadores de Juego de Instrucciones Específico el juego de instrucciones, además de ser reducido, es "específico", o sea, las instrucciones se adaptan a las necesidades de la aplicación prevista
destinados a aplicaciones muy concretas
Unidad central de proceso CPU Se encarga de accesar a la memoria de instrucciones, recibir el código de operación de la instrucción en curso, decodificarla y llevar a cabo la ejecución de la operación que implica la instrucción, así como la búsqueda de los operandos y el almacenamiento del resultado.
CPU Bus de Control
Unidad de Control
Bus de Direcciones Bus de Datos
Registros
ALU
Registros Internos Los registros de la CPU son bloques de biestables que permiten el almacenamiento de los datos básicos con los cuales va a trabajar la CPU durante la ejecución de cada instrucción. La comunicación se realiza mediante buses internos a la CPU .
Registros típicos De corrimiento Contadores Registros apuntadores Registros de datos: Registros especiales:
•
•
•
•
•
Hacen rotaciones y desplazamientos de bits Permiten medir tiempos, temporizar, etc. Permiten el acceso estructurado a datos de memoria Almacenamiento de variables del programa Contador de programa (Program Counter, PC), puntero de pila (Stack Pointer, SP)
Unidad de control Su misión principal consiste en interpretar y ejecutar las instrucciones que le llegan desde la memoria:
El Contador de Programa (PC) es un registro que contiene la dirección de memoria donde está la siguiente instrucción del programa a El código binario la instrucción en del curso seactive recibe y señales se almacena ejecutar. Una de lasde primeras acciones secuenciador antes de Estas instrucciones hacen que el secuenciador las Elejecutar Decodificador de Instrucciones Instrucciones selecciona las posiciones quea la en el Registro de (IR). una instrucción es incrementar el PC para que apunte correspondientes para ejecutar la instrucción. corresponden a esa instrucción en una memoria ROM interna de la CPU. instrucción siguiente.
Unidad de procesamiento El bloque principal es la ALU o Unidad Lógico-Aritmética, que permite realizar un las operaciones aritméticas y lógicas indicadas por las instrucciones del programa.
Registro 2º Operando, suministra el el 2ºcódigo operando para laen curso, Registro El Registro secuenciador Acumulador, de Estado (UC), instruido contiene esta formado siempre por por bits el resultado denominados de la instrucción derealizar la última banderas instrucción y viene por ellacódigo de activa las operación (flags) quelíneas realizada se ponen de normalmente selección en a 1laóALU. 0 dedeacuerdo lasuministrado ALU para con elrealizar resultado operación. obtenidos. operación de la instrucción.
Módulos E/S Permiten la comunicación del sistema µP con el mundo exterior. Los dispositivos de E/S se denominan habitualmente periféricos, ejemplos son: teclado, pantalla, impresora, unidades de Bus de Datos disco, etc.
Periférico
Interface
Bus de Direcciones
Existen varios métodos para manejar los dispositivos de E/S Mediante Instrucciones Específicas de E/S
•
Mediante Acceso Directo a Memoria (DMA). La CPU pone en triestado los buses de direcciones y de datos. Un dispositivo controlador de DMA toma el control de los buses y pasa los datos directamente entre el dispositivo E/S y la memoria. •
Mediante Técnicas de Interrupción. El periférico activa las líneas de interrupción de la CPU, que detienen el programa en ejecución y trasladan el contador de programa a la dirección de inicio de otro programa, creado especialmente para atender al periférico que solicita la interrupción. •
Mediante el Tratamiento de E/S como Posiciones de Memoria. Permite el empleo de las mismas instrucciones para acceso a memoria y a E/S. Una zona del mapa de memoria es reservada para los dispositivos de E/S. Estas posiciones se llaman Puertos de E/S. •
El microcontrolador y el microprocesador Sistema Microprocesador (varios C.I. en una PCB)
Microcontrolador (único C.I.)
Tarjeta de Sistema Microprocesador para control
C.I. Microcontrolador (“casi todo” ahí dentro)
Sistemas empotrados o embebidos •
Sistemas que incorporan microcontroladores (o microprocesadores)
para una tarea específica pero que no son “visibles” ni “programables”
directamente por el usuario Los microcontroladores de 8 bits dominan en la mayoría de las aplicaciones •
El microcontrolador es el núcleo del sistema electrónico versátil de bajo costo y tamaño reducido, capaz de detectar las señales de entrada y generar las salidas de un equipo, sistema o instrumento •
Por su reducido tamaño y costo permiten la fácil implantación de sistemas de“inteligencia” distribuida a lo largo de sistemas más complejos •
Los microcontroladores son los semiconductores más abundantes de todos en la actualidad. •
Evolución Microprocesadores: Computadores
75 Millones Microprocesadores/año
Evolución Microcontroladores: Sistemas Empotrados
Microcontroladores comerciales INTEL
8048,8051,80C196,80386
MOTOROLA
6805,68HC11,68HC12
HITACHI
HD64180
PHILIPS
8051
SGS-THOMSON
ST-62XX
NATIONAL SEMICONDUCTOR
COP400,COP800
ZILOG
Z8,Z86XX
TEXAS INSTRUMENTS
TMS370
TOSHIBA
68HC11
MICROCHIP
PIC
•
•
•
•
•
•
•
•
•
•
1990
1996
1.- Motorola 2.- Mitsubishi 3.- NEC 4.- Intel 5.- Hitachi 6.- Philips 7.- Matsushita 8.- National 9.- Siemens 10.- TI 11.- Sharp 12.- Oki 13.- Toshiba 14.- SGS-Thomson 15.- Zilog 16.- Matra 17.- SONY 18.- Fujitsu 19.- AMD 20.- Microchip
1.- Motorola 2.- Mitsubishi 3.- SGS-Thomson 4.- NEC 5.- Microchip 6.- Philips 7.- Zilog
SEGÚN UNIDADES VENDIDAS DE 8 BITS
2002 1.- Microchip 2.- Motorola 3.- ST-Micro 4.- NEC 5.- Atmel 6.- Sunplus 7.- Hitachi 8.- Fujitsu 9.- Philips 10.- Toshiba 11.- Mitsubishi 12.- Samsung 13.- Elan 14.- Winbond 15.- Zilog 16.- Sanyo 17.- Matsushita 18.- Infineon 19.- Holtek 20.- National
Microcontroladores PIC Arquitectura Harvard: buses internos separados para memoria de datos (8 bits) y de programa (12, 14 ó 16 bits depende de la familia) •
Microprocesador RISC: juego de instrucciones reducido
•
Estructura pipe-line : durante la ejecución de una instrucción, se está accediendo a la memoria de programa para traer la siguiente instrucción a ejecutar. •
Todas las instrucciones ocupan una posición de memoria de programa
•
Todas las instrucciones se ejecutan en un ciclo de instrucción = 4 ciclos de reloj (a excepción de las instrucciones de salto) •
Ortogonalidad de los registros: se opera entre el registro de trabajo W y cualquier otro registro, el resultado puede almacenarse en W •
¿Por qué los Microcontroladores PIC de Microchip? •
•
•
•
•
Eficiencia del código: permiten gran compactación de programas Rapidez de ejecución: a f de 20MHz
5 millones de instr./seg.
Seguridad en acceso: Separa memoria de datos y de programa Juego reducido de instrucciones y de fácil aprendizaje Compatibilidad de pines y código entre dispositivos (familias)
Gran variedad de versiones en distintos encapsulados (desde 8 hasta 84 pines) sin reducción de las prestaciones internas •
•
Posibilidad de protección del código muy fiable
Herramientas de desarrollo software y hardware abundantes y de bajo coste •
Tamaño relativo del código
Velocidad relativa de ejecución
Familias de microcontroladores PIC Familia PIC10F20x Encapsulados de 6 pines (SOT). Oscilador interno 4MHz Memoria de programa de 12 bits y datos de 8 bits Juego de 33 instrucciones
•
•
•
Familia PIC12CXXX/12FXXX Encapsulados de 8 pines (DIP ó SOIC) Instrucciones de 12 ó 14 bits en Memoria de Programa Juego de 33 ó 35 instrucciones Disponibles con EEPROM de datos Modelos con módulos de conversión A/D Permiten alimentación a baja tensión de hasta 2,5V
•
•
• •
•
•
Familia PIC16C5X Encapsulados de 14, 18, 20 y 28 pines Instrucciones de 12 bits Juego de 33 instrucciones Es la familia base de partida de los PIC
• • • •
Familia PIC16CXXX/16FXXX (+PIC14000) Encapsulados desde 18 hasta 68 pines (DIP, SSOP, PLCC, QFP) Instrucciones de 14 bits en Memoria de Programa Juego de 35 instrucciones Gran variedad de módulos integrados •
• • •
Familia PIC17CXXX Encapsulados de 40 a 80 pines Memoria de Programa de 16 bits Juego de 58 instrucciones (oper. de multiplicación por hardware) Posibilidad de direccionar memoria externa • • •
•
Familia PIC18CXXX/18FXXX Encapsulados de 18 a 80 pines Memoria de Programa de 16 bits Juego de 77 instrucciones (multiplicación)
• • •
Familia PIC16CXXX/16FXXX •
•
•
•
•
Puertos de Entrada/Salida Puerto Esclavo Paralelo (PSP) Temporizadores/contadores (TMR0, TMR1, TMR2) Captura / Comparación / PWM (CCP1 y CCP2) Conversión Analógica / Digital (A/D)
Transmisor Receptor Asíncrono Síncrono Universal (USART ó SCI) •
•
•
•
Puerto Serie Síncrono Básico ó Maestro (BSSP ó MSSP) Memoria EEPROM de datos FLASH EEPROM de programa modificable desde el código
8K x 14
Microcontrolador PIC16F877 (familia media)
¡ Tiene de todo !
368 x 8
Temporizadores
S / E e d s o t r e u P
Puerto Esclavo Paralelo
Módulos CCP SSP 256 x 8
Conversor A/D USART
Procedimiento de diseño con los microcontroladores PIC Diseño hardware: conectaremos al microcontrolador todo lo que necesita para funcionar y lo que le permite interaccionar con el mundo exterior •
•
•
•
•
Definición de las señales de Entrada, Salida y Alimentaciones Etapas de Adaptación/Acondicionamiento Eléctrico de Señales Selección de los módulos del microcontrolador a utilizar y pines Diseño de la Placa de Circuito Impreso (PCB) Montaje y ensamblado
CAD-CAE
Realización + Montaje
Diseño software: el microcontrolador sin un programa cargado en su memoria no hace absolutamente nada, cuando esté grabado con un programa eficiente el conjunto empezará a funcionar Diseño del programa y escritura del código fuente en ensamblador o en C Pruebas, verificación y modificación del código: Simulación del programa (puro software) o emulación dentro del circuito de aplicación (software y hardware) Grabación del código máquina en la memoria del microcontrolador •
•
•
Emulación o Depuración sobre PCB
Edición del código, 1ª depuración y simulación
Grabación del micro
¡ Puede haber del orden de 50 microcontroladores en un automóvil !