Documente Academic
Documente Profesional
Documente Cultură
INGENIERIA ELECTRONICA
ASIGNATURA
MICROCONTROLADORES
DOCENTE
ING. HERNANDEZ SOL ALVARO
TRABAJO
ARQUITECTURA VON NEUMANN
Y ARQUITECTURA HARVARD
EQUIPO
4
ESTUDIANTES
DOMINGUEZ REYES JOSE ANGEL
GOMEZ GOMEZ ULIVARI ALEXANDER
OCAÑA SANCHEZ RODRIGO ANDRES
SANTIAGO SOLORZANO SERGIO ALEXANDER
Figura 1.3. El microcontrolador en un sistema cerrado. Todas las partes del computador
están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los
periféricos.
Componentes de un microcontrolador
Un microcontrolador combina los recursos fundamentales disponibles en un
microcomputador, es decir, la unidad central de procesamiento (CPU), la memoria y los
recursos de entrada y salida, en único circuito integrado.
Figura 1.8 La arquitectura Harvard utiliza memorias separadas para instrucciones y datos,
las cuales se conectan a la CPU mediante los buses de direcciones de instrucciones (BDIR-
I) y de direcciones de datos (BDIR-D) y los buses de instrucciones (BINST) y de datos
(BDAT) y los buses de control de instrucciones (BCON-I) y de datos (BCON-D)
Figura 1.9. 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
esta figura, la memoria de instrucciones tiene 1 K de 14 bits cada una, mientras que la de
datos sólo dispone de 512 posiciones de un byte.
Podemos resumir que el proceso de ejecución de las arquitecturas es la siguiente:
1.- Búsqueda de instrucción: Lo tomo del PC y lo mando al bus de dirección, mando la señal
al bus de control hasta que lo encuentra y lo coloca en el bus de datos y lo manda a IR e
incremento a PC.
2.- Decodificación (Interpretar): Aquí l dice si lo guardo en registro o memoria, IR interpreta
primero la instrucción, ósea que operación va hacer, quienes son los operandos que
intervienen (a,b), (c o d), pueden ser datos que están almacenados en la memoria de datos
y por ultimo a donde voy a mandar o guardar el resultado.
3.- Ejecución: ya se genera el código de control, que operación va a resultar de lo que le
decimos a la ALU, si los operadores son registros la palabra es única, pero si uno es
memoria, la unidad de control tienen que mandar a la dirección a encontrarlo después al
bus de datos y mandarlo a la ALU.
4.- Almacenamiento: Puede ser en ellos registros o la memoria de datos, en uno de los
registros de la salida de la ALU, pero si lo guardo en una memoria de la ALU lo manda a
donde se vaya a guardar.
cuando se guarda el resultado se empieza de nuevo el proceso. En el caso de la
arquitectura Von Neumann la CPU puede estar bien leyendo una instrucción o
leyendo/escribiendo datos desde/hacia la mamemoria pero ambos procesos no pueden
ocurrir al mismo tiempo y en la arquitectura Harvard la CPU puede tanto leer una instrucción
como realizar un acceso a la memoria de datos al mismo tiempo, incluso sin una memoria
caché.
La arquitectura Von Neumann requiere menos líneas que la Harvard para conectar la CPU
con la memoria, lo cual significa una conexión más simple entre ambas. Pero con esta
arquitectura es imposible manipular simultáneamente datos e instrucciones, debido a la
estructura de buses únicos, algo que si posible en la arquitectura Harvard, que tiene buses
separados. Esto confiere a la arquitectura Harvard la ventaja de una mayor velocidad de
ejecución de los programas.
Arquitecturas Ventajas Desventajas
Permite el diseño de La longitud de las
programas con código instrucciones está limitada
automodificable
Von Neumann
Es eficiente en la utilización La velocidad de operación
de la memoria está limitada
Este microprocesador tiene una arquitectura von neumann ya que las señales se transmiten
únicamente por medio de tres buses, el bus de direcciones, el bus de datos y el bus de
control es por esto que la CPU puede estar leyendo una instrucción o escribiendo datos,
pero no puede hacer ambos procesos a la vez ya que dicho bus esta ocupado haciendo un
proceso y para realizar la siguiente instrucción este debe finalizar la anterior.
A continuación, se explicará cada parte de este microprocesador el cual ha sido uno de los
más talentosos, y muchos sistemas basados en microprocesadores están diseñados
alrededor del Z80.
El Zilog Z80 es un microprocesador de 8 bits con 16 lineas de dirección este
microprocesador requiere únicamente una fuente de alimentación de 5V. Este modelo
incluye un acumulador y un registro de bandera, matrices de registro de propósito general,
registros como punteros de memoria y registros de propósito especial. En la siguiente figura
se muestra el diagrama del Zilog Z80.
Registros de propósito general
El microprocesador Z80 tiene seis registros de propósito general programables llamados B,
C, D, E, H y L, como se muestra en la Figura. Estos son registros de 8 bits utilizados para
almacenar datos durante la ejecución del programa. Se pueden combinar como pares de
registros: BC, DE y HL, para realizar operaciones de 16 bits o mantener las direcciones de
memoria. El programador puede usar estos registros para cargar o copiar datos.
Acumulador
El acumulador es un registro de 8 bits que forma parte de la unidad lógica aritmética (ALU)
y también se identifica como el registro A. Este registro se utiliza para almacenar datos de
8 bits y para realizar operaciones aritméticas y lógicas. El resultado de una operación
realizada en la ALU se almacena en el acumulador.
Características
25 MIPS, 40 ns Tasa de instrucción máxima
Buses en chip separados para memoria de programa y datos
La memoria del programa almacena instrucciones y datos (rendimiento de tres buses)
Generadores de direcciones de datos duales con módulo y direccionamiento de bits inverso
Secuenciación de programas eficiente con sobrecarga cero
Bucle: configuración de ciclo de ciclo único
Inicio automático de la memoria del programa en chip desde una memoria externa de bytes
(por ejemplo, EPROM)
Puertos serie de doble búfer con hardware de compresión, almacenamiento en búfer
automático de datos y operación multicanal
El puerto de interfaz de host ADSP-2111 proporciona una interfaz fácil para 68000, 80C51,
ADSP-21xx, etc., arranque automático de la memoria del programa ADSP-2111 A través
del puerto de interfaz del host
Tres interrupciones sensibles al nivel o al filo
Instrucción IDLE de baja potencia
Bus interno
El bus de resultado interno (R) conecta directamente las unidades de cómputo para que la
salida de cualquier unidad pueda usarse como la entrada de cualquier unidad en el siguiente
ciclo.
Generador de dirección de datos
(DAG) El mecanismo que genera direcciones de memoria temporales para los datos que
se transfieren entre la memoria y los registros en un Procesador de Señal Digital. Ciertas
arquitecturas de DSP incorporan más de un DAG para simplificar la programación necesaria
para mover bloques de datos entre buffers. Por ejemplo, ciertos algoritmos de transformada
rápida de Fourier que requieren inversión de bits pueden usar el DAG para ese propósito,
o pueden usar dos DAGS, uno para datos de memoria de programa (PMD) y otro para datos
de memoria de datos (DMD).
Programa de secuencia
Un potente secuenciador de programas y dos generadores de direcciones de datos
dedicados aseguran un uso eficiente de estas unidades computacionales. El secuenciador
admite saltos condicionales, llamadas de subrutinas y retornos en un solo ciclo. Con los
contadores de bucle internos y las pilas de bucles, el ADSP-21xx ejecuta un código de bucle
con una sobrecarga de cero; no se requieren instrucciones explícitas de salto para
mantener el bucle.
Registro de instrucción
(IR) La parte de una unidad de control de la unidad central de procesamiento (CPU) que
contiene la instrucción de la máquina que se está ejecutando actualmente. El ciclo de
búsqueda y ejecución de la CPU carga las instrucciones de la memoria en el registro de
instrucciones. El IR, a su vez, controla la lógica de decodificación de instrucciones que
determina qué operación debe realizar la CPU en qué datos. Los procesadores modernos
tienen un canal de instrucciones para minimizar el tiempo que la unidad de control está
esperando a que se obtengan las instrucciones y los datos de la memoria. Esto puede
distribuir el trabajo del IR en varios registros en la tubería.
Memoria
Memoria del programa: donde se almacena la aplicación. Algunos chips permiten que
partes de la memoria del programa se modifiquen en bloques (segmentos), pero no puede
almacenar variables en la memoria del programa.
Normalmente es posible almacenar constantes, es decir, variables inicializadas que no se
cambian, en la memoria del programa.
Cuando MMAP = 0, la memoria RAM del programa en chip ocupa 2K palabras comenzando
en la dirección 0x0000.
La memoria de programa off-chip utiliza las 14K palabras restantes que comienzan en la
dirección 0x0800.
En esta configuración, cuando MMAP = 0, la secuencia de carga de inicio (que se describe
a continuación en “Interfaz de memoria de inicio”) se inicia automáticamente cuando se
libera RESET.
8 Bits
Fabricado con doble metal
Estos dispositivos están disponibles como UV borrable y One Time Programable
(OTP)
Temporizador multifunción de 6 bits compatible
Modo PWM
Modo contador de eventos externos
Modo de captura de entrada
Cristal, RC u Oscilador Externo, configurable por el usuario
OTP EPROM en chip de 4 Kbyte con función de seguridad
128 o 64 bytes de RAM en chip, configurable por el usuario
Registros de alu y cpu
La ALU puede hacer una suma de 8 bits, una resta, lógica u Operación de cambio en un
ciclo de tiempo. Hay cinco registros de CPU:
- A es el registro del acumulador de 8 bits.
- PU es los 7 bits superiores del contador de programas (PC)
- PL es los 8 bits más bajos del contador de programas (PC)
- B es el registro de dirección de 8 bits, se puede incrementar automáticamente o
decrementar
- X es el registro de dirección alternativa de 8 bits, se puede incrementar o
decrementar.
- SP es el puntero de pila de 8 bits, que apunta a la subrutina / Interrumpir la pila en
la memoria RAM.
El SP debe inicializarse con software, este se utiliza con las Subrutinas de llamada,
subrutinas de devoluciones, y con las interrupciones. Los registros B, X y SP se asignan en
la memoria RAM del chip. Los registros B y X se utilizan para abordar la RAM en chip. El
registro SP se utiliza para direccionar la pila en la RAM durante Subrutina de llamadas y
devoluciones.
Memoria del programa
El dispositivo contiene 4096 bytes de UV borrable o OTP Memoria EPROM. La memoria
del programa puede contener instrucciones o constantes de datos, y es direccionado por el
contador de programa de 15 bits (PC). La memoria del programa puede ser leída
indirectamente por el LAID (carga del acumulador indirecto) para la búsqueda en la tabla
de datos constantes. Todas las ubicaciones en la memoria del programa EPROM
contendrán 0FF Hex (todos los 1) después de que se borre el dispositivo. Las partes de
OTP son enviadas con todas las ubicaciones ya borradas a hexadecimal 0FF. Las
ubicaciones de EPROM siempre deben programarse a 00Hex para que la trampa de
software pueda usarse para detener el fugitivo.
Memoria de datos
El espacio de direcciones de la memoria de datos incluye RAM en chip, E / S, y registros.
La memoria de datos es direccionada directamente por Instrucciones, o indirectamente por
medio de los punteros B, X o SP. El dispositivo se puede configurar para tener 64 o 128
bytes de RAM, dependiendo del valor del ‘‘RAM SIZE’’ Bit en el registro ECON
(CONFIGURACIÓN EPROM). Los Dieciséis bytes de RAM ubicados en la dirección de
memoria de datos 0F0– 0FF se designan como "registros". Estos dieciséis registros pueden
ser disminuido y probados con el DRSZ (Decremento Registrar y omitir si es cero). Los tres
punteros X, B y SP se asignan en memoria a este espacio de direcciones de registro en las
direcciones 0FC, 0FE y 0FD respectivamente. Los registros restantes están disponibles
para uso general. Cualquier bit de la memoria de datos se puede configurar, restablecer o
probar directamente. Todos los registros de E / S y registros de control (excepto A y PC)
son asignados a la memoria. En consecuencia, cualquiera de los bits de E / S o los bits de
registro de control se pueden configurar directa e individualmente, restablecer, o probar.
Nota: el contenido de la RAM no está definido en el encendido.
Registro econ (configuracion eprom)
El registro ECON se utiliza para configurar por el usuario opciones de reloj, seguridad y
tamaño de RAM. El registro puede ser Programado y solo lectura en modo de programación
EPROM. Por lo tanto, el registro debe ser programado al mismo tiempo. El dispositivo tiene
una característica de seguridad que, cuando está habilitada, evita Lectura de la memoria
del programa EPROM. La seguridad bit en el registro ECON determina si la seguridad está
habilitada o deshabilitada. Si la opción de seguridad está habilitada, entonces cualquier
intento de leer externamente el contenido de la EPROM como resultado lee el valor E0 Hex
de toda la memoria del programa, si la opción de seguridad está deshabilitada, los
contenidos de la EPROM interna puede leerse. El registro ECON es legible
independientemente del estado del bit de seguridad.
RABBIT 2000 MICROPROCESSOR
El microprocesador es del tipo von neumann Ya que cumple con las características de uno,
por ejemplo y lo más importante es que usa un solo bus de datos, y un solo bus de dirección,
en este microcontrolador no cuenta con un único bus de control, si no que sus funciones
son determinadas por el conjunto de temporizadores que contiene, ya que estos mediante
osciladores determinaran el tiempo de activación de cada una de sus partes.
Características básicas del Rabbit
El Rabbit es un procesador de 8 bits con un bus de datos externo de 8 bits y un bus de
datos interno de 8 bits. Debido a que Rabbit aprovecha al máximo su bus externo de 8 bits
y porque tiene un conjunto de instrucciones compacto, su rendimiento es tan bueno como
muchos procesadores de 16 bits. Así, el Conejo puede manejar muchas operaciones de 16
bits.
El micro rabbit maneja interiormente 8 bits, y por fuera de este tiene la capacidad de adquirir
información de otros 8 bits, por lo que realmente trabaja con 16 bits
Operaciones que puede realizar
“Load Immediate Data”
“8-bit Indexed Load and Store”
“16-bit Indexed Loads and Stores”
“16-bit Load and Store 20-bit Address”
“Register to Register Moves”
“Exchange Instructions”
“Stack Manipulation Instructions”
“16-bit Arithmetic and Logical Ops”
“8-bit Arithmetic and Logical Ops”
“8-bit Bit Set, Reset and Test”
“8-bit Increment and Decrement”
“8-bit Fast A register Operations”
“8-bit Shifts and Rotates”
Puertos seriales
Hay cuatro puertos serie designados como puertos A, B, C y D. Los cuatro puertos serie
pueden operar en modo asíncrono hasta la velocidad en baudios del reloj del sistema
dividido por 32. Los puertos asíncronos pueden manejar 7 u 8 data bits
También se admite un esquema de dirección de 9º bit, donde se envía un bit adicional para
marcar el primer byte de un mensaje.
Sistema de reloj
El oscilador principal utiliza un cristal externo con una frecuencia típicamente en el rango
de
1.8 MHz a 29.5 MHz. El reloj del procesador se deriva de la salida del oscilador ya sea
doblando la frecuencia, usando la frecuencia directamente, o dividiendo la frecuencia por
8. El reloj del procesador también puede ser controlado por el oscilador de 32.768 kHz para
una operación de muy baja potencia, en cuyo caso El oscilador principal se puede apagar
bajo el control del software
Oscilador de fecha y hora
El oscilador de 32.768 kHz controla un cristal de cuarzo externo de 32.768 kHz. El reloj de
32.768 kHz se usa para controlar un contador interno de 48 bits con batería de respaldo
(hay un pin de alimentación separado) que sirve como reloj en tiempo real (RTC). El
contador se puede configurar y leer por software y está diseñado para guardar la fecha y la
hora. Hay suficientes bits para mantener la fecha por más de 100 años. El oscilador de
32.768 kHz también se usa para controlar el temporizador de vigilancia y para generar el
reloj en baudios para el puerto serie A durante la secuencia de arranque en frío.
Puertos paralelos de entrada y salidas
hay 40 líneas de entrada / salidas paralelas divididas entre cinco puertos de 8 bits
designados de la A, a la E. La mayoría de las líneas de puertos tienen funciones
alternativas, como datos en serie o luces estroboscópicas de selección de chip. Los puertos
paralelos D y E tienen la capacidad de salidas sincronizadas por temporizador. Los registros
de salida están en cascada.
Puerto esclavo
El puerto esclavo está diseñado para permitir que el Conejo sea esclavo de otro procesador,
lo que podría ser otro Conejo. El puerto se comparte con el puerto paralelo A y es un puerto
de datos bidireccional. El maestro puede leer cualquiera de los tres registros seleccionados
a través de dos líneas de selección que forman la dirección del registro y una luz
estroboscópica de lectura que hace que el contenido del registro sea enviado por el puerto.
Estos mismos registros pueden escribirse como registros de E / S por el esclavo Rabbit.
Tres registros adicionales transmiten datos en la dirección opuesta. Son escritas por el
maestro por medio de las dos líneas de selección y una luz estroboscópica de escritura.
Temporizadores
El conejo tiene varios sistemas de temporizador. La interrupción periódica es activada por
el oscilador de 32.768 kHz dividido por 16, lo que da una interrupción cada 488 µs si está
habilitado. Está diseñado para ser utilizado como una interrupción de reloj de propósito
general. El temporizador A consta de cinco registros de cuenta atrás y recarga de 8 bits que
se pueden conectar en cascada hasta dos niveles de profundidad. Cada registro de cuenta
regresiva se puede configurar para dividir por cualquier número entre 1 y 256. La salida de
cuatro de los temporizadores se usa para proporcionar relojes de baudios para los puertos
serie.
Mapeo de memoria
Las instrucciones de Rabbit se dirigen directamente a un espacio de memoria de datos de
64K. Esto significa que los campos de dirección en las instrucciones tienen una longitud de
16 bits y que los registros que pueden usarse como punteros a las direcciones de memoria
(registros de índice (IX, IY), contador de programa y puntero de pila (SP)) también tienen
una longitud de 16 bits.