60
UNIVERSIDAD DE GUADALAJARA CENTRO UNIVERSITARIO DE LA COSTA SUR DIVISIÓN DE DESARROLLO REGIONAL DEPARTAMENTO DE INGENIERÍAS Ingeniero en Teleinformática Técnico Superior Universitario en Teleinformática ANTOLOGÍA Lecturas de Apoyo de Arquitectura de ComputadorasPor: M. I. E. Jorge Arturo Pelayo López M. C. Karen Hernández Rueda Junio de 2009

Antologia de Arquitectura de Computadoras

Embed Size (px)

Citation preview

Page 1: Antologia de Arquitectura de Computadoras

UNIVERSIDAD DE GUADALAJARA

CENTRO UNIVERSITARIO DE LA COSTA SUR

DIVISIÓN DE DESARROLLO REGIONAL

DEPARTAMENTO DE INGENIERÍAS

Ingeniero en Teleinformática

Técnico Superior Universitario en Teleinformática

ANTOLOGÍA

“Lecturas de Apoyo de Arquitectura de Computadoras”

Por: M. I. E. Jorge Arturo Pelayo López M. C. Karen Hernández Rueda

Junio de 2009

Page 2: Antologia de Arquitectura de Computadoras

ANTOLOGÍA

Lecturas de Apoyo de Arquitectura de Computadoras

Ingeniero en Teleinformática

Técnico Superior Universitario en Teleinformática

Créditos:

M. I. E. Jorge Arturo Pelayo López M. C. Karen Hernández Rueda

Junio de 2009

Page 3: Antologia de Arquitectura de Computadoras

i

ÍNDICE

Unidad 1: Introducción a la estructura de computadoras…..….………...….. 1

Introducción…………………………………...…………….…………….……… 2

El modelo de von Neumann………………..………………………………....…... 4

El modelo de interconexión a través de bus....……………………………………. 5

La arquitectura Harvard………………………………………….………….……. 7

Tipos de computadoras…………………………………………………….….….. 8

Lenguajes, compiladores e interpretadores…………………………………..…… 10

¿Qué es un microcontrolador?.................................................................................. 12

Unidad 2: Introducción al microprocesador Z80...……..……………..……… 17

Arquitectura del microprocesador Z80…….……………………………………… 18

Programación…………….………………..…………………………………..…... 27

Mnemónicos……………………………..………………………………………... 29

Modos de direccionamiento…...………………………………….………………. 20

Unidad 3: Introducción al microcontrolador ATtiny2313.…………………… 40

Características del Arquitectura microcontrolador ATtiny2313……..…………… 41

Configuración de los pines………………..…………………………………..…... 43

Diagrama de bloques……...……………..………………………………………... 44

Descripción de los pines…..…...………………………………….………………. 45

Memorias del microcontrolador ATtiny2313……………………………………... 46

El oscilador de cristal……………………………………………………………... 48

El reloj externo……………………………………………………………………. 49

Auto programador del flash……………………………………………………….. 50

Corriente vs frecuencia……………………………………………………………. 51

Mnemónicos del attiny2313………………………………………………………. 52

Características físicas del chip……………………………………………………. 54

Referencias bibliográficas……………………….....…….……………………… 55

Page 4: Antologia de Arquitectura de Computadoras

ii

PRÓLOGO

La presente antología está dirigida a estudiantes que cursan la materia de Arquitectura de

Computadoras, asignatura que se imparte en las carreras de Ingeniero en Teleinformática y

Técnico Superior Universitario en Teleinformática que se ofertan en el Centro Universitario

de la Costa Sur. En la primera unidad se describe se describen las dos grandes arquitecturas de

computadoras como lo son la de von Neumann y la arquitectura Harvard. También se

muestra una clasificación de los tipos de computadoras existentes. Así mismo, define al

lenguaje de programación, a los compiladores e interpretes. Por ultimo se describe al

microcontrolador y la comparación con el microprocesador.

En la segunda se describe la arquitectura del microprocesador Z80. También se describe la programación y los mnemónicos así como los modos de direccionamiento para este microprocesador. En la tercera unidad se describe al microcontrolador ATtiny2313 de la familia Atmel. Se describen sus principales características, la configuración de sus pines, el diagrama de bloques. También se describen sus 120 mnemónicos para su programación. Finalmente en la sección de referencias bibliográficas se muestran las fuentes de donde se obtuvo la información para la elaboración de esta antología.

Page 5: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

1 INTEL Y TSUTEL

UNIDAD I

INTRODUCCIÓN A LA ESTRUCTURA DE COMPUTADORAS

RESUMEN

En esta unidad se describen las dos grandes arquitecturas de computadoras como lo son la

de von Neumann y la arquitectura Harvard. También se muestra una clasificación de los

tipos de computadoras existentes. Así mismo, define al lenguaje de programación, a los

compiladores e interpretes. Por ultimo se describe al microcontrolador y la comparación

con el microprocesador.

Page 6: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

2 INTEL Y TSUTEL

INTRODUCCIÓN

Fuente: monografias.com, (2009). Arquitectura de las computadoras. Extraído el 17 de

junio de 2009, desde http://www.monografias.com/trabajos17/arquitectura-

computadoras/arquitectura-computadoras.shtml

El concepto de arquitectura en el entorno informático proporciona una descripción de la

construcción y distribución física de los componentes de la computadora.

La arquitectura de una computadora explica la situación de sus componentes y permite

determinar las posibilidades de que un sistema informático, con una determinada

configuración, pueda realizar las operaciones para las que se va a utilizar.

En la actualidad es muy familiar el aspecto exterior de una computadora o, por lo menos, de

una microcomputadora; pero se ha de advertir que, salvando las diferencias de tamaño y la

posibilidad de teleproceso (manejo del sistema informático a grandes distancias a través de

líneas de comunicaciones de diferentes tipos), en general, los sistemas informáticos se

dividen físicamente en la unidad central del sistema y los periféricos que permiten

conectarlo al mundo exterior.

La Unidad Central del Sistema es un habitáculo en forma de caja donde se sitúa el

«cerebro» de la computadora, esto es, la unidad central de proceso (CPU), así como los

distintos componentes que van a ayudar al sistema informático en sus operaciones

habituales (bus, memorias, fuentes de alimentación eléctrica, etcétera).

La unidad central de proceso se compone de:

• Una Unidad de Control que manejará los diferentes componentes del sistema

informático así como los datos a utilizar en los diferentes procesos.

• Una Unidad Aritmético-Lógica que realizará las diferentes operaciones de cálculo

en las que la computadora basa su funcionamiento.

• Unos Registros del Sistema que sirven como área de trabajo interna a la unidad

central de proceso.

La unidad central de proceso se conecta a una serie de memorias que le sirven como

soporte para el manejo de los datos y programas que se han de utilizar mientras se

encuentre operativa.

Las diferentes memorias del sistema informático (Random Access Memory o RAM y Read

Only Memory o ROM) son componentes fundamentales de la computadora ya que van a

ser, en el caso de la RAM, el área de trabajo donde el microprocesador va a realizar las

diferentes operaciones en que se van a descomponer los procesos solicitados por el usuario,

mientras que la ROM va a servir para ayudar a la computadora a realizar las diferentes

Page 7: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

3 INTEL Y TSUTEL

operaciones de arranque del sistema informático previas a que el sistema operativo tome el

control de las diferentes tareas a realizar.

La unidad central de proceso y las memorias se conectan entre ellas por medio del bus.

El bus es un enlace de comunicaciones que conecta todos los componentes que configuran

el sistema informático y permite la transferencia de información entre ellos. Esta

información se compone de datos y órdenes de comandos para manipular los datos. Existen

varias tecnologías de diseño y construcción de buses entre las que se pueden distinguir las

arquitecturas ISA, EISA y MCA que se verán más adelante.

Otros componentes que se conectan al bus son los puertos de conexión de los diferentes

periféricos asociados a la unidad central del sistema de la computadora y que van a permitir

configurar el sistema informático para una serie diferente de operaciones funcionales que

siempre han de cubrir las necesidades del usuario.

Es evidente que la configuración de un sistema informático ha de realizarse en función de

los objetivos operativos que vaya a cubrir la citada computadora. Así, un sistema

informático que se va a dedicar exclusivamente a CAD/CAM (diseño asistido por

computadora) no tendrá una configuración similar a la de una computadora que va a

dedicarse a controlar los diferentes enlaces de comunicaciones que componen una red

informática.

Los diferentes periféricos que se pueden conectar a un sistema informático se dividen en

cuatro grupos principales:

• Periféricos de Entrada de Información.

• Periféricos de Almacenamiento de Información.

• Periféricos de Salida de Información.

• Periféricos de Comunicaciones.

Page 8: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

4 INTEL Y TSUTEL

EL MODELO DE VON NEUMANN

Fuente: Murdocca, M. J., (2002). Principios de arquitectura de computadoras. El modelo de

von Neumann. Editorial Prentice Hall. Pág. 4-6.

Las computadoras digitales convencionales presentan un aspecto común que se atribuye a

Von Neumann, aunque los historiadores coinciden en que el diseño en cuestión fue obra de

todo el equipo. El modelo de Von Neumann consta de cinco componentes principales, tal

como lo ilustra la siguiente figura. La unidad de entrada provee las instrucciones y los datos

requeridos por el sistema, los que se almacenan en la unidad de memoria. Las instrucciones

y los datos se procesan en la unidad aritmético-lógica (ALU) bajo la dirección de la unidad

de control. Los resultados obtenidos se envían a la unidad de salida. El conjunto construido

por las unidades aritmético-lógico y de control se designa habitualmente bajo el nombre de

unidad central de proceso (CPU). La mayoría de las computadoras comerciales pude

descomponerse en estas cinco unidades.

Una computadora digital según el modelo de Von Neumann. Las flechas gruesas representan rutas de datos.

Las flechas más finas representan rutas de control.

Unidad

de

memoria

Unidad

Aritmetico

-logica

Unidad

de Salida

Unidad

de

control

Unidad

de

Entrada

Page 9: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

5 INTEL Y TSUTEL

El programa almacenado es el aspecto más importante del modelo von Neumann. Los

programas se almacenan en la memoria de la computadora junto con los datos a procesar.

Si bien en la actualidad podemos plantear esto como un hecho concreto, antes del

desarrollo de las computadoras de programa almacenado, los programas se almacenaban en

un medio externo, tales como los tableros de clavijas-anteriormente mencionados-, cintas o

tarjetas perforadas. En la computadora de programa almacenado, el programa puede

manipularse como si se tratara de datos. Este concepto da origen a los compiladores y

sistemas operativos, y es la basa de la gran versatilidad del as computadoras modernas.

EL MODELO DE INTERCONEXIÓN A TRAVÉS DE BUS

Fuente: Murdocca, M. J., (2002). Principios de arquitectura de computadoras. El modelo de

von Neumann. Editorial Prentice Hall. Pág. 4-6.

Si bien el modelo von Neumann prevalece en la estructura de las actuales computadoras el

mismo ha sido modernizado. La siguiente figura muestra el modelo de una computadora

que utiliza el sistema de interconexión a través, de los que se denomina bus del sistema. El

modelo considera que el sistema de computación está constituido por tres subconjuntos la

CPU, la memoria y la entrada-salida (E/S). Este refinamiento del modelo con Neumann

combina a la ALU y la unidad de control en un solo bloque funcional, la CPU. Las

unidades de entrada y salida se combinan, asimismo, en una única unidad de entrada-salida.

Lo más importante de este modelo es que realiza las comunicaciones entre los componentes

por medio de un camino compartido conocido como bus del sistema, constituido a su vez

por un bus de datos (que transporta la información que se está trasmitiendo), un bus de

direcciones (que determina hacia donde está siendo enviada dicha información) y un de

control (que determina hacia donde está siendo enviada dicha información). Existe también

un bus de alimentación, que lleva energía eléctrica a los componentes. Este último no figura

en los esquemas pero se sobre entiende su presencia. Algunas arquitecturas pueden tener,

además de los anteriores, un bus de entrada-salida.

Físicamente, los buses están constituidos por conjuntos de cables agrupados de acuerdo con

su función. Un bus de datos de 32 bits contiene 32 cables individuales, cada uno de los

cuales trasporta un bit de datos (distinguiéndolo de la información de direcciones duales

clasificados de acuerdo con su función.

El bus de datos trasporta datos entre los componentes del sistema. Algunos sistemas tienen

buses de datos separados para el ingreso o la salida de información hacia o desde la CPU,

en cuyo caso existan un bus de entra de datos y otro bus de salida de datos. Pero más a

menudo, un único bus de datos cumple con la función de transportar los datos en una u otra

dirección, aunque nunca en ambas direcciones en forma simultánea.

Page 10: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

6 INTEL Y TSUTEL

El modelo de un sistema de computación basado en un bus. (Aportado por Donald Chiarulli, Universidad de

Pittsburg).

Si el bus tiene ser compartido por diferentes elementos que se comunican entre sí, los

elementos deben tener identidades distintas: direcciones. En algunas computadoras, todas

las direcciones se suponen direcciones de memoria sin importar que formen parte de las

memoria del sistema o que, en realidad, sean dispositivos de entrada-salida separadas.

La localización o dirección de memoria identifica una celda de memoria en la que se

almacena información, tal como se utiliza la dirección postal para identificar el lugar en que

un individuo recibe o envía correspondencia. Durante una operación de lectura o escritura

debe leerse o escribirse el dato. Debe notarse que las expresiones “lectura” y “escritura” se

plantean con respecto a la CPU: la CPU lee datos desde la memoria y los escribe en la

memoria. Si se requiere leer un dato desde la memoria, el bus de datos contendrá el valor

leído desde la celda de memoria seleccionada. Si la información se escribiera en memoria,

el bus de datos contendría el valor de dato que se pretende almacenar en la memoria.

El bus de control es algo bastante más complejo, por lo que el análisis de este bus que dará

diferido para capítulos posteriores. Por el memento, el bus de control pude considerarse

como el elemento que permite la coordinación de acceso a los buses de datos y de

direcciones, y la orientación de datos hacia componentes específicos.

CPU (ALU,

registros

y unidad

de control)

Memoria

Entrada-

Salida

(E/S)

Bus de datos

Bus de direcciones

Bus de control

Bu

s d

el

Sis

tem

a

Page 11: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

7 INTEL Y TSUTEL

LA ARQUITECTURA HARVARD

Fuente: Angulo Usategui, J. M., Angulo Martínez, I., (2003). Microcontroladores PIC

Diseño práctico de aplicaciones, tercera edición. ¿Qué es un microcontrolador?

Editorial Mc Graw Hill. Pág. 1-6.

En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria

de datos cada una dispone de su propio sistema de buses de 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. También la capacidad de

cada memoria es diferente (siguiente figura).

En la arquitectura <<Harvard>> la memoria de instrucciones y la de datos con independientes, lo que

permite optimizar sus características y propiciar el paralelismo. En la figura, la memoria de instrucciones

tiene 1 K posiciones de 14 bits cada una, mientras que la de daros sólo dispone de 512 posiciones de un byte.

UCP

UCP

UCP

10

9

14

8

BUS DE DIRECCION

DE INSTRUCCIONES

BUS DE DATOS

BUS DIRECCION

DE DATOS

BUS DE

INSTRUCCIONES

Page 12: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

8 INTEL Y TSUTEL

TIPOS DE COMPUTADORAS

Fuente: Martínez Garza, J., Olvera Rodríguez, J. A., 2(000). Organización y arquitectura de

computadoras. Tipos de computadoras. Editorial Prentice Hall. Pág. 7-8.

De acuerdo con su capacidad, las computadoras digitales han catalogado tradicionalmente

como supercomputadoras, equipos principales (MAIN FREAMES), minicomputadoras y

microcomputadoras.

Las supercomputadoras tienen la mayor capacidad de cómputo y almacenamiento y su

costo es del orden de 10 veces el de un equipo principal. Estas maquinas generalmente se

utilizan en centros de investigación, algunas universidades y empresas que tienen necesidad

de procesar grandes volúmenes de información. Las aplicaciones a que se dedican son

cálculos científicos, diseño y simulación principalmente.

Los equipos principales incluyen computadoras digitales con gran capacidad tanto de

procesamiento como de memoria principal y almacenamiento secundario. Estos sistemas

computacionales son costosos y generalmente son utilizados como sistemas centrales

corporativos.

Las minicomputadoras son equipos que tienen capacitada de procesamiento y

almacenamiento en un rango intermedio. Originalmente, el termino se usaba para describir

computadoras digitales cuya unidad central de proceso, que es la que ejecuta las

instrucciones y controla la operación de la maquina, estaba contenida en una sola tarjeta de

circuito impreso. Su costo es del orden de 10 veces menor que el de los equipos principales.

Su aplicación es similar a los equipos centrales para empresas pequeñas o medianas.

Las microcomputadoras, en su definición original, son computadoras digitales con la

característica de que toda la unidad central de proceso esta contenida en un solo circuito

integrado. El costo de estos equipos es aproximadamente 100 veces menor que el de un

equipo principal pero su capacidad de computo y almacenamiento es menor que el de una

minicomputadora.

En la actualidad, las definiciones anteriores que no son tan claras, principalmente entre

minicomputadoras y microcomputadoras dado que los avances en electrónica de estado

sólido han permitido construir computadoras cuyo procesador esta en un solo circuito

integrado, pero que tienen una capacidad de computo similar a la que tenían los equipos

principales de hace 10 o 15 años.

Actualmente tiene mayor sentido pensar en términos de esta otra clasificación:

computadoras personales, estaciones de trabajo, equipos principales y supercomputadoras.

Las computadoras personales son microcomputadoras de bajo costo, entre las que se

incluyen computadoras de escritorio y computadoras portátiles. Tanto su capacidad de

computo como de almacenamiento continúan creciendo a medida que avanza la tecnología,

sin embargo, son las que tienen la menor capacidad de computo. Las principales que se

Page 13: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

9 INTEL Y TSUTEL

usan en estos equipos son procesamiento de texto hojas de cálculo, diseño de

presentaciones, agendas personales, correo electrónico, pequeñas bases de datos,

interconexión a redes de cómputo y aplicaciones de tipo personal.

Las estaciones de trabajo son computadoras cuyo costo es aproximadamente de 3 a 10

veces el de una computadora personal. Tienen mayor capacitada de cómputo y

almacenamiento, lo cual se les permite realizar tareas más complejas. Estos equipos en

general se enfocan a aplicaciones industriales o científicas y en la mayoría de las veces

están conectadas a unas computadoras principales. En las estaciones de trabajo se

visualizan los resultados de las aplicaciones que se ejecutan en un equipo principal y que

requieren gran capacidad de cómputo, como sistemas de diseño asistido por computadora.

Una característica importante de las estaciones de trabajo es que cuentan con pantallas de

video de alta resolución.

Actualmente, la definición de equipo principal y supercomputadora siguen siendo validos,

si bien es cierto que estas maquinas aumentan su capacidad de computo y almacenamiento

a pasos agigantados.

Dentro de las supercomputadoras también existen dos tipos principales: las computadoras

vectoriales y los multiprocesadores. Las computadoras vectoriales cuentan con

procesadoras vectoriales, los cuales pueden realizar una misma operación sobre un conjunto

de datos en forma simultánea. Por otro lado, los multiprocesadores son computadoras que

tienen varios procesadores independientes entre los cuales se distribuyen las operaciones

que tienen que realizarse para resolver un mismo problema.

Finalmente, existen cierto tipo de computadoras de propósito especial, como las utilizadas

en aplicaciones de control de dispositivos específico y videojuegos.

Page 14: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

10 INTEL Y TSUTEL

LENGUAJES, COMPILADORES E INTERPRETADORES

Fuente: Lenguajes de Programación, (2009). Lenguajes de programación. Extraído el 18 de

junio de 2009, desde http://www.lenguajes-de-programacion.com/lenguajes-de-

programacion.shtml

Los lenguajes de programación son herramientas que nos permiten crear programas y

software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc.

Una computadora funciona bajo control de un programa el cual debe estar almacenado en la

unidad de memoria; tales como el disco duro.

Los lenguajes de programación de una computadora en particular se conocen como código

de máquinas o lenguaje de máquinas

Estos lenguajes codificados en una computadora específica no podrán ser ejecutados en otra

computadora diferente.

Para que estos programas funcionen para diferentes computadoras hay que realizar una

versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.

Por otra parte, los lenguajes de programación en código de máquina son verdaderamente

difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin

sentido nemotécnico.

Los lenguajes de programación facilitan la tarea de programación, ya que disponen de

formas adecuadas que permiten ser leídas y escritas por personas, a su vez resultan

independientes del modelo de computador a utilizar.

Los lenguajes de programación representan en forma simbólica y en manera de un texto los

códigos que podrán ser leidos por una persona.

Los lenguajes de programación son independientes de las computadoras a utilizar. Existen estrategias que permiten ejecutar en una computadora un programa realizado en un

lenguaje de programación simbólico. Los procesadores del lenguaje son los programas que

permiten el tratamiento de la información en forma de texto, representada en los lenguajes

de programación simbólicos.

Hay lenguajes de programación que utilizan compilador.

La ejecución de un programa con compilador requiere de dos etapas:

1) Traducir el programa simbólico a código máquina

2) Ejecución y procesamiento de los datos.

Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual analiza

directamente la descripción simbólica del programa fuente y realiza las instrucciones dadas.

Page 15: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

11 INTEL Y TSUTEL

El intérprete en los lenguajes de programación simula una máquina virtual, donde el

lenguaje de máquina es similar al lenguaje fuente.

La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa,

sin embargo su inconveniente es que la velocidad de ejecución es más lenta ya que debe

analizar e interpretar las instrucciones contenidas en el programa fuente.

Page 16: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

12 INTEL Y TSUTEL

¿QUÉ ES UN MICROCONTROLADOR?

Fuente: Angulo Usategui, J. M., Angulo Martínez, I., (2003). Microcontroladores PIC

Diseño práctico de aplicaciones, tercera edición. ¿Qué es un microcontrolador?

Editorial Mc Graw Hill. Pág. 1-6.

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 al que gobierna.

Esta ultima característica es la que le confiere la denominación de >>controlador

incrustado>> (embedded controller).

El microcontrolador 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 el

conexionado de los censores y actuadotes del dispositivo a controlar, y todos los recuerdos

complementarios disponibles tienen como única finalidad atender sus requerimientos. Una

vez programado y configurado el microcontrolador solamente sirve para gobernar la tarea

asignada.

Un microcontrolador es un computador completo, aunque de ilimitadas prestaciones, que

está contenido en el chip de un circuito integrado y se destina a gobernar una sola tarea.

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 de un microprocesador sacan al exterior las líneas de sus buses de direcciones,

datos y control, para permitir conectarle con la Memoria y los Módulos E/S y configurar un

computador implementado por varios circuitos integrados. 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.

Un microcontrolador es un sistema cerrado que contiene un computador completo y de

prestaciones limitadas que no se pueden modificar.

Page 17: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

13 INTEL Y TSUTEL

Estructura de un sistema abierto basado en un microprocesador. La disponibilidad de lo buses en el exterior

permite que se configure a la medida de la aplicación.

El microcontrolador en un sistema cerrado. Todas las partes del computador están contenidas en su interior

y sólo salen del exterior las líneas que gobiernan los periféricos.

Si sólo se dispusiese de un modelo de microcontrolador, éste debería tener muy potenciados

todos sus recursos para poderse adaptar a las exigencias de las diferentes aplicaciones. Esta

potenciación supondría en muchos casos un despilfarro. En la práctica cada fabricante de

microcontroladores oferta un elevado número de modelos diferentes, desde los más

MEMORIA

CONTROLADOR

1

CONTROLADOR

2

BUS DE

DATOS

BUS DE

DIRECCIONES

BUS DE

CONTROL

MICROPROCESADOR

PERIFÉRICOS

PERIFÉRICOS

μP

MICROCONTROLADOR

PERIFÉRICOS

PERIFÉRICOS

μC

Page 18: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

14 INTEL Y TSUTEL

sencillos hasta los más poderosos. Es posible seleccionar la capacidad de las memorias, el

número de líneas de E/S, la cantidad y potencia de los elementos auxiliares, la velocidad de

funcionamiento, etc. Por todo aquello, un aspecto muy destacado del diseño es la selección

del microcontrolador a utilizar.

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ínea de E/S para los controladores de periféricos:

a) Comunicación paralelo

b) Comunicación serie

c) Diversas puertas de comunicación (bus 12C, USB, etc.)

1. 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 de bajo consumo

A continuación se pasa revista a las características más representativas de cada uno de los

componentes del microcontrolador.

El procesador

La necesidad de conseguir elevados rendimientos en el procesamiento de las instrucciones

ha desembocado en el empleo generalizado de procesadores de arquitectura de Harvard

frente a los tradicionales que seguían la arquitectura de von Neumann. Esta última se

caracterizaba porque la UCP (Unidad Central de Proceso) se conectaba con una memoria

única, donde coexistían datos e instrucciones, a través de un sistema de buses (véase

siguiente figura).

Page 19: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

15 INTEL Y TSUTEL

En la arquitectura de <<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.

En la arquitectura Harvard son independientes la memoria de instrucciones y la memoria

de datos cada una dispone de su propio sistema de buses de 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. También la capacidad de

cada memoria es diferente (siguiente figura).

En la arquitectura <<Harvard>> la memoria de instrucciones y la de datos con independientes, lo que

permite optimizar sus características y propiciar el paralelismo. En la figura, la memoria de instrucciones

tiene 1 K posiciones de 14 bits cada una, mientras que la de daros sólo dispone de 512 posiciones de un byte.

El procesador de los modernos microcontroladores responde a la arquitectura RISC

(Computadores de Juego de Instrucciones Reducido), que se identifica por poseer un

repertorio de instrucciones máquina pequeño y simple, de forma que la mayor parte de las

instrucciones se ejecutan en un ciclo de instrucción.

Otra aportación frecuente que aumenta el rendimiento del computador es el fenómeno 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.

UCP

UCP

UCP

10

9

14

8

BUS DE DIRECCION DE INSTRUCCIONES

BUS DE DATOS

BUS DIRECCION DE DATOS

BUS DE INSTRUCCIONES

UCP

MEMORIA

INSTRUCCIONES

+

DATOS

BUS COMÚN DE

DIRECCIONES

BUS DE DATOS E

INSTRUCCIONES

8

Page 20: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

16 INTEL Y TSUTEL

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

Computador tipo RISC

Segmentación

Page 21: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

17 INTEL Y TSUTEL

UNIDAD 2

INTRODUCCIÓN AL MICROPROCESADOR Z80

RESUMEN

En esta unidad se describe la arquitectura del microprocesador Z80. También se describe la

programación y los mnemónicos así como los modos de direccionamiento para este

microprocesador.

Page 22: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

18 INTEL Y TSUTEL

ARQUITECTURA DEL MICROPROCESADOR Z80

Fuente: Uruñuela M., J. M., (1989). Mircroprocesadores, Programación e interconexión,

segunda edición. Editorial Mc Graw Hill.

El Z80 fue el primero de la tercera generación, sin embargo es uno de los

microprocesadores de 8 bits más empleado hasta nuestros días, se encuentran versiones

mejores del mismo tales como Z80A, Z80B, Z80H, éstas se caracterizan por trabajar a

frecuencias superiores de 4 Mcps, 6.5 Mcps y 8 Mcps respectivamente, las características

fundamentales del Z80 son:

1. El transporte de señales se realiza sobre tres buses, el bus de direcciones, el bus de

datos, así como el bus de control.

2. Régimen de interrupción uniforme, con la posibilidad de encadenar las prioridades

de los circuitos periféricos.

3. Alto grado de programabilidad.

4. Reloj único.

5. Fuente de voltaje única de +5 Volts.

Un sistema con Z80 se completa con el empleo de memorias estándar de lectura y

memorias estáticas o dinámicas de lectura y escritura, además pertenecen al sistema,

puertos de entrada y salida paralelo, interfaces de comunicación serie, sistemas contadores

temporizadores y circuitos de acceso directo a memoria.

El funcionamiento del sistema consiste en que las instrucciones del microprocesador, que

están en la memoria ROM, se ejecutan en una forma secuencial de operación, la fuente de

datos es, la propia CPU, los periféricos o las memorias, la transferencia interna de datos es

a través del CPU, exceptuando la transferencia de datos en el proceso de acceso directo a

memoria.

El Z80 es una versión apreciablemente mejorada tanto en circuitería como en características

de programación del antiguo modelo INTEL 8080, el Z80 resulta ser un microprocesador

más rápido y sencillo en el desarrollo de sistemas ya que solo usa una fuente de

alimentación de +5 Volts, contiene íntegramente todo el conjunto de instrucciones del

8080, lo cual le permite ejecutar todos los programas escritos para el CPU 8080, contiene el

Z80 una expansión adicional de 80 instrucciones de ahí se deriva su nombre, su

repertorio suma un total de 156 instrucciones.

Page 23: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

19 INTEL Y TSUTEL

El microprocesador Z80 contiene las siguientes unidades funcionales;

1).- Unidad aritmética y lógica

2).- El contador de programa

3).- El apuntador del stack

4).- Registros de propósito general

5).- Registros de indice

6).- Registros de interrupciones

7).- Registro de banderas

8).- Registro para refrescar memorias dinámicas

LA UNIDAD ARITMÉTICA Y LÓGICA (ALU)

Las operaciones del CPU Z80 se realizan con un grupo de dispositivos lógicos conocidos

comúnmente como unidad aritmética y lógica (ALU) esta efectúa las siguientes

operaciones;

1. Suma binaria.

2. Operaciones lógicas.

3. Complementar a dos.

4. Corrimiento de un bit a la derecha o a la izquierda.

5. Registro de resultados importantes como el acarreo, signo, acarreo auxiliar, paridad

o si el resultado es cero.

6. Comparaciones

7. Poner, Limpiar o probar un bit

EL CONTADOR DE PROGRAMA (PC)

Es un registro de 16 bits, que continuamente tiene la dirección de la localidad de memoria

siguiente que se va a accesar, de esa localidad obtiene el código de la instrucción a

ejecutarse, en la CPU el PC se incrementa en uno, cada vez que el microprocesador lee el

código de la instrucción contenida en la localidad direccionada, de esta forma el contador

del programa direcciona secuencialmente las localidades de la memoria ROM, donde se

encuentra almacenado el programa.

Page 24: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

20 INTEL Y TSUTEL

EL APUNTADOR DEL STACK (SP)

El microprocesador Z80 cuenta con el registro de pila (SP) o stack pointer que contiene una

dirección de memoria RAM a partir de la cual y en forma descendente, se almacenan los

contenidos de un par de registros, o a partir del cual en forma ascendente se obtienen los

últimos dos datos de 8 bits almacenados en esa área, el SP es un registro de 16 bits, para

almacenar en el stack el contenido de un par de registros se utiliza la instrucción PUSH y

para cargar a un par de registros con los dos últimos bytes del stack se utiliza la instrucción

POP.

REGISTROS DE PROPÓSITO GENERAL

El microprocesador Z80 contiene 14 registros de 8 bits separados en dos grupos;

GRUPO 1; A, B, C, D, E, H, y L

GRUPO 2; A', B', C', D', E', H' y L

Todas las instrucciones trabajan con los registros del grupo 1, con las instrucciones EX y

EXX se logra el intercambio entre los contenidos de los registros del grupo 1 con los

contenidos de los registros del grupo 2, el grupo 2 se utiliza en cierta forma como stack del

grupo 1, dentro de la propia CPU.

Con los 14 registros de propósito general se efectúan por medio de las instrucciones las

siguientes funciones;

1. Recibir datos desde la memoria.

2. Enviar datos hacia la memoria.

3. Incrementar o decrementar en uno su contenido.

4. Formar una dirección con el contenido de un par de registros.

5. Transferir datos entre los registros.

6. Obtener un operando durante las funciones de la ALU.

REGISTROS DE ÍNDICE IX e IY.

Estos son registros de 16 bits cada uno y conservan direcciones base que se usan para modo

de direccionamiento indexado, en este modo un registro de índice se usa como base para

apuntar a una región de la memoria. La dirección efectiva de la localidad de memoria a

donde se va a depositar el dato o de donde se va a leer, se obtiene, al sumar el contenido del

registro de índice y el valor de 8 bits contenido en el campo de "desplazamiento" de las

instrucciones que emplean direccionamiento con índice, estos desplazamientos se

especifican con números enteros signados con el complemento a dos.

Page 25: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

21 INTEL Y TSUTEL

REGISTRO DE INTERRUPCIONES

El Z80 opera en modo de interrupción en el que responde como una "llamada" indirecta en

respuesta a una solicitud de interrupción. El registro I se usa para este propósito

almacenando los 8 bits más significativos de la dirección indirecta mientras que el

dispositivo que interrumpe proporciona los 8 bits menos significativos de la dirección

índice, esta característica permite que las rutinas servicio de las interrupciones se localicen

en cualquier parte de la memoria y que se puedan accesar en un tiempo muy corto.

BANDERAS DE ESTADO

El microprocesador Z80 tiene un registro de 8 Flips Flops, para monitorear ciertos

resultados de las operaciones de la ALU, a la información que almacenan estos flips-flops

se conoce como banderas de estado, las banderas se actualizan después de cada operación

con alguno de los registros, no todas las operaciones modifican a todas las banderas, de los

8 bits del registro de banderas, únicamente seis registran información útil para el

programador, cuatro de estas banderas se prueban, esto es, se usan como condiciones de

salto (JP), llamada (CALL), o regreso (RET), estas banderas son;

1. La paridad o sobreflujo (P/V). El registro "P" se utiliza para realizar funciones

auxiliares necesarias para el usuario, le sirven para interpretar los resultados, es uno

cuando el resultado de la operación lógica del complemento a dos produce un

acarreo, de otro forma es un cero lógico..

2. SIGN (S); Set if into the result of ALU operation the most significant bit = 1,

otherwise reset.

3. ZERO (Z); Set if result of ALU operation is zero otherwise it is reset.

4. AUXILIARY CARRY; Set if carry out results b3 into b4 otherwise reset.

5. CARRY (C); Set if result of addition or subtraction operation result in a carry or

borrow of the highest order bit, otherwise reset.

TERMINALES DEL MICROPROCESADOR Z80

El Z80 es un microprocesador de 8 bits y cuenta con 158 instrucciones y 10 modos de

direccionamiento. El circuito integrado del microprocesador Z80 se deposita en un

encapsulado Dual In Line de 40 terminales, de las cuales 5 son únicamente de entrada, 24

son de salida y 8 son bidireccionales, además, existen dos que sirven para conectar la fuente

de alimentación y otra más que es la entrada del reloj.

Page 26: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

22 INTEL Y TSUTEL

Todas ellas tienen características eléctricas compatibles con la tecnología TTL, el intervalo

de voltajes de entrada para un cero lógico es; 0.3 £ Vil £ 0.8 volts, el intervalo del voltaje

de entrada para un uno lógico es; 2.0 £ Vih £ Vcc, el voltaje máximo de salida para un cero

lógico es; Vol=0.4Volts, y el voltaje mínimo de salida para un uno lógico es; Voh=2.4Volts

El Z80 opera con una fuente de alimentación de +5.0 Volts conectada a la terminal 11, (pin

11), la tierra de la fuente se conecta a la terminal GND, (pin 29), el consumo típico de

corriente para el Z80 es de 90 mA.

Cuenta con 18 registros de 8 bits y 4 registros de 16 bits, todos los registros del Z80 se

implementan con una RAM estática, los registros incluyen 2 bancos de 6 registros de

propósito general, que se usan individualmente como registros de 8 bits, o en pares como

registros de 16 bits, existen también 2 bancos de registros denominados "acumulador" y

"banderas", además cuenta con 6 registros de propósito especial, 4 registros de 16 bits, PC,

SP, IX e IY, y 2 registros de 8 bits, el registro del refresh "R" y el registro de interrupciones

"I", la aritmética de 8 bits de las funciones, y las instrucciones lógicas de la CPU se

ejecutan en la ALU, la ALU realiza las siguientes funciones son;

1. Sumar.

2. Restar.

3. Función lógica AND.

4. Función lógica OR.

5. Función lógica OR-EX.

6. Comparación.

7. DespIazamientos a la derecha y a la izquierda.

8. Incrementar bytes.

9. Decrementar bytes.

10. Poner bits en uno lógico.

11. Poner bits en cero lógico y

12. Comprobar el estado de los bits

Page 27: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

23 INTEL Y TSUTEL

LÍNEAS DE DIRECCIONES (A0 - A15), Pines 30-40, 1-5 respectivamente

Se forman con 16 líneas de direcciones, tienen la facultad de establecerse en tercer estado,

estas señales proporcionan las direcciones correspondientes a intercambios de datos entre la

memoria, la CPU y los puertos de los periféricos, la capacidad de direccionamiento con 16

bits es de 64 Kbytes y 256 puertos de entrada y salida, son activas en estado alto, los 8 bits

menos significativos se usan para permitirle al usuario seleccionar los 256 puertos E/S,

(A0-A7), en donde A0 es el bit menos significativo.

LÍNEAS DE DATOS (DO - D7), Pines 14, 15, 12, 8, 7, 9, 10 y 13

Se forman con 8 líneas de datos bidireccionales con capacidad del tercer estado, son activas

en nivel alto, se utilizan para el intercambio de datos con la memoria, y periféricos de E/S.

CICLO DE MAQUINA UNO (M1),

Salida activa en nivel bajo, indica que en este ciclo de máquina uno el microprocesador va

a obtener el código operacional de una instrucción, en las instrucciones que tienen un

código operacional de 2 bytes esta señal se opera al obtener cada uno de los bytes del

código operacional, al igual que para indicar el reconocimiento de un ciclo de interrupción

cuando ocurre (IORQ)'.

REQUERIMIENTO DE MEMORIA (MREQ)', Pin 19

Salida activa en nivel bajo, esta señal indica una petición que interrelaciona a la memoria

con la CPU, obtiene una dirección valida de las líneas de direccionamiento, esta terminal

tiene capacidad del tercer estado.

REQUERIMIfNTO DE E/S (IORQ), Pin 20

Es salida triestado activa en nivel bajo, esta señal indica que la mitad baja del bus de

direcciones mantiene una dirección válida de E/S, para efectuar una operación de lectura o

escritura de E/S, se genera esta señal cuando el ciclo de maquina 1 (M1) reconoce una

interrupción, indica que el vector de respuesta de la interrupción se coloca en el bus de

datos, las operaciones de reconocimiento de interrupción ocurren durante el ciclo de

maquina 1, mientras que las operaciones de E/S nunca se producen durante este ciclo.

Page 28: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

24 INTEL Y TSUTEL

LECTURA (RD), Pin 21

Salida triestado activa en nivel bajo, indica que la CPU desea leer datos desde la memoria

de un dispositivo externo de E/S, el dispositivo E/S se direcciona a la memoria o al

periférico, se usa esta terminal para dirigir los datos al bus de datos de la CPU.

ESCRITURA (WR)', pin 22

Salida triestado activa en nivel bajo, indica que el bus de datos de la CPU va a obtener

datos válidos para ser almacenados en la memoria o en algún dispositivo de E/S.

REFRESCO DE LA MEMORIA DINÁMICA (RFSH)', Pin 28

Salida activa en nivel bajo, indica que los siete bits inferiores de las líneas de

direccionamiento contienen una dirección válida de refresco de memoria, se utiliza para el

mantenimiento de datos en memorias dinámicas, con esta se efectúa una lectura de

refrescamiento para todas las memorias dinámicas.

PARO (HALT), Pin 18

Salida que activa en nivel bajo, indica que la CPU realiza una instrucción por software de

paro (HALT), y que espera una interrupción (NMI)' o (INT)' antes de que continúe la

operación, mientras permanezca en este estado la CPU ejecuta operaciones NOP, para

mantener activo el refresco de las memorias dinámicas, al aplicarse un reset se continua con

la operación.

ESPERA (WAIT), Pin 24

çEs una entrada activa en nivel bajo, le indica al microprocesador que la memoria

direccionada o los dispositivos periféricos de E/S no son tan rápidos como para realizar una

transferencia de datos a la velocidad de la CPU, o no están listos para una transferencia de

información, la CPU continua con el estado de espera durante todo el tiempo que esta

terminal es activa, esto les permite a los otros dispositivos sincronizarse con la CPU.

Page 29: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

25 INTEL Y TSUTEL

REQUISICIÓN DE INTERRUPCIÓN MASCARABLE (INT), Pin 16

Entrada activa en nivel bajo, esta terminal se acciona con dispositivos E/S externos, una

requisición (INT)' se atiende al final de la instrucción que se ejecuta, si el enable interno del

Flip Flop de interrupción IFF1 controlado por software se encuentra habilitado, y si la

requisición de bus no está activa, al aceptar la CPU una interrupción envía una señal de

reconocimiento, la petición de E/S se realiza durante el ciclo de máquina 1, al principio del

siguiente ciclo de instrucción, esta petición solo es válida bajo control del programa

interno, reconociendo la CPU tres modos diferentes de interrupción.

INTERRUPCIÓN NO MASCARABLE (NMI)', Pin 17

Entrada que se activa con un flanco de bajada mediante un impulso que identifica una

interrupción obligada, posiciona al contador de programa (PC) en la dirección 0066h desde

donde continua el proceso, esta tiene una prioridad más alta que la interrupción (INT)' y

siempre se reconoce al final de la instrucción que se ejecuta, independientemente del estado

del IFF1, el contador de programa PC se almacena automáticamente en el stack pointer

externo de forma que el usuario regrese al programa en el mismo punto del que fué

interrumpido.

REHABILITACIÓN (RESET), Pin 26

Entrada que se activa con un flanco de bajada mediante un impulso, obliga a la CPU a

reiniciar su actividad, coloca al contador de programa (PC) en la localidad de inicio de

memoria 0000h, desde donde empieza el proceso, durante este tiempo el bus de direcciones

y el bus de datos adquieren el estado de alta impedancia y todas las terminales de control de

salida adquieren el estado inactivo.

REQUERIMIENTO DE LAS TERMINALES DE LA CPU (BUSRQ), Pin 25

Esta entrada es activa en nivel bajo, le indica a la CPU que coloque todas sus líneas en

estado de alta impedancia, (tan pronto el ciclo de maquina 1 actual termine), a petición del

periférico externo que desea tomar el control del sistema, regresa el control a la CPU

cuando esta señal (BUSRQ)' pasa al nivel alto, se utiliza para pedir que el bus de

direcciones, el bus de datos y las terminales de salida triestado del bus de control vayan a

un estado de alta impedancia de tal forma que otros dispositivos controlen esos buses.

Page 30: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

26 INTEL Y TSUTEL

ENTREGA DE LAS TERMINALES DE LA CPU (BUSAK)', Pin 23

Salida activa en nivel bajo, es una indicación para el periférico que efectúa una petición

(BUSRQ)' de que su petición ha sido concedida por parte del microprocesador, sirve para

indicar al dispositivo que solicita este reconocimiento, que el bus de direcciones, el bus de

datos y el bus de las terminales de control triestado han sido puestos en su estado de alta

impedancia y que el dispositivo externo puede ahora controlar estas terminales.

RELOJ (CK), Pin 6

Entrada configurada por un tren de impulsos útiles, es la diferencia que permite la

secuencia de tiempos de operación, se implanta físicamente con un oscilador de onda

cuadrada cuya frecuencia depende del tipo de características de la CPU Z80, requiere

oscilación de una fase con niveles TTL, una forma de satisfacer todos los requerimientos de

voltaje es por medio de una resistencia de activación "pull up" de 330 ohms conectada entre

+Vcc y la terminal de salida de un oscilador implantado con circuitos TTL que generen

oscilaciones.

ALIMENTACIÓN POSITIVA DE +5 VOLTS (Vcc), Pin 11

Esta es una entrada de alimentación de tensión de +5 volts con un 5 % de tolerancia.

TIERRA (GND), Pin 29

Terminal de alimentación negativa, requiere un potencial de 0.0 volts que sirven de

referencia para la interconexión de los dispositivos.

Page 31: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

27 INTEL Y TSUTEL

PROGRAMACIÓN

Fuente: Manuales, Cursos, Tutoriales y Apuntes..., (2009). Arquitectura del

microprocesador Z80. Extraído el 18 de junio de 2009, desde http://proton.ucting.udg.mx/dpto/maestros/mateos/z80/arquitectura/arquitectura.html

Una operación es una acción específica que realiza el microprocesador siempre que ejecuta

una instrucción. Existen diferentes operaciones que realiza el microprocesador, las

operaciones asociadas con el Z80 son:

Transferencia de información

Operaciones aritméticas

Operaciones lógicas

Subrutinas

Entradas y salidas

Incrementar y decrementar bytes

Realizar saltos

Comprobar, poner en uno o en cero a los bits

Realizar ajustes a BCD

Ejecutar interrupciones

LENGUAJE MÁQUINA

Se dice que un programa se forma con un grupo de patrones binarios, por ejemplo sumar

las localidades 1500H y 3020H y almacenar el resultado en la localidad 3000H el programa

a ejecutar es el siguiente:

0011 1010

0000 0000

0001 0101

0100 0111

0011 1010

0010 0000

0011 0000

1000 0000

0011 0010

0000 0000

0011 0000

A estos patrones binarios se les conoce como "lenguaje máquina" ya que este es el único

lenguaje que entienden las computadoras.

Page 32: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

28 INTEL Y TSUTEL

PROBLEMAS CON LOS PATRONES BINARIOS

1. Es muy difícil para el programador entender o depurar los programas.

2. El proceso de cargar el programa en la computadora es muy lento ya que se tiene

que alimentar bit por bit.

3. El programa no describe la tarea que realiza de una forma fácil de entender para el

usuario.

4. Los programas largos son cansados en su elaboración.

5. Existe una gran posibilidad de que el programador se equivoque en la redacción del

programa, produciendo de esta forma, una gran dificultad para encontrar los errores.

6. Si en el programa binario existiera un bit erróneo sería laborioso el detectarlo y

corregirlo.

Page 33: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

29 INTEL Y TSUTEL

MNEMÓNICOS

Fuente: Manuales, Cursos, Tutoriales y Apuntes..., (2009). Arquitectura del

microprocesador Z80. Extraído el 18 de junio de 2009, desde http://proton.ucting.udg.mx/dpto/maestros/mateos/z80/arquitectura/arquitectura.html

Un método de mejorar el manejo de las instrucciones para el programador consiste en

asignar un nombre a cada instrucción, por ejemplo a la instrucción de decrementar se le

nombra como "DEC" y a la de cargar un dato se nombra como "LD", a los nombres de las

instrucciones se les conoce como "MNEMÓNICOS", se escogen de tal manera que

orienten en forma fácil al programador.

Es más fácil recordar que INC A es el mnemónico de la instrucción para incrementar en

uno el contenido del registro acumulador que recordar que 3Ch es el código operacional

correspondiente a la misma instrucción, cada fabricante de microprocesadores proporciona

una serie de mnemónicos para el conjunto de instrucciones de cada microprocesador, el

programa anterior queda en la forma siguiente al usar los mnemónicos del Z80:

PROGRAMA OBJETO PROGRAMA FUENTE

1000 3A 0015 LD A, (1500)

1003 47 LD B,A

1004 3 20030 LD A, (3000)

1007 80 ADD B

1008 32 0030 LD (3000),A

Esta representación del programa es más comprensible que la que usa patrones binarios, en

este caso ya que se identifican qué partes son instrucciones y qué partes son direcciones o

datos, a la representación de las instrucciones de un programa usando mnemónicos se le

conoce como "programa fuente".

Page 34: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

30 INTEL Y TSUTEL

MODOS DE DIRECCIONAMIENTO

Fuente: Manuales, Cursos, Tutoriales y Apuntes..., (2009). Arquitectura del

microprocesador Z80. Extraído el 18 de junio de 2009, desde http://proton.ucting.udg.mx/dpto/maestros/mateos/z80/arquitectura/arquitectura.html

Una parte importante en la programación es el de entender las formas de direccionamiento

para las localidades de memoria que contienen los datos que se procesan como

instrucciones, la CPU Z80 tiene 10 modos diferentes para direccionar los datos

almacenados en la memoria y en los registros:

Implícito o inherente

Inmediato

Inmediato extendido

Registro

Registro indirecto

Extendido

Página zero modificada

Relativo

Bit

Indexado

Con el apuntador de pila

DIRECCIONAMIENTO IMPLÍCITO O INHERENTE Este modo de direccionamiento se refiere a operaciones en donde el código operacional

implica automáticamente a uno o más registros de la CPU, el código operacional es fijo y

no tiene campos variables de tal forma que la instrucción siempre ejecuta la misma

operación.

Ejemplos de este modo de direccionamiento son las instrucciones CPL y RRA.

El código operacional de CPL es 2Fh, ésta instrucción toma el contenido del acumulador, lo

complementa a uno, cambia los ceros por unos y los unos por ceros, y deposita el resultado

en el acumulador, las bandeas de condiciones no se afectan, la fuente y el destino siempre

son fijos;

Page 35: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

31 INTEL Y TSUTEL

DIRECCIONAMIENTO INMEDIATO

Este modo no constituye un direccionamiento propiamente dicho, pues aquí la instrucción

no contiene ninguna dirección, en su lugar figura un operando sobre el cual se realiza la

operación que indica la instrucción, no hay necesidad del ciclo de memoria (ejecute) de

ejecución, una denominación más precisa es la de operando inmediato.

Una instrucción con direccionamiento inmediato es la que contiene en el byte 2 o en el byte

3 de la propia instrucción en el dato de la transferencia, es decir, el dato es parte integral de

los bytes que constituyen la instrucción.

OP-CODE <----- uno o más bytes

OPERANDO

Este tipo de direccionamiento es útil al cargar o efectuar una operación aritmética o lógica

con un dato constante.

Ejemplo: Para cargar 07h en el acumulador se utiliza la instrucción LD A,N

x 3E LD A,N

x + 1 N A ß 07h

El código operacional de la instrucción es 3Eh y el segundo byte es el dato que se va a

cargar en el acumulador, en este caso N = 07h, los movimientos que realiza el CPU Z80

son los siguientes:

1. El contenido de la localidad op-code que apunta el contador del programa (PC) se

carga en el registro de instrucciones IR y se incrementa el PC en uno.

2. La unidad de control ordena, después de decodificar la instrucción que el contenido

de la localidad (dato inmediato u operando) que apunta el PC se cargue en el

registro "r" indicado por el código de la instrucción, el PC se incrementa en uno y

apunta a la próxima instrucción a ejecutarse.

Page 36: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

32 INTEL Y TSUTEL

En general este tipo de direccionamiento lo utilizan las instrucciones aritméticas y lógicas

de 8 bits, ejemplo de estas son: ADD N, XOR N, AND N, etc.

DIRECCIONAMIENTO INMEDIATO EXTENDIDO

Este modo de direccionamiento como su nombre lo indica es una extensión del

Direccionamiento Inmediato, este tipo de direccionamiento permite cargar con un dato de

16 bits a un registro par y obtiene la dirección donde continua el procesamiento en forma

inmediata.

x OP-CODE

x + 1 BYTE BAJO

x + 2 BYTE ALTO

Este modo de direccionamiento lo utilizan las instrucciones del grupo "cargar 16 bits" y del

grupo de instrucciones "saltos, llamadas y regresos", (JP, CALL y RET).

El primero de los dos bytes del dato o de la dirección contiene los bits menos significativos

(LSB) y el segundo byte contiene los bits más significativos (MSB).

Ejemplo:

X 01

x + 1 68 NN = 7968

x + 2 79

Los movimientos de esta instrucción son los siguientes:

1. El contenido de la localidad "x" apuntada por el contador de programa (PC) se

carga en el registro de instrucciones IR y se incrementa el contador de

programa, (PC ß PC + 1)

2. La unidad de control después de decodificar la instrucción ordena que el

contenido de la localidad "x + 1" apuntada por el PC se cargue en el registro B,

y se incrementa el contador de programa ( PC ß PC + 1)

3. La unidad de control ordena que el contenido apuntado por el PC se cargue en el

registro C, se incrementa el contador de programa, (PC ß PC + 1) y el PC apunta

a la siguiente instrucción a ejecutarse.

Page 37: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

33 INTEL Y TSUTEL

DIRECCIONAMIENTO DE REGISTRO

Muchas instrucciones utilizan los registros del Z80 para recibir o proporcionar un dato, el

código de la instrucción tiene un campo que se usa para especificar el ó los registros que se

utilizan en la ejecución de la instrucción.

Ejemplo: LD r,s

Esta instrucción ordena que el contenido del registro "s" se deposite en el registro "r".

R ß registro destino

S ß registro fuente

"r" y "s" pueden ser cualquiera de los registros activos o primarios de 8 bits de la CPU Z80,

el movimiento de la información de esta instrucción es:

1. El contenido de la localidad apuntada por el PC se deposita en el registro de

instrucciones IR, la unidad de control ordena copiar en el registro r el contenido del

registro s, PC ß PC + 1, y el contador de programa apunta a la siguiente instrucción

a ejecutarse.

Los grupos de instrucciones que utilizan este tipo de direccionamiento de registro, son los

de aritmética y lógica de 8 bits y de 16 bits como son:

1. Rotar

2. Girar

3. Poner en uno

4. Poner en cero y

5. Probar bits

DIRECCIONAMIENTO DE REGISTRO INDIRECTO

Este tipo de direccionamiento utiliza el contenido de un registro par, como la dirección de

una localidad de memoria, los registros pares son BC, DE y HL, en donde los registros B,

D y H contienen los bits menos significativos, el código operacional de la instrucción puede

ser de uno o de dos bytes:

Ejemplo: LD r, (HL)

Los movimientos de esta instrucción son:

El contenido de la localidad que contiene el código operacional, al cual apunta el contador

de programa PC, se deposita en el registro de instrucciones IR y se incrementa el contador

de programa. PC ß PC + 1.

Page 38: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

34 INTEL Y TSUTEL

La unidad de control envía los 16 bits del registro par HL por el bus de direcciones, lee el

contenido de la localidad con esta dirección y deposita su contenido sobre el registro r.

Este tipo de direccionamiento permite apuntar a cualquier localidad de memoria, antes de

usar instrucciones que utilicen este tipo de direccionamiento se debe cargar el registro par

con el valor de la dirección requerida.

DIRECCIONAMIENTO EXTENDIDO

En este tipo de direccionamiento la dirección de la palabra de instrucción contiene la

dirección eficaz de la memoria, este es, las instrucciones que utilizan direccionamiento

extendido proporcionan los 16 bits de la dirección eficaz de la memoria, el campo de la

dirección eficaz contiene un operando, con este modo de direccionamiento se pueden

accesar directamente todas las localidades de memoria desde 0000h hasta FFFFh, el primer

byte contiene los 8 bits menos significativos (LSB) de la dirección eficaz y el segundo byte

contiene los 8 bits más significativos (MSB) de la dirección eficaz.

Ejemplo: LD A, (1580h)

OP - CODE ß 3A

LSB ß 80

MSB ß 15

Los movimientos que se producen son los siguientes:

1. La localidad apuntada por el contador de programa PC contiene el código

operacional, este se deposita en el registro de instrucciones IR, el contador de

programa se incrementa. PC ß PC+ 1.

1. La unidad de control ordena que el contenido de la localidad (dirección LSB) se

deposite en un registro temporal, y se incrementa el contador de programa PCß PC

+ 1.

2. La unidad de control ordena que el contenido de la localidad (dirección MSB) se

deposite en otro registro temporal, y se incrementa el contador de programa PC ß

PC + 1.

3. La unidad de control envía por el bus de direcciones la dirección recién leída de 16

bits, lee el contenido de la localidad de memoria de esa dirección y deposita el

operando en el acumulador.

Page 39: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

35 INTEL Y TSUTEL

Con este tipo de direccionamiento se pueden hacer transferencias de datos de 16 bits, LD

(1580h), HL

DIRECCIONAMIENTO DE PAGINA ZERO MODIFICADA

Este tipo de direccionamiento se usa únicamente con la instrucción RESTAR (RST), esta

instrucción causa que el procedimiento del programa continúe en una de ocho localidades

posibles y bien especificadas de la pagina zero.

La pagina zero se define como área de menor memoria que se puede accesar con 8 bits del

bus de direcciones, esto es las 256 localidades obtenidas con ocho combinaciones posibles,

desde la 00h hasta la FFh, todas estas direcciones constituyen la pagina zero.

El código operacional de "RST" m" se encuentra como sigue:

11xxx111 RST m

Localidad m

0000 0

0008 1

0010 2

0018 3

0020 4

0028 5

0030 6

0038 7

Las direcciones especificas de la pagina zero se obtienen al multiplicar por 8 el valor

binario de la variable m, por ejemplo si m = 2 la dirección es 10h.

RST m OP-CODE

RST 0 C7

RST 8 CF

RST 10 D7

RST 18 DF

RST 20 E7

Page 40: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

36 INTEL Y TSUTEL

RST 28 EF

RST 30 F7

RST 38 FF

DIRECCIONAMIENTO RELATIVO

En el direccionamiento relativo a la dirección proporcionada por el registro de instrucciones

se le añade una dirección de referencia, normalmente esta dirección de referencia es el

contador de programa PC, es posible obtener dos modos diferentes de direccionamiento

relativo:

1).- Relativo hacia adelante

2).- Relativo hacia atrás

En las direcciones de salto, este tipo de direccionamientos permite reducir el número de

bytes para especificar la dirección y reducir así el largo del programa, se usa el byte que

sigue al código operacional relativo para especificar un desplazamiento a partir del valor

actual del contador de "programa más dos", el resultado de la operación es una dirección a

la cual el programa salta para continuar el procesamiento en esta nueva dirección.

El direccionamiento relativo permite el acceso a 256 localidades alrededor de la dirección

de la siguiente instrucción, el valor del operando es un valor con signo entre +128 y -127,

tomando como punto de partida del desplazamiento a la localidad de memoria donde está la

siguiente instrucción:

Page 41: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

37 INTEL Y TSUTEL

El direccionamiento relativo se usa en la CPU Z80 únicamente con el grupo de

instrucciones de salto, permitiendo saltos condicionales o incondicionales que se obtienen

de la resta o la suma respectivamente, del contador de programa actual más el operando.

-DIRECCIONAMIENTO DE BIT-

La CPU Z80 tiene instrucciones que permiten probar, poner en cero y poner en uno a los

bits de un operando:

1. BIT b, r

2. RES b, r

3. SET b, r

Estas instrucciones efectúan operaciones a nivel de bits sobre los contenidos de las

localidades de memoria o los registros de la CPU Z80 seleccionados por medio de uno de

tres tipos de direccionamiento, de registro, de registro indirecto e indexado, con tres bits del

código operacional se especifica cual de los 8 bits del operando es el involucrado.

Ejemplo: SET b, r

En donde "b" puede ser cualquier numero del 0h al 7h y "r" es cualquier registro primario,

acumulador, registro par HL o registro de índice IX o IY.

Page 42: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

38 INTEL Y TSUTEL

CAMPO b BIT =1

000 xxxx xxx1

001 xxxx xx1x

010 xxxx x1xx

011 xxxx 1xxx

100 xxx1 xxxx

101 xx1x xxxx

110 x1xx xxxx

111 1xxx xxxx

Ejemplo: SET 5, B

El bit "5" del registro B toma el valor de "1" los otros siete bits no sufren alteración alguna,

en este caso se esta usando direccionamiento de registro.

1000 1000 antes (B) ß 88

1010 1000 después (B) ß A8

DIRECCIONAMIENTO INDEXADO

Con este modo se obtiene la dirección efectiva haciendo la suma de:

1. El contenido de un registro especial del Z80 denominado "registro de índice".

2. El registro de índice se suma con el operando que proporciona la instrucción.

La indexación permite tratar bucles durante un programa, si se dispone de varios registros

de índice se pueden añadir varios bucles, normalmente el registro de índice se incrementa

por software después de cada operación.

Las instrucciones que utilizan direccionamientos indexado usan byte que sigue al código

operacional para especificar el desplazamiento que suma a uno de los dos registros de

índice del Z80, para formar la dirección efectiva de la memoria, el contenido del registro de

índice no se altera.

Page 43: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

39 INTEL Y TSUTEL

Ejemplo:

REGISTRO DE INDICE + OPERANDO = DIRECCION EFICAZ

1200h + 08h = 1208h

Los movimientos son:

1. El contenido de la localidad 1000h apuntada por el PC se deposita en el registro I R , PC

ß PC + 1, la unidad de control reconoce que debe cargar otra vez el contenido de la

localidad 1001h sobre el I R, PC ß PC + 1.

2. El código operacional en IR le ordena a la unidad de control leer en un registro temporal

el contenido de la localidad apuntada por el PC, PC ß PC + 1.

3. La unidad de control envía por el bus de direcciones la dirección que resulta al sumar el

registro de índice x con el contenido del registro temporal, lee el contenido de esa localidad

y lo carga en

el acumulador.

DIRECCIONAMIENTO CON EL APUNTADOR DE PILA (STACK POINTER)

El contenido de un registro por (BC, DE o HL), o el contenido del contador de programa

(PC), puede transferirse a una área de memoria llamada "stack pointer" y se puede realizar

la función inversa, las localidades de memoria que reciben el dato se direccionan por medio

de un registro de 16 bits denominado "apuntador de pila o stack pointer", existen

únicamente dos operaciones que se realizan con el apuntador de pila, cargar un dato de 16

bits en la pila de la memoria por medio de la instrucción denominada PUSH y la operación

de leer un dato de 16 bits por medio de la instrucción llamada POP, es importante aclarar

que las direcciones a las que se esta seleccionando con el apuntador de pila (SP) debe ser

memorias de leer y escribir, esto es, memorias tipo RAM.

Page 44: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

40 INTEL Y TSUTEL

UNIDAD 3

INTRODUCCIÓN AL MICROCONTROLADOR ATTINY2313

RESUMEN

En esta unidad se describe al microcontrolador ATtiny2313 de la familia Atmel. Se

describen sus principales características, la configuración de sus pines, el diagrama de

bloques. También se describen sus 120 mnemónicos para su programación.

Page 45: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

41 INTEL Y TSUTEL

CARACTERÍSTICAS DEL MICROCONTROLADOR ATTINY2313

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Características Generales

Utiliza la Arquitectura AVR® RISC.

AVR-Alto rendimiento y Arquitectura de RISC de de baja potencia

120 Instrucciones poderosas

Más Sola Ejecución de Ciclo de Reloj

32 x 8 Propósito del General los Registros Activos

El Funcionamiento totalmente Estático

Los Datos y un programa no-volátil además Datos de memoria.

2K Bytes de En-sistema la Misma memoria Programable Flash.

Duración: 10,000 Ciclos de Write/Erase.

128 bytes dentro del sistema Programable EEPROM

Duración: 100,000 Ciclos de Write/Erase.

128 bytes internos de SRAM.

Programando la Cerradura para el Programa Flash y Seguridad de Datos de

EEPROM

Características Periféricas

Uno de 8-bit Timer/Counter con Separado Prescalado y Modo de Comparación.

Uno de 16-bit Timer/Counter con Separado Prescalado, Comparación y Modo

de Captura.

Cuatro canales de PWM.

El Comparador Analógico On-chip.

El Cronómetro del Perro guardián programable con el Oscilador del On-chip.

USI la Interfaz de serie Universal.

Bidireccional USART.

Características Especiales del Microcontrolador

La Depuración de On-chip de debugWIRE.

Dentro del sistema Programable vía el Puerto de SPI.

Las Fuentes de la interrupción externas e Interiores.

Page 46: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

42 INTEL Y TSUTEL

El de baja potencia Ocioso, Energía de apagado, y los Modos de suspensión.

Mejorado la Energía del encendido del Circuito de reinicio.

Programable Castaño-fuera el Circuito de Descubrimiento

El Oscilador Calibrado interior.

Dispositivos E/S y Paquetes

18 Líneas programables de E/S.

El 20-pin PDIP, 20-pin SOIC, 20-pad QFN/MLF

Voltajes de operación

1.8 - 5.5V (ATtiny2313V)

2.7 - 5.5V (ATtiny2313)

Velocidad

ATtiny2313V: 0 - 4 MHz @ 1.8 - 5.5V, 0 - 10 MHz @ 2.7 - 5.5V

ATtiny2313: 0 - 10 MHz @ 2.7 - 5.5V, 0 - 20 MHz @ 4.5 - 5.5V

La potencia de Consumo Típica

En Modo activo

1 MHz, 1.8V: 230 µA

32 kHz, 1.8V: 20 µA (incluso el oscilador)

En Modo Apagado

< 0.1 µA a las 1.8V

El ATtiny2313 es un microcontrolador de 8-bits de baja potencia CMOS, basado en la

arquitectura AVR mejorada de RISC. Ejecuta poderosas instrucciones en un solo ciclo del

reloj, el ATtiny2313 alcanza rendimientos de procesamiento que se acercan a 1 MIPS por

MHz que permite al diseño del sistema para optimizar el consumo máximo contra la

velocidad de procesamiento.

Page 47: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

43 INTEL Y TSUTEL

CONFIGURACIÓN DE LOS PINES

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Pines de Salida ATtiny2313.

Page 48: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

44 INTEL Y TSUTEL

DIAGRAMA DE BLOQUES

Page 49: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

45 INTEL Y TSUTEL

Los AVR combinan un conjunto de instrucciones de propósito general con 32 registros

activos. Los 32 registros se conectan directamente a la Unidad Lógica Aritmética (ALU),

permitiendo dos registros independientes para ser accedido, en una instrucción de ejecución

y un ciclo de reloj. La arquitectura resultante es más código eficaz mientras logra los

movimientos a diez veces más rápido que el microcontrolador de CISC convencional.

El ATtiny2313 AVR es soportado con una colección llena de programas desarrollados por

el sistema con herramientas que incluyen: los Compiladores C, Macro Ensambladores, el

Programa Debugger/Simulators (Simulador), emuladores del circuito, y equipos de

evaluación.

DESCRIPCIÓN DE LOS PINES

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

VCC: El voltaje del suministro Digital.

GND: Tierra.

Puerto A (PA2..PA0): El Puerto A es un 3-bit bidireccional con puertas de E/S. Las salidas

del Puerto A tienen las características simétricas con ambos fregaderos altos y capacidad de

la fuente. Los pins del Puerto A tienen tres estados cuando una condición de reinicio se

pone activa, aun cuando el reloj no corre.

Puerto B (PB7..PB0): el Puerto B es un 8-bit bidireccional con puertas de E/S. Las salidas

del Puerto B tienen las características simétricas con ambos fregaderos altos y capacidad de

la fuente. Los pins del Puerto B tienen tres estados cuando una condición de reinicio se

pone activa, aun cuando el reloj no corre.

Puerto D (PD6..PD0): el Puerto D es un 7-bit bidireccional con puertas de E/S. Las salidas

del Puerto D tienen las características simétricas con ambos fregaderos altos y capacidad de

la fuente. Los pins del Puerto D tienen tres estados cuando una condición de reinicio se

pone activa, aun cuando el reloj no corre.

RESET: Restableciendo la entrada. Un nivel bajo en este pin más largo que la longitud del

pulso mínima generará una reinicialización, aun cuando el reloj no corre. No se garantizan

que los pulsos más cortos generen una reinicialización.

XTAL1: Entrada para invertir al amplificador del Oscilador y entrada al reloj interno del

circuito que opera. XTAL1 es una función alterna para PA0.

XTAL2: Salida para invertir al amplificador del Oscilador. XTAL2 es una función alterna

para PA1.

Page 50: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

46 INTEL Y TSUTEL

MEMORIAS DEL MICROCONTROLADOR ATTINY2313

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Esta sección describe los recuerdos diferentes en el ATtiny2313. La arquitectura de AVR

tiene dos memoria principal espacia, la Memoria del Datos y el espacio de memoria del

Programa. En la suma, el ATtiny2313 ofrece una Memoria del EEPROM para el

almacenamiento de datos. Toda la tres memoria los espacios son lineales y regulares.

La memoria instantánea tiene una paciencia de por lo menos 10,000 ciclos del write/erase.

El ATtiny2313 Programa Contador (PC) es 10 bits ancho, mientras dirigiéndose el 1K

programa así las situaciones de memoria. Pueden asignarse las mesas constantes dentro del

espacio de dirección de memoria de programa entero.

Los Datos de Memoria de la SRAM

La siguiente figura muestras cómo la memoria SRAM del ATtiny2313 es organizada.

Las 224 situaciones de memoria de datos se dirigen ambos al Archivo del Registro, la

memoria del E/S, la memoria del E/S extendida, y los datos interiores SRAM. Las primeras

32 situaciones se dirigen el Archivo del registro, la próxima 64 situaciones en la memoria

del E/S normal, y las próximas 128 situaciones diríjase SRAM a los datos interiores.

Los cinco modos dirigiéndose diferentes para la tapa de memoria de datos: Directo,

Indirecto con el Desplazamiento, Indirecto, Indirecto con el Pre-decremento, e Indirecto

con el Poste-incremento. En el Archivo del Registro, registra R26 a R31 ofrezca los

registros del indicador dirigiéndose indirectos. Los alcances dirigiéndose directos el espacio

de datos entero. El Indirecto con el modo del Desplazamiento alcanza 63 situaciones de

dirección de la base dirección dada por el Y o Z registro.

El 32 propósito general los registros activos, 64 E/S Registra, y los 128 bytes de interior los

datos SRAM en el ATtiny2313 son todo accesibles a través de todos éstos dirigiéndose los

modos.

El Mapa de la memoria de datos.

Page 51: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

47 INTEL Y TSUTEL

La Memoria de Datos de EEPROM

El ATtiny2313 contiene 128 bytes de memoria de EEPROM de datos. Es organizado como

un separado los datos espacian en que pueden leerse los solos bytes y pueden escribirse. El

EEPROM tiene un la paciencia de por lo menos 100,000 ciclos del write/erase

(escritura/borrado). El acceso entre el EEPROM y el CPU se describe lo siguiente en,

mientras especificando los Registros de dirección del EEPROM, el Registro de Datos de

EEPROM, y el EEPROM Controla el Registro. Para una descripción detallada de datos De

serie que transmiten al EEPROM.

El Acceso a la EEPROM Read/Write

El acceso al registro de EEPROM es accesible en el espacio del E/S. El escriba el tiempo

de acceso para el EEPROM se da en Mesa 1. Una función de la mismo-elección del

momento adecuado, sin embargo, permite el software del usuario descubrir cuando el

próximo byte puede escribirse. Si el código del usuario contiene instrucciones que escriben

el EEPROM, algunas precauciones deben tomarse. En las fuentes de alimentación

pesadamente filtradas, VCC es probable subir o caerse despacio adelante poder-up/down.

Esto las causas el dispositivo para algún período de tiempo para correr a un voltaje baja que

especificado como el mínimo para la frecuencia del reloj usada. Vea “Previniendo la

Corrupción del EEPROM”.

Programación del Byte Atómico

La programación del Byte Atómico es el modo más simple. Al escribir un byte al

El EEPROM, el usuario debe escribir la dirección en el Registro de EEAR y datos en

EEDR el registro. Si los pedazos de EEPMn son el cero, mientras escribiéndole a EEPE

(dentro de cuatro ciclos después de que EEMPE es escrito) activará el funcionamiento del

erase/write. Ambos el borre y escriba ciclo se hace en un funcionamiento y el tiempo de la

programación total se da en Mesa 1. El EEPE mordió los restos ponga hasta el borre y

escriba se completan los funcionamientos. Mientras el dispositivo está ocupado con

programando, no es posible hacer cualquier otro funcionamiento del EEPROM.

Page 52: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

48 INTEL Y TSUTEL

EL OSCILADOR DE CRISTAL

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

XTAL1 y XTAL2 son entrada y salida, respectivamente, de un amplificador invirtiendo

que puede se configure para el uso como un Oscilador del on-chip, como mostrado en

siguiente figura, un cristal de cuarzo o un resonador cerámico pueden usarse.

C1 y C2 siempre deben ser iguales para cristales y resonadores. El valor óptimo de los

condensadores depende del cristal o resonador en el uso, la cantidad de capacitancia

perdido, y el ruido electromagnético del ambiente. Algunos firman con iniciales las pautas

para se dan condensadores escogiendo para el uso con cristales. Para la cerámica los

resonadores, deben usarse los valores del condensador dados por el fabricante.

Las Conexiones del Oscilador de Cristal

El Oscilador puede operar en tres modos diferentes, cada uno perfeccionó para una

frecuencia específica en el rango.

Page 53: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

49 INTEL Y TSUTEL

EL RELOJ EXTERNO

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Para manejar el dispositivo de una fuente del reloj externa, XTAL1 debe manejarse como

mostrado en la siguiente figura. Para ejecutar el dispositivo en un reloj externo, los Fusibles

de CKSEL deben programarse a “0000.”

La Configuración del Reloj externo

Cuando esta fuente del reloj es seleccionada, salida-a tiempos es determinado por los

Fusibles de SUT.

Al aplicar un reloj externo, se exigía evitar los cambios súbitos en el aplicado la frecuencia

del reloj para asegurar funcionamiento estable del MCU. Una variación en la frecuencia de

más que 2% de un ciclo del reloj al próximo pueden llevar a la conducta imprevisible. Es

exigido asegurar que el MCU se guarda en la Reinicialización durante cosas así cambia en

el reloj la frecuencia.

Page 54: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

50 INTEL Y TSUTEL

AUTO PROGRAMADOR DEL FLASH

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

El dispositivo mantiene un mecanismo Auto programador transmitiendo y transfiriendo el

código del programa por el propio MCU. El Auto programador puede usar cualquier datos

disponible la interfaz y el protocolo asociado para leer el código y escribir (el programa)

ese código en el Programa a la memoria.

La memoria del Programa se pone al ciclo en una página por la actualidad del suceso.

Antes de programar una pagina con los datos guardados en el limpiador de la página

temporal, la página debe borrarse. El limpiador de la página temporal está llena en el

momento que usa SPM y el pulidor puede llenarse o antes de la Página Borre el orden o

entre una Borre y Escribe.

Si sólo una parte de la página necesita ser cambiada, el resto de la página debe guardarse

(para ejemplo en el limpiador de la página temporal) antes de que se borre, y se re-escriba.

Cuando la alternativa 1 se usa, el Cargador proporciona una eficaz Leer-modificar-escribir

el rasgo qué permite el software del usuario primero lectura de la página, haga los cambios

necesarios, y entonces escriba los datos modificados atrás. Si alternativa 2 se usa, no es

posible leer los datos viejos mientras este cargando desde la página y es borrada. La Página

realizada Borra por SPM.

Page 55: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

51 INTEL Y TSUTEL

CORRIENTE VS FRECUENCIA

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Lo siguientes mapas muestran la conducta típica. Estas figuras no se prueban durante la

fábrica. Todas las medidas del consumo de corriente se realizan con todos los pines de E/S

configurado como las entradas y con pull-up interior habilitado. Un generador de onda de

seno con el rail to rail. El rendimiento de la barra se usa como la fuente del reloj.

El consumo máximo en Power-down el modo es independiente de selección del reloj.

El consumo de corriente es una función de varios factores como: el voltaje al que opera, la

frecuencia que opera, cargando de pines de E/S, cambiando la proporción de pines de E/S,

el código que ejecutó y la temperatura ambiente. Los factores dominando son voltaje que

opera y frecuencia. La corriente deducida de capacitive cargado pueden estimarse los pines

como CL*VCC*f dónde CL = el capacitance de carga, VCC = el voltaje que opera y f = el

medio cambiante de valores la frecuencia de pines de E/S.

Las partes se caracterizan superiores a las frecuencias que los límites de la prueba. No se

garantizan las partes para funcionar propiamente superior a las frecuencias que el código de

la clasificación indica.

El Suministro activo Actual vs. La frecuencia (0.1 - 1.0 MHz)

Page 56: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

52 INTEL Y TSUTEL

MNEMÓNICOS DEL ATTINY2313 Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Page 57: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

53 INTEL Y TSUTEL

Page 58: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

54 INTEL Y TSUTEL

CARACTERÍSTICAS FÍSICAS DEL CHIP

Fuente: ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de

2009, desde http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Page 59: Antologia de Arquitectura de Computadoras

Antología de Arquitectura de Computadoras

55 INTEL Y TSUTEL

REFERENCIAS BIBLIOGRÁFICAS

Angulo Usategui, J. M., Angulo Martínez, I., (2003). Microcontroladores PIC Diseño

práctico de aplicaciones, tercera edición. ¿Qué es un microcontrolador? Editorial Mc

Graw Hill. 1-6.

ATMEL, (2009). El microcontrolador ATtiny2313. Extraído el 23 de junio de 2009, desde

http://www.atmel.com/dyn/resources/prod_documents/2543S.pdf

Lenguajes de Programación, (2009). Lenguajes de programación. Extraído el 18 de junio

de 2009, desde http://www.lenguajes-de-programacion.com/lenguajes-de-

programacion.shtml

Manuales, Cursos, Tutoriales y Apuntes..., (2009). Arquitectura del microprocesador Z80.

Extraído el 18 de junio de 2009, desde

http://proton.ucting.udg.mx/dpto/maestros/mateos/z80/arquitectura/arquitectura.html

Martínez Garza, J., Olvera Rodríguez, J. A., (2000). Organización y arquitectura de

computadoras. Tipos de computadoras. Editorial Prentice Hall. 7-8.

monografias.com, (2009). Arquitectura de las computadoras. Extraído el 17 de junio de

2009, desde http://www.monografias.com/trabajos17/arquitectura-

computadoras/arquitectura-computadoras.shtml

Murdocca, M. J., (2002). Principios de arquitectura de computadoras. El modelo de von

Neumann. Editorial Prentice Hall. 4-6.

Uruñuela M., J. M., (1989). Mircroprocesadores, Programación e interconexión, segunda

edición. Editorial Mc Graw Hill.

Page 60: Antologia de Arquitectura de Computadoras

UNIVERSIDAD DE GUADALAJARA

CENTRO UNIVERSITARIO DE LA COSTA SUR

DIVISIÓN DE DESARROLLO REGIONAL

DEPARTAMENTO DE INGENIERÍAS

La presente antología está dirigida a estudiantes que cursan la materia de

Arquitectura de Computadoras, asignatura que se imparte en las carreras

de Ingeniero en Teleinformática y Técnico Superior Universitario en

Teleinformática que se ofertan en el Centro Universitario de la Costa Sur

Consta de tres unidades:

Unidad 1: Introducción a la estructura de computadoras

Unidad 2: Introducción al microprocesador Z80

Unidad 3: Introducción al microcontrolador ATtiny2313

M. I. E. Jorge Arturo Pelayo López, M. C. Karen Hernández Rueda