Microprocesador y
Microcontrolador
UMG
Microcontrolador:
Es un circuito integrado programable que contiene todos los componentes de
un computador.
Se emplea para controlar el funcionamiento de una tarea determinada y,
debido a su reducido tamaño, suele ir incorporado en el propio dispositivo
que gobierna. Esta ultima característica es la que le confiere la
denominación de embedded controller “contolador incrustado”.
El microcontolador es un computador dedicado. En su memoria solo reside
un programa destinado a gobernar una aplicación determinada; sus líneas
de entrada/salida soportan las conexiones de los sensores y actuadores del
dispositivo a controlar.
Una vez programado y configurado el microcontrolador solamente sirve para
gobernar la tarea asignada.
Es un computador completo, aunque de limitadas prestaciones, que esta
contenido en el chip de un circuito integrado y se destina a gobernar una
sola tarea.
¿Donde se utilizan?
• La industria informática los utiliza en algunos periféricos: mouse, teclado,
impresora…
• Los electrodomésticos: lavadoras, hornos, A/C, alarmas…
• Sistemas de comunicaciones, instrumentación, electromedicina,
automóviles…
Diferencia entre Microprocesador y Microcontrolador
El Microprocesador es un circuito integrado que contiene la
Unidad Central de Proceso (UCP), también llamada procesador,
de un computador.
La UCP esta formada por la Unidad de Control, que interpreta las
instrucciones, y el Camino de Datos, que las ejecuta.
Las patitas o terminales del microprocesador sacan al exterior las
líneas de sus buses de direcciones, datos y control para permitir
conectar: Memoria y Módulos de E/S.
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.
Un Microprocesador es un sistema abierto con el que puede
construirse un computador con las características que se desee,
acoplándole los módulos necesarios.
La disponibilidad de los buses en el exterior permite que se
configure a la medida de la aplicación.
Un Microcontrolador es un sistema cerrado que contiene un
computador completo y de prestaciones limitadas que no se
pueden modificar.
Todas las partes del computador están contenidas en su interior
y solo salen las líneas que gobiernan los periféricos.
Si solo se dispusiese de un modelo de microcontrolador, este
debería tener bastantes recursos para poder adaptarse a las
exigencias de las diferentes aplicaciones.
Pero esto representaría un despilfarro de recursos, por lo que cada
fabricante oferta distintos modelos, desde los mas sencillos hasta
los mas poderosos.
Es posible seleccionar la capacidad de las memorias, el numero de
líneas de E/S, la cantidad y potencia de los elementos auxiliares, la
velocidad de funcionamiento, etc.
Arquitectura Interna:
Un microcontrolador posee todos los componentes de un computador, pero con
unas características fijas que no pueden alterarse.
Las partes principales de un microcontrolador son:
1. Procesador
2. Memoria no volátil para contener el programa
3. Memoria de lectura y escritura para guardar los datos
4. Líneas de E/S para los controladores periféricos:
a) Comunicación paralelo
b) Comunicación serie
c) Diversas puertas de comunicación (bus I²C, USB, etc)
5. Recursos auxiliares
a) Circuito de reloj
b) Temporizadores
c) Perro Guardián (Watchdog)
d) Conversores AD y DA
e) Comparadores analógicos
f) Protección ante fallos de la alimentación
g) Estado de reposo o bajo consumo.
El Procesador
La necesidad de conseguir elevados rendimientos en el procesamiento de las
instrucciones ha desembocado en el empleo generalizado de procesadores
de arquitectura Harvard frente a los tradicionales que seguían la arquitectura
de von Neumann.
Arquitectura Von Neumann se caracterizaba porque la UCP se conectaba
con una memoria única, donde coexistían datos e instrucciones a través de
un sistema de buses.
En la arquitectura von Neumann, la UCP se comunicaba a
través de un sistema de buses con la Memoria, donde se
guardaban las instrucciones y los datos.
Arquitectura Harvard, es independiente la memoria de instrucciones y la
memoria de datos y cada una dispone de su propio sistema de buses
para el acceso.
Esta dualidad además de propiciar el paralelismo, permite la adecuación
del tamaño de las palabras y los buses a los requerimientos específicos
de las instrucciones y de los datos.
La capacidad de cada memoria es diferente.
En la arquitectura Harvard la memoria de instrucciones y la de datos son
independientes, lo que permite optimizar sus características y propiciar el
paralelismo.
En la figura, la memoria de instrucciones tiene 1K posiciones de 14 bits cada una,
mientras que la de datos solo dispone de 512 posiciones de un byte.
El procesador de los microcontroladores modernos responde a la arquitectura
RISC (Reduced Instruction Set Computer, Computador con Juego de
Instrucciones Reducido), que se identifica por poseer un repertorio de
instrucciones maquina pequeño y simple, de forma que la mayor parte de las
instrucciones se ejecuta en un ciclo de instrucción.
Otra aportación frecuente que aumenta el rendimiento del computador es el
fomento del paralelismo implícito, que consiste en la segmentación del
procesador (pipe-line), descomponiéndolo en etapas para poder procesar una
instrucción diferente en cada una de ellas y trabajar con varias a la vez.
El alto rendimiento y elevada velocidad que alcanzan los modernos
procesadores como el que poseen los microcontroladores PIC, se debe a la
conjunción de tres técnicas:
•Arquitectura Harvard
•Arquitectura RISC
•Segmentación.
Memoria del programa
El microcontrolador esta diseñado para que en su memoria de programa se
almacenen todas las instrucciones del programa de control. No hay posibilidad de
utilizar memorias externas de ampliación.
Como el programa a ejecutar es siempre el mismo, debe estar grabado de forma
permanente. Los tipos de memoria adecuados para soportar esta función admiten
cinco versiones diferentes:
ROM (Read Only Memory)
En este tipo de memoria el programa se graba en el chip durante el proceso de
su fabricación. Los altos costes de diseño e instrumental solo aconsejan usar
este tipo de memoria cuando se precisan series muy grandes.
EPROM (Erasable Programmable Read Only Memory)
La grabación de esta memoria se realiza mediante un dispositivo físico
gobernado desde un computador personal, que recibe el nombre de grabador.
En la parte superficie de la capsula del microcontrolador existe una ventana de
cristal por la que se puede someter al chip de la memoria rayos ultravioletas para
producir su borrado y emplearla nuevamente.
OTP (One time Programable)
Este modelo de memoria solo se puede grabar una vez por parte del
usuario, utilizando el mismo procedimiento que la memoria EPROM.
Posteriormente no se puede borrar. Su bajo precio y la sencillez de la
grabación aconsejan este tipo de memoria para prototipos finales y series
de producción cortas.
EEPROM (Electrically Erasable Programmable Read Only Memory)
La grabación es similar a las memorias OTP y EPROM, pero el borrado es
mucho mas sencillo al poderse efectuar de la misma forma que el grabado,
o sea , eléctricamente. Sobre el mismo zócalo del grabador puede ser
programada y borrada tatas veces como se quiera, lo cual la hace ideal en
la enseñanza y en la creación de nuevos proyectos.
Aunque se garantizan 100,000 ciclos de escritura/borrado en una EEPROM
este numero puede ser mayor.
Flash
Se trata de una memoria no volátil, de bajo consumo, que se puede escribir y
borrar en circuito al igual que las EEPROM, pero suelen disponer de mayor
capacidad que estas ultimas. El borrado solo es posible con bloques completos
y no se puede realizar sobre posiciones concretas.
Son muy recomendables en aplicaciones en las que sea necesario modificar el
programa a lo largo de la vida del producto, como consecuencia del desgaste o
cambios de piezas, como sucede con los vehículos.
Por sus mejores prestaciones se esta sustituyendo a la memoria EEPROM por
la memoria FLASH para contener instrucciones.
•LA memoria tipo EEPROM y tipo FLASH pueden escribirse y borrarse
eléctricamente, sin necesidad de sacar el circuito integrado del zócalo del
grabador pueden ser escritas y borradas numerosas veces.
Memoria de datos
Los datos que maneja los programas varían continuamente, y esto exige que
la memoria que les contiene debe ser de lectura y escritura, por lo que la
memoria RAM estática (SRAM) es la mas adecuada, aunque sea volátil.
Hay microcontroladores que disponen como memoria de datos una de lectura
y escritura no volátil, del tipo EEPROM. De esta forma, un corte en el
suministro de la alimentación no ocasiona la perdida de la información, que
esta disponible al reiniciarse el programa.
Líneas de E/S para los controladores
Las líneas de E/S que se adaptan con los periféricos manejan información
en paralelo y se agrupa en conjuntos de ocho, que reciben el nombre de
puertas.
Hay modelos con líneas que soportan la comunicación en serie; otros
disponen de conjuntos de líneas que implementan puertas de comunicación
para diversos protocolos, como el I²C, el USB etc.
Recursos auxiliares
Según las aplicaciones a las que orienta el fabricante cada modelo de
microcontrolador, incorpora una diversidad de complementos que
refuerzan la potencia la flexibilidad del dispositivo..
Entre los recursos mas comunes se citan a los siguientes:
Circuito de reloj:
Es encargado de generar los impulsos que sincronizan el funcionamiento
de todo el sistema.
Temporizadores:
Orientados a controlar tiempos.
Perro Guardián (Watchdog):
Destinado a provocar una reinicialización cuando el programa
queda bloqueado.
Conversores AD y DA:
Para poder recibir y enviar señales analógicas.
Comparadores analógicos:
Para verificar el valor de una señal analógica.
Sistema de protección ante fallos de la alimentación.
Estado de Reposo:
En el que el sistema queda congelado y el consumo de energía
se reduce al mínimo.
Programación de Microcontroladores
La utilización de lenguajes mas cercanos a la maquina (de bajo nivel)
representan un considerable ahorro de código en la confección de los
programas, lo que es muy importante dada la estricta limitación de la
capacidad de la memoria de instrucciones.
Los programas bien realizados en lenguaje Ensamblador optimizan el tamaño
de la memoria que ocupan y su ejecución es muy rápida.
Los lenguajes de alto nivel mas empleados con microcontroladores son C y
Basic, de los que existen varias empresas que comercializan versiones de
compiladores e interpretes para diversas familias de microcontroladores.
El lenguaje que utilizan los profesionales para la programación de los
microcontroladores es el Ensamblador, que es el mas cercano a la maquina.
También son frecuentes los programas en lenguaje C y BASIC.