Tema 2 INTRODUCCION A LOS MICROCONTROLADORES 1
2.1 Introducción 2.2 Características 2.3 Los microcontroladores más utilizados 2.4 Lenguajes de programación 2.5 Herramientas de desarrollo 2
2.1. Introducción Los microcontroladores están adquiriendo mayor presencia en nuestra vida cotidiana sin que aparentemente notemos su presencia. Están presentes en nuestro trabajo, en nuestra casa y en nuestra vida, en general. Se pueden encontrar controlando el funcionamiento de los ratones y teclados de los computadores, en los teléfonos, en los hornos microondas, los televisores, los teléfonos móviles, las consolas de videojuegos... 3
2.1. Introducción Controlador y microcontrolador Controlador: dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno. Microcontrolador: un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. 4
2.1. Introducción Microcontrolador Un microcontrolador dispone normalmente de los siguientes componentes: Procesador o UCP (Unidad Central de Proceso) Memoria RAM para Contener los datos. Memoria para el programa tipo ROM/PROM/EPROM. Líneas de E/S para comunicarse con el exterior. Diversos módulos para el control de periféricos (temporizadores, Puertas Serie y Paralelo, CAD: Conversores Analógico/Digital, CDA: Conversores Digital/Analógico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema. 5
2.1. Introducción Diferencia entre microprocesador y microcontrolador El microcontrolador es un sistema cerrado. Todas las partes del computador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Microcontrolador mc Periféricos Periféricos 6
2.1. Introducción Diferencia entre microprocesador y microcontrolador Un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine. Microprocesador Bus Direcciones mp Bus Datos Bus Control Memoria Controlador 1 Controlador 2 Periféricos Periféricos 7
2.1. Introducción Aplicaciones de los Microcontroladores Aparatos electrodomésticos: microondas, frigoríficos, hornos, TV, reproductores y grabadores de CD y DVD, equipos de sonido, teléfonos,... Equipos informáticos: impresoras, módems, unidades de disco, ratones, teclados,.. Automóviles: mando de sistemas del automóvil (ABS, inyección, encendido, climatizador..) Domótica: sistemas antirrobo, climatizadores,.. Instrumentación: equipos de medida Robótica 8
2.1. Introducción El Mercado de los Microcontroladores se venden cientos de microcontroladores por cada microprocesador existe una gran diversidad de microcontroladores:clasificación según tamaño palabra en microcontroladores de 4, 8, 16 ó 32 bits la totalidad de los microcontroladores actuales se fabrican con tecnología CMOS Distribución de ventas según aplicación 10% automoción 16% industria 33% computadores y periféricos 16% comunicaciones 25% electrodomésticos, juegos, TV,.. 9
2.2. Características Todos los microcontroladores deben disponer de los bloques esenciales: procesador (CPU), memoria de datos y de instrucciones, líneas de E/S, oscilador de reloj y módulos controladores de periféricos. Sin embargo, cada fabricante intenta enfatizar los recursos más idóneos para las aplicaciones a las que se destinan preferentemente. 2 tipos de arquitecturas: Von Neumann Harvard 10
2.2. Características Arquitectura: Von Neumann El modelo básico de arquitectura empleada por los computadores digitales fue establecida en 1945 por Von Neumann. Este tipo de arquitectura consta de los siguientes bloques: Memoria principal Unidad aritmético-lógica Unidad de control Unidad de entrada/salida 11
2.2. Características Arquitectura: Von Neumann Registros UNIDAD ARITMÉTICO- LÓGICA MEMORIA PRINCIPAL UNIDAD DE CONTROL Registros UNIDAD DE ENTRADA/SALIDA Periférico Periférico Periférico Periférico Periférico 12
2.2. Características Arquitectura: Von Neumann Memoria principal: se emplea para almacenar datos o instrucciones. Se compone de una serie de celdas a cada una de las cuales se accede a través de una dirección. Cada celda está compuesta de un número de bits que nos da el ancho de palabra de la memoria. Unidad aritmético-lógica: permite realizar las operaciones elementales (AND, OR, NAND, NOR, suma, resta, etc.). Estas operaciones las realiza con datos procedentes normalmente de la memoria y los resultados parciales los almacena o no temporalmente en algunos registros que suele tener la propia unidad aritmética. Las operaciones básicas que puede realizar un computador se dividen en operaciones lógicas y operaciones aritméticas. Ambos tipos de operaciones se realizan dentro de esta unidad. Unidad de control: se encarga de generar las señales necesarias para que todo el computador ejecute las instrucciones leídas de la unidad de memoria. La unidad de control es la encargada de leer de forma consecutiva las instrucciones (que se encuentran almacenadas en la unidad de memoria), y generar las señales eléctricas necesarias para proceder a la ejecución de cada una de estas instrucciones. Es la unidad que gobierna y gestiona el comportamiento de un computador. 13
2.2. Características Arquitectura: Von Neumann Unidad de entrada/salida: realiza la transferencia de información con el exterior, con las unidades que se conocen con el nombre de periféricos. Buses: caminos que unen los distintos bloques del computador y a través de los cuales circulan los datos y las instrucciones. Dependiendo del tipo de información que se trate podemos hablar de diferentes caminos: Bus de datos: circulan los datos de las operaciones que se van a efectuar. Bus de direcciones: circulan las direcciones de memoria donde se encuentra almacenado algún tipo de información a la que se desea acceder. Bus de control: circulan las señales de control generadas por la unidad de control para la ejecución de las instrucciones. 14
2.2. Características Arquitectura: Von Neumann La agrupación de algunos bloques funcionales del computador como son la unidad de control, la unidad aritmético-lógica y los registros recibe el nombre de unidad central de proceso (CPU). Registros CPU (Central Process Unit) UNIDAD ARITMÉTICO- LÓGICA UNIDAD DE CONTROL Registros 15
2.2. Características Arquitecturas: Von Neumann vs. Harvard La arquitectura de von Neumann se caracteriza por disponer de una sola memoria principal donde se almacenan datos e instrucciones de forma indistinta. A dicha memoria se accede a través de un sistema de buses único (direcciones, datos y control). La arquitectura Harvard dispone de dos memorias independientes una, que contiene sólo instrucciones y otra, sólo datos. Ambas disponen de sus respectivos sistemas de buses de acceso y es posible realizar operaciones de acceso (lectura o escritura) simultáneamente en ambas memorias. 16
2.2. Características Arquitectura: Von Neumann CPU control datos MEMORIA DATOS E INSTRUCCIONES instrucciones El Motorola 68HC11 tiene una arquitectura tipo Von Neumann 17
2.2. Características Arquitectura: Harvard MEMORIA control control MEMORIA INSTRUCCIONES instrucciones CPU datos DATOS Los microcontroladores PIC tienen una arquitectura tipo Harvard 18
2.2. Características Procesador o CPU Es el elemento más importante del microcontrolador y determina sus principales características, tanto a nivel hardware como software. Se encarga de direccionar la memoria de instrucciones, recibir el código OP de la instrucción en curso, su decodificación y 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. Tipos: CISC (Computadores de Juego de Instrucciones Complejo) RISC (Computadores de Juego de Instrucciones Reducido) SISC (Computadores de Juego de Instrucciones Específico) 19
2.2. Características Tipos de memorias Memoria de programa: no volátil, tipo ROM (Read Only Memory) Memoria de datos: volátil, tipo RAM (Random Access Memory) Tipos de memoria no volátil (ROM): ROM con máscara OTP (One Time Programmable) EPROM (Erasable Programmable Read Only Memory) EEPROM (Electrical Erasable Programmable Read Only Memory) FLASH 20
2.2. Características Puertas de E/S y reloj Puertas de E/S: patitas de la cápsula del microcontrolador, que lo comunican con los periféricos exteriores Reloj principal: un circuito oscilador que genera una onda cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema. Generalmente, el circuito de reloj está incorporado en el microcontrolador y sólo se necesitan unos pocos componentes exteriores para seleccionar y estabilizar la frecuencia de trabajo. Dichos componentes suelen consistir en un cristal de cuarzo junto a elementos pasivos o bien un resonador cerámico o una red R-C. Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones pero lleva aparejado un incremento del consumo de energía. 21
2.2. Características Recursos especiales Temporizadores o Timers. Perro guardián o Watchdog. Protección ante fallo de alimentación o Brownout. Estado de reposo o de bajo consumo. Conversor A/D. Conversor D/A. Comparador analógico. Modulador de anchura de impulsos o PWM. Puertas de E/S digitales. Puertos de comunicación: UART, USART, USB, CAN,... 22
2.3. Los microcontroladores más conocidos Esta es una lista fabricantes de microcontroladores: 1 AMCC 2 Altera 3 Atmel 4 Charmed Labs 5 Cypress MicroSystems 6 Dallas Semiconductor 7 Freescale Semiconductor 8 Fujitsu 9 Holtek 10 Infineon 11 Intel 12 Lattice Semiconductor 13 Microchip Technology 14 National Semiconductor 15 NEC 16 Parallax 17 Philips Semiconductors 18 Rabbit Semiconductor 19 Renesas Technology 20 Silabs 21 Silicon Motion 22 STMicroelectronics 23 Texas Instruments 24 Toshiba 25 Western Design Center 26 Ubicom 27 Xemics 28 Xilinx 29 ZiLOG PIC 23
2.3. Los microcontroladores más conocidos Los microcontroladores más comunes: PIC 24
2.3. Los microcontroladores más conocidos Microchip PIC Familia 8 bit: PIC10, PIC12, PIC16, PIC18 Familia 16 bit: PIC24F, PIC24H,dsPIC30, dspic33 PIC32 16F84 16F87X 25
2.3. Los microcontroladores más conocidos Qué microcontrolador emplear? Factores a considerar según la aplicación: Costes Procesamiento de datos E/S Consumo Memoria Ancho de palabra Diseño de la placa 26
2.4. Lenguajes de programación Lenguaje máquina: representación del programa tal como la entiende el microcontrolador 0101000011111110000 Lenguaje ensamblador: representación alfanumérica del lenguaje máquina, lo que facilita su lectura. Lenguajes de alto nivel. clrf PORTA bcf STATUS, RP0 Lenguaje C 27
2.5. Herramientas de desarrollo Ensamblador: El programa ensamblador es un software que se encarga de traducir los nemónicos y símbolos alfanuméricos del programa escrito en ensamblador por el usuario a código máquina. MPASM Compilador: El programa compilador es un un software que se encarga de traducir el programa escrito en C el usuario a código máquina. MikroC Simulador: Son capaces de ejecutar en un PC programas realizados para el microcontrolador. Los simuladores permiten tener un control absoluto sobre la ejecución de un programa, siendo ideales para la depuración de los mismos MPSIM 28
2.5. Herramientas de desarrollo Entornos de desarrollo: MPLAB (incluye MPASM y MPSIM) Proteus Placas de evaluación: Se trata de pequeños sistemas con un microcontrolador ya montado y que suelen conectarse a un PC desde el que se cargan los programas que se ejecutan en el microcontrolador. Las placas suelen incluir visualizadores LCD, teclados, LEDs, fácil acceso a los pines de E/S, etc. EasyPIC 29