viernes, 13 de agosto de 2010

MICROPROCESADOR Z80

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.

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.



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.



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. DESCRIPCIÓN DE TERMINALES El microprocesador Z80 está integrado en una pastilla de 40 pines. Estos terminales pueden agruparse funcionalmente como muestra la siguiente figura:  Bus de direcciones El bus de direcciones está formado por 16 líneas que van desde la línea A0 hasta la línea A15. Estas líneas poseen 3 estados, de modo que cuando el bus de direcciones está inactivo, ellos se encuentran en un estado de alta inpedancia. Cuando el procesador maneja dispositivos de I/O, las 8 líneas menos significativas de este bus contienen la dirección del dispositivo, la cual puede tener un valor entre 0 y 255 (d).

Por otro lado, las líneas menos significativas de este bus contienen, durante un lapso en ejecución da cada instrucción, el valor presente en el registro de Refresh de memoria R.  Bus de data El bus de datos está formado por 8 líneas que van desde la línea D0 a la línea D7. Este bus es bidireccional permitiendo la transferencia de información desde la CPU hacía la memoria o dispositivos de I/O y viceversa. Es tambíen un bus de 3 estados.  Alimentación El microprocesador Z80 requiere solamente de 2 líneas de alimentación 0 y 5 V, con un margen de 5%, y consume una corriente máxima de 200 mA.  Señales de Reloj El Z80 requiere solamente una señal de reloj. La frecuencia de esta señal Ø para el Z80 es de 4[MHhz].  Señales de control  C o nt ro l de los buses. La CPU posee dos señales asociadas con el control de los buses de dirección y datos. Estas señales son la señal de entradaBUSRQ y la señal de salidaBusak

La señalBUSRQ es generada por un dispositivo externo para obtener el control de los buses y realizar una operación de acceso directo a memoria. Cuando un dispositivo externo solicita el control de los buses colocando en 0 la línea BUSRQ, el procesador concluye la instrucción que estaba ejecutando y responde mediante la señal de reconocimiento BUSAK. Colocando la señal de salidaBusak en 0, el procesador informa al dispositivo externo que el bus de dirección, el bus de datos y las señales de control de salida se encuentran en estado de alta impedancia y en consecuencia, se encuentran libres para ser controladas por dicho dispositivo.

 C o nt ro l de la memoria El Z80 posee 4 señales relacionadas con las operaciones de control de la memoria. Ellas son

las señales MREQ, RD, WR y RFSH. La señal MREG es una señal de 3 estados que se activa en 0 indicando que el bus de direcciones contiene una dirección válida. La señales RD y WR indican a la memoria si la CPU efectuará una operación de lectura o escritura. La señal RFSH no está asociada con la operación normal de la memoria sino que se usa solamente con memoria dinámica. Las memorias dinámicas requieren que se refresque periódicamente

la información almacenada antes que se degrade. Control de memoria MREG RFSH RD WR Leer memoria 0 0 Escribir en memoria 0 0 Ciclo de refresco (7 bits) 0 0  C o nt ro l de I/O La CPU usa la señal IORQ' para informar a los dispositivos de I/O que los 8 bits menos significativos del bus de direcciones contienen una dirección de I/O válida.

Control de I/O IORQ' RD WD Leer dispositivo I/O 0 0 Escribe dispositivo I/O 0 0  C o nt ro l de las Interrupciones El microprocesador Z80 posee dos líneas de entrada a través de las cuales un dispositivo externo puede solicitar la interrupción del programa que se está ejecutando y la ejecución de una rutina que maneje dicha interrupción. Estas líneas son la NM I y INT'.

 S e ña les Misceláneas. En este grupo se encuentran las señales M1', RESET, WAIT y HALT. La señal RESET es una señal de entrada a la CPU y que se activa (se coloca en 0) para efectuar una operación de reset general. Esta señal es puesta en cero en los microcomputadores que usan este microprocesador, inmediatamente después que se aplica

la energía y cada vez que se resetea el sistema. Cuando se activa la señal RESET, las interrupciones quedan en modo 0, los registros R e I quedan también en cero y el Program Counter carga la dirección 000H. La señal WAIT es una señal asociada con memorias o dispositivos de I/O lentos. Mientras, la señal Wait esté en cero, la CPU no hace nada esperando la respuesta de la memoria

o del dispositivo de I/O lento. Finalmente, la señal HALT es una señal que se activa (se pone en cero) cuando se ejecuta

una instrucción HALT. Cuando el microprocesador está en estado HALT realiza solamente instrucciones NOP (No operation) para asegurar el adecuado refresh de memoria. Se puede salir de este estado solo mediante interrupciones.

Bibliografia:

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

http://www.redeya.com/electronica/tutoriales/Z80/z80.html

TIPOS DE SENSORES

Basicamente los sensores son unos dispositivos que transforman parámetros físicos en parámetros eléctricos. Se usan diferentes tipos de sensores dependiendo de la variable física que se desee tratar.



Inductivos

Suele ser un bobinado donde pasa corriente. Al acercarse a un cuerpo metálico varia el campo magnético que crea. O sea, detecta variaciones de flujo magnético





Capacitivos

Son dos placas metálicas formando una especie de condensador. Al acercarse a un cuerpo, éste hace de dieléctrico y varía la capacidad del condensador. O sea, detecta variaciones de capacidad.





Fotoeléctricos

Son dispositivos sensibles a la luz. Hay fotoresistencias, fotodiodos, fototransistores, fototriacs, fototiristores, y algunos más. Cuando reciben luz se ponen a conducir.





Ultrasonidos

Se suelen usar para detección de obstáculos. Alcanzan mucho más que los fotoeléctricos, inductivos y capacitivos. Se basan en emitir un sonido (ultrasonido) y, si el receptor lo recibe es que hay un objeto.





Encoders

Se usan para posicionamiento y control de motores. Se acoplan al eje del motor y van rodando con él. Se basan en una rueda con unos agujeros. En un lado hay un emisor de luz y en el otro un receptor. Cuando el encoder gira el receptor va dando pulsos y se logra saber la velocidad y la posición del motor.

Los hay incrementales (emiten un pulso y tú debes sumarlos para saber dónde está en cada momento) y absolutos (te dan siempre la posición absoluta).





Fotoeléctricos



Hay los de barrera, que detectan si un cuerpo atraviesa el haz de luz. El emisor y el receptor deben estar a una distancia y enfocados el uno al otro; también pueden estar de lado, pero debe haber un reflector para crear la barrera.

También hay los de proximidad. Éstos tienen el emisor y el receptor de lado y, al acercarse a un cuerpo, la luz se refleja en él y llega al receptor.



Temperatura

Suelen ser unas resistencias que varian su valor dependiendo de la temperatura. Las hay que cuando aumenta el calor, aumentan la resistencia (PTC) y otras que cuando el calor aummenta disminuyen su valor (NTC). Tambien hay unos sensores de temperatura que son un par de metales (como una uve "V") que crean en sus bornes un voltaje proporcional a la diferencia de temperatura de éstos. Se denominan termopares.

FUNCIONAMIENTO DE LOS CONVERTIDORES A/D Y D/A

CONVERTIDORES ANALÓGICOS-DIGITALES (A/D)

Es un dispositivo electrónico capaz de convertir una entrada analógica de voltaje en un valor binario, Se utiliza en equipos electrónicos como ordenadores, grabadores de sonido y de vídeo, y equipos de telecomunicaciones. La señal analógica, que varía de forma continua en el tiempo, se conecta a la entrada del dispositivo y se somete a un muestreo a una velocidad fija, obteniéndose así una señal digital a la salida del mismo.

Características de los convertidores:

Las principales características que podemos encontrar a la hora de seleccionar un convertidor son las siguientes:

Resolución.

Lineabilidad.

Precisión.

Impedancia.

Sensibilidad.

Sin embargo, cabe destacar otras no mencionadas:

El error de cuantificación: Este aparece como consecuencia de que un convertidor la continuidad de la señal analógica es dividida en una potencia de dos. De esta manera, todos los valores analógicos dentro de un rango están representados por lo único digital, normalmente asignado al valor medio del mismo.

Tiempo de conversión: Es el tiempo requerido por el conversor para entregar la palabra digital equivalente a la entrada analógica.

Funcionamiento:

Estos conversores poseen dos señales de entrada llamadas Vref+ y Vref- y determinan el rango en el cual se convertirá una señal de entrada.

El dispositivo establece una relación entre su entrada (señal analógica) y su salida (digital) dependiendo de su resolución. Esta resolución se puede saber, siempre y cuando conozcamos el valor máximo que la entrada de información utiliza y la cantidad máxima de la salida en dígitos binarios. A manera de ejemplo, el convertidor análogo digital ADC0804 tiene la capacidad de convertir una muestra analógica de entre 0 y 5 voltios y su resolución será respectivamente:

Resolución = valor analógico / (2^8)

Resolución = 5 V / 256

Resolución = 0.0195v o 19.5mv.

Resolución = LSB

Lo anterior quiere decir que por cada 19.5 mili voltios que aumente el nivel de tensión entre las entradas nomencladas como "Vref+" y "Vref-" que ofician de entrada al conversor, éste aumentará en una unidad su salida (siempre sumando en forma binaria bit a bit). Por ejemplo:

Entrada - Salida

0 V - 00000000

0.02 V - 00000001

0.04 V - 00000010

1 V – 00110011


CONVERTIDORES DIGITALES-ANALÓGICOS (D/A)

Un convertidor digital-analogico (D/A) funciona mediante una suma ponderada de los dígitos de valor 1 se consigue, en forma muy simple, un conversor digital-analgico rápido; la ponderación puede hacerse con una serie de resistencias en progresión geométrica (cada una mitad de la anterior), lo cual obliga a utilizar un amplio rango de resistencias, o bien mediante una red R-2R que efectúa sucesivas divisiones por 2.

Puede convertirse una tensión en número binario utilizando un conversor opuesto D/A, a través de la comparación entre la tensión de entrada y la proporcionada por dicho conversor D/A aplicado a un generador d números binarios; se trata de aproximar el número-resultado a aquel cuya correspondiente tensión analógica es igual a la de entrada. La aproximacón puede hacerse d unidad en unidad, mediante un simple contador, o dígito a dígito mediante un circuito secuencial específico

En los sistemas digitales la precisión viene dada por la utlización de dos símbolos 1/0 y por la separación entre las tensiones que los representan. En cambio, en el tratamiento de tensiones analógicas y, por tanto, en los conversores D/A y A/D, hemos de preocuparnos de la precisión y de las diversas causas de error que le afectan: desplazamiento del origen, linealidad, resolución

Puede realizarse mediante un sencillo circuito sumador con resistencias ponderadas (según la relación R, R/2, R/4, R8, R/16...) como el de la figura:

Supuesto que las tensiones que corresponden a los valores booleanos sean 0 y +V: Vo = - (R' / R). (+V). (D0 + 2.D1 + 4.D2 + 8.D3 +... )

El último paréntesis de la expresión anterior expresa el valor del número binario ... D3 D2 D1 D0 y el factor inicial V.R'/R determina el valor de tensión asignado a cada unidad; las resistencias R' y R permiten ajustar dicho valor a la tensión unitaria que se desee.

Resulta un circuito sumamente sencillo para obtener una tensión analógica a partir de las tensiones de los dígitos binarios del número que se desea convertir. Habida cuenta de que la etapa sumadora es inversora, se obtendrá una tensión negativa, que puede transformarse fácilmente en positiva mediante una segunda etapa amplificadora inversora de ganancia unidad.

Las tensiones booleanas que presentan los diversos dígitos de un número binario (salidas de los correspondientes terminales del circuito digital, generalmente salidas de circuitos integrados) no ofrecen adecuada precisión: ambas tensiones, VoL ≈ 0 V y VoH ≈ +V, no son valores muy precisos.

Por ello, para aumentar la precisión del conversor, no se utilizan directamente las tensiones de los dígitos a convertir sino una tensión única de referencia de alta precisión, la cual se conecta (caso de dígito de valor 1) o no (valor 0) a las correspondientes resistencias sumadoras mediante interruptores; además, para disminuir los efectos capacitivos propios de los conmutadores y aumentar la velocidad de conmutación, ésta se efectúa entre dos posiciones de igual tensión.

Cada conmutador se conecta hacia la entrada del amplificador cuando el valor del correspondiente dígito es 1; en otro caso, se conecta directamente hacia la línea de 0 V. Vo = - (R' / R). Vref.. (D0 + 2.D1 + 4.D2 + 8.D3 +... )

La precisión de este conversor depende de la precisión de las resistencias y de la tensión de referencia así como de las características del amplificador operacional, especialmente en lo relativo a tensión y corrientes de offset.

martes, 10 de agosto de 2010

El Micro-controlador

Un microcontrolador es un circuito integrado o chip que incluye en su interior las tres unidades funcionales de una computadora: unidad central de procesamiento, memoria y unidades de E/S (entrada/salida).