Arquitectura de los microcontroladores.
Arquitectura básica
Aunque
inicialmente todos los microcontroladores adoptaron la arquitectura clásica de
von Neumann, en el momento presente se impone la arquitectura Harvard.
La arquitectura de von Neumann se caracteriza por disponer
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) mientras que la arquitectura Harvard dispone de
dos memorias independientes, una que contiene sólo instrucciones y otra 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.
Los
microcontroladores PIC responden a la arquitectura Harvard.
El procesador o CPU
Es el elemento más
importante del microcontrolador y determina sus principales características,
tanto a nivel hardware como software.
Se encarga de
direccionar la memoria de instrucciones, recibir el código OP de la instrucción
en curso, su decodificación y la ejecución de 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: Un gran número de procesadores usados en los
microcontroladores están basados en la filosofía CISC (Computadores de Juego de
Instrucciones Complejo). Disponen de más de 80 instrucciones máquina en su
repertorio, algunas de las cuales son muy sofisticadas y potentes, requiriendo
muchos ciclos para su ejecución. Una ventaja de los procesadores CISC es que
ofrecen al programador instrucciones complejas que actúan como macros.
RISC: Tanto la industria de los computadores comerciales
como la de los microcontroladores están decantándose hacia la filosofía RISC
(Computadores de Juego de Instrucciones Reducido). En estos procesadores el
repertorio de instrucciones máquina es muy reducido y las instrucciones son
simples y, generalmente, se ejecutan en un ciclo. La sencillez y rapidez de las
instrucciones permiten optimizar el hardware y el software del procesador.
SISC: En los microcontroladores destinados a aplicaciones
muy concretas, el juego de instrucciones, además de ser reducido, es
"específico", o sea, las instrucciones se adaptan a las necesidades
de la aplicación prevista. Esta filosofía se ha bautizado con el nombre de SISC
(Computadores de Juego de Instrucciones Específico).
Memoria
En los
microcontroladores la memoria de instrucciones y datos está integrada en el
propio circuito integrado. Una parte debe ser no volátil, tipo ROM, y se
destina a contener el programa de instrucciones que gobierna la aplicación.
Otra parte de memoria será tipo RAM, volátil, y se destina a guardar las
variables y los datos.
Hay dos
peculiaridades que diferencian a los microcontroladores de los PC's:
No existen sistemas de almacenamiento masivo como disco duro
o disquetes.
Como el microcontrolador sólo se destina a una tarea en la
memoria de programa, sólo hay que almacenar un único programa de trabajo.
La memoria de
datos (RAM) en estos dispositivos es de poca capacidad pues sólo debe contener
las variables y los cambios de información que se produzcan en el transcurso
del programa. Por otra parte, como sólo existe un programa activo, no se
requiere guardar una copia del mismo en la RAM pues se ejecuta directamente
desde la memoria de programa (ROM).
El usuario de PC
está habituados a manejar Megabytes de memoria, pero los diseñadores con
microcontroladores trabajan con capacidades de memoria de programa de 512
bytes, 1K, 2K (hasta unos 64K) y de RAM de 20 bytes, 68 bytes, 512 bytes (hasta
unos 4K).
Según el tipo de
memoria de programa que dispongan los microcontroladores, la aplicación y
utilización de los mismos es diferente. Se describen las cinco versiones de
memoria no volátil que se pueden encontrar en los microcontroladores del mercado:
1º. ROM con máscara
Es una memoria no
volátil de sólo lectura cuyo contenido se graba durante la fabricación del
chip.
Máscara viene de
la forma cómo se fabrican los circuitos integrados. Estos se fabrican en obleas
que contienen varias decenas de chips. Estas obleas se obtienen a partir de
procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio,
y según convenga, se erosionan al exponerlos a la luz. Como no todos los puntos
han de ser erosionados, se sitúa entre la luz y la oblea una máscara con
agujeros, de manera que donde deba incidir la luz, esta pasará. Con varios
procesos similares pero más complicados se consigue fabricar los transistores y
diodos que componen un circuito integrado.
El elevado coste
del diseño de la máscara sólo hace aconsejable el empleo de los
microcontroladores con este tipo de memoria cuando se precisan cantidades
superiores a varios miles de unidades.
2ª. OTP
El
microcontrolador contiene una memoria no volátil de sólo lectura
"programable una sola vez" por el usuario. OTP (One Time
Programmable). Es el usuario quien puede escribir el programa en el chip
mediante un sencillo grabador controlado por un programa desde un PC. La
versión OTP es recomendable cuando es muy corto el ciclo de diseño del
producto, o bien, en la construcción de prototipos y series muy pequeñas.
Tanto en este tipo
de memoria como en la EPROM, se suele usar la encriptación mediante fusibles
para proteger el código contenido.
3ª EPROM
Los
microcontroladores que disponen de memoria EPROM (Erasable Programmable Read
OnIy Memory) pueden borrarse y grabarse muchas veces. La grabación se realiza,
como en el caso de los OTP, con un grabador gobernado desde un PC. Si,
posteriormente, se desea borrar el contenido, disponen de una ventana de
cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta
durante varios minutos. Las cápsulas son de material cerámico y son más caros
que los microcontroladores con memoria OTP que están hechos con material plástico.
Hoy día se utilizan poco, siendo sustituidas por memorias EEPROM o Flash.
4ª EEPROM
Se trata de
memorias de sólo lectura, programables y borrables eléctricamente EEPROM
(Electrical Erasable Programmable Read OnIy Memory). Tanto la programación como
el borrado, se realizan eléctricamente desde el propio grabador y bajo el
control programado de un PC. Es muy cómoda y rápida la operación de grabado y
la de borrado. No disponen de ventana de cristal en la superficie.
Los
microcontroladores dotados de memoria EEPROM una vez instalados en el circuito,
pueden grabarse y borrarse cuantas veces se quiera sin ser retirados de dicho
circuito. Para ello se usan "grabadores en circuito" que confieren
una gran flexibilidad y rapidez a la hora de realizar modificaciones en el
programa de trabajo.
El número de veces
que puede grabarse y borrarse una memoria EEPROM es finito, por lo que no es
recomendable una reprogramación continua. Hoy día están siendo sustituidas por
memorias de tipo Flash.
Se va extendiendo
en los fabricantes la tendencia de incluir una pequeña zona de memoria EEPROM
en los circuitos programables para guardar y modificar cómodamente una serie de
parámetros que adecuan el dispositivo a las condiciones del entorno.
Este tipo de
memoria es relativamente lenta.
5ª FLASH
Se trata de una
memoria no volátil, de bajo consumo, que se puede escribir y borrar. Funciona
como una ROM y una RAM pero consume menos y es más pequeña.
A diferencia de la
ROM, la memoria FLASH es programable en el circuito. Es más rápida y de mayor
densidad que la EEPROM.
La alternativa
FLASH está recomendada frente a la EEPROM cuando se precisa gran cantidad de
memoria de programa no volátil. Es más veloz y tolera más ciclos de
escritura/borrado. Son idóneas para la enseñanza y la Ingeniería de diseño.
Las memorias
EEPROM y FLASH son muy útiles al permitir que los microcontroladores que las
incorporan puedan ser reprogramados "en circuito", es decir, sin
tener que sacar el circuito integrado de la tarjeta. Así, un dispositivo con
este tipo de memoria incorporado al control del motor de un automóvil permite
que pueda modificarse el programa durante la rutina de mantenimiento periódico,
compensando los desgastes y otros factores tales como la compresión, la
instalación de nuevas piezas, etc. La reprogramación del microcontrolador puede
convertirse en una labor rutinaria dentro de la puesta a punto.
Puertos de Entrada y Salida
La principal
utilidad de las patillas que posee la cápsula que contiene un microcontrolador
es soportar las líneas de E/S que comunican al computador interno con los
periféricos exteriores y según los controladores de periféricos que posea cada
modelo de microcontrolador, se destinan a proporcionar el soporte a las señales
de entrada, salida y control.
Todos los
microcontroladores destinan algunas de sus patillas a soportar líneas de E/S de
tipo digital, esto es, todo o nada. Por lo general, estas líneas se agrupan de
ocho en ocho formando Puertos. Las líneas digitales de los Puertos pueden
configurarse como Entrada o como Salida cargando un 1 ó un 0 en el bit
correspondiente de un registro destinado a su configuración.
Reloj principal
Todos los
microcontroladores disponen de un circuito oscilador que genera una onda
cuadrada de alta frecuencia, que configura los impulsos de reloj usados en la
sincronización de todas las operaciones del sistema. Esta señal del reloj es el
motor del sistema y la que hace que el programa y los contadores avancen.
Generalmente, el
circuito de reloj está incorporado en el microcontrolador y sólo se necesitan
unos pocos componentes exteriores para seleccionar y estabilizar 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.
Aumentar la
frecuencia de reloj supone disminuir el tiempo en que se ejecutan las
instrucciones pero lleva aparejado un incremento del consumo de energía y de
calor generado.
Cada fabricante oferta numerosas
versiones de una arquitectura básica de microcontrolador. En algunas amplía las
capacidades de las memorias, en otras incorpora nuevos recursos, en otras
reduce las prestaciones al mínimo para aplicaciones muy simples, etc. La labor
del diseñador es encontrar el modelo mínimo que satisfaga todos los
requerimientos de su aplicación. De esta forma, minimizará el coste, el
hardware y el software.
Los principales recursos específicos que incorporan los
microcontroladores son:
Temporizadores o
"Timers".
Perro guardián o
"Watchdog".
Protección ante fallo de
alimentación o "Brownout".
Estado de reposo o de bajo consumo.
Conversor A/D.
Conversor D/A.
Comparador analógico.
Modulador de anchura de impulsos o
PWM.
Puertos de comunicación.
Temporizadores o "Timers"
Se emplean para controlar periodos de tiempo (temporizadores) y para
llevar la cuenta de acontecimientos que suceden en el exterior (contadores).
Perro guardián o
"Watchdog"
Cuando un ordenador personal se bloquea por un fallo del software u otra
causa, se pulsa el botón del reset y se reinicializa el sistema.
Protección ante fallo de
alimentación o "Brownout"
Estado de reposo ó de bajo consumo
Conversor A/D (CAD)
Los microcontroladores que incorporan un Conversor A/D (Analógico/Digital)
pueden procesar señales analógicas, tan abundantes en las aplicaciones. Suelen
disponer de un multiplexor que permite aplicar a la entrada del CAD diversas
señales analógicas desde las patillas del circuito integrado.
Conversor D/A (CDA)
Transforma los datos digitales obtenidos del procesamiento del
computador en su correspondiente señal analógica que saca al exterior por una
de las patillas de la cápsula. Existen muchos dispositivos de salida que
trabajan con señales analógicas.
Comparador analógico
Algunos modelos de microcontroladores disponen internamente de un
Amplificador Operacional que actúa como comparador entre una señal fija de
referencia y otra variable que se aplica por una de las patillas de la cápsula.
La salida del comparador proporciona un nivel lógico 1 ó 0 según una señal sea
mayor o menor que la otra.
También hay modelos de microcontroladores con un módulo de tensión de
referencia que proporciona diversas tensiones de referencia que se pueden
aplicar en los comparadores.
Modulador de anchura de impulsos o
PWM
Son circuitos que proporcionan en su salida impulsos de anchura
variable, que se ofrecen al exterior a través de las patillas del encapsulado.
Resulta util para sistemas de control de potencia, como por ejemplo motores.
Puertos de comunicación
Con objeto de dotar al microcontrolador de la posibilidad de comunicarse
con otros dispositivos externos, otros buses de microprocesadores, buses de
sistemas, buses de redes y poder adaptarlos con otros elementos bajo otras
normas y protocolos. Algunos modelos disponen de recursos que permiten directamente
esta tarea, entre los que destacan:
UART, adaptador de comunicación
serie asíncrona.
USART, adaptador de comunicación
serie síncrona y asíncrona
Puerto paralelo esclavo para poder
conectarse con los buses de otros microprocesadores.
USB (Universal Serial Bus), el
conocido bus serie para los PC.
Bus I2C, que es un interfaz serie
de dos hilos desarrollado por Philips.
Interface SPI, un puerto serie
síncrono.
CAN (Controller Area Network), para
permitir la adaptación con redes de conexionado multiplexado desarrollado
conjuntamente por Bosch e Intel para el cableado de dispositivos en
automóviles. En EE.UU. se usa el J185O.
TCP/IP, ya existen
microcontroladores con un adaptador de comunicación para este protocolo.
Tanto el I2C en televisores, como el Bus CAN en automóviles, fueron
diseñados para simplificar la circuitería que supone un bus paralelo de 8
líneas dentro de un televisor, así como para librar de la carga que supone una
cantidad ingente de cables en un vehículo.
Arquitectura von-Neumman
La arquitectura Von Neumann, también conocida como modelo de Von Neumann o arquitectura Princeton, es una arquitectura de computadoras basada en la descrita en 1945 por el matemático y físico John von Neumann y otros, en el primer borrador de un informe sobre el EDVAC. Este describe una arquitectura de diseño para un computador digital electrónico con partes que constan de una unidad de procesamiento que contiene una unidad aritmético lógica y registros del procesador, una unidad de control que contiene un registro de instrucciones y un contador de programa, una memoria para almacenar tanto datos como instrucciones, almacenamiento masivo externo, y mecanismos de entrada y salida. El significado ha evolucionado hasta ser cualquier computador de programa almacenado en el cual no pueden ocurrir una extracción de instrucción y una operación de datos al mismo tiempo, ya que comparten un bus en común. Esto se conoce como el cuello de botella Von Neumann y muchas veces limita el rendimiento del sistema.
El diseño de una arquitectura Von Neumann es más simple que la arquitectura Harvard más moderna, que también es un sistema de programa almacenado, pero tiene un conjunto dedicado de direcciones y buses de datos para leer datos desde memoria y escribir datos en la misma, y otro conjunto de direcciones y buses de datos para ir a buscar instrucciones.
Un computador digital de programa almacenado es una que mantiene sus instrucciones de programa, así como sus datos, en memoria de acceso aleatorio (RAM) de lectura-escritura. Las computadoras de programa almacenado representaron un avance sobre los ordenadores controlados por programas de la década de 1940, como la Colossus y la ENIAC, que fueron programadas por ajustando interruptores e insertando parches, conduciendo datos de la ruta y para controlar las señales entre las distintas unidades funcionales. En la gran mayoría de las computadoras modernas, se utiliza la misma memoria tanto para datos como para instrucciones de programa, y la distinción entre Von Neumann vs. Harvard se aplica a la arquitectura de memoria caché, pero no a la memoria principal.
No hay comentarios:
Publicar un comentario