GRUPO COLEGIO MEXIQUENSE UNIVERSITARI O. TRABAJO DE INVESTIGACIÓN. ELABORA: RENÉ JOEL DÍAZ VIQUEZ. DOCENTE: I.S.C. JAVIER CRISANTO TIBURCIO. TOLUCA, MÉXICO A 4 ENERO DEL 2022. Unidad 1 MICROPROCESADORES 1.1 Introducción a los microprocesadores. ................................................................................... 3 1.1.1 Definición del microprocesador. ..................................................................................... 4 1.1.2 Diferencia entre el microprocesador y el microcontrolador. ......................................... 4 1.1.3 Tipos de microprocesador según su velocidad y ancho de palabra................................ 6 1.2 Arquitectura del microprocesador .......................................................................................... 8 1.2.1 A través del diagrama de bloques. .................................................................................. 8 1.2.2 Arquitectura externa de un microprocesador (terminales). ......................................... 13 1.3 Conexión del microprocesador con tipos de: ............................................................................. 18 1.3.1 Memoria. .............................................................................................................................. 18 1.3.2 Periféricos............................................................................................................................. 18 1.3.2.1 Interrupciones programables (8255). ........................................................................... 18 1.3.2.2 De comunicación serial. ................................................................................................ 18 1.3.2.3 De interfase programable (8255). ................................................................................. 19 1.4 Fuentes de investigación documentales. .................................................................................... 28 UNIDAD 1. MICROPROCESADORES 1.1 Introducción a los microprocesadores. Se usa el término microprocesador para denominar a cualquier Unidad Central de Proceso (CPU) contenida en una sola pastilla, aun cuando algunas de ellas tengan la arquitectura y el poder de procesamiento de una computadora. El microprocesador es uno de los logros más sobresalientes del siglo XX. Esas son palabras atrevidas, y hace un cuarto de siglo tal afirmación habría parecido absurda. Pero cada año, el microprocesador se acerca más al centro de nuestras vidas, forjándose un sitio en el núcleo de una máquina tras otra. Su presencia ha comenzado a cambiar la forma en que percibimos el mundo e incluso a nosotros mismos. Cada vez se hace más difícil pasar por alto al microprocesador como otro simple producto en una larga línea de innovaciones tecnológicas. Ninguna otra invención en la historia se ha diseminado tan aprisa por todo el mundo o ha tocado tan profundamente tantos aspectos de la existencia humana. Hoy existen casi 15,000 millones de microchips de alguna clase en uso (el equivalente de dos computadoras poderosas para cada hombre, mujer y niño del planeta). De cara a esa realidad, ¿quién puede dudar que el microprocesador no sólo está transformando los productos que usamos, sino también nuestra forma de vivir y, por último, la forma en que percibimos la realidad? No obstante que reconocemos la penetración del microprocesador en nuestras vidas, ya estamos creciendo indiferentes a la presencia de esos miles de máquinas diminutas que nos encontramos sin saberlo todos los días. Así que, antes de que se integre de manera demasiado imperceptible en nuestra diaria existencia, es el momento de celebrar al microprocesador y la revolución que ha originado, para apreciar el milagro que es en realidad cada uno de esos chips de silicio diminutos y meditar acerca de su significado para nuestras vidas y las de nuestros descendientes. 1.1.1 Definición del microprocesador. El microprocesador es un circuito electrónico que actúa como unidad central de proceso de un ordenador, proporcionando el control de las operaciones de cálculo. Podríamos decir de él que es el cerebro del ordenador. Los microprocesadores también se utilizan en otros sistemas informáticos avanzados, como impresoras, automóviles o aviones. El microprocesador es un tipo de circuito sumamente integrado. Los circuitos integrados, también conocidos como microchips o chips, son circuitos electrónicos complejos formados por componentes extremadamente pequeños formados en una única pieza plana de poco espesor de un material conocido como semiconductor. Un microprocesador consta de varias secciones diferentes. 1.1.2 Diferencia entre el microprocesador y el microcontrolador. Si se ha tenido la oportunidad de realizar un diseño con un Microprocesador, Fig.1, se puede observar que dependiendo del circuito se requerían algunos circuitos integrados adicionales además del Microprocesador como, por ejemplo: memorias RAM para almacenar datos temporalmente y memorias ROM para guardar el programa encargado del proceso del equipo, un circuito integrado para los puertos de entrada y salida y finalmente un decodificador de direcciones. Figura 1. Estructura de un sistema abierto basado en un Microprocesador. La disponibilidad de los buses permite que se configure a la medida de la aplicación. Un Microcontrolador, fig.2, es un circuito integrado que contiene todos los elementos necesarios para hacer funcionar un sistema basado con un Microprocesador; es decir contiene en un solo integrado la Unidad de Proceso, la memoria RAM, memoria ROM, puertos de entrada y salidas, con la consiguiente reducción de espacio. El Microcontrolador es en definitiva un circuito integrado que incluye todos los componentes de un computador. Debido a su reducido tamaño es posible montar el controlador en el propio dispositivo al que gobierna. En este casoel controlador recibe el nombre de controlador empotrado. El Microcontrolador es un sistema cerrado. Todas las partes del procesador están contenidas en su interior y sólo salen al exterior las líneas que gobiernan los periféricos. Estas ventajas son reconocidas inmediatamente para aquellas personas que han trabajado con los Microprocesadores y después pasaron a trabajar con los Microcontroladores. Estas son las diferencias más importantes: Por ejemplo la configuración mínima básica de un Microprocesador estaba constituida por un Micro de 40 Pines, Una memoria RAM de 28 Pines, una memoria ROM de 28 Pines y un decodificador de direcciones de 18 pines; pero un Microcontrolador incluye todo estos elementos en un solo Circuito Integrado por lo que implica una gran ventaja en varios factores: En el circuito impreso por su amplia simplificación de componentes, el costo para un sistema basado en Microcontrolador es mucho menor y, lo mejor de todo, el tiempo de desarrollo de su proyecto electrónico se disminuye considerablemente. 1.1.3 Tipos de microprocesador según su velocidad y ancho de palabra. Las características básicas que definen a un microprocesador son la longitud de palabra (comúnmente de 8, 16, 32, 64 o 128 bits), la velocidad de ejecución y la capacidad de gestionar interrupciones. Otras de sus calidades diferenciativas, son el número de instrucciones, el número de registros, y los tipos de direccionamiento. La longitud de la palabra se refiere al número de bits que procesa simultáneamente un microprocesador y se determina por su arquitectura, es decir, por el tamaño de los registros, de la unidad lógica y aritmética (ALU) y de los buses internos. La longitud de la palabra crece conforme las nuevas tecnologías lo permiten. El primer microprocesador tenía una longitud de 4 bits, ahora y una frecuencia de 108 KHz, el microprocesador PENTIUM IV tiene una longitud de palabra de 64 bits, con una frecuencia de 2GHz. Especificaciones técnicas de los microprocesadores Intel Fecha reloj bus Núm Memoria Memoria Breve trans virtual 4004 15/11/7 108KH 4bits 2.300 (10 1 z. micras) 640 byte 8008 1/4/72 108KH 8bits 3.500 z. 16 KBytes 8080 1/4/74 2 MHz. 8bits 6.000 64 KBytes 8086 5MHz. 29.000 8/6/78 8MHz. 16bit (3 micras) 10MHz. s 1 MegaByt e 8088 1/6/79 Primer chip con manipulación aritmética Manipulaci ón Datos/text o 10 veces las (6 micras) prestaciones del 8008 5 MHz. 8 bits 29.000 8 MHz. 80286 1/2/82 8 MHz. 16bit 134.000 s 10MHz. 12MHz. 16 descripción 1 10 veces las prestaciones del 8080 Idéntico al 8086 excepto en su bus externo de 8 bits De 3 a 6 veces las (1.5 micras) Megabyte Gigabyte prestaciones del s 8086 386 DX® 386 SX® 16 17/10/8 MHz. 20 5 MHz. 25 MHz. 33 MHz. 16 16/6/88 MHz. 20 MHz. 25 486 10/4/89 MHz. DX® 33 MHz. 50 MHz. 16 486 MHz. SX® 22/4/91 20 MHz. 25 MHz. 33 MHz. 60 MHz. 66 MHz. Pent® 22/3/93 75 MHz. 90 MHz. 100MH z. 120MH z. 133MH z. 150MH z. 166MH z. 200MH z. 275.000 32bit (1 micra) s Primer chip x86 4 64 capaz de manejar Gigabyte Terabyte juegos de datos s s de 32 bits 16bit (1 micra) s Bus capaz de 4 64 direccionar 16 Gigabyte Terabyte bits procesando s s 32bits a bajo coste (1 micra, 32bit 0.8 s micras en 50 MHz.) 4 64 Caché de nivel 1 Gigabyte Terabyte en el chip s s 275.000 Idéntico en 1.185.000 4 64 32bit (0.8 micras) Gigabyte Terabyte diseño al Intel 486DX, pero sin s s s coprocesador matemático Arquitectura escalable. Hasta 5 32 3,1 4 64 Bits millones Gigabyte Terabyte veces las prestaciones del (0.8 micras) s s 486 DX a 33 MHz. 150MH Pen 27/3/95 z. t 180MH Pro z. ® 200MH z. 233MH 7/5/97 z. 266MH PentII z. ® 300MH z. 64 5,5 Bits millones (0.32 micras) 64 7,5 Bits millones (0.32 micras) Arquitectura de 4 ejecución dinámica Gigabyte Terabyte con procesador de s altas prestaciones s 64 S.E.C., MMX, Doble 64 4 Bus Indep., Gigabyte Terabyte Ejecución s Dinámica s 1.2 Arquitectura del microprocesador 1.2.1 A través del diagrama de bloques. 2 3 La unidad central de proceso (CPU) o microprocesador, es el verdadero cerebro de la computadora. Su misión consiste en controlar y coordinar todas las operaciones del sistema. Para ello extrae, una a una, las instrucciones del programa que está en la memoria central de la computadora (memoria RAM), las analiza y emite las órdenes necesarias para su completa realización. Para entender cómo funciona un microprocesador, hay que tener en primer lugar una clara idea acerca de su arquitectura. De otro modo, será prácticamente imposible hacerse una idea sobre su funcionamiento. De una forma global, podemos considerar al microprocesador dividido en tres grandes bloques: 4 UNIDAD DE UNIDAD DE DECODIFICACIÓN EJECUCIÓN UNIDAD ARITMÉTICO- LÓGICA (ALU) Unidad de decodificación. Se encarga de decodificar la instrucción que se va a ejecutar. Es decir, saber qué instrucción es. Cuando el microprocesador lee de memoria una instrucción, el código de esa instrucción le llega a esta unidad. Esta unidad se encarga de interpretar ese código para averiguar el tipo de instrucción a realizar. Por ejemplo, instrucciones de suma, multiplicación, almacenamiento de datos en memoria, etc. Unidad de ejecución. Una vez que la unidad de decodificación sabe cuál es el significado de la instrucción leída de memoria, se lo comunica a la unidad de ejecución. Esta unidad será la encargada de consumar la ejecución y para ello activará las señales necesarias y en un orden determinado. Es decir, es la encargada de dar las órdenes necesarias a las diversas partes del microprocesador para poder ejecutar cada una de las instrucciones. Unidad aritmético lógica (ALU). La ALU (Aritmethic Logic Unit) es el bloque funcional del microprocesador encargado de realizar todas aquellas operaciones matemáticas y lógicas, así como también operaciones de corrimiento. Las operaciones que realiza son las siguientes: suma, resta, multiplicación, división y aquellas que trabajan con dígitos binarios (10 que se conoce como operaciones lógicas: AND, NOR, NOT, NAND, OR, X-OR, etc.). En suma, saber cómo funciona un microprocesador, implica conocer cómo se van ejecutando cada una de las instrucciones del programa que se almacena en memoria. Los pasos globales que se siguen a la hora de ejecutar una instrucción son: Partes de la CPU. Vamos a profundizar aún más en el estudio de las partes funcionales que componen un microprocesador. No significa que la primera división en bloques anterior fuera errónea, sino que era más superficial. Podemos, entonces, considerar a un microprocesador compuesto por las dos siguientes unidades: unidad de control y unidad aritmética lógica. Unidad de control. Es el centro nervioso de la computadora, ya que desde ella se controlan y gobiernan todas las operaciones. Realiza las funciones básicas de: tomar las instrucciones de memoria. decodificar o interpretar las instrucciones. ejecutar las instrucciones (tratar las situaciones de tipo interno (inherentes ala propia CPU) y de tipo externo (inherentes a los periféricos). Para funcionar de la manera anterior, la unidad de control consta de: Contador de programa Registro de instrucciones Decodificador Reloj Secuenciador Contador de programa. Contiene permanentemente la dirección de memoria de la siguiente instrucción a ejecutar. Al iniciar la ejecución de un programa toma la dirección de su primera instrucción. Incrementa su valor en uno, de forma automática, cada vez que se concluye una instrucción, salvo si la instrucción que se está ejecutando es de salto o de ruptura de secuencia, en cuyo caso el contador de programa tomará la dirección de la instrucción que se tenga que ejecutar a continuación; esta dirección está en la propia instrucción en curso. Registro de instrucción. Contiene la instrucción que se está ejecutando en cada momento. Esta instrucción llevará consigo el código de operación (un código que indica qué tipo de operación se va a realizar, por ejemplo, una suma) y en su caso los operandos (datos sobre los que actúa la instrucción, por ejemplo, los números a sumar) o las direcciones de memoria de estos operandos. Decodificador. Se encarga de extraer el código de operación de la instrucción en curso (que está en el registro de instrucción), lo analiza y emite las señales necesarias al resto de elementos para su ejecución a través del secuenciador. Reloj. Proporciona una sucesión de impulsos eléctricos o ciclos a intervalos constantes (frecuencia constante), que marcan los instantes en que han de comenzar los distintos pasos de que consta cada instrucción. Secuenciador. En este dispositivo se generan órdenes muy elementales (micro órdenes) que, sincronizadas por los impulsos de reloj, hacen que se vaya ejecutando poco a poco la instrucción que está cargada en el registro de instrucción. Unidad aritmético lógica (ALU): Esta unidad se encarga de realizar las operaciones elementales de tipo aritmético (sumas, restas, productos, divisiones) y de tipo lógico (comparaciones). A través de un bus interno se comunica con la unidad de control la cual le envía los datos y le indica la operación a realizar. La ALU está formada a su vez por los siguientes elementos: Circuito operacional Registros de entrada (REN)Registro acumulador Registro de estado (flags) Circuito operacional. Contiene los circuitos necesarios para la realización de las operaciones con los datos procedentes de los registros de entrada (REN). Este circuito tiene unas entradas de órdenes para seleccionar la clase de operación que debe realizar en cada momento (suma, resta, etc.). Registros de entrada (REN). En ellos se almacenan los datos u operandos que intervienen en una instrucción antes de la realización de la operación por parte del circuito operacional. También se emplean para el almacenamiento de resultados intermedios o finales de las operaciones respectivas. Registro acumulador. Almacena los resultados de las operaciones llevadas a cabo por el circuito operacional. Está conectado con los registros de entrada para realimentación en el caso de operaciones encadenadas. Asimismo, tiene una conexión directa al bus de datos para el envío de los resultados a la memoria central o a la unidad de control. Registro de estado (flags). Se trata de unos registros de memoria en los que se deja constancia de algunas condiciones que se dieron en la última operación realizada y que habrán de ser tenidas en cuenta en operaciones posteriores. Por ejemplo, en el caso de hacer una resta, tiene que quedar constancia si el resultado fue cero, positivo o negativo. 1.2.2 Arquitectura externa de un microprocesador (terminales). En un sistema digital se le da el nombre de “puerto “al medio físico por el cual entran y salen datos al microprocesador. Los puertos de E/S son registros externos dedicados a aceptar y/o a enviar información a dispositivos periféricos. Un puerto de entrada (E) está compuesto sólo por un buffer de tercer estado junto con un registro de almacenamiento (latch). El buffer de tercer estado tiene la función de controlar, es decir, aislar o permitir el flujo de información del puerto al bus de datos del microprocesador. El registro tiene la función de almacenar temporalmente la información generada por el dispositivo periférico de entrada hasta que pueda ser leída por el microprocesador. El dispositivo de entrada controla el almacenamiento de un dato en el registro, mientras que el microprocesador determina el estado del buffer (activo o en estado de alta impedancia) por medio de un pulso de selección. Puerto de Salida. La concepción básica de un puerto de salida es un simple registro de almacenamiento (latch), que conecta al bus de datos con el dispositivo de salida. El microprocesador coloca en el registro el dato que va a ser enviado al dispositivo periférico por medio de un pulso de selección aplicado a la entrada de reloj del registro. Direccionamiento y Control de Puertos. Para puertos de salida, circuitos externos combinan las señales IOQR, WR y la dirección del puerto y generan un pulso de selección único para cada puerto. Este pulso actúa a la manera de un pulso de escritura para grabar el dato en el puerto durante el ciclo de salida de una instrucción OUT que especifique ese puerto. El diseño de la circuiteria de selección varía, dependiendo del número de dispositivo de E/S en el sistema y de las características de los circuitos que componen los puertos de E/S. Si únicamente se requiere un puerto de entrada y un puerto de salida, no es necesario decodificar los bits de dirección. Para generar los pulsos de selección de estos puertos bastan las señales E/SR y E/SW.En este caso el número de puerto no importa, pero de cualquier manera no puede omitirse en la instrucción. Cuando el sistema requiere más de un puerto de entrada o de salida, entonces es necesario decodificar las líneas de dirección con el fin de generar los pulsos de selección para cada puerto en particular. Circuitos Para la Implementación de Puertos. Los puertos de E/S pueden implantarse con circuitos SSI, MSI o LSI. Sin embargo, para minimizar el número de componentes en general se usan circuitos MSI o LSI. Un puerto de salida de 8 bits se puede implantar con un circuito de tipo cerrojo (latch) de 8 bits como el 74LS373 o el 74LS374. El 74LS373 contiene 8 cerrojos disparados en el nivel positivo con una entrada común de reloj activa en 1 lógico. El 74LS374 contiene 8 flip-flops tipo D disparados en la transición positiva (0 a 1) con una entrada común de reloj. Ambos circuitos poseen salidas con buffers de tercer estado. Los buffers tienen una entrada de habilitación activa en 0 lógico. Cuando alguno de estos circuitos se usa para implantar un puerto de salida, los buffers se mantienen activos todo el tiempo o son controlados por el dispositivo de salida. El circuito 9334 de National proporciona 8 cerrojos (latches) direccionables individualmente, los cuales pueden utilizarse como 8 puertos de salida de un bit para propósitos de control. La entrada de datos del 9334 se conecta a una de las líneas del bus de datos. Cada uno de los cerrojos es seleccionado como un puerto de salida independiente por medio de tres líneas de dirección, con lo cual se puede cambiar el estado de un bit sin afectar el estado de los otros. Con este circuito solamente se requieren dos instrucciones para poner un bit en 0 o en 1 lógico: una carga el acumulador con 00H o 01H; la otra es una instrucción de salida para el puerto (bit) seleccionado. Suponiendo un 9334 conectado al Z-80, como se muestra en la figura, la siguiente secuencia de instrucciones pone el bit 4 en 1 lógico: En contraste, para cambiar un solo bit sin alterar ninguno de los otros bits de un puerto de salida en donde todos los bits son manejados simultáneamente, por ejemplo, un 74LS373 o un 74LS374, se vuelve necesario mantener en memoria una copia de la última información enviada al puerto. Compare la siguiente secuencia de instrucciones que pone en 1 lógico el bit 4 de un puerto implantado con un 74LS373, con la secuencia utilizada en el caso de un 9334: Estructura común de un puerto de E/S. Hay dos tipos posibles de transferencia controlada por programa: incondicional y condicional. Una transferencia incondicional es aquella en que se envían o reciben datos de un puerto de E/S, sin averiguar si éste se encuentra listo para recibir o transmitir la información. Un ejemplo de una operación de salida incondicional es la transmisión de un dato en BCD del microprocesador a un indicador de siete segmentos. El microprocesador no se asegura que el indicador esté listo para recibir el dato, sencillamente supone que sí lo está. La lectura del estado de un conjunto de interrupciones manuales muestra una operación de entrada incondicional. Aquí de nuevo el microprocesador da por supuesto que los interruptores se han colocado en las posiciones deseadas. En la generalidad de los casos, los periféricos de E/S necesitan sincronizarse de alguna forma al microprocesador. Éste no puede tratar a los dispositivos como si mantuvieran su información indefinidamente o como si pudieran recibir datos en cualquier momento. En vez de eso, el microprocesador debe ser capaz de determinar cuándo un dispositivo tiene un dato nuevo de entrada o cuando está listo para recibir un dato de salida. Así pues, en transferencias condicionales, la ejecución de la instrucción de E/S que realiza la transferencia de datos, se condiciona a que el periférico esté listo para enviar o recibir el dato. La disponibilidad del periférico se determina por medio de una transferencia incondicional de información de estado (status) del dispositivo de E/S al microprocesador, que precede a la transferencia del dato. Al conjunto de operaciones implicadas en la transferencia condicional de un dato se le conoce como protocolo de comunicación. En un protocolo decomunicación entre dispositivos electrónicos, al igual que en las relaciones humanas, ocurre un intercambio de “cortesías”, en este caso señales eléctricas,las cuales tienen como fin asegurar que la transferencia de información se realice en la forma más conveniente para los participantes. Una de las formas más comunes para implantar un protocolo es el procedimiento denominado verificación o control de transferencia (handshaking, o apretón de manos). Aquí el transmisor indica al receptor la presencia de un dato (data ready) y enseguida transfiere el dato; el receptor completa la verificación respondiendo a la recepción del dato (input acknowledge). El receptor puede controlar la situación solicitando inicialmente el dato o indicando su disponibilidad para aceptarlo (peripheral ready); luego el transmisor envía el dato y completa la verificación avisando que la información está lista (output ready). En cualquier caso, el transmisor sabe si la transferencia se ha completado exitosamente y el receptor sabe cuándo está disponible un nuevo dato. Las figuras 4.12 y 4.13 muestran operaciones comunes de E/S usando un protocolo de verificación. Lectura de puerto (entrada). Examinar el registro de estado del puerto y esperar a la señal que indique que el puerto está listo. Enviar un comando de lectura al registro de control del puerto. Después de iniciar la operación, el microprocesador puede dedicarse a otras tareas. Cuando llega al punto en el que debe aceptar el dato del puerto, prosigue con el siguiente paso. Examinar el registro de estado del puerto y esperar a la señal que indique la disponibilidad del dato. Transferir al microprocesador el contenido del registro de datos del puerto. Escritura en puerto (salida). Examinar el registro de estado del puerto y esperar a la señal que indique que el puerto está listo. Transferir el dato del microprocesador al registro de datos del puerto. Enviar un comando de escritura al registro de control del puerto. El microprocesador puede pasar el control a otras tareas que se puedan ejecutar mientras se efectúa la operación de E/S. En la siguiente figura se muestra el diagrama de una transferencia condicional controlada por programa. Transferencia condicional controlada por programa. Hay varias maneras de proporcionar las señales de control y estado. Una es por medio de líneas de E/S dedicadas a este propósito. El microprocesador tiene acceso a ellas a través de puertos adicionales. Un solo bit de estado puede indicar cuándo un puerto de entrada tiene información disponible para ser leída o cuando un puerto de salida está listo para recibir información. Considérese, por ejemplo, un periférico de entrada que ha colocado un dato en el puerto de entrada 1 (registro de datos), para ser transmitido al microprocesador. Para indicar la existencia de un dato, el periférico pone en 1 lógico un flip-flop o bandera que corresponde al bit 7 del puerto de entrada 0 (registro de estado). Con el fin de determinar la presencia de un dato para ser leído, el microprocesador periódicamente lee el contenido del registro de estado y examina el estado del bit; si el bit 7 es 1, hay un dato disponible y entonces una instrucción lo lee del puerto 1. El pulso de selección que activa el buffer del puerto 1, también reestablece (vuelve a 0 lógico) la bandera que indica la existencia de un dato. Cuando existen varios dispositivos de E/S en un sistema que utiliza E/S controlada por programa, el microprocesador debe preguntar por la disponibilidad de cada periférico antes de que se efectúe la transferencia de información. Este procedimiento es llamado ENCUESTA (POLLING). En la subrutina de encuesta el microprocesador examina la bandera de cada dispositivo y ejecuta la secuencia de instrucciones que le da servicio al dispositivo si encuentras que la bandera correspondiente esté activa. Además, el procedimiento de encuesta establece un esquema jerárquico de servicio en el que la prioridad de los periféricos está determinada por el orden en que el microprocesador examina la bandera de estado de cada uno de ellos. Evidentemente, este procedimiento puede requerir una gran cantidad de tiempo de microprocesador si hay muchos dispositivos de E/S. Con frecuencia las banderas de estado de varios dispositivos o los bits independientes de control, son combinados y manejados por un solo puerto de entrada o salida respectivamente. La figura siguiente se muestra la combinación de las banderas de “dato disponible” de 8 dispositivos de entrada en un byte común de estado al que el microprocesador tiene acceso a través de un puerto de entrada. El agrupar la información de estado y control en bytes reduce el número de direcciones para puertos de E/S requeridos por los periféricos. Sin embargo, esto implica que los bits individuales de estado deben aislarse para poder ser interpretados y que los bits de control deben ser determinados por separado. Los procedimientos para aislar los bits de estado y para poner en 0 o en 1 lógico los bits de control son como sigue: Para separar los bits de estado: Leer la información de estado del periférico. Ejecutar la operación AND con la mascarilla apropiada (la mascarilla debe tener unos en las posiciones de los bits que van a examinarse y ceros en las demás). Desplazar los bits separados a las posiciones menos significativas. 1.3 Conexión del microprocesador con tipos de: 1.3.1 Memoria. 1.3.2 Periféricos. 1.3.2.1 Interrupciones programables (8255). 1.3.2.2 De comunicación serial. 1.3.2.3 De interfase programable (8255). Uno de los integrados universalmente usados en sistemas basados en microprocesadores es sin duda el 8255. Este circuito fue inicialmente diseñado por Intel Corporation como parte del juego de integrados de apoyo a sus primeros sistemas de 16 bits (8086 y 8088). El chipset incluía numerosos dispositivos tales como controladores serie, controlador de CRT, gestores de acceso directo a memoria, controladores de unidades de disco, etc. La fuerte evolución en el diseño de computadoras ha convertido a gran parte del chipset del 8086 en piezas de museo debido a que muchas de las funciones no tienen hoy día utilidad alguna (carece de sentido emplear viejos controladores de CRT o disco). Sin embargo, existen una serie de componentes que conservan todavía hoy, después de veinte años, toda su utilidad. En concreto nos estamos refiriendo a la UART 8251 y al controlador de interfaz paralelo PPI 8255. En este artículo trataremos el 8255, un versátil y económico integrado de fácil conexión a cualquier sistema basado en microprocesador o microcontrolador, que proporciona de un modo elegante y sencillo puertos E/S disponibles. La opción más correcta sería emplear estos dispositivos en un sistema basado en un 8086/8088 (actualmente manufacturados en versiones CMOS de bajo consumo y alta velocidad por OKI Semiconductor Corp.), si bien dada su versatilidad pueden ser empleados por cualquier otro sistema. Entre las aplicaciones actuales podemos comprobar como el 8255 se encuentra con facilidad en tarjetas de expansión de puertos para el bus ISA del PC, ya que simplifica enormemente la elaboración de la placa de circuito impreso aportando suficiente potencia de control. Es también ideal para expansión de puertos E/S en mono placas o gestión de periféricos como conversores analógicos/digital y otros. El 8255 se encapsula en formato DIP de 40 terminales como es habitual en los controladores del chipset 8086. Existen cinco grupos de señales, además de los dos terminales de alimentación: Grupo de control Bus de datos Puerto A Puerto B Puerto C Los terminales del dispositivo se distribuyen del siguiente modo: ABREVIACION D7 - D0 RESET CS RD” WR” A0, A1 PA7 - PA0 PB7 - PB0 PC7 - PC0 Vcc GND SEÑAL Bus de Datos (Bidireccional) Entrada de Reset Seleccion de Chip Entrada de Lectura Entrada de Escritura Direccion de Puertos Puerto A (Bit) Puerto B (Bit) Puerto C (Bit) 5V 0V Básicamente se trata de tres puertos (A, B, C) de ocho bits, encontrándose el puerto C dividido en dos puertos de cuatro bits. Estos cuatro puertos formados (dos de ocho bits y dos de cuatro) se organizan en dos grupos de 12 bits. Cada grupo contiene un puerto de ocho bits y otro de cuatro. El primer grupo comprende el puerto A y la parte alta del puerto C mientras que el segundo comprende el puerto B y la parte baja del puerto C. Grupo A: PA0.PA7 + PC4.PC7 Grupo B: PB0.PB7 + PC0.PC3 Estos grupos pueden operar en tres modos de funcionamiento diferentes: Modo 0: Tres puertos de cuatro bits programables como entrada o salida. Modo 1: Un puerto de ocho bits programable como entrada o salida y un puerto de cuatro bits de control. Modo 2: Este modo configura al puerto A como un puerto bidireccional dejando los cinco bits más significativos del puerto C (PC3...PC7 nótese que emplea por tanto más de un grupo) como líneas de control del puerto. Estos modos de operación se definen mediante un octeto de estado del que hablaremos a continuación. Para acceder tanto al octeto de estado como a los puertos en sí debemos hacer uso de las señales de control del 8255. Dx: Bus de datos bidireccional con estado de alta impedancia. Conecta eldispositivo con el bus de datos del microprocesador. CS: Señal chip select. Cualquier operación sobre el chip requiere un nivelbajo en esta señal. Usualmente se compara la dirección emitida por el microprocesador mediante lógica externa y si dicha dirección corresponde con el rango asignado por el diseñador al periférico la lógica comparadora de dirección pondrá a cero esta línea. Mientras esta línea se encuentre alta el bus de datos D7...D0 se encuentra en un estado de alta impedancia para permitir que otros periféricos hagan uso del bus del microprocesador. RD: Señal de lectura. Un valor bajo en esta señal dispondrá en el bus de datos bidireccional. D7.D0 el valor del puerto indicado por las dos líneas de dirección A1 y A0. WR: Señal de escritura. Un valor bajo escribirá el octeto presente en el bus dedatos en el registro/puerto indicado por A1 y A0. A1 0 0 1 1 A0 0 1 0 1 Selección del registro Puerto A Puerto B Puerto C Octeto de control Hemos visto hasta ahora los diferentes puertos que existen y los modos de configurarlos. Sabemos también que esto se realiza por medio del octeto de control (para ello realizamos una operación de escritura sobre él, no siendo posible su lectura). Veremos a continuación la descripción completa de dicho octeto: Bit 0: Puerto C bajo (1=Entrada, 0=Salida) Bit 1: Puerto B (1=Entrada, 0=Salida) Bit 2: Selección modo grupo uno (0=Modo 0, 1=Modo 1) Bit 3: Puerto C alto (1=Entrada, 0=Salida) Bit 4: Puerto A (1=Entrada, 0=Salida) Bit 5,6: Selección modo grupo dos (00=Modo 0, 01=1, 1x= 2) Bit 7: Flag de modo a uno (1=Activo) Acceso individual al puerto C El bit 7 a uno permite acceder al registro de control y configurar el modo de funcionamiento del periférico. Si a la hora de acceder a dicho registro ponemos a cero el bit 7 accedemos al control individual de las líneas de salida del puerto C. Los puertos A y B son leídos y escritos en bloques de cuatro u ocho bits según sea la configuración de los mismos, pero el puerto C permite un acceso individualsobre las líneas de salida del mismo: Bit 0: Valor de salida (1 o 0) Bit 3,2,1: Selección de bit (000=bit 0, 001=bit 1 ...111=bit 7) Bit 4,5,6: No influyen, cualquier valor. Bit 7: Flag de modo (0=Acceso al puerto C) Modo cero El modo de funcionamiento 0 es el más simple posible. Los puertos se configuran como entrada y salidas. En el caso de que se configuren como salidas los datos se enclavan y permanecen invariables hasta la siguiente escritura. La lectura se realiza en el momento de efectuar la operación sobre el 8255. El dispositivo opera por tanto como si de un transceptor multiplexado con latch de salida se tratase. Modo uno El modo de funcionamiento 1 puede emplearse en ambos grupos de pines. Proporciona un puerto de 8 bits y cuatro señales de control de cada mitad del puerto C que operan del siguiente modo en el caso de que se configure el puerto correspondiente como entrada: /STB: Strobe Input PC4 grupo A/PC2 grupo B Cuando esta señal se pone a nivel bajo el dispositivo memoriza el estado del puerto de ocho bits. La siguiente operación de lectura RD sobre el 8255 por parte del microprocesador devolverá el estado del bus en el estado bajo de dicha señal. Permite efectuar por tanto lecturas del puerto de ocho bits de modo independiente del microprocesador que gestiona el 8255. IBF: Input Buffer Full Flag OutputPC5 grupo A/PC1 grupo B Esta señal responde a STB subiendo a uno cuando el dato ha quedado enclavado durante el flanco de bajada de un pulso en STB. Vuelve a nivel lógico cero en el flanco de subida de la señal de lectura RD. INTR: Interrupt request output PC3 grupo A/PC0 grupo B Esta salida sube a nivelalto (si el bit INTE está activado) en el flanco de subida de STB indicando al microprocesador que controla el 8255 la presencia de un dato en el dispositivo. Vuelve a bajar a nivel lógico cero en el flanco de bajada de RD. Para el grupo A el flag INTE está activado si lo está el bit PC4 mientras que para el grupo B el bit INTE está activado si lo está el bit PC2. El modo de activar o desactivar dichos bits es el descrito anteriormente mediante el acceso individual alpuerto C. Si la configuración indicada establece el puerto de 8 bits como salida la descripción de los bits de control es la siguiente: /OBF Output Buffer Full Flag OutputPC7 grupo A/PC1 grupo B Esta señal indica el estado de escritura en el puerto. Baja a nivel lógico cero en el flanco de subida de la señal de escritura /WR volviendo al nivel lógico 1 en el flanco de bajada de la señal de respuesta del dispositivo ACK. /ACK Acknowledge Input PC6 grupo A/PC2 grupo B Esta señal de entrada permite al terminal indicar al controlador 8255 que ha recogido el dato que el sistema le envió. Para ello el terminal pondrá a cero esta entrada. INTR Interrupt request outputPC3 grupo A/PC0 grupo B La señal pasa a nivel alto en el flanco de subida de /ACK y pasa a nivel lógico cero en el flanco de bajada de /WR, siempre y cuando los correspondientes bits INTE estén habilitados. Para el primer grupo INTEA corresponde al bit PC6 mientras que para el segundo grupo INTEB corresponde al bit PC2. Modo dos El modo 2 permite habilitar un puerto de 8 bits bidireccional. Solo es posible disponer de él con el grupo A. La descripción de los pines es la siguiente: /OBF Output buffer full flag outputPC7 La señal pasa a nivel lógico cero en el flanco de subida de /WR y vuelve al nivel lógico uno en el flanco de bajada de /ACK. Indica a la CPU que ha recogido el dato. /ACK Acknowledge inputPC6 La entrada habilita el puerto A del 8255 al pasar al nivel lógico cero. El dato escrito en el registro interno del 8255 pasa al puerto A y el terminal lo lee. Al volver al nivel lógico uno el puerto A vuelve de nuevo al estado de alta impedancia. /STB Stobe input.PC4 Cuando esta entrada pasa a nivel lógico bajo la salida de datos hacia el puerto desde los pines es enclavada en el registro interno. El dato sale por el bus de datos una vez se recibe la señal RD desde el microprocesador, si bien el bus permanece en alta impedancia hasta entonces. IBF Input buffer full flag outputPC5 La señal pasa a nivel alto en el flanco de bajada de STB volviendo al nivel bajo en el flanco de subida de RD, indicando que el dato ha sido enclavado en el registro interno del 8255. INTR Interrupt request outputPC3 Esta señal se emplea del mismo modo que en el modo de funcionamiento número 1. La diferencia estriba en que existen ahora dos bits INTE, uno para habilitar la interrupción en operaciones de salida (PC6) y otro para habilitar la interrupción en operaciones de entrada (PC4). El 8255 es una interface programable de periféricos (PPI). Su función es la de un componente EIS de propósito general, para interfasar equipo periférico al bus del sistema microcomputador. La configuración funcional del 8255 es programada por el software del sistema, de manera que normalmente no se necesita circuiteria externa para interfasar periféricos o estructuras. CARACTERÍSTICAS. 8255 compatible con microprocesadores 8085. 24 pines de EIS programables. Totalmente compatible con UL. E Totalmente compatibles con la familia de microprocesadores INTEL. Características de tiempos mejorados. Capacidad de directo software de bit facilitando aplicaciones de interfaces de control. Circuito integrado DIP de 40 pines. Reduce el número de CI's a emplear. Capacidad de DC mejoradas. DESCRIPCION DE LOS PINES DEL 8255. ABREVIACIO SEÑAL N D7 - D0 Bus de Datos (Bidireccional) RESET Entrada de Reset CS Seleccion de Chip RD” Entrada de Lectura WR” Entrada de Escritura A0, A1 Direccion de Puertos PA7 - PA0 Puerto A (Bit) PB7 - PB0 Puerto B (Bit) PC7 - PC0 Puerto C (Bit) Vcc 5V GND 0V El 8255 DE INTEL es un dispositivo de E/S de propósito general, tiene 24 pines de EIS que pueden ser programados individualmente en dos grupos de 12 y usados en tres modos de operación principales. En el primer modo (modo O), cada grupo de 12 pines puede programarse en grupos de 4 como entrada o salida. En el segundo modo (modo 1), cada grupo puede programarse para tener 8 entradas o salidas; de los 4 pines restantes tres son empleados para protocolo (Handshaking) y control de interrupciones. El tercer modo de operación (modo 2, es un modo de bus bidireccional, que usa 8 líneas para un bus bidireccional y 5 líneas, una prestada del otro grupo, para protocolo (handsking) El 8255 es una interfase para comunicación en paralelo con periféricos. Las partes que lo constituyen se muestran en la figura anterior, a continuación, se describen estas partes dependiendo de su aplicación. BUFFER DEL BUS DE DATOS. Este buffer bidireccional de 8 bits se usa para interfasar el 8255 al bus de datos del sistema. Los datos son enviados o recibidos por este buffer bajo la ejecución de instrucciones de entrada o salida por el CPU. Las palabras de control y la información del estado también se transfieren a través de este bus. LOGICA DE CONTROL Y DE LECTURA ESCRITURA La función de este es manejar todas las transferencia internas y externas de palabras de datos, control o estados. Esta acepta entradas del bus de control y de direcciones del CPU, y en turno, define comandos para los dos grupos de control. SELECCIÓN DE CHIP (CS') Un cero en este Pin de entrada habilita la comunicación entre el 8255 y el CPU. LECTURA (RD') Un cero en este Pin de entrada habilita al 8255 a enviar los datos o información del estado al CPU, sobre el bus de dato. Esencialmente este permite al CPU "leer del" 8255. SELECCIÓN DE PUERTO (Ao Y A1). Estas señales de entrada en conjunto con RO' y WR', controlan la selección de uno de los tres puertos o del registro de la palabra de control. AQ y A1 están conectadas a los bits menos significativos del bus de direcciones. ESCRITURA (WR') Un cero en este Pm de entrada, permite al CPU escribir datos o palabras de control sobre el 8255. RESET Un uno (1) en esta línea limpia el registro de control y todos los puertos (A, B, y C) se ponen como modo de entrada. CONTROL DE RESET DE PUERTOS La configuración funcional de cada puerto se programa por el software del sistema. En esencia, el CPU manda una palabra de control al 8255. la palabra de control contiene información tal como 'modo', 'bit set', 'bit reset', etc. Cada grupo de control acepta comandos de la unidad lógica de control lectura/escritura, reciben palabras de control del bus de datos interno y envía comandos apropiados a sus puertos asociados: Grupo de control A: Puerto A y puerto C superior (C7-C4) Grupo de control B: Puerto B y puerto C inferior (C3-CO) La palabra de control únicamente puede ser escrita. No se permite lectura del registro de palabra de control. 1.4 Fuentes de investigación documentales. Microprocesador - Qué es, definición y concepto | Economipedia Introduccion a Los Microprocesadores - VSIP.INFO Instrumentacion Didactica Micros | PDF | Microcontrolador | Microprocesador (scribd.com) Estudio del microprocesador Nios II - VSIP.INFO U 1 Mpu | PDF | Microcontrolador | Microprocesador (scribd.com) Operación de micros e interfaces (monografias.com) arquitectura externa microcontrolador - Trabajos finales - 2429 Palabras (buenastareas.com) Desarrollo de sistemas embebidos (itq.edu.mx) Diagrama de Bloque de un Microprocesador | ITphone Soluciones (wordpress.com) Arquitecturas de (wordpress.com) Microprocesador – Conectando conocimiento