
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 diversos modos de funcionamiento programables.
El 8255 pertenece a la familia de chips MCS-85 , diseñados por Intel para su uso con los microprocesadores 8085 y 8086 y sus derivados. [ 1 ] Inicialmente estuvo disponible en encapsulados DIP de 40 pines y posteriormente en PLCC de 44 pines . [ 2 ] Tuvo una amplia aplicación en sistemas de procesamiento digital y posteriormente fue clonado por otros fabricantes. El 82C55 es una versión CMOS que ofrece 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 usa principalmente para expandir la E/S de los microcontroladores .
Chips similares
El chip 8255 tiene una función similar a la del adaptador de interfaz periférica ( PIA) Motorola 6820 de la familia Motorola 6800 , que también se presentaba originalmente como un encapsulado 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). En cambio, los chips Motorola y MOS solo proporcionan 16 pines de E/S más 4 pines de control, pero permiten programar individualmente la dirección (entrada o salida) de todos los pines de E/S. Ambos cuentan con configuraciones que permiten realizar un cierto grado de control de flujo automático y generar interrupciones.
Otros chips de E/S 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 los MOS Technology 6522 VIA y 6526 CIA, que contaban con una funcionalidad adicional considerable, como temporizadores y registros de desplazamiento.
Variantes

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 era por USD $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 la marca Intel 82C55 en PLCC de 44 pines de muestreo en el cuarto trimestre de 1985. [ 7 ] En Europa del Este, los circuitos equivalentes fueron fabricados como el KR580VV55A en la Unión Soviética y como el 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 de fabricación casera como la N8VEM .
Función
El 8255 proporciona a una CPU o 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 ] Los puertos A y B pueden usarse como puertos de entrada/salida de 8 bits. El puerto C puede usarse 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 control de flujo para los puertos A y B.
Los tres puertos se agrupan además de la siguiente manera:
- Grupo A compuesto por el puerto A y la parte superior del puerto C.
- 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 deRD (pin 5) yWR (pin 36), que son señales activas en bajo para operaciones de lectura y escritura respectivamente. Las líneas de dirección A 1 y A 0 permiten acceder a un registro de datos para cada puerto o a un registro de control, como se indica a continuación:
Selección del chip de señal de controlCS (pin 6) se utiliza para habilitar el chip 8255. Es una señal activa en bajo, es decir, cuandoCS = 0, el 8255 está habilitado. La entrada RESET (pin 35) está conectada a la línea RESET del sistema, como el 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 dañen debido a una configuración incorrecta de la dirección de los puertos. Por ejemplo, considere un dispositivo de entrada conectado al 8255 en el puerto A. Si en la operación anterior el puerto A se inicializó como puerto de salida y si el 8255 no se reinicia antes de usar la configuración actual, entonces existe la posibilidad de que se dañe el dispositivo de entrada conectado, el 8255 o ambos, ya que tanto el 8255 como el dispositivo conectado estarán enviando datos.
El registro de control (o lógica de control, o registro de palabra 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 de funcionamiento del 8255
El modelo 8255 tiene dos modos de funcionamiento básicos:
- Modo de ajuste/reinicio de bits (modo BSR).
- Modo de entrada/salida (modo E/S).
Los dos modos se seleccionan en función del valor presente en el bit D7 del registro de palabra de control. Cuando D7 = 1, el 8255 opera en modo E/S, y cuando D7 = 0, opera en modo BSR.
Modo de ajuste/reinicio de bits (BSR)
El modo de activación/desactivación de bits (BSR) solo está disponible en el puerto C. Cada línea del puerto C (PC 7 - PC 0 ) se puede activar o desactivar escribiendo un valor adecuado en el registro de palabra de control. El modo BSR y el modo E/S son independientes, y la selección del modo BSR no afecta al funcionamiento de los demás puertos en modo E/S. [ 13 ]

- El bit D 7 siempre es 0 para el modo BSR.
- Los bits D 6 , D 5 y D 4 son bits indiferentes.
- Los bits D3 , D2 y D1 se utilizan para seleccionar el pin del puerto C.
- El bit D 0 se utiliza para configurar/restablecer el pin seleccionado del puerto C.
La selección del pin C del puerto se determina de la siguiente manera:
Como ejemplo, si es necesario que se configure PC 5 , entonces en la palabra de control,
- Dado que es el modo BSR, D 7 = '0' .
- Dado que D 4 , D 5 , D 6 no se utilizan, supóngalos como ' 0' .
- Se debe seleccionar PC 5 , por lo tanto, D 3 = '1', D 2 = '0', D 1 = '1' .
- Se debe configurar PC 5 , por lo tanto, D0 = '1' .
Por lo tanto, según los valores anteriores, se cargará 0B (Hexadecimal) en el Registro de Palabra 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 ]
- Modo 0 - E/S simple
- Modo 1 - E/S estroboscópica
- Modo 2: E/S bidireccional estroboscópica
Formato de Word de control

- Los bits D0 , D1 , D3 y D4 se asignan a los puertos C inferior, B, C superior y A, respectivamente. Cuando estos bits son 1 , el puerto correspondiente funciona como entrada. Por ejemplo, si D0 = D4 = 1, los puertos C inferior y A funcionan como entradas. Si estos bits son 0 , el puerto correspondiente funciona como salida. Por ejemplo, si D1 = D3 = 0, los puertos B y C superior funcionan como salidas.
- D2 se utiliza para la selección de modo del Grupo B (puerto B y puerto inferior C). Cuando D2 = 0, se selecciona el modo 0, y cuando D2 = 1 , se selecciona el modo 1.
- Los botones D 5 y D 6 se utilizan para la selección de modo del Grupo A (puerto A y puerto superior C). La selección se realiza de la siguiente manera:
- Como es modo E/S, D 7 = 1.
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):
- Dado que es un modo de E/S, D 7 = 1.
- Los bits de selección de modo, D2, D5, D6, son todos 0 para el funcionamiento en modo 0.
- El puerto B y el puerto superior C deben funcionar como puertos de entrada, por lo tanto, D 1 = D 3 = 1.
- 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 usar para operaciones de entrada/salida simples sin señales de control de flujo. Los puertos A y B proporcionan operaciones de entrada/salida simples. Las dos mitades del puerto C se pueden usar 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 usar de manera que una mitad se inicialice como puerto de entrada y la otra como puerto de salida.
Las características de entrada/salida en el modo 0 son las siguientes:
- Los puertos de salida están bloqueados.
- Los puertos de entrada están almacenados en búfer, no enclavados.
- Los puertos no tienen capacidad de protocolo de enlace ni de interrupción.
- Con 4 puertos, son posibles 16 combinaciones diferentes de E/S.
«Enclavado» significa que los bits se almacenan en un registro (una matriz de biestables) que mantiene su salida constante incluso si las entradas cambian después de ser enclavados. Un búfer es un elemento que no almacena datos y que simplemente deja pasar la señal actual cuando está habilitado.
Las salidas del 8255 están bloqueadas para retener los últimos datos escritos. Esto es necesario porque los datos solo permanecen en el bus durante un ciclo. Por lo tanto, sin este bloqueo, las salidas quedarían invalidadas en cuanto finalizara el ciclo de escritura.
Las entradas no se almacenan de forma permanente, ya que la CPU solo necesita leer sus valores actuales y, si es necesario, guardar los datos en un registro o memoria de la CPU para consultarlos posteriormente. Si una entrada cambia mientras se lee el puerto, el resultado puede ser indeterminado.
Modo 0 – modo de entrada
- En el modo de entrada, el 8255 obtiene datos de los puertos periféricos externos y la CPU lee los datos recibidos a través de su bus de datos.
- La CPU primero selecciona el chip 8255 haciendoCS bajo. Luego selecciona el puerto deseado usando las líneas A 0 y A 1 .
- La CPU luego emite unSeñal RD para leer los datos del dispositivo periférico externo a través del bus de datos del sistema.
Modo 0 – modo de salida
- En el modo de salida, la CPU envía datos al chip 8255 a través del bus de datos del sistema y, a continuación, los puertos periféricos externos reciben estos datos a través del puerto 8255.
- La CPU primero selecciona el chip 8255 haciendoCS bajo. Luego selecciona el puerto deseado usando las líneas A 0 y A 1 .
- La CPU luego emite unLa señal WR indica que se escribirán datos en el puerto seleccionado a través del bus de datos del sistema. Estos datos serán recibidos posteriormente por el dispositivo periférico externo conectado a dicho puerto.
Modo 1 - Modo de entrada/salida estroboscópico
Cuando deseamos utilizar el puerto A o el puerto B para la operación de entrada o salida de control de flujo (estroboscópica), inicializamos dicho puerto en el modo 1 (los puertos A y B pueden inicializarse para operar en modos diferentes; por ejemplo, el puerto A puede operar en el modo 0 y el puerto B en el modo 1). Algunos de los pines del puerto C funcionan como líneas de control de flujo.
En este modo, para el puerto B (independientemente de si actúa como puerto de entrada o de salida), los pines PC0, PC1 y PC2 funcionan como líneas de control de flujo.
Si el puerto A se inicializa como puerto de entrada de modo 1, entonces los pines PC3, PC4 y PC5 funcionan como señales de control de flujo. Los pines PC6 y PC7 están disponibles para su uso como líneas de entrada/salida.
El modo 1, que admite el protocolo de enlace, tiene las siguientes características:
- Dos puertos, es decir, los puertos A y B, pueden utilizarse como puertos de entrada/salida de 8 bits.
- 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.
- Se admite la lógica de interrupción.
- Los datos de entrada y salida se almacenan de forma continua.
Señales de protocolo de enlace de entrada
- 1. IBF (Input Buffer Full): es una salida que indica que el registro 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 introduce en el microprocesador mediante la instrucción IN.
- 3. INTR ( Solicitud de interrupción ): Es una salida que solicita una interrupción. El pin INTR se convierte en un 1 lógico cuando la entrada STB vuelve a un 1 lógico y se desactiva cuando el microprocesador recibe datos del puerto.
- 4. INTE (Habilitación de interrupción): no es ni una entrada ni una salida; es un bit interno programado a través de la posición del bit PC4 (puerto A) o PC2 (puerto B) del puerto.
Señales de protocolo de enlace de salida
- 1. OBF (Búfer de salida lleno): Es una señal de salida que se pone en nivel bajo cuando se envían datos (OUT) al registro del puerto A o del puerto B. Esta señal se establece en nivel lógico 1 cuando el pulso ACK regresa del dispositivo externo.
- 2. ACK (Acknowledge): Hace que el pin OBF vuelva al 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 suele interrumpir el microprocesador cuando un dispositivo externo recibe datos a través de dicha señal. Este pin está habilitado mediante el bit interno INTE (habilitación de interrupción).
- 4. INTE (Habilitación de interrupción): No es ni una entrada ni una salida; es un bit interno programado para habilitar o deshabilitar el pin INTR. El bit INTE A se programa mediante el bit PC6 y el bit INTE B mediante el bit PC2.
Modo 2: Modo de entrada/salida bidireccional estroboscópico
Solo el puerto A puede inicializarse en este modo. El puerto A se puede usar para la transferencia de datos de control de flujo bidireccional . Esto significa que los datos pueden ingresar o enviarse a través de las mismas ocho líneas (PA0 - PA7). Los pines PC3 - PC7 se usan como líneas de control de flujo para el puerto A. Los pines restantes del puerto C (PC0 - PC2) se pueden usar como líneas de entrada/salida si el grupo B se inicializa en el modo 0 o como control de flujo para el puerto B si el grupo B se inicializa en el modo 1. En este modo, el 8255 se puede usar para extender el bus del sistema a un microprocesador esclavo o para transferir bytes de datos desde y hacia un controlador de disquete . Se proporcionan señales de acuse de recibo y control de flujo para mantener un flujo de datos y una sincronización adecuados entre el transmisor y el receptor de datos.
Referencias
- ↑ R Theagarajan (1 de enero de 2004). Microprocesador y sus aplicaciones . New Age International. págs. 165–. ISBN 978-81-224-1040-2Consultado el 3 de junio de 2012 .
- ↑ Programación de sistemas embebidos . Miller Freeman Publications. Julio de 1996. pág. 256. Consultado el 3 de junio de 2012 .
- ↑ "Página de producto para el 82C55A" . Renesas Electronics . Consultado el 11 de enero de 2023 .
- ↑ Intel Corporation, "Componente de microcomputadora: 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
- ↑ Intel Corporation, "Los periféricos de Intel mejoran el diseño del sistema 8086", Intel Preview Special Issue: 16-Bit Solution, mayo/junio de 1980, pág. 22
- ↑ Intel Corporation, "Noticia breve: Intel licencia a Oki para la versión CMOS de varios productos", Solutions, julio/agosto de 1984, página 1.
- ↑ Ashborn, Jim; "Empaquetado avanzado: Un poco rinde mucho", Intel Corporation, Solutions, enero/febrero de 1986, página 2
- ↑ Robert Jourdain (1986). Solucionador de problemas para programadores en IBM PC, XT y AT . Brady Communications Co. pág. 3. Consultado el 3 de junio de 2012 .
- ↑ Mundo de la electrónica . Reed Business Pub. 1996. pág. 947. Consultado el 3 de junio de 2012 .
- ↑ "Hoja de datos PPI de Intel 82c55" (PDF) .
- ↑ "Hoja de datos PCI 82C55A" (PDF) .
- ↑ Byte . McGraw-Hill. 1981. pág. 40. Consultado el 3 de junio de 2012 .
- ↑ US Shah. "11". Técnicas de microprocesadores e interconexión (segunda edición). Publicación de Techmax. págs. 11–15 . ISBN 978-81-8492-305-6.
- ↑ "Introducción a i8255" (PDF) .
Enlaces externos
- drew.hickmans.net , Descripción completa del circuito integrado Intel 8255
- ic-on-line.cn , Hoja de datos
- sharpmz.org , descripción general de las funciones
- intel-assembler.it Archivado el 23/04/2016 en Wayback Machine . Detalles técnicos de programación y ejemplo de código.
- bitsavers.informatik.uni-stuttgart.de , Manual del usuario del sistema de microcomputadoras Intel 8080 (septiembre de 1975). Incluye el chip 8255.
- chipsets de Intel
- IBM PC compatibles
- circuitos integrados de entrada/salida