stringtranslate.com

Intel 8255

Intel D8255
Distribución de pines del i8255

El chip de interfaz periférica programable (PPI) Intel 8255 (o i8255 ) fue desarrollado y fabricado por Intel en la primera mitad de la década de 1970 para el microprocesador Intel 8080. El 8255 proporciona 24 líneas de entrada/salida paralelas con una variedad de modos operativos programables.

El 8255 es un miembro de la familia de chips MCS-85 , diseñado por Intel para su uso con sus microprocesadores 8085 y 8086 y sus descendientes. [1] Primero estuvo disponible en paquetes DIP de 40 pines y luego en paquetes PLCC de 44 pines . [2] Encontró una amplia aplicabilidad en sistemas de procesamiento digital y luego fue clonado por otros fabricantes. El 82C55 es una versión CMOS para mayor velocidad y menor consumo de corriente.

La funcionalidad del 8255 ahora está integrada principalmente en chips de procesamiento VLSI más grandes como una subfunción. Renesas todavía fabrica una versión CMOS del 8255 [ 3], pero se utiliza principalmente para expandir la E/S de los microcontroladores .

Fichas similares

El 8255 tiene una función similar al PIA (Adaptador de Interfaz Periférico) Motorola 6820 de la familia Motorola 6800 , también empaquetado originalmente como DIL de 40 pines. El 8255 proporciona 24 pines de E/S con cuatro bits de dirección programables: uno para el Puerto A (7:0) (es decir, todos los pines del puerto), uno para el Puerto B (7:0), uno para el Puerto C (3:0) y uno para el Puerto C (7:4). Por el contrario, los chips Motorola y MOS proporcionan solo 16 pines de E/S más 4 pines de control, pero los chips Motorola/MOS permiten programar individualmente la dirección (entrada o salida) de todos los pines de E/S. Ambos tienen configuraciones que realizarán una cierta cantidad de intercambio automático de señales y generación de interrupciones.

Otros chips de entrada/salida de microprocesador comparables son la interfaz periférica programable 2655 de la familia Signetics 2650 , el Z80 PIO , el Western Design Center WDC 65C21 (equivalente al Motorola 6820/6821) y el MOS Technology 6522 VIA y 6526 CIA que tenían una funcionalidad adicional considerable, como temporizadores y registros de desplazamiento.

Variantes

MHB8255A de Tesla

La versión de grado industrial de Intel ID8255A estaba disponible por US$17,55 en cantidades de 100 o más. [4] La versión Intel 8255A-5 disponible estaba a US$6,55 en cantidades de 100 o más. [5] La versión CMOS 82C55A disponible fue subcontratada a Oki Electronic Industry Co., Ltd. [ 6] El paquete disponible de Intel con la marca 82C55 en PLCC de 44 pines de muestreo en el cuarto trimestre de 1985. [7] En Europa del Este, se fabricaron circuitos equivalentes como KR580VV55A en la Unión Soviética y como MHB8255A por Tesla en Checoslovaquia.

Aplicaciones

El 8255 se utilizó ampliamente en muchos sistemas de microcomputadoras/microcontroladores y computadoras domésticas como la SV-328 y todos los modelos MSX . El 8255 se utilizó en la IBM-PC original , [8] PC/XT, PC/jr y clones, junto con numerosas computadoras caseras como la N8VEM .

Función

El 8255 proporciona a una CPU o a un sistema digital acceso a E/S paralelas programables . [9] El 8255 tiene 24 pines de entrada/salida. [10] Estos se dividen en tres puertos de 8 bits (A, B, C). [11] El puerto A y el puerto B se pueden utilizar como puertos de entrada/salida de 8 bits. El puerto C se puede utilizar como un puerto de entrada/salida de 8 bits o como dos puertos de entrada/salida de 4 bits o para producir señales de protocolo de enlace para los puertos A y B.

Los tres puertos se agrupan además de la siguiente manera:

  1. Grupo A compuesto por el puerto A y la parte superior del puerto C.
  2. Grupo B compuesto por el puerto B y la parte inferior del puerto C.

Hay ocho líneas de datos (D0–D7) disponibles (con un búfer de datos de 8 bits) para leer/escribir datos en los puertos o en el registro de control bajo el estado de RD (pin 5) y WR (pin 36), que son señales activas bajas para operaciones de lectura y escritura respectivamente. Las líneas de dirección A1 y A0 permiten acceder a un registro de datos para cada puerto o a un registro de control, como se indica a continuación :

La señal de control de selección de chip CS (pin 6) se utiliza para habilitar el chip 8255. Es una señal activa baja, es decir, cuando CS = 0, el 8255 está habilitado. La entrada RESET (pin 35) está conectada a la línea RESET del sistema como 8085, 8086, etc., de modo que cuando el sistema se reinicia, todos los puertos se inicializan como líneas de entrada. Esto se hace para evitar que el 8255 y/o cualquier periférico conectado a él se destruya debido a una falta de coincidencia en la configuración de la dirección del puerto. Como ejemplo, considere un dispositivo de entrada conectado al 8255 en el puerto A. Si a partir de la operación anterior, el puerto A se inicializa como un puerto de salida y si el 8255 no se reinicia antes de usar la configuración actual, entonces existe la posibilidad de daño del dispositivo de entrada conectado o del 8255 o de ambos, ya que tanto el 8255 como el dispositivo conectado enviarán datos.

El registro de control (o la lógica de control, o el registro de palabras de comando) es un registro de 8 bits que se utiliza para seleccionar los modos de operación y la designación de entrada/salida de los puertos. [12]

Modos operativos del 8255

Hay dos modos operativos básicos del 8255:

Los dos modos se seleccionan en función del valor presente en el bit D 7 del registro de palabra de control. Cuando D 7 = 1, 8255 opera en modo E/S, y cuando D 7 = 0, opera en modo BSR.

Modo de establecimiento/reinicio de bits (BSR)

El modo de configuración/reinicio de bits (BSR) está disponible únicamente en el puerto C. Cada línea del puerto C (PC 7 - PC 0 ) se puede configurar o reiniciar escribiendo un valor adecuado en el registro de palabras de control. El modo BSR y el modo de E/S son independientes y la selección del modo BSR no afecta el funcionamiento de otros puertos en el modo de E/S. [13]

Modo BSR 8255

La selección del pin del puerto C se determina de la siguiente manera:

A modo de ejemplo, si se necesita configurar PC 5 , entonces en la palabra de control,

  1. Dado que es modo BSR, D 7 = '0' .
  2. Dado que D 4 , D 5 , D 6 no se utilizan, supóngase que son ' 0' .
  3. Se debe seleccionar PC 5 , por lo tanto, D 3 = '1', D 2 = '0', D 1 = '1' .
  4. Se debe configurar PC 5 , por lo tanto, D0 = '1' .

Por lo tanto, según los valores anteriores, se cargará 0B (Hex) en el Registro de palabras de control (CWR).

Modo de entrada/salida

Este modo se selecciona cuando el bit D 7 del Registro de palabra de control es 1. Hay tres modos de E/S: [14]

  1. Modo 0 - E/S simple
  2. Modo 1: E/S estroboscópica
  3. Modo 2: E/S bidireccional estroboscópica

Controlar el formato de Word

Formato de palabra de control de E/S

Por ejemplo, si el puerto B y el puerto superior C deben inicializarse como puertos de entrada y el puerto inferior C y el puerto A como puertos de salida (todos en modo 0):

  1. Dado que es un modo de E/S, D 7 = 1.
  2. Los bits de selección de modo, D2, D5, D6 son todos 0 para la operación en modo 0.
  3. El puerto B y el puerto superior C deben funcionar como puertos de entrada, por lo tanto, D 1 = D 3 = 1.
  4. El puerto A y el puerto inferior C deben funcionar como puertos de salida, por lo tanto, D 4 = D 0 = 0.

Por lo tanto, para la operación deseada, el registro de palabra de control deberá cargarse con "10001010" = 8A (hexadecimal) .

Modo 0 - E/S simple

En este modo, los puertos se pueden utilizar para operaciones de E/S sencillas sin señales de enlace. El puerto A y el puerto B proporcionan una operación de E/S sencilla. Las dos mitades del puerto C se pueden utilizar juntas como un puerto adicional de 8 bits o como puertos individuales de 4 bits. Dado que las dos mitades del puerto C son independientes, se pueden utilizar de forma que una mitad se inicialice como puerto de entrada mientras que la otra mitad se inicialice como puerto de salida.

Las características de entrada/salida en el modo 0 son las siguientes:

  1. Los puertos de salida están bloqueados.
  2. Los puertos de entrada están protegidos, no bloqueados.
  3. Los puertos no tienen capacidad de protocolo de enlace ni de interrupción.
  4. Con 4 puertos, son posibles 16 combinaciones diferentes de E/S.

'Enclavado' significa que los bits se colocan en un registro de almacenamiento (una matriz de flip-flops) que mantiene su salida constante incluso si las entradas cambian después de ser bloqueados.

Las salidas del 8255 están bloqueadas para retener los últimos datos escritos en ellas. Esto es necesario porque los datos solo permanecen en el bus durante un ciclo. Por lo tanto, sin bloqueo, las salidas se volverían inválidas tan pronto como finalice el ciclo de escritura.

Las entradas no están bloqueadas porque la CPU solo tiene que leer sus valores actuales y luego almacenar los datos en un registro de la CPU o en la memoria si es necesario hacer referencia a ellos en un momento posterior. Si una entrada cambia mientras se lee el puerto, el resultado puede ser indeterminado.

Modo 0 – modo de entrada

Modo 0 - modo de salida

Modo 1 - Modo de entrada/salida estroboscópica

Cuando deseamos utilizar el puerto A o el puerto B para operaciones de entrada o salida de handshake (estroboscópico), inicializamos ese puerto en modo 1 (el puerto A y el puerto B se pueden inicializar para operar en modos diferentes, es decir, por ejemplo, el puerto A puede operar en modo 0 y el puerto B en modo 1). Algunos de los pines del puerto C funcionan como líneas de handshake.

Para el puerto B en este modo (independientemente de si actúa como puerto de entrada o puerto de salida), los pines PC0, PC1 y PC2 funcionan como líneas de enlace.

Si el puerto A se inicializa como puerto de entrada de modo 1, entonces PC3, PC4 y PC5 funcionan como señales de enlace. Los pines PC6 y PC7 están disponibles para usarse como líneas de entrada/salida.

El modo 1 que admite el protocolo de enlace tiene las siguientes características:

  1. Se pueden utilizar dos puertos, es decir, el puerto A y el puerto B, como puertos de entrada/salida de 8 bits.
  2. Cada puerto utiliza tres líneas del puerto c como señal de protocolo de enlace y las dos señales restantes se pueden utilizar como puertos de entrada/salida.
  3. Se admite la lógica de interrupción.
  4. Los datos de entrada y salida están bloqueados.

Señales de protocolo de entrada

1. IBF (Input Buffer Full) - Es una salida que indica que el pestillo de entrada contiene información.
2. STB (entrada estroboscópica): la entrada estroboscópica carga datos en el pestillo del puerto, que retiene la información hasta que se ingresa al microprocesador a través de la instrucción IN.
3. INTR (Interrupt request) - Es una salida que solicita una interrupción. El pin INTR se convierte en un 1 lógico cuando la entrada STB vuelve a ser un 1 lógico y se borra cuando el microprocesador ingresa los datos desde el puerto.
4. INTE (Habilitación de interrupción): no es una entrada ni una salida; es un bit interno programado a través de la posición de bit del puerto PC4 (puerto A) o PC2 (puerto B).

Señales de protocolo de enlace de salida

1. OBF (Buffer de salida lleno): es una salida que se vuelve baja siempre que se envían datos (OUT) al puerto A o al puerto B. Esta señal se establece en un 1 lógico siempre que el pulso ACK regresa desde el dispositivo externo.
2. ACK (Reconocimiento): hace que el pin OBF regrese a un nivel lógico 1. La señal ACK es una respuesta de un dispositivo externo, que indica que ha recibido los datos del puerto 82C55A.
3. INTR (Solicitud de interrupción): es una señal que a menudo interrumpe el microprocesador cuando el dispositivo externo recibe los datos a través de la señal. Este pin está calificado por el bit interno INTE (habilitación de interrupción).
4. INTE (Interrupt enable) - No es una entrada ni una salida, es un bit interno programado para habilitar o deshabilitar el pin INTR. El bit INTE A se programa utilizando el bit PC6 y el INTE B se programa utilizando el bit PC2.

Modo 2 - Modo de entrada/salida bidireccional estroboscópica

En este modo, solo se puede inicializar el puerto A. El puerto A se puede utilizar para la transferencia de datos mediante protocolo de enlace bidireccional . Esto significa que los datos se pueden introducir o extraer en las mismas ocho líneas (PA0 - PA7). Los pines PC3 - PC7 se utilizan como líneas de protocolo de enlace para el puerto A. Los pines restantes del puerto C (PC0 - PC2) se pueden utilizar como líneas de entrada/salida si el grupo B se inicializa en el modo 0 o como protocolo de enlace para el puerto B si el grupo B se inicializa en el modo 1. En este modo, el 8255 se puede utilizar para ampliar el bus del sistema a un microprocesador esclavo o para transferir bytes de datos hacia y desde un controlador de disquete . Se proporcionan señales de reconocimiento y protocolo de enlace para mantener el flujo de datos y la sincronización adecuados entre el transmisor y el receptor de datos.

Referencias

  1. ^ R Theagarajan (1 de enero de 2004). Microprocesador y sus aplicaciones. New Age International. pp. 165–. ISBN 978-81-224-1040-2. Recuperado el 3 de junio de 2012 .
  2. ^ Embedded Systems Programming. Miller Freeman Publications. Julio de 1996. pág. 256. Consultado el 3 de junio de 2012 .
  3. ^ "Página de producto del modelo 82C55A". Renesas Electronics . Consultado el 11 de enero de 2023 .
  4. ^ Intel Corporation, "Componentes para microcomputadoras: una nueva línea de productos de grado industrial responde a la demanda de componentes de alta confiabilidad para operar en aplicaciones industriales", Intel Preview, marzo/abril de 1979, pág. 11
  5. ^ Intel Corporation, "Los periféricos Intel mejoran el diseño del sistema 8086", Intel Preview Special Issue: 16-Bit Solution, mayo/junio de 1980, pág. 22
  6. ^ Intel Corporation, "NewsBit: Intel otorga licencia a Oki para la versión CMOS de varios productos", Solutions, julio/agosto de 1984, página 1.
  7. ^ Ashborn, Jim; "Empaquetado avanzado: un poco rinde mucho", Intel Corporation, Solutions, enero/febrero de 1986, página 2
  8. ^ Robert Jourdain (1986). Solucionador de problemas para programadores de IBM PC, XT y AT. Brady Communications Co. p. 3. Consultado el 3 de junio de 2012 .
  9. ^ Mundo electrónico. Reed Business Pub. 1996. pág. 947. Consultado el 3 de junio de 2012 .
  10. ^ "Hoja de datos de Intel 82c55 PPI" (PDF) .
  11. ^ "Hoja de datos PCI 82C55A" (PDF) .
  12. ^ Byte. McGraw-Hill. 1981. pág. 40. Consultado el 3 de junio de 2012 .
  13. ^ US Shah. "11". Microprocessor & Interfacing Techniques (segunda edición). Publicación Techmax. págs. 11-5. ISBN 978-81-8492-305-6.
  14. ^ "Introducción al i8255" (PDF) .

Enlaces externos