lunes, 12 de septiembre de 2016

Surgimiento y desarrollo




·        1971 Intel fabrica el primer microprocesador (el 4004) de tecnología PMOS. Este era un microprocesador de 4 bits y fue fabricado por Intel a petición de Datapoint Corporation con el objeto de sustituir la CPU de terminales inteligentes que eran fabricadas en esa fecha por Datapoint mediante circuitería discreta. El dispositivo fabricado por Intel resultó 10 veces más lento de lo requerido y Datapoint no lo compró, de esta manera Intel comenzó a comercializarlo. El 4004 era un 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. Este procesador se utilizó en las primeras calculadoras de escritorio.

·      1972 Las aplicaciones del 4004 estaban muy limitadas por su reducida capacidad y rápidamente 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 al mercado el 8080 el primer microprocesador de tecnología NMOS, lo cual permite superar la velocidad de su predecesor (el 8008) por un factor de diez, es decir, el 8080 puede realizar 500000 operaciones por segundo, además se incrementó la capacidad de direccionamiento de memoria a 64 kbytes. A partir del 8080 de Intel se produjo una revolución en el diseño de microcomputadoras y varias compañías fabricantes de circuitos integrados comenzaron a producir microprocesadores. Algunos ejemplos de los primeros microprocesadores son: el IMP-4 y el SC/MP de National 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. En ese mismo año, Motorola abate dramáticamente los costos con sus microprocesadores 6501 y 6502 (este último adoptado por APPLE para su primera microcomputadora personal). Estos microprocesadores se comercializan en $20 y $25 (dls. USA) respectivamente. 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 (ningún producto era compatible con el de otro fabricante).


·        1976 Surgen las primeras microcomputadoras de un solo 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 de información y por otro lado, los segundos han 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.

domingo, 11 de septiembre de 2016

¿Que es un microcontrolador?



Recibe el nombre de controlador el dispositivo que se emplea para el gobierno de uno o varios procesos. Por ejemplo, el controlador que regula el funcionamiento de un horno eléctrico dispone de un sensor que mide constantemente su temperatura interna y actúa sobre las resistencias para mantener la temperatura dentro del rango establecido.
Controladores



   
 Aunque el concepto de controlador ha permanecido invariable a través del tiempo, su implementación física ha variado frecuentemente. Hace tres décadas, los controladores electrónicos se construían exclusivamente con componentes de lógica discreta, posteriormente se emplearon los microprocesadores, que se rodeaban con chips de memoria y E/S sobre una tarjeta de circuito impreso. En la actualidad, todos los elementos del controlador se han podido incluir en un solo circuito integrado, el cual recibe el nombre de microcontrolador. Realmente consiste en un sencillo pero completo ordenador contenido en un circuito integrado.
    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.

    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).


Diferencia entre el Microprocesador y el Microcontrolador


Microprocesadores
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.

  • ·        Requieren de otros chips para crear un sistema completo.
  • ·        Tienen alta capacidad de procesado.
  • ·        Memorias masivas de datos, con caché, etc.
  • ·        Suelen ser de propósito general.
  • ·        Costo elevado.











Microcontrolador

En cambio un Microcontrolador es un sistema cerrado, es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En éste caso el controlador recibe el nombre de controlador empotrado.
En donde todas las partes del procesador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos.



TABLA COMPARATIVA
MICROPROCESADORES VS MICROCONTROLADORES


viernes, 9 de septiembre de 2016

Arquitectura interna y externa



En esta entrada hablare de cómo se compone la arquitectura de microcontroladores, antes de eso esta es una breve introducción sobre que son estos pequeños dispositivos. 

El microcontrolador es un dispositivo electrónico que se puede realizar proceso lógicos, estos son programados en lenguaje ensamblador y son introducidos a esto mediante un programador.



Microcontrolador:
Ø  Un microcontrolador requiere un chip de memoria para los periféricos que contiene.
Ø  El funcionamiento de un microcontrolador es de usos múltiples.
Ø  Reducción de la cantidad de espacio en la implementación de un diseño dado.
Ø  Reduce el costo de implementación.
Ø  Permite desarrollo de aplicaciones específicas de manera más rápida y eficiente.
Ø  Los fabricantes dan mucho soporte sobre las aplicaciones más comunes.
Ø  Se adaptan mejor a aplicaciones específicas.
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.

Ø  Instrucciones especializadas
Ø  Se requieren un set de instrucciones amplio para dar soporte a una arquitectura.
Ø  Programas requieren menos código fuente.

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. RISC (Reduced  Instruction Set Computer): 
Ø  Set de instrucciones reducido
Ø  Instrucciones de carácter general
Ø  Duración homogénea de la ejecución de las instrucciones.
Ø  Se requiere más código para describir una operación que con una arquitectura CISC.

  • 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).

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:
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 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.
    


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.


Arquitectura externa de microcontroladores




Von Neumann
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.      
Ø  Ejecución secuencial de las instrucciones
Ø  Existe solo una unidad de búsqueda y una unidad de ejecución.
Ø  La instrucción siguiente se busca hasta que se ejecute la instrucción actual.

Segmentada
 Esta arquitectura es similar al uso de una cadena de montaje en una fábrica de manufacturación. Una cadena de montaje saca partida del hecho de que el producto pasa atreves de varias etapas de producción. Extendiendo el proceso de producción de una cadena de montaje se puede trabajar sobre los productos en varias etapas como segmentación porque como en una tubería o cause en un extremo nuevo entradas se aceptan antes de que algunas entradas aceptadas con anterioridad aparezcan como salidas en el otro extremo.
Divide la búsqueda de las instrucciones de manera cuando se ejecute la instrucción actual ya se está ejecutando la siguiente.
Multiplica la velocidad de ejecución al doble que la Von Newman.


Los microcontroladores PIC responden a la arquitectura Harvard.
·                     Se conoce como arquitectura de ejecución paralela.
·                     Divide los procesos
·                     Bus de direcciones y de datos separados en la arquitectura. 




Podemos encontrar elementos comunes en los microcontroladores
ADC (convertidor Analogico Digital)
USART
RTC es un reloj de ordenador.
Puertos entrada/salida paralelos
PWM
USB


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.
 

Existen diferentes aplicaciones de los microcontroladores (µcc) donde cualquier problema en el cual se requiera un instrumento digital compacto que sea capaz de realizar funciones como las siguientes, es posible pensar en sistema basado en un µcc: 
Ø  secuenciamiento
Ø  codificación/decodificación
Ø  monitoreo
Ø  procesamiento de señales
Ø  control retroalimentado 
Ø  temporización
Ø  cálculos aritméticos sencillos
Ø  comunicaciones
Ø  automatización
Ø  despliegue digital 

Ø  control on - off etc