Es un circuito integrado de alta escala de integraci�n que
incorpora la mayor parte de los elementos que configuran un controlador y que contiene todos los componentes fundamentales de un ordenador, aunque de limitadas prestaciones y que se suele destinar a gobernar una sola tarea. En su memoria s�lo reside un programa que controla en funcionamiento de una tarea determinada, sus l�neas de entrada/salida se conectan a los sensores y actuadores del dispositivo a controlar y, debido a su peque�o tama�o, suele ir integrado en el propio dispositivo al que gobierna. Sumario [ocultar] 1 Componentes 2 Caracter�sticas 3 Estructura b�sica de un microcontrolador 4 Aplicaciones de los microcontroladores 5 Herramientas de Desarrollo 5.1 Ensamblador 5.2 Compilador 5.3 Simulador/Depurador 5.4 Placas de demostraci�n 5.5 Emuladores en circuito 5.6 Programador 6 Fuentes Componentes Procesador o CPU (Unidad Central de Proceso). Memoria RAM para contener los datos. Memoria para el programa tipo ROM/EPROM/EEPROM/Flash. L�neas de E/S para comunicarse con el exterior. Diversos m�dulos para el control de perif�ricos (temporizadores, puertos 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. Caracter�sticas Son dise�ados para reducir el costo econ�mico y el consumo de energ�a de un sistema en particular. Por eso el tama�o de la unidad central de procesamiento, la cantidad de memoria y los perif�ricos incluidos depender�n de la aplicaci�n. El control de un electrodom�stico sencillo como una batidora utilizar� un procesador muy peque�o (4 u 8 bits) porque sustituir� a un aut�mata finito. En cambio, un reproductor de m�sica y/o v�deo digital (mp3 o mp4) requerir� de un procesador de 32 bits o de 64 bits y de uno o m�s C�decs de se�al digital (audio y/o v�deo). El control de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un microcontrolador de 16 bits, al igual que el sistema de control electr�nico del motor en un autom�vil. Los microcontroladores representan la inmensa mayor�a de los chips de computadoras vendidos, sobre un 50 % son controladores "simples" y el restante corresponde a DSPs m�s especializados. Mientras se pueden tener uno o dos microprocesadores de prop�sito general en casa (Ud. est� usando uno para esto), usted tiene distribuidos seguramente entre los electrodom�sticos de su hogar una o dos docenas de microcontroladores. Pueden encontrarse en casi cualquier dispositivo electr�nico como autom�viles, lavadoras, hornos microondas, tel�fonos, etc.Un microcontrolador difiere de una unidad central de procesamiento normal, debido a que es m�s f�cil convertirla en una computadora en funcionamiento, con un m�nimo de circuitos integrados externos de apoyo. La idea es que el circuito integrado se coloque en el dispositivo, enganchado a la fuente de energ�a y de informaci�n que necesite, y eso es todo. Un microprocesador tradicional no le permitir� hacer esto, ya que espera que todas estas tareas sean manejadas por otros chips. Hay que agregarle los modulos de entrada y salida (puertos) y la memoria para almacenamiento de informaci�n. Por ejemplo, un microcontrolador t�pico tendr� un generador de reloj integrado y una peque�a cantidad de memoria de acceso aleatorio y/o ROM/EPROM/EEPROM/flash, significando que para hacerlo funcionar, todo lo que se necesita son unos pocos programas de control y un cristal de sincronizaci�n. Los microcontroladores disponen generalmente tambi�n de una gran variedad de dispositivos de entrada/salida, como convertidores de anal�gico a digital, temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN. Frecuentemente, estos dispositivos integrados pueden ser controlados por instrucciones de procesadores especializados. Los modernos microcontroladores frecuentemente incluyen un lenguaje de programaci�n integrado, como el lenguaje de programaci�n BASIC que se utiliza bastante con este prop�sito. Los microcontroladores negocian la velocidad y la flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en el chip para incluir funcionalidad, como los ]]dispositivos de entrada/salida]] o la memoria que incluye el microcontrolador, se ha de prescindir de cualquier otra circuiter�a. Estructura b�sica de un microcontrolador En esta figura, vemos al microcontrolador metido dentro de un encapsulado de circuito integrado, con su procesador (CPU), buses, memoria, perif�ricos y puertos de entrada/salida. Fuera del encapsulado se ubican otros circuitos para completar perif�ricos internos y dispositivos que pueden conectarse a los pines de entrada/salida. Tambi�n se conectar�n a los pines del encapsulado la alimentaci�n, masa, circuito de completamiento del oscilador y otros circuitos necesarios para que el microcontrolador pueda trabajar. Aplicaciones de los microcontroladores Si s�lo se dispusiese de un modelo de microcontrolador, �ste deber�a tener muy potenciados todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta potenciaci�n supondr�a en muchos casos un despilfarro. En la pr�ctica cada fabricante de microcontroladores oferta un elevado n�mero de modelos diferentes, desde los m�s sencillos hasta los m�s poderosos. Es posible seleccionar la capacidad de las memorias, el n�mero de l�neas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de funcionamiento, etc. Por todo ello, un aspecto muy destacado del dise�o es la selecci�n del microcontrolador a utilizar. Cada vez existen m�s productos que incorporan un microcontrolador con el fin de aumentar sustancialmente sus prestaciones, reducir su tama�o y coste, mejorar su fiabilidad y disminuir el consumo. Algunos fabricantes de microcontroladores superan el mill�n de unidades de un modelo determinado producidas en una semana. Este dato puede dar una idea de la masiva utilizaci�n de estos componentes. Los microcontroladores est�n siendo empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden ser juguetes, horno microondas, frigor�ficos, televisores, ordenadores, impresoras, m�dems, el sistema de arranque de nuestro coche, etc. Y otras aplicaciones con las que seguramente no estaremos tan familiarizados como instrumentaci�n electr�nica, control de sistemas en una nave espacial, etc. Una aplicaci�n t�pica podr�a emplear varios microcontroladores para controlar peque�as partes del sistema. Estos peque�os controladores podr�an comunicarse entre ellos y con un procesador central, probablemente m�s potente, para compartir la informaci�n y coordinar sus acciones, como, de hecho, ocurre ya habitualmente en cualquier PC. Los microcontroladores se encuentran por todas partes: Sistemas de comunicaci�n: en grandes automatismos como centrales y en t�lefonos fijos, m�viles, fax, etc. Electrodom�sticos: lavadoras, hornos, frigor�ficos, lavavajillas, batidoras, televisores, v�deos, reproductores DVD, equipos de m�sica, mandos a distancia, consolas, etc. Industria inform�tica: Se encuentran en casi todos los perif�ricos; ratones, teclados, impresoras, esc�ner, etc. Automoci�n: climatizaci�n, seguridad, ABS, etc. Industria: Aut�matas, control de procesos, etc Sistemas de supervisi�n, vigilancia y alarma: ascensores, calefacci�n, aire acondicionado, alarmas de incendio, robo, etc. Otros: Instrumentaci�n, electromedicina, tarjetas (smartcard), sistemas de navegaci�n, etc. Herramientas de Desarrollo Las herramientas de desarrollo est�n formadas por un conjunto de programas e interfaces(IDEs) que permiten realizar los proyectos de la forma m�s rapida y eficiente posible. Las principales herramientas de ayuda al desarrollo de sistemas basados en microcontroladores se describen a continuaci�n Ensamblador La programaci�n en lenguaje ensamblador puede resultar un tanto ardua para el principiante, pero permite desarrollar programas muy eficientes, ya que otorga al programador el dominio absoluto del sistema. Los fabricantes suelen proporcionar el programa ensamblador de forma gratuita y en cualquier caso siempre se puede encontrar una versi�n gratuita para los microcontroladores m�s populares. Compilador La programaci�n en un lenguaje de alto nivel (como C o Basic) permite disminuir el tiempo de desarrollo de un producto y si adem�s est� familiarizado con C o Basic es una buena opci�n. No obstante, cuando el compilador convierta el c�digo del programa a un lenguaje ensamblado, cada l�nea de c�digo del programa en lenguaje de alto nivel habr� generado bastantes m�s l�neas de c�digo en lenguaje ensamblador, normalmente en una relaci�n de uno a tres. Esto significa que para utilizar un lenguaje de alto nivel necesitaremos un microcontrolador con una capacidad de memoria relativamente grande. Si el programa que estamos desarrollando necesita utilizar n�meros con decimales, o con notaci�n cient�fica o se utilizan operaciones complejas, como pueden ser las trigonom�tricas, es casi obligado utilizar un lenguaje de alto nivel. Pero si lo que se va a hacer es manipular bits en registros, entradas, salidas y c�lculos sencillos, el lenguaje ensamblado es la mejor opci�n. Las versiones m�s potentes de compiladores suelen ser muy caras, aunque para los microcontroladores m�s populares pueden encontrarse versiones demo limitadas e incluso compiladores gratuitos. Como compilador gratuito puede utilizarse el compilador C GNU, que es un compilador C de c�digo abierto tan bueno como los compiladores C comerciales pero que sin embargo tiene un proceso de instalaci�n que no es sencillo. Adem�s hay que comprobar que arquitecturas de microcontrolador soporta. Algunas de las cuales son MSP430 de TI, AVR de Atmel y HC11 de Motorola. Simulador/Depurador Se trata de software que es capaz de ejecutar en una PC aplicaciones desarrolladas para el microcontrolador. Estos permiten tener un control absoluto sobre la ejecuci�n de la aplicaci�n, siendo ideales para la depuraci�n de las mismas. Su gran inconveniente es que generalmente se imposibilita simular la entrada de se�ales (sobre todo anal�gicas) al microcontrolador. Tampoco toman en cuentan los posibles ruidos en las entradas, pero, al menos, permiten el paso f�sico de la implementaci�n de un modo m�s seguro y menos costoso, puesto que ahorraremos en grabaciones de chips para la prueba in-situ. Placas de demostraci�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 indicadores visuales, LCD, teclados, f�cil acceso a los pines de E/S, etc. Pueden incluir un programa de control o sistema operativo que recibe el nombre de programa monitor. El programa monitor de algunas placas de demostraci�n, aparte de permitir cargar programas y datos en la memoria del microcontrolador, puede permitir en cualquier momento realizar ejecuci�n paso a paso(debug), monitorizar el estado del microcontrolador o modificar los valores almacenados en sus registros. Emuladores en circuito Se trata de un instrumento que se coloca entre el PC anfitri�n y el z�calo de la tarjeta de circuito impreso donde se alojar� el microcontrolador definitivo. El programa es ejecutado desde el PC, pero para la placa de la aplicaci�n es como si lo hiciese el mismo microcontrolador que luego ir� en el z�calo. Presenta en pantalla toda la informaci�n tal y como luego suceder� cuando se coloque la c�psula. Programador Es un dispositivo que conectado a un PC permite grabar en el microcontrolador el programa desarrollado. Algunos puede fabricarlos uno mismo y resultan muy econ�micos. Tambi�n existe software gratuito para programar no ya solo microcontroladores sino tambi�n otros dispositivos, como memorias. Actualmente se tiende a realizar la programaci�n en la propia placa de utilizaci�n mediante ISP, In System Programmation o ICSP, In Circuit Serial Programation. De esta manera se puede programar al microcontrolador una vez est� montado en la placa del circuito utilizando una conexi�n de dos, tres o cuatro terminales. Para utilizar esta t�cnica se utiliza un programador que suele ser muy sencillo y que en algunos casos puede construir uno mismo. Otra posibilidad es utilizar un "cargador de arranque"(bootloader), muy util en la etapa de desarrollo de un programa. Un cargador de arranque es un peque�o programa en el microcontrolador que est� montado en la placa del circuito que se est� desarrollando y que puede comunicarse con las herramientas de desarrollo (que se van a utilizar para escribir el c�digo del programa de la aplicaci�n) a trav�s de un enlace serie, como puede ser RS232, USB, I2C o un bus CAN. El programa cargador de arranque debe interpretar comandos para leer, grabar y borrar la parte de memoria reservada para el programa de la aplicaci�n. Cuando se desea verificar el programa que se est� desarrollando se inicia la comunicaci�n con el programa cargador de arranque, que carga el c�digo de programa en la memoria de programa del microcontrolador. Despu�s el programa cargador de arranque transfiere el control al programa cargado y entonces se puede ejecutar y verificar el programa cargado. Esta operaci�n de carga y prueba puede realizarse tantas veces como sea necesario. Los requerimientos que tiene que cumplir el microcontrolador a utilizar son: Suficiente memoria de programa para alojar tanto el cargador de arranque como el programa en desarrollo. Que el microcontrolador permita que pueda modificarse la memoria de programa por si mismo. Un puerto serie para la comunicaci�n. Por ejemplo, el microcontrolador LPC210x de la casa Philips incluye un cargador de arranque serie integrado que est� ubicado en los 8 K primeros de su memoria Flash. Est�ndo el terminal P0.14 a masa y gener�ndo un reset el LPC210x ejecuta el programa cargador de arranque. Utiliz�ndo un programa para PC gratuito de la casa Philips y un cable serie conectado entre el PC y la UART del microcontrolador LPC210x (a trav�s de un conversor TTL/RS232 como el c.i. MAX232) se puede realizar la programaci�n del microcontrolador. Tambi�n resulta interesante el interface JTAG (que por ejemplo posee el microcontrolador LPC210x), que puede utilizarse para programar el dispositivo y para depurar un programa durante su ejecuci�n en el microcontrolador. Para utilizar el interface JTAG se necesita un m�dulo interfaz de depuraci�n JTAG que se conecta con entre el sistema de desarrollo del microcontrolador y el PC que lo aloja. En el mercado existen distintos m�dulos interfaces JTAG comerciales pero tambi� se pueden encontrar otros en Internet.