MICROCONTROLADORES Ing. Elias Parrado Sandoval
INTRODUCCION LOS MICROCONTROLADORES PROGRAMA TECNICO EN ELECTRONICA Y TELECOMUNICACIONES
Ing. Elias Parrado Sandoval Docente
INTRODUCCION LOS MICROCONTROLADORES PROGRAMA TECNICO EN ELECTRONICA Y TELECOMUNICACIONES
Ing. Elias Parrado Sandoval Docente
INTRODUCCION Inicialmente cuando no existan los microprocesadores las personas se ingeniaban en diseñar sus circuitos electrónicos y los resultados estaban expresados en diseños que implicaban muchos componentes electrónicos y cálculos matemáticos. Un circuito lógico básico requería de muchos elementos como transistores, resistencias, etc. principio se creía que el manejo de un Al microprocesador era para aquellas personas con un coeficiente intelectual muy alto. Por lo contrario con la aparición de este circuito integrado todo sería mucho más fácil de entender y los diseños electrónicos serían mucho más pequeños y simplificados.
El funcionamiento y aplicaciones de los microcontroladores y los microprocesadores permiten profundizar en los aspectos tecnológicos de las arquitecturas de las nuevas computadoras, convirtiéndose de esta forma en una herramienta útil para el desarrollo de variadas aplicaciones que contribuyen al avance tecnológico y desarrollo integral de la sociedad. Estas aplicaciones que han surgido con el propósito de solucionar las diversas necesidades existentes, que frustraban la realización de actividades ejecutadas por personas en los diferente escenarios industriales, empresariales entre otros.
DONDE ENCONTRAMOS LOS MICROCONTROLADORES El número de productos que funcionan en base a uno o varios microcontroladores aumenta de forma exponencial. No es aventurado pronosticar que en el siglo xxi habrá pocos elementos que carezcan de microcontrolador. En esta línea de prospección del futuro, la empresa Dataquest calcula que en cada hogar americano existirán varios centenares de microcontroladores en los comienzos del tercer milenio. La industria Informática acapara gran parte de los microcontroladores que se fabrican. Casi todos los periféricos del computador, desde el ratón o el teclado hasta la impresora, son regulados por el programa de un microcontrolador. Los electrodomésticos de línea blanca (lavadoras, hornos, lavavajillas, etc.) y de línea marrón (televisores, vídeos, aparatos musicales, etc.) incorporan numerosos microcontroladores. Igualmente, los sistemas de supervisión, vigilancia y alarma en los edificios utilizan estos chips. También se emplean para optimizar el rendimiento de ascensores, calefacción, aire acondicionado, alarmas de incendio, robo, etc.
DEFINICION DE MICROCONTROLADOR Es un circuito integrado programable que contiene todos los componentes de un computador. Se emplea para controlar el funcionamiento de una tarea determinada y, debido a su reducido tamaño, suele ir incorporado en el propio dispositivo al que gobierna. El microcontrolador es un computador dedicado. En su memoria sólo reside un programa destinado a gobernar una aplicación determinada; sus líneas de entrada/salida soportan el conexionado de los sensores y actuadores del dispositivo a controlar, y todos los recursos complementarios disponibles tienen como única finalidad atender sus requerimientos. Una vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea asignada.
DIFERENCIA ENTRE MICROPROCESADOR Y MICROCONTROLADOR El microprocesador, o simplemente procesador, es el circuito integrado central y más complejo de una computadora u ordenador; a modo de ilustración, se le suele asociar por analogía como el "cerebro" de una computadora. Desde el punto de vista funcional es, básicamente, el encargado de realizar toda operación aritmético-lógica, de control y de comunicación con el resto de los componentes integrados que conforman un PC, siguiendo el modelo base de Von Neumann. También es el principal encargado de ejecutar los programas, sean de usuario o de sistema; sólo ejecuta instrucciones programadas a muy bajo nivel, realizando operaciones elementales, básicamente, las aritméticas y lógicas, tales como sumar, restar, multiplicar, dividir, las lógicas binarias y accesos a memoria.
Esta unidad central de procesamiento está constituida, esencialmente, por registros, una unidad de control y una unidad aritmético lógica (ALU), aunque actualmente todo microprocesador también incluye una unidad de cálculo en coma flotante, (también conocida como coprocesador matemático o FPU), que permite operaciones por hardware con números decimales, elevando por ende notablemente la eficiencia que proporciona sólo la ALU con el cálculo indirecto a través de los clásicos números enteros. La "velocidad" del microprocesador suele medirse por la cantidad de operaciones por ciclo de reloj que puede realizar y en los ciclos por segundo que este último desarrolla, o también en MIPS. Está basada en la denominada frecuencia de reloj (oscilador). La frecuencia de reloj se mide Hertzios, pero dada su elevada cifra se utilizan múltiplos, como el megahertzio o el gigahertzio.
Un microcontrolador es un circuito integrado de alta escala de integración que incorpora la mayor parte de los elementos que configuran un controlador. El microprocesador es un circuito integrado que contiene la Unidad Central de Proceso(CPU), también llamada procesador de un computador. Al microprocesador se le conecta la Memoria y Módulos de E/S para configurar un computador implementado por varios circuitos integrados. Un microprocesador es un sistema abierto (configuración variable) con el que puede construirse un computador con las características que se desee, acoplándole los módulos necesarios. Un microcontrolador es un sistema cerrado que contiene un computador completo y de prestaciones limitadas que no se pueden modificar.
Decidirse por construir el sistema con el microprocesador, o utilizar directamente el microcontrolador dependerá de la economía. Si el microcontrolador está limitado por su propia CPU, es necesario elegir un microprocesador potente y añadir los buffers, drivers, decodificadores, memorias, etc. Generalmente, salvo que la aplicación exija grandes prestaciones, el microcontrolador será una solución válida, con la ventaja de que reduce el espacio y el hardware.
ELEMENTOS ELECTRONICOS DENTRO DE UN MICROCONTROLADOR Un microcontrolador dispone normalmente de los siguientes componentes:
Procesador o CPU (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, ADC: Conversores Analógico/Digital, DAC: Conversores Digital/Analógico, etc.). Generador de impulsos de reloj que sincronizan el funcionamiento de todo el sistema.
¿QUÉ MICROCONTROLADOR EMPLEAR? Antes de seleccionar un microcontrolador es imprescindible analizar los requisitos de la aplicación: Procesamiento de datos: puede ser necesario que el microcontrolador realice cálculos críticos en un tiempo limitado. En ese caso debemos asegurarnos de seleccionar un dispositivo suficientemente rápido para ello. Por otro lado, habrá que tener en cuenta la precisión de los datos a manejar: si no es suficiente con un microcontrolador de 8 bits, puede ser necesario acudir a microcontroladores de 16 ó 32 bits, o incluso a hardware de coma flotante. Una alternativa más barata y quizá suficiente es usar librerías para manejar los datos de alta precisión.
Entrada Salida: para determinar las necesidades de Entrada/Salida del
sistema es conveniente dibujar un diagrama de bloques del mismo, de tal forma que sea sencillo identificar la cantidad y tipo de señales a controlar. Una vez realizado este análisis puede ser necesario añadir periféricos hardware externos o cambiar a otro microcontrolador más adecuado a ese sistema.
algunos productos que incorporan microcontroladores están alimentados con baterías y su funcionamiento puede ser tan vital como activar una alarma antirrobo. Lo más conveniente en un caso como éste puede ser que el microcontrolador esté en estado de bajo consumo pero que despierte ante la activación de una señal (una interrupción) y ejecute el programa adecuado para procesarla.
Consumo:
Diseño
la selección de un microcontrolador concreto condicionará el diseño de la placa de circuitos. Debe tenerse en cuenta que quizá usar un microcontrolador barato encarezca el resto de componentes del diseño de
la
placa:
Memoria: para detectar las necesidades de memoria de nuestra
Ancho de palabra: el criterio de diseño debe ser seleccionar el
aplicación debemos separarla en memoria volátil (RAM), memoria no volátil (ROM, EPROM, etc.) y memoria no volátil modificable (EEPROM). Este último tipo de memoria puede ser útil para incluir información específica de la aplicación como un número de serie o parámetros de calibración. El tipo de memoria a emplear vendrá determinado por el volumen de ventas previsto del producto: de menor a mayor volumen será conveniente emplear EPROM, OTP y ROM. En cuanto a la cantidad de memoria necesaria puede ser imprescindible realizar una versión preliminar, aunque sea en pseudo-código, de la aplicación y a partir de ella hacer una estimación de cuánta memoria volátil y no volátil es necesaria y si es conveniente disponer de memoria no volátil modificable. microcontrolador de menor ancho de palabra que satisfaga los requerimientos de la aplicación. Usar un microcontrolador de 4 bits supondrá una reducción en los costes importante, mientras que uno de 8 bits puede ser el más adecuado si el ancho de los datos es de un byte. Los microcontroladores de 16 y 32 bits, debido a su elevado coste, deben reservarse para aplicaciones que requieran sus altas prestaciones (Entrada/Salida potente o espacio de direccionamiento muy elevado).
TIPOS DE ARQUITECTURA DE MICROCONTROLADORES ARQUITECTURA VON NEUMANN
La arquitectura tradicional de computadoras y microprocesadores se basa en el esquema propuesto por John Von Neumann, en el cual la unidad central de proceso, o CPU, esta conectada a una memoria única que contiene las instrucciones del programa y los datos. El tamaño de la unidad de datos o instrucciones esta fijado por el ancho del bus de la memoria. Es decir que un microprocesador de 8 bits, que tiene además un bus de 8 bits que lo conecta con la memoria, deberá manejar datos e instrucciones de una o más unidades de 8 bits (bytes) de longitud. Cuando deba acceder a una instrucción o dato de más de un byte de longitud, deberá realizar más de un acceso a la memoria. Por otro lado este bus único limita la velocidad de operación del microprocesador, ya que no se puede buscar de memoria una nueva instrucción, antes de que finalicen las transferencias de datos que pudieran resultar de la instrucción anterior.
Las dos principales limitaciones de esta arquitectura tradicional son : a) que la longitud de las instrucciones esta limitada por la unidad de longitud de los datos, por lo tanto el microprocesador debe hacer varios accesos a memoria para buscar instrucciones complejas b) que la velocidad de operación (o ancho de banda de operación) esta limitada por el efecto de cuello de botella que significa un bus único para datos e instrucciones que impide superponer ambos tiempos de acceso. La arquitectura von Neumann permite el diseño de programas con código automodificable, práctica bastante usada en las antiguas computadoras que solo tenían acumulador y pocos modos de direccionamiento, pero innecesaria, en las computadoras modernas.
Ventajas: · Facilidad para conectar dispositivos de memoria externa. · Puede ejecutar instrucciones desde la memoria RAM. Desventajas: · La ejecución es más lenta debido a que cada instrucción requiere varios bytes de memoria y el CPU tiene que realizar varias lecturas de memoria para completarla. · Requiere más tiempo de ejecución debido a que primero extrae las instrucciones de la memoria y después los datos. · Si se corrupta el contador de programa (PC) se corre el riesgo de leer un dato y ejecutarlo como si fuera instrucción creando un error de instrucción inválida. Un error de este tipo puede ser producido por variaciones de voltaje o por descargas electrostáticas produciendo que el contador de programa se inicialice con una dirección en la memoria de datos. Es importante considerar este punto en aplicaciones criticas.
ARQUITECTURA HARVAD La arquitectura conocida como Harvard, consiste simplemente en un esquema en el que el CPU esta conectado a dos memorias por intermedio de dos buses separados. Una de las memorias contiene solamente las instrucciones del programa, y es llamada Memoria de Programa. La otra memoria solo almacena los datos y es llamada Memoria de Datos. Ambos buses son totalmente independientes y pueden ser de distintos anchos. Para un procesador de Set de Instrucciones Reducido, o RISC (Reduced Instrucción Set Computer), el set de instrucciones y el bus de la memoria de programa pueden diseñarse de manera tal que todas las instrucciones tengan una sola posición dememoria de programa de longitud. Además, como los buses son independientes, el CPU puede estar accediendo a los datos para completar la ejecución de una instrucción, y al mismo tiempo estar leyendo la próxima instrucción a ejecutar.
Se puede observar claramente que las principales ventajas de esta arquitectura son: que el tamaño de las instrucciones no esta a) relacionado con el de los datos, y por lo tanto puede ser optimizado para que cualquier instrucción ocupe una sola posición de memoria de programa, logrando así mayor velocidad y menor longitud de programa, b) que el tiempo de acceso a las instrucciones puede superponerse con el de los datos, logrando una mayor velocidad de operación. Una pequeña desventaja de los procesadores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas, ya que estas tablas se encontraran físicamente en la memoria de programa (por ejemplo en la EPROM de un microprocesador).
ARQUITECTURA HARVARD
Ventajas: · Realiza el acceso simultáneo de instrucciones y de datos permitiendo así la ejecución de instrucciones en un sólo ciclo de instrucción. · La mayoría de las instrucciones requieren únicamente una palabra de dato, por lo tanto sólo se necesita una lectura de memoria para ejecutarlas (single cicle instructions). Desventajas: · No facilita el uso de dispositivos externos debido a que requiere muchos pins de E/S. · El diseño es más complejo y por lo tanto más costoso.
DEFINICION PASO POR PASO DE LA ARQUITECTURA DEL MICROPROCESADOR
EL PROCESADOR
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. Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.
CISC
El término CISC significa “Conjunto Complejo de Instrucciones” (Complex Instruction Set Computer). Un microcontrolador de este tipo tiene por lo menos 80 instrucciones incluyendo aquellas que realizan tareas muy especializadas y todas funcionan de manera muy diferente a las demás. Por ejemplo, algunas operan solamente en ciertos registros o espacio de memoria y otras sólo reconocen ciertos modos de direccionamiento. La ventaja de esta arquitectura es que la mayoría de las instrucciones son del tipo “macros”, esto es, que permiten al programador utilizar una sola instrucción en vez de varias más simples. Estos microcontroladores son más fáciles de programar y ocupan menos espacio de código pero tienen la desventaja de que requieren más de un ciclo de instrucción para ejecutarse debido a su complejidad. Entre microcontroladores con arquitectura CISC se encuentran el 8051 de Intel, Z80 de Zilog, HC05/HC11 de Motorola, y COP800 de National.
RISC
Una tendencia de la industria es en los diseños con procesadores de arquitectura de Conjunto Reducido de Instrucciones (Reduced Instruction Set Computers). Esta arquitectura consiste en disminuir el número de instrucciones dejando solamente aquellas que realicen funciones muy básicas con el propósito de ahorrar espacio en silicio y aumentar su desempeño. Con esto se logra disminuir el tamaño del chip, utilizan menos pins y consumen menos energía que los CISC, aunque su desventaja es de que requieren más espacio en código debido a que cada instrucción “hace menos”. El conjunto de instrucciones es ortogonal, esto es, que permite que cada instrucción opere sobre cualquier registro y utilice cualquier modo de direccionamiento. No existen restricciones ni excepciones para las instrucciones. Entre microcontroladores con arquitectura RISC se encuentran las familias PIC12C/16C/18C de Microchip, AVR de ATMEL, V850 de NEC, y SH de Hitachi.
SISC:
En los microcontroladores destinados a aplicaciones muy concretas, 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. Esta filosofía se ha bautizado con el nombre de SISC (Conjunto de instrucciones específicas).
MEMORIA
En los microcontroladores la memoria de instrucciones y datos está integrada en el propio chip. Una parte debe ser no volátil, tipo ROM, y se destina a contener el programa de instrucciones que gobierna la aplicación. Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las variables y los datos.
Hay dos peculiaridades que diferencian a microcontroladores de los computadores personales:
los
1. No existen sistemas de almacenamiento masivo como disco duro o disquetes. 2. Como el microcontrolador sólo se destina a una tarea en la memoria ROM, sólo hay que almacenar un único programa de trabajo. La RAM en estos dispositivos es de poca capacidad pues sólo debe contener las variables y los cambios de información que se produzcan en el transcurso del programa. Por otra parte, como sólo existe un programa activo, no se requiere guardar una copia del mismo en la RAM pues se ejecuta directamente desde la ROM.
Los usuarios de computadores personales están habituados a manejar Megabytes de memoria, pero, los diseñadores con microcontroladores trabajan con capacidades de ROM comprendidas entre 512 bytes y 8 k bytes y de RAM comprendidas entre 20 y 512 bytes. Según el tipo de memoria ROM que dispongan los microcontroladores, la aplicación y utilización de los mismos es diferente. Se describen las cinco versiones de memoria no volátil que se pueden encontrar en los microcontroladores del mercado. 1º. ROM con máscara
Es una memoria no volátil de sólo lectura cuyo contenido se graba durante la fabricación del chip. El elevado coste del diseño de la máscara sólo hace aconsejable el empleo de los microcontroladores con este tipo de memoria cuando se precisan cantidades superiores a varios miles de unidades.
2ª. OTP
El microcontrolador contiene una memoria no volátil de sólo lectura “programable una sola vez” por el usuario. OTP (One Time Programmable). Es el usuario quien puede escribir el programa en el chip mediante un sencillo grabador controlado por un programa desde un PC. La versión OTP es recomendable cuando es muy corto el ciclo de diseño del producto, o bien, en la construcción de prototipos y series muy pequeñas. Tanto en este tipo de memoria como en la EPROM, se suele usar la encriptación mediante fusibles para proteger el código contenido.
3ª EPROM
Los microcontroladores que disponen de memoria EPROM (Erasable Programmable Read OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza, como en el caso de los OTP, con un grabador gobernado desde un PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico. 4ª EEPROM
Se trata de memorias de sólo lectura, programables y borrables eléctricamente EEPROM (Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como el borrado, se realizan eléctricamente desde el propio grabador y bajo el control programado de un PC. Es muy cómoda y rápida la operación de grabado y la de borrado. No disponen de ventana de cristal en la superficie.
Los microcontroladores dotados de memoria EEPROM una vez instalados en el circuito, pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho circuito. Para ello se usan “grabadores en circuito” que confieren una gran flexibilidad y rapidez a la hora de realizar modificaciones en el programa de trabajo. El número de veces que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es recomendable una reprogramación continua. Son muy idóneos para la enseñanza y la Ingeniería de diseño. Se va extendiendo en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM en los circuitos programables para guardar y modificar cómodamente una serie de parámetros que adecuan el dispositivo a las condiciones del entorno. Este tipo de memoria es relativamente lenta.
5ª FLASH
Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona como una ROM y una RAM pero consume menos y es más pequeña. A diferencia de la ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor densidad que la EEPROM. La alternativa FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de memoria de programa no volátil. Es más veloz y tolera más ciclos de escritura/borrado. Las memorias EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las incorporan puedan ser reprogramados “en circuito”, es decir, sin tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con este tipo de memoria incorporado al control del motor de un automóvil permite que pueda modificarse el programa durante la rutina de mantenimiento periódico, compensando los desgastes y otros factores tales como la compresión, la instalación de nuevas piezas, etc. La reprogramación del microcontrolador puede convertirse en una labor rutinaria dentro de la puesta a punto.