En esta entrada hablare de cómo se compone la arquitectura de microcontroladores,
antes de eso esta es una breve introducción sobre que son estos
pequeños dispositivos.
El microcontrolador es un dispositivo electrónico que se puede realizar proceso
lógicos, estos son programados en lenguaje ensamblador y son introducidos a
esto mediante un programador.
Microcontrolador:
Ø Un microcontrolador
requiere un chip de memoria para los periféricos que contiene.
Ø El funcionamiento de
un microcontrolador es de usos múltiples.
Ø Reducción de la
cantidad de espacio en la implementación de un diseño dado.
Ø Reduce el costo de
implementación.
Ø Permite desarrollo de
aplicaciones específicas de manera más rápida y eficiente.
Ø Los fabricantes dan
mucho soporte sobre las aplicaciones más comunes.
Ø Se adaptan mejor a
aplicaciones específicas.
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.
Ø
Instrucciones especializadas
Ø
Se requieren un set de instrucciones amplio
para dar soporte a una arquitectura.
Ø
Programas requieren menos código fuente.
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. RISC (Reduced
Instruction Set Computer):
Ø
Set de instrucciones reducido
Ø
Instrucciones de carácter general
Ø
Duración homogénea de la ejecución de las
instrucciones.
Ø
Se requiere más código para describir una
operación que con una arquitectura CISC.
- 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).
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:
1. No existen sistemas
de almacenamiento masivo como disco duro o disquetes.
2. 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.
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.
Arquitectura externa de microcontroladores
Von Neumann
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.
Ø
Ejecución secuencial de las instrucciones
Ø
Existe solo una unidad de búsqueda y una unidad
de ejecución.
Ø
La instrucción siguiente se busca hasta que se
ejecute la instrucción actual.
Segmentada
Esta arquitectura es similar al uso de una
cadena de montaje en una fábrica de manufacturación. Una cadena de montaje saca
partida del hecho de que el producto pasa atreves de varias etapas de
producción. Extendiendo el proceso de producción de una cadena de montaje se
puede trabajar sobre los productos en varias etapas como segmentación porque
como en una tubería o cause en un extremo nuevo entradas se aceptan antes de
que algunas entradas aceptadas con anterioridad aparezcan como salidas en el
otro extremo.
Divide
la búsqueda de las instrucciones de manera cuando se ejecute la instrucción
actual ya se está ejecutando la siguiente.
Multiplica
la velocidad de ejecución al doble que la Von Newman.
Los microcontroladores PIC responden a la arquitectura Harvard.
·
Se conoce como arquitectura de
ejecución paralela.
·
Divide los procesos
·
Bus de direcciones y de datos separados
en la arquitectura.
Podemos encontrar elementos comunes en los microcontroladores
ADC (convertidor
Analogico Digital)
USART
RTC
es un reloj de ordenador.
Puertos
entrada/salida paralelos
PWM
USB
Los microcontroladores están siendo
empleados en multitud de sistemas presentes en nuestra vida diaria, como pueden
ser juguetes, horno microondas, frigoríficos, televisores, ordenadores,
impresoras, módems, el sistema de arranque de nuestro coche, etc.
Existen
diferentes aplicaciones de los microcontroladores (µcc) donde cualquier
problema en el cual se requiera un instrumento digital compacto que sea
capaz de realizar funciones como las siguientes, es posible pensar en
sistema basado en un µcc:
Ø secuenciamiento
Ø codificación/decodificación
Ø monitoreo
Ø procesamiento
de señales
Ø control
retroalimentado
Ø temporización
Ø cálculos
aritméticos sencillos
Ø comunicaciones
Ø automatización
Ø despliegue
digital
Ø control
on - off etc