Páginas

domingo, 19 de febrero de 2012

[Emb Comp Lab] Microcontroladores

Un microcontrolador (abreviado μC,UC o MCU) es un circuito integrado programable, capaz de ejecutar las órdenes grabadas en su memoria. Está compuesto de varios bloques funcionales, los cuales cumplen una tarea específica. Un microcontrolador incluye en su interior las tres unidades funcionales principales de una computadora: unidad central de procesamiento, memoria y periféricos de entrada y salida.

Al ser fabricados, la EEPROM del microcontrolador no posee datos. Para que pueda controlar algún proceso es necesario generar o crear y luego grabar en la EEPROM del microcontrolador algún programa, el cual puede ser escrito en lenguaje ensamblador u otro lenguaje para microcontroladores; sin embargo, para que el programa pueda ser grabado en la EEPROM del microcontrolador, debe ser codificado en sistema numérico hexadecimal que es finalmente el sistema que hace trabajar al microcontrolador cuando éste es alimentado con el voltaje adecuado y asociado a dispositivos analógicos y discretos para su funcionamiento.1

Microcontrolador



Componentes

  • Unidad de Procesamiento Central (CPU): Típicamente de 8 bits, pero también las hay de 4, 32 y hasta 64 bits con arquitectura Harvard, con memoria/bus de datos separada de la memoria/bus de instrucciones de programa, o arquitectura de Von Neumann, también llamada arquitectura Princeton , con memoria/bus de datos y memoria/bus de programa compartidas.
  • Memoria de Programa: Es una memoria ROM (Read- Only Memory), EPROM(Electrically Programable ROM), EEPROM (Electrically Erasable/Programable ROM) o Flash que almacena el código del programa que típicamente puede ser de 1 kilobyte a varios megabytes.
  • Memoria de Datos: Es una memoria RAM ( Random Access Memory)que típicamente puede ser de 1, 2, 4, 8, 16, 32 kilobytes.
  • Generador del Reloj: Usualmente un cristal de cuarzo de frecuencias que genera una señal oscilatoria de entre 1 a 40MHz, o también resonadores o circuitos RC.
  • Interfaz de Entrada/Salida: Puertos paralelos, seriales (UARTs, Universal Asynchronous Receiver/Transmitter), I2C(Inter- Integrated Circuit), Interfaces de Periféricos Seriales (SPIs, Serial Peripheral Interfaces), Red de Área de Controladores (CAN, Controller Área Network ), USB ( Universal Serial Bus).
  • Conversores Análogo-Digitales (A/D, analog - t o- digital ): para convertir un nivel de voltaje en un cierto pin a un valor digital manipulable por el programa del microcontrolador.
  • Moduladores por Ancho de Pulso (PWM,Pulse - Width Modulation): para generar ondas cuadradas de frecuencia fija pero con ancho de pulso modificable.


Características

  1. La arquitectura del procesador sigue el modelo Harvard.
  2. Se aplica la técnica de segmentación ("pipe-line") en la ejecución de las instrucciones.
  3. El formato de todas las instrucciones tiene la misma longitud.
  4. Procesador RISC (Computador de Juego de Instrucciones Reducido).
  5. Todas las instrucciones son ortogonales.
  6. Arquitectura basada en un banco de registros.
  7. Prácticamente todos los PIC se caracterizan por poseer unos mismos recursos mínimos.
  8. Modelos de arquitectura cerrada y de arquitectura abierta.
  9. Diversidad de modelos de microcontroladores.
  10. Amplio margen de alimentación y corrientes de salida elevadas.
  11. Herramientas de soporte potentes y económicas.


Arquitecturas


Hay dos arquitecturas conocidas; la clásica de von Neumann, y la arquitectura Harvard, veamos como son...

Arquitectura Von Neumann: Dispone 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).



Arquitectura Harvard: Dispone de dos memorias independientes, una que contiene sólo instrucciones, y otra que contiene 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, ésta es la estructura para los PIC's.



Tipos de Microcontroladores



No existe una verdadera clasificación de Microcontroladores, debido a que cada vez aparecen microcontroladores adaptados a cierto tipo de situaciones, sin embargo, podemos agruparlo según ciertas características:

Familia de productos
  • PIC10
  • PIC12
  • PIC14
  • PIC16
  • PIC17
  • PIC18


Tipo de memoria
  • FLASH
  • OTP
  • ROM
  • EEPROM


Número de I/O
  • 4 - 17 patillas
  • 18 - 27 patillas
  • 28 - 44 patillas
  • 45 - 80 patillas


Tamaño de memoria (bytes)
  • 0.5K - 1K
  • 2K - 4K
  • 8K - 16K
  • 24K -32K
  • 48K - 64K
  • 96K - 128K


En la clasificación por familias, las principales diferencias radican en el número de instrucciones y su longitud, el número de puertos y funciones, lo cual se refleja en el encapsulado, la complejidad interna y de programación, y en el número de aplicaciones.

Proceso de desarrollo en un microcontrolador


Consiste en 3 etapas principalmente:

1. Desarrollo del software


En esta etapa consiste en escribir y compilar/ensamblar el programa que determinara las acciones del Microcontrolador y su funcionamiento.
Existen distintas maneras de desarrollar el programa, dependiendo del lenguaje inicial que se utiliza para escribir el programa:
  • Lenguaje Assembly -> Lenguaje de Maquina/Código/Objeto
  • [(.asm) -> ensamblador -> (.hex, .o, .bin, .coff )]
  • Lenguaje de Alto Nivel -> Lenguaje Assembly -> Lenguaje de Maquina/Código/Objeto
  • [(.c, .cpp) -> compilador -> (.asm) -> ensamblador -> (.hex, .o, .bin, .coff )]




2. Programación del Microcontrolador


Este proceso corresponde a utilizar un programa en el PC que toma el código ensamblado (.hex, .o, .bin, .coff )para el microcontrolador específico, y lo envía mediante algún puerto (serial, paralelo, USB, etc.) a un dispositivo que lo escribe en la memoria del microcontrolador.
Se acostumbra denominar programador tanto al software como al hardware involucrado para este propósito, lo cual puede prestarse a confusión. El software programador a veces recibe también el nombre de downloader, ya que su propósito es descargar o transferir desde el PC al microcontrolador el código ensamblado.



3. Pruebas y verificación


Una vez programado el microcontrolador, se puede instalar en el circuito final para comprobar su adecuado funcionamiento.
Existen herramientas de software que permiten simular el comportamiento de un microcontrolador, muy útiles cuando el programa alcanza cierta complejidad.
Para resolver problemas en un circuito real, el instrumento mas utilizado es el analizador lógico.



Esto es todo para la entrada, me sirvió bastante para entender la arquitectura de los microcontroladores, sin embargo, esto es un resumen de lo que pude leer, les comparto las referencias donde se habla mas ampliamente de los conceptos. Saludos.

Referencias

1 comentario: