Un microcontrolador (abreviado , 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 principales
unidades funcionales de una computadora: unidad central de procesamiento,
memoria y periféricos de entrada/salida.
Algunos microcontroladores pueden utilizar palabras de
cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4
kHz, con un consumo de baja potencia (mW o microvatios). Por lo general, tendrá
la capacidad de mantenerse a la espera de un evento como pulsar un botón o de
otra interrupción; así, el consumo de energía durante el estado de reposo
(reloj de la CPU y los periféricos de la mayoría) puede ser sólo de nanovatios,
lo que hace que muchos de ellos sean muy adecuados para aplicaciones con
batería de larga duración. Otros microcontroladores pueden servir para roles de
rendimiento crítico, donde sea necesario actuar más como un procesador digital
de señal (DSP), con velocidades de reloj y consumo de energía más altos.
Cuando es fabricado el microcontrolador, no contiene datos
en la memoria ROM. Para que pueda controlar algún proceso es necesario generar
o crear y luego grabar en la EEPROM o equivalente 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 memoria 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.
Características
Los microcontroladores están diseñados para reducir el
costo económico y el consumo de energía de un sistema en particular. Por eso el
tamaño de la unidad central de procesamiento, la cantidad de memoria y los
periféricos incluidos dependerán de la aplicación. El control de un
electrodoméstico sencillo como una batidora utilizará un procesador muy pequeño
(4 u 8 bits) porque sustituirá a un autómata finito. En cambio, un reproductor
de música y/o vídeo digital (MP3 o MP4) requerirá de un procesador de 32 bits o
de 64 bits y de uno o más códecs de señal digital (audio y/o vídeo). El control
de un sistema de frenos ABS (Antilock Brake System) se basa normalmente en un
microcontrolador de 16 bits, al igual que el sistema de control electrónico del
motor en un automóvil.
Los microcontroladores representan la inmensa mayoría de
los chips de computadoras vendidos, sobre un 50% son controladores "simples"
y el restante corresponde a DSP más especializados. Mientras se pueden tener
uno o dos microprocesadores de propósito general en casa
(Ud. está usando uno para esto), usted tiene distribuidos seguramente entre los
electrodomésticos de su hogar una o dos docenas de microcontroladores. Pueden
encontrarse en casi cualquier dispositivo electrónico como automóviles,
lavadoras, hornos microondas, teléfonos, etc.
Un microcontrolador difiere de una unidad central de
procesamiento normal, debido a que es más fácil convertirla en una computadora
en funcionamiento, con un mínimo de circuitos integrados externos de apoyo. La
idea es que el circuito integrado se coloque en el dispositivo, enganchado a la
fuente de energía y de información que necesite, y eso es todo. Un
microprocesador tradicional no le permitirá hacer esto, ya que espera que todas
estas tareas sean manejadas por otros chips. Hay que agregarle los módulos de
entrada y salida (puertos) y la memoria para almacenamiento de información.
Un microcontrolador típico tendrá un generador de reloj
integrado y una pequeña cantidad de memoria de acceso aleatorio y/o
ROM/EPROM/EEPROM/flash, con lo que para hacerlo funcionar todo lo que se
necesita son unos pocos programas de control y un cristal de sincronización.
Los microcontroladores disponen generalmente también de una gran variedad de
dispositivos de entrada/salida, como convertidor analógico digital,
temporizadores, UARTs y buses de interfaz serie especializados, como I2C y CAN.
Frecuentemente, estos dispositivos integrados pueden ser controlados por
instrucciones de procesadores especializados. Los modernos microcontroladores
frecuentemente incluyen un lenguaje de programación integrado, como el lenguaje
de programación BASIC que se utiliza bastante con este propósito.
Los microcontroladores negocian la velocidad y la
flexibilidad para facilitar su uso. Debido a que se utiliza bastante sitio en
el chip para incluir funcionalidad, como los dispositivos de entrada/salida o
la memoria que incluye el microcontrolador, se ha de prescindir de cualquier
otra circuitería.
Arquitecturas
Básicamente existen dos arquitecturas de computadoras, y
por supuesto, están presentes en el mundo de los microcontroladores: Von
Neumann y Harvard. Ambas se diferencian en la forma de conexión de la memoria
al procesador y en los buses que cada una necesita.
Arquitectura Von Neumann
La arquitectura Von Neumann utiliza el mismo dispositivo de
almacenamiento tanto para las instrucciones como para los datos, siendo la que
se utiliza en un ordenador personal porque permite ahorrar una buena cantidad
de líneas de E/S, que son bastante costosas, sobre todo para aquellos sistemas
donde el procesador se monta en algún tipo de zócalo alojado en una placa madre.
También esta organización les ahorra a los diseñadores de placas madre una
buena cantidad de problemas y reduce el costo de este tipo de sistemas.
En un ordenador personal, cuando se carga un programa en
memoria, a éste se le asigna un espacio de direcciones de la memoria que se
divide en segmentos, de los cuales típicamente tenderemos los siguientes:
código (programa), datos y pila. Es por ello que podemos hablar de la memoria
como un todo, aunque existan distintos dispositivos físicos en el sistema
(disco duro, memoria RAM, memoria flash, unidad de disco óptico...).
En el caso de los microcontroladores, existen dos tipos de
memoria bien definidas: memoria de datos (típicamente algún tipo de SRAM) y
memoria de programas (ROM, PROM, EEPROM, flash u de otro tipo no volátil). En
este caso la organización es distinta a las del ordenador personal, porque hay
circuitos distintos para cada memoria y normalmente no se utilizan los
registros de segmentos, sino que la memoria está segregada y el acceso a cada
tipo de memoria depende de las instrucciones del procesador.
A pesar de que en los sistemas integrados con arquitectura
Von Neumann la memoria esté segregada, y existan diferencias con respecto a la
definición tradicional de esta arquitectura; los buses para acceder a ambos
tipos de memoria son los mismos, del procesador solamente salen el bus de
datos, el de direcciones, y el de control. Como conclusión, la arquitectura no
ha sido alterada, porque la forma en que se conecta la memoria al procesador
sigue el mismo principio definido en la arquitectura básica.
Algunas familias de microcontroladores como la Intel 8051 y
la Z80 implementan este tipo de arquitectura, fundamentalmente porque era la
utilizada cuando aparecieron los primeros microcontroladores.
Arquitectura Harvard
La otra variante es la arquitectura Harvard, y por
excelencia la utilizada en supercomputadoras, en los microcontroladores, y
sistemas integrados en general. En este caso, además de la memoria, el
procesador tiene los buses segregados, de modo que cada tipo de memoria tiene
un bus de datos, uno de direcciones y uno de control.
La ventaja fundamental de esta arquitectura es que permite
adecuar el tamaño de los buses a las características de cada tipo de memoria;
además, el procesador puede acceder a cada una de ellas de forma simultánea, lo
que se traduce en un aumento significativo de la velocidad de procesamiento.
Típicamente los sistemas con esta arquitectura pueden ser dos veces más rápidos
que sistemas similares con arquitectura Von Neumann.
La desventaja está en que consume muchas líneas de E/S del
procesador; por lo que en sistemas donde el procesador está ubicado en su
propio encapsulado, solo se utiliza en supercomputadoras. Sin embargo, en los
microcontroladores y otros sistemas integrados, donde usualmente la memoria de
datos y programas comparten el mismo encapsulado que el procesador, este
inconveniente deja de ser un problema serio y es por ello que encontramos la
arquitectura Harvard en la mayoría de los microcontroladores.
Por eso es importante recordar que un microcontrolador se
puede configurar de diferentes maneras, siempre y cuando se respete el tamaño
de memoria que este requiera para su correcto funcionamiento.
Elementos del Microcontrolador
Registros
Son un espacio de memoria muy reducido pero necesario para
cualquier microprocesador, de aquí se toman los datos para varias operaciones
que debe realizar el resto de los circuitos del procesador. Los registros
sirven para almacenar los resultados de la ejecución de instrucciones, cargar
datos desde la memoria externa o almacenarlos en ella.
Mientras mayor sea el número de bits de los registros de
datos del procesador, mayores serán sus prestaciones, en cuanto a poder de
cómputo y velocidad de ejecución, ya que este parámetro determina la potencia
que se puede incorporar al resto de los componentes del sistema, por ejemplo,
no tiene sentido tener una ALU de 16 bits en un procesador de 8 bits.
Por otro lado un procesador de 16 bits, puede que haga una
suma de 16 bits en un solo ciclo de máquina, mientras que uno de 8 bits deberá
ejecutar varias instrucciones antes de tener el resultado, aun cuando ambos
procesadores tengan la misma velocidad de ejecución para sus instrucciones. El
procesador de 16 bits será más rápido porque puede hacer el mismo tipo de
tareas que uno de 8 bits, en menos tiempo.
Unidad de
control
Esta
unidad es de las más importantes en el procesador, en ella recae la lógica
necesaria para la decodificación y ejecución de las instrucciones, el control
de los registros, la ALU, los buses y cuanta cosa más se quiera meter en el
procesador.
La
unidad de control es uno de los elementos fundamentales que determinan las
prestaciones del procesador, ya que su tipo y estructura determina parámetros
tales como el tipo de conjunto de
instrucciones, velocidad de ejecución, tiempo del ciclo de máquina,
tipo de buses que puede tener el sistema, manejo de interrupciones y un buen
número de cosas más que en cualquier procesador van a parar a este bloque.
Por
supuesto, las unidades de control son el elemento más complejo de un procesador
y normalmente están divididas en unidades más pequeñas trabajando de conjunto.
La unidad de control agrupa componentes tales como la unidad de decodificación,
unidad de ejecución, controladores de memoria caché, controladores de buses, controlador
de interrupciones, pipelines, entre otros elementos, dependiendo
siempre del tipo de procesador.
Unidad
aritmético-lógica (ALU)
Como
los procesadores son circuitos que hacen básicamente operaciones lógicas y
matemáticas, se le dedica a este proceso una unidad completa, con cierta
independencia. Aquí es donde se realizan las sumas, restas, y operaciones
lógicas típicas del álgebra de Boole.
Actualmente
este tipo de unidades ha evolucionado mucho y los procesadores más modernos
tienen varias ALU, especializadas en la realización de operaciones complejas
como las operaciones en coma flotante. De hecho en muchos casos le han cambiado
su nombre por el de “coprocesador matemático”, aunque este es un término que
surgió para dar nombre a un tipo especial de procesador que se conecta
directamente al procesador más tradicional.
Su
impacto en las prestaciones del procesador es también importante porque,
dependiendo de su potencia, tareas más o menos complejas, pueden hacerse en
tiempos muy cortos, como por ejemplo, los cálculos en coma flotante.
Buses
Son
el medio de comunicación que utilizan los diferentes componentes del procesador
para intercambiar información entre sí, eventualmente los buses o una parte de
ellos estarán reflejados en los pines del encapsulado del procesador.
En el caso de los microcontroladores, no es común que los buses
estén reflejados en el encapsulado del circuito, ya que estos se destinan
básicamente a las E/S de propósito general y periféricos del sistema.
Existen tres tipos de buses:
Dirección: Se utiliza para
seleccionar al dispositivo con el cual se quiere trabajar o en el caso de las
memorias, seleccionar el dato que se desea leer o escribir.
Datos: Se utiliza para mover
los datos entre los dispositivos de hardware (entrada y salida).
Control: Se utiliza para
gestionar los distintos procesos de escritura lectura y controlar la operación
de los dispositivos del sistema.
Conjunto de instrucciones
Aunque no aparezca en el esquema, no podíamos dejar al conjunto
o repertorio de instrucciones fuera de la explicación, porque este elemento
determina lo que puede hacer el procesador.
Define las operaciones básicas que puede realizar el procesador,
que conjugadas y organizadas forman lo que conocemos como software. El conjunto
de instrucciones vienen siendo como las letras del alfabeto, el elemento básico
del lenguaje, que organizadas adecuadamente permiten escribir palabras, oraciones
y cuanto programa se le ocurra.
Existen dos tipos básicos de repertorios de instrucciones, que
determinan la arquitectura del procesador: CISC y RISC.
CISC,
del inglés Complex instruction set computing, Computadora de Conjunto de
Instrucciones Complejo. Los microprocesadores CISC tienen un conjunto de
instrucciones que se caracteriza por ser muy amplio y que permiten realizar
operaciones complejas entre operandos situados en la memoria o en los registros
internos. Este tipo de repertorio dificulta el paralelismo entre instrucciones,
por lo que, en la actualidad, la mayoría de los sistemas CISC de alto
rendimiento convierten las instrucciones complejas en varias instrucciones
simples del tipo RISC, llamadas generalmente microinstrucciones.
Memoria – Interrupciones
Memoria:
La memoria en los microcontroladores debe estar ubicada dentro
del mismo encapsulado, esto es así la mayoría de las veces, porque la idea
fundamental es mantener el grueso de los circuitos del sistema dentro de un
solo integrado.
En los microcontroladores la memoria no es abundante, aquí no
encontrará Gigabytes de memoria como en las computadoras personales.
Típicamente la memoria de programas no excederá de 16 K-localizaciones de
memoria no volátil (flash o eprom) para contener los programas.
Máscara ROM: En este caso no se
“graba” el programa en memoria, sino que el microcontrolador se fabrica con el
programa, es un proceso similar al de producción de los CD comerciales mediante
masterización. El costo inicial de producir un circuito de este tipo es alto,
porque el diseño y producción de la máscara es un proceso costoso, sin embargo,
cuando se necesitan varios miles o incluso cientos de miles de
microcontroladores para una aplicación determinada, como por ejemplo, algún
electrodoméstico, el costo inicial de producción de la máscara y el de
fabricación del circuito se distribuye entre todos los circuitos de la serie, y
el costo final de ésta es bastante menor que el de sus semejantes con otro tipo
de memoria.
Memoria PROM (Programmable Read-Only
Memory):
Los microcontroladores con memoria OTP se pueden programar una
sola vez, con algún tipo de programador. Se utilizan en sistemas donde el
programa no requiera futuras actualizaciones y para series relativamente
pequeñas, donde la variante de máscara sea muy costosa, también para sistemas
que requieren serialización de datos, almacenados como constantes en la memoria
de programas.
Memoria EPROM (Erasable Programmable
Read Only Memory): Los microcontroladores con este tipo de memoria son muy
fáciles de identificar porque su encapsulado es de cerámica y llevan encima una
ventanita de vidrio desde la cual puede verse la oblea de silicio del
microcontrolador.
Se fabrican así porque la memoria EPROM es reprogramable, pero
antes debe borrase, y para ello hay que exponerla a una fuente de luz
ultravioleta, el proceso de grabación es similar al empleado para las memorias
OTP.
Al aparecer tecnologías menos costosas y más flexibles, como las
memorias EEPROM y FLASH, este tipo de memoria han caído en desuso, se
utilizaban en sistemas que requieren actualizaciones del programa y para los
procesos de desarrollo y puesta a punto.
EEPROM (Electrical Erasable
Programmable Read Only Memory): Fueron el sustituto natural de las memorias
EPROM, la diferencia fundamental es que pueden ser borradas eléctricamente, por
lo que la ventanilla de cristal de cuarzo y los encapsulados cerámicos no son
necesarios.
Al disminuir los costos de los encapsulados, los
microcontroladores con este tipo de memoria se hicieron más baratos y cómodos
para trabajar que sus equivalentes con memoria EPROM.
Memoria flash: En el campo de las memorias reprogramables para
microcontroladores, son el último avance tecnológico en uso a gran escala, y
han sustituido a los microcontroladores con memoria EEPROM.
A las ventajas de las memorias flash se le adicionan su gran
densidad respecto a sus predecesoras lo que permite incrementar la cantidad de
memoria de programas a un costo muy bajo. Pueden además ser programadas con las
mismas tensiones de alimentación del microcontrolador, el acceso en lectura y
la velocidad de programación es superior, disminución de los costos de
producción, entre otras.
INTERRUPCIONES:
-
Las interrupciones son esencialmente llamadas a subrutina generadas por los
dispositivos físicos, al contrario de las subrutinas normales de un programa en
ejecución. Como el salto de subrutina no es parte del hilo o secuencia de
ejecución programada, el controlador guarda el estado del procesador en la pila
de memoria y entra a ejecutar un código especial llamado "manejador de
interrupciones" que atiende al periférico específico que generó la
interrupción. Al terminar la rutina, una instrucción especial le indica al
procesador el fin de la atención de la interrupción. En ese momento el
controlador restablece el estado anterior, y el programa que se estaba
ejecutando antes de la interrupción sigue como si nada hubiese pasado. Las
rutinas de atención de interrupciones deben ser lo más breves posibles para que
el rendimiento del sistema sea satisfactorio, porque normalmente cuando una
interrupción es atendida, todas las demás interrupciones están en espera.
RESUMEN
Un microcontrolador (abreviado , 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 principales
unidades funcionales de una computadora: unidad central de procesamiento,
memoria y periféricos de entrada/salida.
Algunos microcontroladores pueden utilizar palabras de
cuatro bits y funcionan a velocidad de reloj con frecuencias tan bajas como 4
kHz, con un consumo de baja potencia (mW o microvatios). Por lo general, tendrá
la capacidad de mantenerse a la espera de un evento como pulsar un botón o de
otra interrupción; así, el consumo de energía durante el estado de reposo
(reloj de la CPU y los periféricos de la mayoría) puede ser sólo de nanovatios,
lo que hace que muchos de ellos sean muy adecuados para aplicaciones con
batería de larga duración. Otros microcontroladores pueden servir para roles de
rendimiento crítico, donde sea necesario actuar más como un procesador digital
de señal (DSP), con velocidades de reloj y consumo de energía más altos.
SUMMARY
A microcontroller (abbreviated UC or MCU) is a programmable
integrated circuit capable of executing the orders recorded in its memory. It
is composed of several functional blocks which perform a specific task. A
microcontroller includes within it the three main functional units of a
computer: central processing unit, memory and peripheral input / output.
Some
microcontrollers may use four-bit words and operate at clock speed as low as 4
kHz, a low power consumption (mW or microwatts). Usually, you will have the
ability to keep waiting for an event like pressing a button or other
interruption; thus, the power consumption during the idle state (CPU clock and
most peripherals) may be only nanowatts, which makes many of them are well
suited for applications with long battery life. Other microcontrollers may serve
performance-critical roles, where necessary act more like a digital signal
processor (DSP), with clock speeds and higher energy consumption.
RECOMENDACIONES
- Mediante la información recopilada
podemos notar que el campo de microcontroladores es muy importante para el
estudio de las futuras generaciones debido a que siempre existirá la necesidad
de que aparatos electrónicos funcionen cada vez más rápido y que su tecnología
en microchips sea cada vez de tamaño más reducido sin disminuir la velocidad.
CONCLUSIONES
- Los microprocesadores son diseñados
para aplicaciones más pesadas y como tal puede direccionar grandes cantidades
de memoria (RAM y ROM).
- Poseen una arquitectura tipo
Harvard, en la cual la CPU puede tener acceso independientemente a la memoria
de datos y a la de programa, lo cual hace más rápido su funcionamiento.
GLOSARIO
SPI: Este tipo de periférico se utiliza para comunicar al microcontrolador
con otros microcontroladores o con periféricos externos conectados a él, por
medio de una interfaz muy sencilla. Hay solo un nodo controlador que permite
iniciar cualquier transacción, lo cual es una desventaja en sistemas complejos,
pero su sencillez permite el aislamiento galvánico de forma directa por medio
de opto acopladores.
DATASHEET: Es un documento que resume el funcionamiento y otras características de
un componente (por ejemplo, un componente electrónico) o subsistema (por
ejemplo, una fuente de alimentación) con el suficiente detalle para ser
utilizado por un ingeniero de diseño y diseñar el componente en un sistema.
BIBLIOGRAFÍA O LINKOGRAFÍA
Bien elaborada la PRESENTACION. Defina claramente las CONCLUSIONES y RECOMENDACIONES. Detalle la APRECIACION con sus propias palabras. Trabajo bien desarrollado y explicado. Proponga un foro de discusión sobre el tema.Gracias por su investigación.Saludos
ResponderEliminar