19 jun 2022

ELECTRÓNICA BÁSICA - 8080 (y XXVIII)

           

Como continuación de la publicación anterior, vamos a ver un "sencillo" procesador de 8bits, a modo de ejemplo. Y con esta, damos por finalizadas las publicaciones de Electrónica Básica.



8080.
Como ejemplo sencillo, vamos a ver someramente un microprocesador de 8bits, en el cual se fundamentó la informática moderna. 
Este procesador está dentro de un circuito integrado encapsulado, con 40 patillas. A continuación se muestra el encapsulado con la descripción de los pines y los elementos lógicos dentro del procesador:







En la siguiente imagen muestra el diagrama de bloques del microprocesador Intel 8080 y los  registros internos, incluyendo el acumulador, puntero de pila, registro de status (señalizadores) y algunos registros temporales. El diagrama de bloques también muestra el registro de instrucción y el decodificador de instrucciones, así como la sección de control y temporización. También podemos ver la ALU y los señalizadores asociados, las ocho entradas/salidas de datos, así como las salidas de dirección de 16 bits. La CPU del 8080 también contiene muchas líneas de control internas, caminos de datos y buses.

Pero actualmente esta realidad es muy distinta. En nuestro hogar, existe una enorme cantidad de microprocesadores realizando diversas tareas, que hacen la vida diaria más sencilla. Los podemos encontrar en nuestro televisor, en el equipo de sonido, en el reproductor de DVD, en los teléfonos móviles, en el mando a distancia o en un reloj de pulsera.

Y es que esta tecnología se ha abaratado hasta tal punto que muchas aplicaciones que antes requerían el uso de varios dispositivos individuales, ahora se pueden realizar con más facilidad y de manera más económica con la aplicación de un microprocesador, o de su variante, un microcontrolador.



Sus funciones se definen a continuación de forma breve:
  1. Registro de instrucción: Esta unidad es un registro de 8 bits que contiene el primer byte de una instrucción (el código de op).
  2. Decodificador de instrucciones: Esta unidad interpreta el contenido del registro de instrucción, determina el microprograma exacto que se debe seguir para ejecutar la instrucción completa y dirige adecuadamente la sección de control.
  3. Unidad aritmética y lógica: Esta unidad realiza las operaciones aritméticas, lógicas y de desplazamiento circular que afectan al registro de status (señalizadores). Los resultados de la sección de la ALU se colocan de nuevo en el acumulador vía el bus interno. El registro temporal y acumulador muchas veces se consideran parte de la ALU. Las condiciones de los señalizadores son realimentadas a la unidad de control y temporización.
  4. Acumulador: Esta unidad es un registro de propósito general de 8 bits que es el foco de la mayor parte de las instrucciones aritméticas, lógicas, de carga, almacenamiento y E/S.
  5. Contador de programa: Esta unidad es un área de almacenamiento de 16 bits que siempre apunta a la siguiente instrucción que se va a ejecutar. Siempre contiene una dirección de 16 bits. Puede ser incrementada o puesta a cero por la sección de controlo modificada por instrucciones de transferencia.
  6. Unidad de control y temporización: Esta sección recibe señales del decodificador de instrucciones para determinar la naturaleza de la instrucción que se va a ejecutar. La información del registro de status también está disponible para las bifurcaciones condicionales. Las señales de temporización y control son enviadas a todo el microprocesador para coordinar la ejecución de las instrucciones. También se generan las señales externas de control.
  7. Registro de status: Contiene solamente los señalizadores de cero y arrastre en su registro de status.


En la siguiente imagen se muestra el diagrama genérico de un microprocesador de 8bits.

 



Este CI utiliza una fuente de alimentación de 5 V conectada a las patillas 1 y 2. La utilización de fuentes de alimentación de +5 V es común en los microprocesadores.

Las patillas XI y X2, es para conectarlas a un cristal que regule la frecuencia de reloj. En los uPC modernos, la circuitería de reloj se construye dentro del propio microprocesador.

La salida CLK (patilla 38) es una señal de reloj que se utiliza como reloj del sistema. La frecuencia de la salida de CLK suele ser menor que la del reloj interno. 

El bus de direcciones del sistema se conectará a las patillas del CI etiquetadas AQ a A IS. Estas 16 salidas de dirección pueden acceder hasta 65.536 (2 16) posiciones de memoria y/o entradas/salidas. 

El flujo de instrucciones y datos dentro y fuera del microprocesador pasa a través de las patillas etiquetadas Do a D/. Estas patillas (21-28) son bidireccionales, ya que unas veces sirven como entradas y otras como salidas. En general, estas patillas de datos también pueden ser configuradas como tres estados (estado de alta impedancia).

La patilla 30m es la salida de control de escritura. Un nivel BAJO en la patilla WR indica que el dato del bus de datos se va a grabar en la posición de memoria o E/S seleccionada. 

La salida de control de lectura está etiquetada RD (patilla 31). Un nivel BAJO en la patilla RD indica que se va a leer la memoria o el dispositivo de E/S seleccionado y que el bus de datos está disponible para transferir el dato leído. La lectura se realiza cuando la señal RD está en el nivel BAJO. La habilitación de la entrada de reinicio, hace que el uPC suspenda su trabajo en el programa actual y bifurque a una rutina de inicialización. Un nivel BAJO en la entrada REINICIALIZACIÓN pondrá en reinicialización el contador de programa con algún número predeterminado, como por ejemplo 000H, Los demás registros internos de la CPU también se pueden poner a cero o cambiar sus contenidos durante la operación de reinicialización. Cuando la entrada de REINICIALlZACIÓN alcanza de nuevo el nivel ALTO (inhabilitado), la CPU comenzará a ejecutar instrucciones de la ROM en la nueva posición de memoria 0000H. 

La mayoría de las acciones del microprocesador se realizan en conjunción con el reloj, y por tanto se dice que son síncronas. La entrada de RE/NICIALIZACION a la MPU es asíncrona y puede interrumpir y detener una instrucción a medio ejecutar. 

La entrada de petición de interrupción al microprocesador es la patilla 35, INTR y responde a un nivel ALTO de algún dispositivo externo.



PROGRAMACIONDEL MICROPROCESADOR.
Los fabricantes, junto con el procesador, incluyen información detallada sobre el repertorio de instrucciones. En la siguiente imagen se muestra como ejemplo, el resumen del repertorio de instrucciones para los microprocesadores Intel 8080/8085.




La especialización operativa del microprocesador y por tanto del sistema organizado en torno al mismo, está definido por el programa de aplicación. 
Este Programa consta de una secuencia de instrucciones que ponen en conocimiento del microprocesador las sucesivas operaciones que debe realizar.

Este listado de operaciones, se denomina programa máquina. El contenido de la memoria de programa, es un programa en código máquina, que en el ejemplo comienza en la dirección 2000H con el código de operación 00 1111102 Y finaliza en la dirección 2006H con 01110 1102.
Estos programas, con este formato son casi imposibles de comprender para nosotros.




Para que sea algo más sencillo de manejar, los números binarios se representan en notación hexadecimal. Pero aun así, los programas son muy difíciles de comprender.
En un nivel más humano, el programa anteriormente mostrado en código máquina puede describirse como sigue:
  1. Cargar el número binario (10110100) en el acumulador del microprocesador.
  2. Complementar cada bit del número binario del acumulador para formar el complemento a 1.
  3. Almacenar el resultado, del complemento a 1, en la posición 2100H de la memoria de datos.
Las instrucciones o sentencias del lenguaje ensamblador se suelen dividir en en cuatro campos: 
(1) etiqueta, (2) nemotécnico, (3) operando y (4) comentarios. 




El campo de etiqueta no se utiliza siempre y aparece vacío en este sencillo fragmento de programa. 

El campo de nemotécnico contiene el nemotécnico exacto que proporciona el fabricante. 
Este campo indica al programa ensamblador esencialmente la operación que se va a realizar.

El campo de operando contiene información sobre registros. datos o direcciones asociados con la operación. Utilizando la información de los campos de nemotécnico y operando, el programa ensamblador puede generar el código correcto en lenguaje máquina. 

El programa ensamblador puede también asignar posiciones de la memoria de programa a los listados en código máquina. 

El campo de comentario no lo evalúa el programa ensamblador, solamente lo imprime. El campo de comentario es una ayuda valiosa para comprender qué ocurre en el programa.





Con todo lo visto, y teniendo en cuenta la función o proceso a realizar, y acorde a las instrucciones del procesador a ser usado, es cuando se ha de construir, redactar, depurar y codificar el programa adecuado.

Esto, como es de suponer, entra dentro de otro campo, más relacionado a la programación, ya sea en un lenguaje de Bajo Nivel, que ejecutan control directo sobre el hardware (Assembler, Código Máquina, etc.) o de Alto Nivel, que mediante códigos más cercanos al lenguaje humano, "traducen" estos a conjuntos de códigos de Bajo Nivel (BASIC, C, etc.).



Con esto, damos por finalizadas las publicaciones de Electrónica Básica. En próximas haremos referencia a elementos, componentes y/o aspectos más concretos, relacionados con la electrónica, como Microprocesadores Programables PIC, Arduino, etc.
Seguir atentos a nuestro Blog!


Y como siempre, aquí tienes la lista de publicaciones anteriores, por si os perdisteis alguna:
Electrónica Básica, Conceptos Básicos (I)  
Electrónica Básica, Circuitos Básicos (II)
Electrónica Básica, Resistencias (III)
Electrónica Básica, Condensadores (IV)
Electrónica Básica, Inductores (V)
Electrónica Básica, Diodos (VI)
Electrónica Básica, Transistores (VII)
Electrónica Básica, Circuitos Integrados (VIII)
Electrónica Básica, Amplificador Operacional (IX)
Electrónica Básica, Amplificadores de Audio (X)
Electrónica Básica, Temporizador 555 (XI)
Electrónica Básica, Conmutadores (XII)
Electrónica Básica, Comparadores (XIII)
Electrónica Básica, Electrónica Digital (XIV)
Electrónica Básica, Puertas Lógicas (XV)
Electrónica Básica, Funciones Lógicas (XVI)


Esperamos que os haya gustado esta publicación. Si es así, no dudes en compartirla.

© Se permite reproducción total o parcial de este contenido, siempre y cuando se reconozca la fuente de información utilizada y se incluya el enlace a este artículo.

Equipo Xanur©2022.