sábado, 10 de septiembre de 2016


¿Que es un microcontrolador?


    Los microcontroladores están conquistando el mundo. 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 y los televisores de nuestro hogar. Pero la invasión acaba de comenzar y el siglo XXI será testigo de la conquista masiva de estos diminutos computadores, que gobernarán la mayor parte de los aparatos que fabriquemos y usamos los humanos.

Un microcontrolador 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.

Evolución de los microcontroladores.


A medida que fue transcurriendo el tiempo los microcontroladores fueron tomando mayor relevancia en el ámbito de la electrónica y la computación, esto debido a los grandes resultados que se obtienen al integrarlos a los distintos circuitos eléctricos  tomando muchas veces el control completo de un sistema y también a la gran evolución que tuvieron durante en transcurso del tiempo en cuanto a su arquitectura y funcionamiento, continuación les presentamos una pequeña lista de la evolución de los microcontroladores.

Empezamos nuestra lista con:

8048 (Intel):




El primer microcontrolador. Antiguo y un poco obsoleto (para los estándares de hoy en día), es aún muy popular debido a su bajo precio, disponibilidad y un enorme rango de herramientas de desarrollo. Tiene arquitectura de Harvard modificada con programa ROM en chip con una memoria RAM de 64 a 256 bytes adicionales en el chip. La entrada salida tiene su propio espacio de memoria.

8051 (Intel y otros):

Segunda generación de microcontroladores Intel, ha marcado muchas de las características actuales.Tiene un diseño un poco raro, pero es muy potente y sencillo de programar (una vez que se conoce). Su arquitectura es Hardvard Modificada con espacio de direcciones separadas para memoria de programa y memoria de datos.
El 8051 puede direccionar hasta 64k de memoria de datos externa, y solo puede acceder a ella mediante direccionamiento indirecto. 80c196 (MCS-96)
La tercera generación de microcontroladores Intel, el 80C196 es un procesador de 16 bits. Originalmente fabricado en tecnología NMOS (8096), ahora está disponible principalmente en CMOS. Intel Corp. Ha introducido recientemente una versión del doble de velocidad (50 MHz) del 80C196. Sus características son:
Multiplicador y divisor hardware, 6 modos de direccionamiento. Alta velocidad de E/S.
Conversor A/D.
Canal de comunicaciones Serie.
Hasta 40 puertos de E/S.
8 Controladores de interrupción programables.


El 80386 EX:




Es por supuesto un 386 vestido de microcontrolador, dentro del chip existen:

Entrada/Salida serie.
Manejo de la alimentación del chip.
DMA (Acceso directo a memoria)
Contadores/Temporizadores.
Circuito de refresco para memoria DRAM.
Una de las mayores ventajas de estos dispositivos es que se pueden utilizar herramientas de desarrollo estándar para PC (Compiladores, ensambladores, etc.).


65C02/W65C816S/W65C134S WDC (Western Design Center):

El Western Design Center Inc. es el dueño original y diseñador del microcontrolador 65C02 de 8-bit que se usó en el Apple original.
Para el ordenador Commodore y el Atari WDC desarrollo el microprocesador 65C816 de 16 bits.


El W65C816S es un microcontrolador con un 65C02 dentro.

El W65C134S es un microcontrolador hecho con un 65C816.



68HC05 (Motorola):




La compañía Motorola, formó una nueva compañía de nombre Freescale que inicialmente comercializó los productos fabricados por Motorola y ahora ha desarrollado nuevos microcontroladores de 8, 16 y 32 bits con mayor cantidad de prestaciones.

El microcontrolador 68705 actualmente sigue siendo comercializado, pero fue declarado obsoleto en el año 2003 y reemplazado por microcontroladores más modernos, con mayor cantidad de prestaciones y sobre todo mayor capacidad de memoria para almacenar programas.


68HC11 (Motorola y Toshiba):




El popular 68HC11 es un poderoso microcontrolador de Motorola de 8 bits con las siguientes características:
Direcciones de 16 bits.
Juego de instrucciones similar a la familia 68xx. (6801, 6805, 6809)
Tiene un único espacio de memoria principal donde están las instrucciones, datos, E/S, y temporizadores.


PIC (MicroChip):

Aunque el éxito de los microcontroladores PIC es reciente, su introducción en el mercado se realizó hace 20 años.
Los microcontroladores PIC fueron los primeros microcontroladores RISC, RISC generalmente implica que la simplicidad de diseño permite añadir más características a bajo precio y la línea PIC no es una excepción.
Aunque tiene pocas instrucciones (33 instrucciones el 16C5X mientras que el Intel 8048 tiene más de 90), la línea PIC tiene las características siguientes:


Buses de instrucciones y datos separados (arquitectura Harvard) lo que permite el acceso simultáneo a las instrucciones y a los datos, y el solapamiento de algunas operaciones para incrementar las prestaciones de proceso.
Los microcontroladores PIC están ganando popularidad debido a su bajo costo, pequeño tamaño y a su bajo consumo pueden ser usados en áreas en las que antes se pensaba que eran inapropiados.


COP400 Familia:



La familia C0P400 es un microcontrolador de 4 bit P2CMOS que ofrece desde 512 hasta 2K de ROM y desde 32×4 hasta 160×4 de memoria RAM.
Lejos de la vieja tecnología, los microcontroladores de 4 bits tienen un importante mercado y tienen más aplicaciones que nunca.
Estos dispositivos son muy versátiles, hay más de 60 diferentes.



COP800 Familia (National Semiconductor):



La familia COP800 Basic es un microcontrolador de 8 bits totalmente estático, fabricado usando puertas “double metal silicon” de tecnología microCMOS.
Este microcontrolador de bajo costo contiene:
Temporizadores. Lógica de Interrupción.

Memoria ROM. Memoria RAM. Entrada/Salida

Memoria de E/S mapeada. Entrada/Salida serie Microwire.

UART Muchos temporizadores/Contadores de 16 bits.

Interrupciones vectorizadas.Comparador.

Temporizador WATCHDOG. Monitor de reloj.

Conversor A/D de 8 canales. Protección Brownout.


Diferencias entre microprocesadores y microcontroladores.


    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/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.
    Los productos que para su regulación incorporan un microcontrolador disponen de las siguientes ventajas:
Aumento de prestaciones: un mayor control sobre un determinado elemento representa una mejora considerable en el mismo.
Aumento de la fiabilidad: al reemplazar el microcontrolador por un elevado número de elementos disminuye el riesgo de averías y se precisan menos ajustes.
Reducción del tamaño en el producto acabado: La integración del microcontrolador en un circuito integrado disminuye el volumen, la mano de obra y los stocks.
Mayor flexibilidad: las características de control están programadas por lo que su modificación sólo necesita cambios en el programa de instrucciones.
    Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este caso el controlador recibe el nombre de controlador empotrado (embedded controller).
El microprocesador es un circuito integrado que contiene la Unidad Central
de Proceso (UCP), también llamada procesador, de un computador. La UCP está formada por la Unidad de Control, que interpreta las instrucciones, y el camino de datos, que las ejecuta. Los pines de un microprocesador sacan al exterior las líneas de sus buses de direcciones, datos y control, para permitir conectarle con la Memoria y los
Módulos de E/S y configurar un computador implementado por varios circuitos integrados. Se dice que un microprocesador es un sistema abierto porque su configuración es variable de acuerdo con la aplicación a la que se destine.
Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de los buses en el exterior permite que se configure a la medida de la aplicación. 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. 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. 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.

Fabricantes de microcontroladores.




Arquitectura de los microcontroladores.

Arquitectura básica

    Aunque inicialmente todos los microcontroladores adoptaron la arquitectura clásica de von Neumann, en el momento presente se impone la arquitectura 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) mientras que 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.




    Los microcontroladores PIC responden a la arquitectura Harvard.
El 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.


    Existen tres orientaciones en cuanto a la arquitectura y funcionalidad de los procesadores actuales.

CISC: Un gran número de procesadores usados en los microcontroladores están basados en la filosofía CISC (Computadores de Juego de Instrucciones Complejo). Disponen de más de 80 instrucciones máquina en su repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas que actúan como macros.

RISC: Tanto la industria de los computadores comerciales como la de los microcontroladores están decantándose hacia la filosofía 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. La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

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 (Computadores de Juego de Instrucciones Específico).

Memoria
    En los microcontroladores la memoria de instrucciones y datos está integrada en el propio circuito integrado. 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 los microcontroladores de los PC's:
No existen sistemas de almacenamiento masivo como disco duro o disquetes.
Como el microcontrolador sólo se destina a una tarea en la memoria de programa, sólo hay que almacenar un único programa de trabajo.
    La memoria de datos (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 memoria de programa (ROM).
    El usuario de PC está habituados a manejar Megabytes de memoria, pero los diseñadores con microcontroladores trabajan con capacidades de memoria de programa de 512 bytes, 1K, 2K (hasta unos 64K) y de RAM de 20 bytes, 68 bytes, 512 bytes (hasta unos 4K).

    Según el tipo de memoria de programa 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.
    Máscara viene de la forma cómo se fabrican los circuitos integrados. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se obtienen a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una máscara con agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios procesos similares pero más complicados se consigue fabricar los transistores y diodos que componen un circuito integrado.
    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. Hoy día se utilizan poco, siendo sustituidas por memorias EEPROM o Flash.

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. Hoy día están siendo sustituidas por memorias de tipo Flash.
    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. Son idóneas para la enseñanza y la Ingeniería de diseño.

    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.

Puertos de Entrada y Salida
    La principal utilidad de las patillas que posee la cápsula que contiene un microcontrolador es soportar las líneas de E/S que comunican al computador interno con los periféricos exteriores y según los controladores de periféricos que posea cada modelo de microcontrolador, se destinan a proporcionar el soporte a las señales de entrada, salida y control.
    Todos los microcontroladores destinan algunas de sus patillas a soportar líneas de E/S de tipo digital, esto es, todo o nada. Por lo general, estas líneas se agrupan de ocho en ocho formando Puertos. Las líneas digitales de los Puertos pueden configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit correspondiente de un registro destinado a su configuración.

Reloj principal
    Todos los microcontroladores disponen de 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. Esta señal del reloj es el motor del sistema y la que hace que el programa y los contadores avancen.
    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 y de calor generado.

Cada fabricante oferta numerosas versiones de una arquitectura básica de microcontrolador. En algunas amplía las capacidades de las memorias, en otras incorpora nuevos recursos, en otras reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor del diseñador es encontrar el modelo mínimo que satisfaga todos los requerimientos de su aplicación. De esta forma, minimizará el coste, el hardware y el software.

    Los principales recursos específicos que incorporan los microcontroladores son:

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.
Puertos de comunicación.

     
Temporizadores o "Timers"

    Se emplean para controlar periodos de tiempo (temporizadores) y para llevar la cuenta de acontecimientos que suceden en el exterior (contadores).
     Para la medida de tiempos se carga un registro con el valor adecuado y a continuación dicho valor se va incrementando o decrementando al ritmo de los impulsos de reloj o algún múltiplo hasta que se desborde y llegue a 0, momento en el que se produce un aviso.
     Cuando se desean contar acontecimientos que se materializan por cambios de nivel o flancos en alguna de las patillas del microcontrolador, el mencionado registro se va incrementando o decrementando al ritmo de dichos impulsos.

Perro guardián o "Watchdog"

    Cuando un ordenador personal se bloquea por un fallo del software u otra causa, se pulsa el botón del reset y se reinicializa el sistema.
     En la mayoría de los casos y a diferencia de un ordenador personal, un microcontrolador funciona sin el control de un supervisor y de forma continuada las 24 horas del día y 365 días al año. El Perro guardián consiste en un temporizador que, cuando se desborda y pasa por 0, provoca un reset automáticamente en el sistema.
     Se debe diseñar el programa de trabajo que controla la tarea de forma que refresque o inicialice al Perro guardián antes de que provoque el reset. Si falla el programa o se bloquea, el programa no refrescará al Perro guardián y, al completar su temporización, provocará el reset del sistema.

Protección ante fallo de alimentación o "Brownout"
     Se trata de un circuito que resetea al microcontrolador cuando el voltaje de alimentación (VDD) es inferior a un voltaje mínimo ("brownout"). Mientras el voltaje de alimentación sea inferior al de brownout el dispositivo se mantiene reseteado, comenzando a funcionar normalmente cuando sobrepasa dicho valor. Esto es muy útil para evitar datos erróneos por transiciones y ruidos en la línea de alimentación.

Estado de reposo ó de bajo consumo
     Son abundantes las situaciones reales de trabajo en que el microcontrolador debe esperar, sin hacer nada, a que se produzca algún acontecimiento externo que le ponga de nuevo en funcionamiento. Para ahorrar energía, (factor clave en los aparatos portátiles), los microcontroladores disponen de una instrucción especial (SLEEP en los PIC), que les pasa al estado de reposo o de bajo consumo, en el cual los requerimientos de potencia son mínimos. En dicho estado se detiene el reloj principal y se "congelan" sus circuitos asociados, quedando sumido en un profundo "sueño" el microcontrolador. Al activarse una interrupción ocasionada por el acontecimiento esperado, el microcontrolador se despierta y reanuda su trabajo. Para hacernos una idea, esta función es parecida a la opción de Suspender en el menú para apagar el equipo (en aquellos PCs con administración avanzada de energía).
  

Conversor A/D (CAD)

    Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital) pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen disponer de un multiplexor que permite aplicar a la entrada del CAD diversas señales analógicas desde las patillas del circuito integrado.

Conversor D/A (CDA) 
    Transforma los datos digitales obtenidos del procesamiento del computador en su correspondiente señal analógica que saca al exterior por una de las patillas de la cápsula. Existen muchos dispositivos de salida que trabajan con señales analógicas.

Comparador analógico 
    Algunos modelos de microcontroladores disponen internamente de un Amplificador Operacional que actúa como comparador entre una señal fija de referencia y otra variable que se aplica por una de las patillas de la cápsula. La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea mayor o menor que la otra.

    También hay modelos de microcontroladores con un módulo de tensión de referencia que proporciona diversas tensiones de referencia que se pueden aplicar en los comparadores.

Modulador de anchura de impulsos o PWM 
    Son circuitos que proporcionan en su salida impulsos de anchura variable, que se ofrecen al exterior a través de las patillas del encapsulado. Resulta util para sistemas de control de potencia, como por ejemplo motores.

Puertos de comunicación 
    Con objeto de dotar al microcontrolador de la posibilidad de comunicarse con otros dispositivos externos, otros buses de microprocesadores, buses de sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras normas y protocolos. Algunos modelos disponen de recursos que permiten directamente esta tarea, entre los que destacan:

UART, adaptador de comunicación serie asíncrona.
USART, adaptador de comunicación serie síncrona y asíncrona
Puerto paralelo esclavo para poder conectarse con los buses de otros microprocesadores.
USB (Universal Serial Bus), el conocido bus serie para los PC.
Bus I2C, que es un interfaz serie de dos hilos desarrollado por Philips.
Interface SPI, un puerto serie síncrono.
CAN (Controller Area Network), para permitir la adaptación con redes de conexionado multiplexado desarrollado conjuntamente por Bosch e Intel para el cableado de dispositivos en automóviles. En EE.UU. se usa el J185O.
TCP/IP, ya existen microcontroladores con un adaptador de comunicación para este protocolo.
    Tanto el I2C en televisores, como el Bus CAN en automóviles, fueron diseñados para simplificar la circuitería que supone un bus paralelo de 8 líneas dentro de un televisor, así como para librar de la carga que supone una cantidad ingente de cables en un vehículo.


Arquitectura von-Neumman



La arquitectura Von Neumann, también conocida como modelo de Von Neumann o arquitectura Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John von Neumann y otros, en el primer borrador de un informe sobre el EDVAC. Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógicaregistros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida. El significado ha evolucionado hasta ser cualquier computador de programa almacenado en el cual no pueden ocurrir una extracción de instrucción y una operación de datos al mismo tiempo, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann y muchas veces limita el rendimiento del sistema.

El diseño de una arquitectura Von Neumann es más simple que la arquitectura Harvard más moderna, que también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones.

Un computador digital de programa almacenado es una que mantiene sus instrucciones de programa, así como sus datos, en memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que fueron programadas por ajustando interruptores e insertando parches, conduciendo datos de la ruta y para controlar las señales entre las distintas unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre Von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.

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.
    La distribución de las ventas según su aplicación es la siguiente:
Una tercera parte se absorbe en las aplicaciones relacionadas con los ordenadores y sus periféricos.
La cuarta parte se utiliza en las aplicaciones de consumo (electrodomésticos, juegos, TV, vídeo, etc.)
El 16% de las ventas mundiales se destinó al área de las comunicaciones.
Otro 16% fue empleado en aplicaciones industriales.
El resto de los microcontroladores vendidos en el mundo, aproximadamente un 10% fueron adquiridos por las industrias de automoción.


Llegados a este punto y con toda la información que poseemos hasta aquí, cabe preguntarse cual de todos estos microcontroladores es el “mejor” si es que es posible definir alguno de ellos como tal. Existen diversos fabricantes y multitud de modelos que dificultan esta tarea, aun así, podemos establecer ciertos criterios de comparación que nos la facilitan. 

Ranking de ventas de microcontroladores.

Llegados a este punto y con toda la información que poseemos hasta aquí, cabe preguntarse cual de todos estos microcontroladores es el “mejor” si es que es posible definir alguno de ellos como tal. Existen diversos fabricantes y multitud de modelos que dificultan esta tarea, aun así, podemos establecer ciertos criterios de comparación que nos la facilitan.
· Principales Marcas: Según volumen de ventas y diversidad de modelos podemos establecer como principales a los siguientes fabricantes: · Microchip Technology Corp. · STMicroelectronics · Atmel Corp. · Motorola Semiconductors Corp. Como se puede apreciar en las siguientes gráficas basadas en datos referentes a ventas, crecimientos de empresa anuales, cuotas de mercado y capitalización bursátil referentes al mercado de los circuitos integrados, compañías como Microchip, Motorola y Atmel son susceptibles de mención y estudio debido a su especialización en el área de los microcontroladores.