¿QUE SON LOS MICROCONTROLADORES?
Primero que todo comenzaremos definiendo que son los microcontroladores: Los
microcontroladores ( abreviado μC, UC o MCU ) son circuitos integrados que son
capaces de ejecutar ordenes que fueron grabadas en su memoria. Su composición esta
dada por varios bloques funcionales, los cuales cumplen una tarea especifica, son
dispositivos que operan uno o mas procesos, por lo general los microcontroladores
están basados en la arquitectura de Harvard, la cual consiste en dispositivos de
almacenamiento separados (memoria de programa y memoria de datos).
El termino microcontrolador esta dado por dos palabras que son “Micro”-“Controlador”
las cuales tienen por significado “pequeño (en tamaño)” y “maniobrar o controlar
(función principal)” procesos los cuales son definidos mediante la programación.
Un micro controlador esta constituido en su interior por las tres principales unidades
funcionales de una computadora, las cuales son: unidad central de procesamiento,
memoria y periféricos de entrada y salida.
En fin un microcontrolador es un sistema completo, con unas prestaciones limitadas
que no pueden modificarse y que puede llevar a cabo las tareas para las que ha sido
programado de forma autónoma.
En cuanto a la arquitectura de los microcontroladores la detallaremos con mayor
profundidad a continuación…
ARQUITECTURA DE LOS MICROCONTROLADORES
Arquitectura Von Neumann La arquitectura tradicional:
La arquitectura tradicional de
computadoras y microcontroladores 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. 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) 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.
La arquitectura Harvard y sus ventajas:
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 de memoria 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. Podemos observar claramente que las principales
ventajas de esta arquitectura son:
a) El tamaño de las instrucciones no esta 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) 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 INTERNA DE UN MICROCONTROLADOR.
CPU (unidad central de proceso):
Podemos decir que la CPU, siglas en inglés de unidad central de proceso, es el núcleo
del microcontrolador. Se encarga de ejecutar las instrucciones almacenadas en la
memoria, de la que hablaremos más adelante. Es lo que habitualmente llamamos
procesador o microprocesador, término que a menudo se confunde con el de
microcontrolador. En esta línea cabe aclarar que, tal y como estamos viendo, ambos
términos no son lo mismo: el microprocesador es una parte de un microcontrolador y
sin él no sería útil; un microcontrolador, en cambio, es un sistema completo que puede
llevar a cabo de forma autónoma una labor.
Memoria:
Entendemos por memoria los diferentes componentes del microcontrolador que se
emplean para almacenar información durante un periodo determinado de tiempo. La
información que necesitaremos durante la ejecución del programa será, por un lado, el
propio código, y por otro, los diferentes datos que usemos durante la ejecución del
mismo. Hablaremos por tanto de memoria de programa y de memoria de datos,
respectivamente.
La diferente naturaleza de la información que hay que almacenar hace necesario el uso
de diferentes tipos memorias. Sin hacer especial énfasis en este apartado, sí habrá que
tener en cuenta una clasificación básica, que distingue entre memoria volátil y no
volátil. La primera es aquella que pierde la información que almacena al desconectarla
de la alimentación; la segunda, como resulta obvio, no. Por lo tanto, se hace evidente
que al menos la memoria de programa deberá ser no volátil: no sería práctico que el
programa grabado en el microcontrolador se borrara cada vez que apagáramos el
dispositivo. Con respecto a la memoria de datos, diremos por el momento según la
situación puede interesarnos una u otra.
Unidades de entrada/salida:
Las unidades de entrada/salida son los sistemas que emplea el microcontrolador para
comunicarse con el exterior. Imaginemos una televisión: por un lado tiene un
dispositivo de salida, como es la pantalla, y por otro lado, de entrada, como son los
botones de subir o bajar volumen y de cambio de canal. Así, los dispositivos de
entrada nos permitirán introducir información en el microcontrolador y los de salida
nos servirán para que éste la saque al exterior.
ARQUITECTURA RISC Y CISC
RISC (Reduced Instruction Set Computer) – Computadora con Juego
de Instrucciones Reducidas.
En este caso la idea es que el microcontrolador reconoce y ejecuta sólo operaciones
básicas (sumar, restar, copiar etc…) Las operaciones más complicadas se realizan al
combinar éstas (por ejemplo, multiplicación se lleva a cabo al realizar adición
sucesiva). Es como intentar explicarle a alguien con pocas palabras cómo llegar al
aeropuerto en una nueva ciudad. Sin embargo, no todo es tan oscuro. Además, el
microcontrolador es muy rápido así que no es posible ver todas las “acrobacias”
aritméticas que realiza. El usuario sólo puede ver el resultado final de todas las
operaciones. Por último, no es tan difícil explicar dónde está el aeropuerto si se utilizan
las palabras adecuadas tales como: a la derecha, a la izquierda, el kilómetro etc.
CISC (Complex Instruction Set Computer) – Computadoras con un
juego de instrucciones complejo.
¡CISC es opuesto a RISC! Los microcontroladores diseñados para reconocer más de
200 instrucciones diferentes realmente pueden realizar muchas cosas a alta velocidad.
No obstante, uno debe saber cómo utilizar todas las posibilidades que ofrece un
lenguaje tan rico, lo que no es siempre tan fácil.