El chip Intel 8255 (o i8255 ) Programmable Peripheral Interface (PPI) 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 de funcionamiento 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 los 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. Un CMOS versión de la 8255 todavía se está realizando [3] por Renesas pero principalmente se utiliza para expandir el I / O de microcontroladores .
Fichas similares
El 8255 tiene una función similar a la MOS Technology 6522 (Adaptador de interfaz versátil) y al 6526 MOS Technology CIA (Adaptador de interfaz compleja), ambos desarrollados para la familia 6502 .
Todos estos chips estaban disponibles originalmente en un paquete DIL de 40 pines. El 8255 proporciona 24 pines de E / S utilizables, mientras que los chips MOS solo proporcionan 16 pines de E / S más 4 pines de control. Sin embargo, los chips MOS contienen más funciones, como dos temporizadores de recarga programables y una función de registro de desplazamiento de E / S simple. Además, los dispositivos MOS permiten programar individualmente la dirección (entrada o salida) de todos sus pines de E / S. Los pines de E / S 8255 tienen solo cuatro bits de dirección programables: uno para todo el puerto A (7: 0), uno para el puerto B (7: 0), uno para el puerto C (3: 0) y uno para el puerto C ( 7: 4).
Otros chips de E / S de microprocesador comparables son la interfaz periférica programable 2655 de la familia Signetics 2650 , el PIA (adaptador de interfaz periférico) Motorola 6820 de la familia Motorola 6800 y el Western Design Center WDC 65C21 .
Variantes
La versión de grado industrial de Intel ID8255A estaba disponible por US $ 17,55 en cantidades de 100 y más. [4] La versión Intel 8255A-5 disponible costaba USD $ 6.55 en cantidades de 100 o más. [5] La versión 82C55A CMOS disponible fue subcontratada a Oki Electronic Industry Co., Ltd . [6]
Aplicaciones
El 8255 se utilizó ampliamente en muchos sistemas de microcomputadoras / microcontroladores y ordenadores domésticos como el SV-328 y todos los modelos MSX . El 8255 se usó en el IBM-PC original , [7] PC / XT, PC / jr y clones, junto con numerosas computadoras caseras como la N8VEM .
Función
El 8255 brinda acceso a una CPU o sistema digital a E / S paralelas programables . [8] El 8255 tiene 24 pines de entrada / salida. [9] Estos se dividen en tres puertos de 8 bits (A, B, C). [10] 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:
- Grupo A formado por el puerto A y la parte superior del puerto C.
- Grupo B formado 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 en el estado del RD (pin 5) yWR (pin 36), que son señales activas bajas 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 un registro de control, como se detalla a continuación:
A 1 A 0 Puerto seleccionado 0 0 puerto A 0 1 puerto B 1 0 puerto C 1 1 registro de control
El chip de señal de control selecciona CS (pin 6) se usa para habilitar el chip 8255. Es una señal activa baja, es decir, cuandoCS = 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 se restablece el sistema, 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 sea destruido debido a una discrepancia 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 de la operación anterior, el puerto A se inicializa como un puerto de salida y si el 8255 no se restablece antes de usar la configuración actual, entonces existe la posibilidad de que se dañe cualquiera de los dos. el dispositivo de entrada conectado o el 8255 o 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 la 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. [11]
Modos operativos del 8255
Hay dos modos operativos básicos de 8255:
- Modo de ajuste / reinicio de bits (modo BSR).
- Modo de entrada / salida (modo de E / S).
Los dos modos se seleccionan sobre la base del valor presente en la D 7 bit de la palabra de control de registro. Cuando D 7 = 1, 8255 opera en modo E / S, y cuando D 7 = 0, opera en modo BSR.
Modo de ajuste / reinicio de bits (BSR)
El modo Bit Set / Reset (BSR) está disponible solo en el puerto C. Cada línea del puerto C (PC 7 - PC 0 ) se puede configurar o restablecer escribiendo un valor adecuado en el registro de la palabra de control. El modo BSR y el modo E / S son independientes y la selección del modo BSR no afecta el funcionamiento de otros puertos en el modo E / S. [12]
- D 7 bit es siempre 0 para el modo BSR.
- Los bits D 6 , D 5 y D 4 son bits indiferentes.
- Los bits D 3 , D 2 y D 1 se utilizan para seleccionar el pin del puerto C.
- El bit D 0 se utiliza para establecer / restablecer el pin seleccionado del puerto C.
La selección del pin del puerto C se determina de la siguiente manera:
D3 | D2 | D1 | Bit / pin del puerto C seleccionado |
---|---|---|---|
0 | 0 | 0 | PC 0 |
0 | 0 | 1 | PC 1 |
0 | 1 | 0 | PC 2 |
0 | 1 | 1 | PC 3 |
1 | 0 | 0 | PC 4 |
1 | 0 | 1 | PC 5 |
1 | 1 | 0 | PC 6 |
1 | 1 | 1 | PC 7 |
Por ejemplo, si es necesario configurar PC 5 , en la palabra de control,
- Dado que es el modo BSR, D 7 = '0' .
- Dado que no se utilizan D 4 , D 5 , D 6 , suponga que son ' 0' .
- Debe seleccionarse 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, 0B (Hex) se cargará en el Registro de palabras de control (CWR).
D7 | D6 | D5 | D4 | D3 | D2 | D1 | D0 |
---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
Modo de entrada / salida
Este modo se selecciona cuando D 7 bit del registro de palabra de control es 1. Hay tres modos de E / S: [13]
- Modo 0 - E / S simple
- Modo 1 - E / S estroboscópicas
- Modo 2 - E / S bidireccional estroboscópica
Formato de la palabra de control
- D 0 , D 1 , D 3 , D 4 se asignan para el puerto C inferior, el puerto B, el puerto C superior y el puerto A respectivamente. Cuando estos bits son 1 , el puerto correspondiente actúa como puerto de entrada. Por ejemplo, si D 0 = D 4 = 1, el puerto C inferior y el puerto A actúan como puertos de entrada. Si estos bits son 0 , el puerto correspondiente actúa como puerto de salida. Por ejemplo, si D 1 = D 3 = 0, entonces el puerto B y el puerto superior C actúan como puertos de salida.
- D 2 se utiliza para la selección de modo del Grupo B (puerto B y puerto inferior C). Cuando D 2 = 0, se selecciona el modo 0 y cuando D 2 = 1, se selecciona el modo 1.
- 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:
D 6 | D 5 | Modo |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | X | 2 |
- Como es el modo de 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 la operación 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 C inferior 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 la palabra de control deberá cargarse con "10001010" = 8A (hex) .
Modo 0 - E / S simple
En este modo, los puertos se pueden utilizar para operaciones de E / S sencillas sin señales de protocolo de enlace. El puerto A, el puerto B proporcionan una operación de E / S simple. Las dos mitades del puerto C se pueden usar juntas como un puerto adicional de 8 bits o se pueden usar como puertos individuales de 4 bits. Dado que las dos mitades del puerto C son independientes, se pueden utilizar de modo que la 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:
- Los puertos de salida están bloqueados.
- Los puertos de entrada están almacenados en búfer, no bloqueados.
- Los puertos no tienen capacidad de intercambio o interrupción.
- Con 4 puertos, son posibles 16 combinaciones diferentes de E / S.
'Latched' significa que los bits se colocan en un registro de almacenamiento (matriz de flip-flops) que mantiene su salida constante incluso si las entradas cambian después de ser bloqueadas.
Las salidas del 8255 están bloqueadas para contener los últimos datos escritos en ellos. Esto es necesario porque los datos solo permanecen en el bus durante un ciclo. Por lo tanto, sin enclavamiento, las salidas dejarían de ser vá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 o memoria de la CPU 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
- 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 haciendo CS bajo. Luego selecciona el puerto deseado usando las líneas A 0 y A 1 .
- La CPU luego emite un Señ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 8255 a través del bus de datos del sistema y luego los puertos periféricos externos reciben estos datos a través del puerto 8255.
- La CPU primero selecciona el chip 8255 haciendo CS bajo. Luego selecciona el puerto deseado usando las líneas A 0 y A 1 .
- Luego, la CPU emite un Señal WR para escribir datos en el puerto seleccionado a través del bus de datos del sistema. Luego, estos datos son recibidos por el dispositivo periférico externo conectado al puerto seleccionado.
Modo 1: modo de entrada / salida estroboscópica
Cuando deseamos usar el puerto A o el puerto B para la operación de entrada o salida de protocolo de enlace (estroboscópico), inicializamos ese puerto en el modo 1 (el puerto A y el puerto B se pueden inicializar para operar en diferentes modos, es decir, 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 protocolo de enlace.
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 protocolo de enlace.
Si el puerto A se inicializa como puerto de entrada del modo 1, entonces, PC3, PC4 y PC5 funcionan como señales de protocolo de enlace. 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, el puerto A y B, se pueden utilizar como puertos de E / S 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 E / S.
- Se admite la lógica de interrupción.
- Los datos de entrada y salida están bloqueados.
Señales de entrada de Handshaking
- 1. IBF (búfer de entrada lleno): 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 (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 del STB vuelve a un 1 lógico, y se borra cuando el microprocesador ingresa los datos desde el puerto.
- 4. INTE (habilitación de interrupciones): no es una entrada ni una salida; es un bit interno programado a través de la posición del bit del puerto PC4 (puerto A) o PC2 (puerto B).
Señales de protocolo de enlace de salida
- 1. OBF (búfer de salida lleno): es una salida que baja cuando los datos se envían (SALIDA) al pestillo del puerto A o del puerto B. Esta señal se establece en un 1 lógico cada vez que el pulso ACK regresa del dispositivo externo.
- 2. ACK (Reconocimiento): hace que el pin OBF vuelva a un nivel lógico 1. La señal ACK es una respuesta de un dispositivo externo, lo 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 interrupciones).
- 4. INTE (habilitación de interrupciones): 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 usando el bit PC6 e INTE B se programa usando el bit PC2.
Modo 2: modo de entrada / salida bidireccional estroboscópica
Solo el puerto A se puede inicializar en este modo. El puerto A se puede utilizar para la transferencia de datos de protocolo de enlace bidireccional . Esto significa que los datos se pueden ingresar o enviar 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 es inicializado en el modo 1. En este modo, el 8255 puede usarse para extender 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 reconocimiento para mantener el flujo de datos y la 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-2. Consultado el 3 de junio de 2012 .
- ^ Programación de sistemas embebidos . Publicaciones Miller Freeman. Julio de 1996. p. 256 . Consultado el 3 de junio de 2012 .
- ^ "Página de producto del 82C55A" . Electrónica Renesas . Consultado el 26 de julio de 2018 .
- ^ Intel Corporation, "Componente de microcomputadora: la 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 Intel mejoran el diseño del sistema 8086", Edición especial de Intel Preview: Solución de 16 bits, mayo / junio de 1980, pág. 22
- ^ Intel Corporation, "NewsBit: Intel Licenses Oki en la versión CMOS de varios productos", Soluciones, julio / agosto de 1984, página 1.
- ^ Robert Jourdain (1986). Solucionador de problemas del programador para 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. 947 . Consultado el 3 de junio de 2012 .
- ^ "Hoja de datos de Intel 82c55 PPI" (PDF) .
- ^ "Hoja de datos de PCI 82C55A" (PDF) .
- ^ Byte . McGraw-Hill. 1981. p. 40 . Consultado el 3 de junio de 2012 .
- ^ US Shah. "11". Técnicas de microprocesador e interfaz (segunda ed.). Publicación Techmax. págs. 11–5. ISBN 978-81-8492-305-6.
- ^ "Introducción a i8255" (PDF) .
enlaces externos
- drew.hickmans.net , Descripción completa sobre Intel 8255 IC
- ic-on-line.cn , Hoja de datos
- sharpmz.org , descripción general de las funciones
- intel-assembler.it , detalles técnicos de programación y ejemplo de codificación
- bitsavers.informatik.uni-stuttgart.de , Manual del usuario de sistemas de microcomputadoras Intel 8080 (septiembre de 1975). Incluye chip 8255.