Este tutorial ha sido escrito por el técnico en electrónica César Antonio Saldías Caro, de Valparaíso, Chile. Quien nos ha otorgado el permiso para publicarlo en nuestro blog. Puedes encontrar más información en su sitio ingenieropic.wordpress.com.

Microprocesador y microcontrolador.

Los microprocesadores y los microcontroladores son dispositivos electrónicos que tienen la capacidad de llevar a cabo procesos lógicos.

El microprocesador (CPU), tiene la característica de que sus unidades están físicamente separadas, esto significa que interactúa con una memoria RAM, una memoria ROM y con dispositivos de entrada y salida por medio de buses de comunicación. Los primeros microprocesadores fueron el Z-80 y el 8085.

El microcontrolador, por su parte, es un solo dispositivo que internamente contiene todo lo necesario para poder llevar a cabo sus acciones. Este contiene su propio CPU, memorias RAM y ROM y dispositivos de entrada y salida. Por lo tanto es superior al microprocesador debido a su reducido tamaño y capacidad de ser implementado en circuitos electrónicos. Sin embargo, los microprocesadores continúan empleándose en equipos como los computadores.

Estructura del microcontrolador y el microprocesador
I / O= Input / Output - En español= Entrada / Salida.

En las imágenes de arriba podemos apreciar la diferencia entre ambos. El microcontrolador es la mezcla entre un microprocesador, una memoria RAM, una memoria ROM y dispositivos de entrada y salida.

Antes de la aparición de los microprocesadores y posteriormente de los microcontroladores, los diseños de los circuitos electrónicos eran enormes y requerían gran cantidad de cálculos matemáticos y la implementación de muchos componentes, tales como resistencias, transistores, etc.

El microcontrolador.

Como se dijo al comienzo, el microcontrolador realiza procesos lógicos. Estos procesos son programados en un computador utilizando un lenguaje de programación, generalmente lenguaje Assembler, y se insertan o graban en la memoria del microcontrolador mediante un “programador de PIC”.

Tipos de arquitecturas de los microcontroladores:

a) Arquitectura Von Neumann.

En este tipo de arquitectura, el CPU (Unidad Central de Proceso) está conectado a una única memoria en donde se guardan las instrucciones del programa y los datos. En otras palabras, el CPU está conectado a una ROM y una RAM por medio de un solo bus de comunicación.

El tener un único bus de comunicación, hace que el microcontrolador sea más lento, puesto que no puede acceder a la memoria a buscar una nueva instrucción mientras no finalice la transferencia de datos de la instrucción anterior.

Las limitaciones de esta arquitectura son la siguientes:

1) Por tener un único bus de datos, hace que el CPU tenga que hacer varios accesos a la memoria para buscar instrucciones complejas.

2) A causa del único bus de datos, se reduce el tiempo en realizar las operaciones, impidiendo superponer los tiempos de acceso.

Diagrama de la arquitectura de Von Neumann

b) Arquitectura Harvard.

A diferencia de la arquitectura Von Neumann, la arquitectura Harvard tiene el CPU conectado a dos memorias por medio de dos buses diferentes. Una de las memorias contiene solamente las instrucciones del programa y la otra solo almacena datos.

Ambos buses son diferentes, y pueden ser de distinto acho.

Tiene las siguientes ventajas:

1) Mayor velocidad, ya que puede acceder a la memoria de datos para completar la instrucción en curso y al mismo tiempo puede acceder a buscar una nueva instrucción.

2) El tiempo de acceso a ambas memorias puede superponerse, logrando mayor velocidad.

Una pequeña desventaja de los microcontroladores con arquitectura Harvard, es que deben poseer instrucciones especiales para acceder a tablas de valores constantes que pueda ser necesario incluir en los programas.

Diagrama de la arquitectura Harvard

Orientaciones del procesador.

Orientaciones del procesador

El procesador (CPU): Es el elemento más importante dentro del microcontrolador, este determina sus principales características, tanto a nivel de hardware como de software.

El CPU se encarga de direccionar la memoria de instrucción, recibir el código de la instrucción en curso, decodificar y ejecutar 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: “Computadores de juego de instrucciones complejo”. Un gran número de procesadores utilizados en microcontroladores, posee orientación CISC.

Disponen de más de 80 instrucciones maquina en su repertorio, algunas de ellas son muy sofisticadas y potentes y requieren varios ciclos para su ejecución. Una ventaja de los procesadores CISC es que ofrecen al programador instrucciones complejas.

RISC: “Computadores de juego de instrucciones reducido”. En los procesadores RISC, el juego de instrucciones maquina en muy reducido, suelen ser instrucciones simples y se ejecutan normalmente en un ciclo.

La sencillez y rapidez de las instrucciones permiten optimizar el hardware y el software del procesador.

SISC: “Computadores de juego de instrucciones específico”. El juego de instrucciones de los procesadores SISC es reducido y además es específico, esto significa que las instrucciones se adaptan a las necesidades de la aplicación prevista.

Área de memoria de un microcontrolador.

En los microcontroladores, las memorias de instrucciones y datos están integradas en el propio chip, por lo cual no se pueden utilizar memorias externas de implicación.

La memoria que contiene las instrucciones del programa es “no volátil” y se denomina ROM (Read Only Memory). La memoria que contiene los datos del programa es “volátil” y se denomina RAM (Random Access Memory).

La memoria RAM es de poca capacidad ya que solo debe contener las variables y los cambios de información en el transcurso del programa. A esta memoria se le denomina volátil ya que al apagarse o resetearse el microcontrolador, esta memoria pierde todos los datos que tenía almacenados previamente. Los datos que se manejan varían continuamente, lo que exige una memoria de lectura y escritura, por lo que una RAM estática (SRAM) sería la más adecuada.

La memoria ROM contiene el programa propiamente tal, y este no requiere ser almacenado en la RAM, ya que como solo es “un programa” el que se ejecuta en el microcontrolador, el CPU puede leerlo directamente de la ROM. Se denomina memoria “no volátil” puesto que el programa que contiene permanece almacenado aún después de apagar o resetear el microcontrolador.

Tipos de memoria ROM.

Los tipos de memoria ROM son lo siguientes:

ROM con máscara: En este tipo de memoria el programa se graba en el chip durante el proceso de fabricación mediante máscaras. Se fabrican en obleas que contienen varias decenas de chips. Esas obleas se fabrican a partir de procesos fotoquímicos. Los altos costos de diseño e instrumental solo aconsejan utilizar este tipo de memoria cuando se precisen lotes de chips muy grandes.

OTP: Este tipo de memoria solo puede ser grabada una vez por parte del usuario. Posteriormente no se puede borrar. Su bajo precio y la sencillez de la grabación aconsejan a este tipo de memoria para prototipos finales y series de producción de tamaño reducido. Este tipo de memoria encripta su trabajo por medio de fusibles para proteger el código contenido.

EPROM: “Erasable Programmable Read Only Memory”. Esta memoria es borrable y puede grabarse varias veces. La grabación se hace a través del PC. Para borrar su contenido, ellas disponen de una ventana de cristal en su superficie para que dejen pasar rayos UV y de esta manera limpiar la memoria.

EEPROM: “Electrical Erasable Programmable Read Only Memory”. Se puede grabar muchas veces y se puede borrar utilizando el mismo grabador, de manera que no tiene una ventana en su superficie. Su número de grabaciones es finito. Se trata de un tipo relativamente lento, o sea, el tiempo de escritura es grande.

FLASH: Se puede grabar y borrar en circuito, funciona como ROM y RAM pero es más pequeña y consume menos. A diferencia de la ROM, esta se puede programar en el circuito y es más densa que La EEPROM.

Secciones del microcontrolador.

Dispositivos de entrada y salida: Permiten comunicar al microcontrolador con el mundo exterior. A excepción de dos pines destinados a la alimentación, otros dos para el cristal de cuarzo que regula la frecuencia de trabajo, y otro para provocar el reset, los restantes son pines de entrada y salida.

Reloj principal (cristal de cuarzo): Todos los microcontroladores disponen de un circuito oscilador que genera una onda de alta frecuencia que configura los impulsos de reloj usados en la sincronización de todas las operaciones del sistema. Esta señal de reloj es el motor del sistema y la que hace que el programa y los contadores avancen.

Aumentar la frecuencia de reloj supone disminuir el tiempo en que se ejecutan las instrucciones, pero implica un incremento en el consumo de energía y calor generado.

Generalmente el circuito de reloj está incorporado en el microcontrolador y solo se necesitan unos pocos componentes externos para seleccionar 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.

La familia de los PIC.

Una de las marcas de microcontroladores más utilizada es la marca PIC de la compañía Microchip. La familia de microcontroladores PIC está dividida en cuatro gamas: enana, baja, media y alta.

La diferencia entre estas gamas radica en la longitud de las instrucciones, la aplicación y el número de puertos y funciones.

Los microcontroladores PIC sobresalen entre otras cosas porque:

- Su costo es bajo en comparación con microcontroladores de otras marcas.
- Tienen una elevada velocidad de funcionamiento.
- Tiene un set de alrededor de 35 instrucciones.
- Los programas son compactos.
- Presentan un bajo consumo de potencia y un amplio rango de niveles de voltaje.