82C37A

82C37A - Controlador DMA Programable de Alto Rendimiento CMOS

Marzo de 1997

Características - Descripción

  • Compatible con el controlador DMA 8237A NMOS

    • El 82C37A es una versión mejorada del controlador de acceso directo a memoria (DMA) 8237A estándar de la industria, fabricado usando el proceso CMOS de 2 micras avanzado de Harris. Compatible con diseños NMOS, el 82C37A ofrece mayor funcionalidad, rendimiento mejorado y consumo de potencia dramáticamente reducido. El diseño completamente estático permite operación de reloj controlado para una reducción aún mayor de potencia.
  • Cuatro Canales Independientes Enmascarables con Capacidad de Autoinicialización

  • Cascadable a Cualquier Número de Canales

  • Transferencias de Datos de Alta Velocidad:

    • Hasta 4 MBytes/seg con reloj de 8 MHz
    • Hasta 6,25 MBytes/seg con reloj de 12,5 MHz
  • Transferencias Memoria-a-Memoria

El controlador 82C37A puede mejorar el rendimiento del sistema permitiendo que dispositivos externos transfieran datos directamente hacia o desde la memoria del sistema. También se proporciona capacidad de transferencia memoria-a-memoria, junto con una característica de inicialización de bloque de memoria. Las peticiones de DMA pueden ser de software, y cada canal es programable de forma independiente con una variedad de características para operación flexible.

  • Diseño CMOS Estático Permite Operación de Baja Potencia

    • Máximo de corriente en espera ICCSB = 10 µA
    • Máximo de corriente operativa ICCOP = 2 mA/MHz
  • Completamente Compatible TTL/CMOS

  • Los Registros Internos Pueden Ser Leídos desde Software

  • El 82C37A está diseñado para usarse con un cerrojo de direcciones externo, como el 82C82, para demultiplexar los 8 bits más significativos de la dirección. El 82C37A puede usarse con microprocesadores estándar de la industria como el 80C286, 80286, 80C86, 80C88, 8086, 8088, 8085, Z80, NSC800, 80186 y otros. La programabilidad multimodo permite al usuario seleccionar entre tres tipos básicos de servicios DMA, y la reconfiguración bajo control de programa es posible incluso con el reloj del controlador detenido. Cada canal tiene un rango de dirección de 64K completo y rango de conteo de palabras, y puede programarse para autoinicializar estos registros tras la terminación de DMA (fin de proceso).

Información de Pedido

Número de ParteFrecuenciaPaqueteRango de TemperaturaN.º Pkg.
CP82C37A-55 MHz40 Ld PDIP0°C a +70°CE40.6
CP82C37A8 MHz40 Ld PDIP0°C a +70°CE40.6
CP82C37A-1212,5 MHz40 Ld PDIP0°C a +70°CE40.6
IP82C37A-55 MHz40 Ld PDIP-40°C a +85°CE40.6
IP82C37A8 MHz40 Ld PDIP-40°C a +85°CE40.6
IP82C37A-1212,5 MHz40 Ld PDIP-40°C a +85°CE40.6
CS82C37A-55 MHz44 Ld PLCC0°C a +70°CN44.65
CS82C37A8 MHz44 Ld PLCC0°C a +70°CN44.65
CS82C37A-1212,5 MHz44 Ld PLCC0°C a +70°CN44.65
IS82C37A-55 MHz44 Ld PLCC-40°C a +85°CN44.65
IS82C37A8 MHz44 Ld PLCC-40°C a +85°CN44.65
IS82C37A-1212,5 MHz44 Ld PLCC-40°C a +85°CN44.65
CD82C37A-55 MHz40 Ld CERDIP0°C a +70°CF40.6
CD82C37A8 MHz40 Ld CERDIP0°C a +70°CF40.6
CD82C37A-1212,5 MHz40 Ld CERDIP0°C a +70°CF40.6
ID82C37A-55 MHz40 Ld CERDIP-40°C a +85°CF40.6
ID82C37A8 MHz40 Ld CERDIP-40°C a +85°CF40.6
ID82C37A-1212,5 MHz40 Ld CERDIP-40°C a +85°CF40.6
MD82C37A-5/B5 MHz40 Ld CERDIP-55°C a +125°CF40.6
MD82C37A/B8 MHz40 Ld CERDIP-55°C a +125°CF40.6
MD82C37A-12/B12,5 MHz40 Ld CERDIP-55°C a +125°CF40.6
5962-9054301MQA—SMD-55°C a +125°CF40.6
5962-9054302MQA—SMD-55°C a +125°CF40.6
5962-9054303MQA—SMD-55°C a +125°CF40.6
MR82C37A-5/B5 MHz44 Pad CLCC-55°C a +125°CJ44.A
MR82C37A/B8 MHz44 Pad CLCC-55°C a +125°CJ44.A
MR82C37A-12/B12,5 MHz44 Pad CLCC-55°C a +125°CJ44.A
5962-9054301MXA—SMD-55°C a +125°CJ44.A
5962-9054302MXA—SMD-55°C a +125°CJ44.A
5962-9054303MXA—SMD-55°C a +125°CJ44.A

PRECAUCIÓN: Estos dispositivos son sensibles a descargas electrostáticas. Los usuarios deben seguir procedimientos adecuados de manejo de circuitos integrados. Número de archivo 2967.1

Copyright © Harris Corporation 1997

4-192

Configuraciones de Pines

82C37A (PDIP/CERDIP) - VISTA SUPERIOR

Diagrama de pinout PDIP/CERDIP de 40 pines. Los siguientes pines se identifican:

PinSeñal
1IOR
2IOW
3MEMR
4MEMW
5NC
6READY
7HLDA
8ADSTB
9AEN
10HRQ
11CS
12CLK
13RESET
14DACK2
15DACK3
16DREQ3
17DREQ2
18DREQ1
19DREQ0
20GND
21DB7
22DB6
23DB5
24DACK1
25DACK0
26DB4
27DB3
28DB2
29DB1
30DB0
31VCC
32A0
33A1
34A2
35A3
36EOP
37A4
38A5
39A6
40A7

82C37A (CLCC/PLCC) - VISTA SUPERIOR

Diagrama de pinout CLCC/PLCC de 44 pines. La extracción OCR de esta tabla concreta salió con varias etiquetas de señal claramente desordenadas o invertidas letra a letra (por ejemplo, el pin 10 aparecía como “YDAER”, que invertido da “READY” — corregido abajo), y algunos valores de los pines 2-9 no se corresponden con ninguna señal reconocible del 82C37A. Los nombres de señal fiables son los de la tabla PDIP/CERDIP anterior; esta tabla PLCC/CLCC se conserva tal y como se pudo extraer, con la corrección puntual de “YDAER”→“READY”, pero la posición exacta de pin para las señales 2-9 no debe darse por buena sin contrastarla con el datasheet original.

PinSeñal
1CN
27A
36A
45A
54A
6NC
7POE
8RMEM
9WMEM
10READY
11AEN
12HRQ
13CS
14CLK
15RESET
16DACK2
17NC
18NC
19NC
20NC
21GND
22DB7
23DB6
24DB5
25DB4
26DB3
27DB2
28DB1
29DB0
30VCC
31A0
32A1
33A2
34A3
35VCC
36A0
37A1
38A2
39A3
40NC
41NC
42NC
43NC
44NC

Diagrama de Bloques

Nota: Diagrama funcional de bloques del 82C37A mostrando los principales componentes internos: búferes de entrada/salida, registros de dirección y conteo (16 bits cada uno), controlador de temporización, codificador de prioridad, y lógica de control interno. No se reproduce el diagrama ASCII completo.

Descripción de Pines

PinSímboloTipoDescripción
31VCC—VCC es la línea de alimentación +5V. Se recomienda un condensador de 0,1 µF entre los pines 31 y 20 para desacoplamiento.
20GND—Tierra
12CLKEntradaEntrada de reloj: La entrada de reloj se utiliza para generar las señales de temporización que controlan las operaciones del 82C37A. Esta entrada puede ser controlada desde CC hasta 12,5 MHz para el 82C37A-12, desde CC hasta 8 MHz para el 82C37A, o desde CC hasta 5 MHz para el 82C37A-5. El reloj puede detenerse en ambos estados para operación en espera.
11CSEntradaSelección de chip: La selección de chip es una entrada activa baja utilizada para habilitar el controlador en el bus de datos para comunicaciones con la CPU.
13RESETEntradaReinicio: Esta es una entrada activa alta que borra los registros de comando, estado, petición y temporal, el flip-flop primero/último y el contador del registro de modo. El registro de máscara se establece para ignorar peticiones. Tras un reinicio, el controlador está en un ciclo inactivo.
6READYEntradaListo: Esta señal puede usarse para extender los pulsos de lectura y escritura de memoria del 82C37A para acomodar memorias o dispositivos E/S lentos. READY no debe hacer transiciones durante sus tiempos de configuración y retención especificados. Véase la figura 12 para temporización. READY se ignora en modo de transferencia de verificación.
7HLDAEntradaReconocimiento de retención: El reconocimiento de retención activo alto de la CPU indica que ha relinquido el control de los buses del sistema. HLDA es una entrada síncrona y no debe hacer transiciones durante su tiempo de configuración especificado. Existe un tiempo de retención implícito (HLDA inactivo) de TCH desde el flanco ascendente de CLK, durante el cual HLDA no debe hacer transiciones.
16-19DREQ0-DREQ3EntradaPetición de DMA: Las líneas de petición de DMA (DREQ) son entradas individuales de petición de canal asincrónicas utilizadas por circuitos periféricos para obtener servicio de DMA. En prioridad fija, DREQ0 tiene la prioridad más alta y DREQ3 tiene la prioridad más baja. Una petición es canal. DACK reconocerá el reconocimiento de una señal DREQ. La polaridad de DREQ es programable. El reinicio inicializa estas líneas como activas altas. DREQ debe mantenerse hasta que el DACK correspondiente se active. DREQ no será reconocida mientras el reloj esté detenido. Las entradas DREQ no utilizadas deben ser llevadas a nivel alto o bajo (inactivas) y el bit de máscara correspondiente establecido.
21-23, 26-30DB0-DB7E/SBus de datos: Las líneas del bus de datos son señales bidireccionales de tres estados conectadas al bus de datos del sistema. Las salidas se habilitan en la condición de programa durante la lectura de E/S para sacar el contenido de un registro a la CPU. Las salidas se deshabilitan y las entradas se leen durante un ciclo de escritura de E/S cuando la CPU está programando los registros de control del 82C37A. Durante ciclos de DMA, los 8 bits más significativos de la dirección se sacan al bus de datos para ser capturados por un cerrojo externo por ADSTB. En operaciones memoria-a-memoria, los datos de la memoria entran en el 82C37A por el bus de datos durante la transferencia de lectura de memoria, y luego durante la transferencia de escritura a memoria, el bus de datos saca los datos a escribir en la nueva ubicación de memoria.
1IORE/SLectura de E/S: La lectura de E/S es una línea bidireccional activa baja de tres estados. En el ciclo inactivo, es una señal de control de entrada utilizada por la CPU para leer los registros de control. En el ciclo activo, es una señal de control de salida utilizada por el 82C37A para acceder a datos del periférico durante una transferencia de escritura de DMA.
2IOWE/SEscritura de E/S: La escritura de E/S es una línea bidireccional activa baja de tres estados. En el ciclo inactivo, es una señal de control de entrada utilizada por la CPU para cargar información en el 82C37A. En el ciclo activo, es una señal de control de salida utilizada por el 82C37A para cargar datos al periférico durante una transferencia de lectura de DMA.

Descripción de Pines (Continuación)

PinSímboloTipoDescripción
36EOPE/SFin de proceso: El fin de proceso (EOP) es una señal bidireccional activa baja. La información sobre la terminación de servicios de DMA está disponible en el pin EOP bidireccional. El 82C37A permite que una señal externa termine un servicio de DMA activo llevando el pin EOP a nivel bajo. Se produce un pulso, excepto para el canal 0 en modo memoria-a-memoria. Durante transferencias memoria-a-memoria, EOP se sacará cuando ocurra el TC para el canal 1. El pin EOP es impulsado por un transistor de drenaje abierto en el chip y requiere una resistencia de carga externa a VCC. Cuando ocurre un pulso EOP, ya sea generado internamente o externamente, el 82C37A terminará el servicio, y si la autoinicialización está habilitada, los registros base se escribirán en los registros actuales de ese canal. El bit de máscara y el bit TC en la palabra de estado se establecerán para el canal actualmente activo por EOP a menos que el canal esté programado para autoinicialización. En ese caso, el bit de máscara permanece claro.
32-35A0-A3E/SDirección: Las cuatro líneas de dirección menos significativas son señales bidireccionales de tres estados. En el ciclo inactivo, son entradas y se utilizan por el 82C37A para direccionar el registro de control a cargar o leer. En el ciclo activo, son salidas y proporcionan los 4 bits inferiores de la dirección de salida.
37-40A4-A7SalidaDirección: Los cuatro bits de dirección más significativos son salidas de tres estados y proporcionan 4 bits de dirección. Estas líneas se habilitan solo durante el servicio de DMA.
10HRQSalidaPetición de retención: La salida de petición de retención (HRQ) se utiliza para solicitar control del bus del sistema. Cuando ocurre un DREQ y el bit de máscara correspondiente está claro, o se hace una solicitud de DMA de software, el 82C37A emite HRQ. La señal HLDA informa al controlador cuándo se permite el acceso a los buses del sistema. Para operación independiente donde el 82C37A siempre controla los buses, HRQ puede ser conectado a HLDA. Esto resultará en un estado S0 antes de la transferencia.
14, 15, 24, 25DACK0-DACK3SalidaReconocimiento de DMA: El reconocimiento de DMA se utiliza para notificar a los periféricos individuales cuando se ha concedido un ciclo de DMA. El sentido de estas líneas es programable. El reinicio las inicializa como activas bajas.
9AENSalidaHabilitación de dirección: La habilitación de dirección habilita el cerrojo de 8 bits que contiene los 8 bits de dirección superiores en el bus de direcciones del sistema. AEN también puede usarse para deshabilitar otros controladores de bus del sistema durante transferencias de DMA. AEN es activo alto.
8ADSTBSalidaCaptura de dirección: Esta es una señal activa alta utilizada para controlar el capturado del byte de dirección superior. Impulsará directamente la entrada de captura de cerrojos latch octales transparentes externos, como el 82C82. Durante operaciones de bloque, ADSTB solo se emitirá cuando el byte de dirección superior deba actualizarse, acelerando la operación mediante la eliminación de estados S1. La temporización de ADSTB se referencia al flanco descendente del reloj 82C37A.
3MEMRSalidaLectura de memoria: La señal de lectura de memoria es una salida de tres estados activa baja utilizada para acceder a datos de la ubicación de memoria seleccionada durante una lectura de DMA o una transferencia memoria-a-memoria.
4MEMWSalidaEscritura de memoria: La señal de escritura de memoria es una salida de tres estados activa baja utilizada para escribir datos en la ubicación de memoria seleccionada durante una escritura de DMA o una transferencia memoria-a-memoria.
5NC—Sin conexión: El pin 5 está abierto y no debe ser probado para continuidad.

Descripción Funcional

El controlador de acceso directo a memoria 82C37A está diseñado para mejorar la tasa de transferencia de datos en sistemas que deben transferir datos desde un dispositivo de E/S a memoria, o mover un bloque de memoria a un dispositivo de E/S. También realizará movimientos de bloques memoria-a-memoria, o llenará un bloque de memoria con datos desde una única ubicación. Se proporcionan modos de operación para manejar transferencias de bytes simples, así como secuencias de datos discontinuos, lo que permite que el 82C37A controle el movimiento de datos con transparencia de software.

Por ejemplo, si un bloque de datos debe ser transferido desde la RAM a un dispositivo de E/S, la dirección de inicio de los datos se carga en los registros de dirección base y actual del 82C37A para un canal particular, y la longitud del bloque se carga en el registro de conteo de palabras del canal. El registro de modo correspondiente se programa para una operación memoria-a-E/S (transferencia de lectura), y se seleccionan varias opciones mediante el registro de comando y otros bits del registro de modo. El bit de máscara del canal se borra para habilitar el reconocimiento de una petición de DMA (DREQ). El DREQ puede ser una señal de hardware o un comando de software.

El controlador DMA es un generador de dirección y señales de control controlado por estados, que permite que los datos sean transferidos directamente desde un dispositivo de E/S a memoria o viceversa sin ser nunca almacenados en un registro temporal. Esto puede aumentar significativamente la tasa de transferencia de datos para operaciones secuenciales, en comparación con instrucciones de movimiento de procesador o instrucciones de cadena repetida. Las operaciones memoria-a-memoria requieren almacenamiento temporal interno del byte de datos entre la generación de direcciones de origen y destino, de modo que las transferencias memoria-a-memoria se producen a menos de la mitad de la tasa de operaciones de E/S, pero aún mucho más rápido que con técnicas de procesador central.

Una vez iniciada, la transferencia de DMA en bloque procederá cuando el controlador saca la dirección de datos, pulsos simultáneos de MEMR e IOW, y selecciona un dispositivo de E/S a través de las salidas de reconocimiento de DMA (DACK). El byte de datos fluye directamente desde la RAM al dispositivo de E/S. Después de que cada byte se transferida, la dirección se incrementa (o decrementa) automáticamente y el conteo de palabras se decrementa. La operación se repite luego para el siguiente byte. El controlador detiene la transferencia de datos cuando el registro de conteo de palabras se desborba, o se aplica un EOP externo. Las tasas máximas de transferencia de datos obtenibles con el 82C37A se muestran en la figura 1.

Máximo de Tasas de Transferencia DMA

Tipo de Transferencia5 MHz8 MHz12,5 MHzUnidad
Comprimida2,504,006,25MByte/seg
E/S Normal1,672,674,17MByte/seg
Memoria-a-Memoria0,631,001,56MByte/seg

Registros Internos del 82C37A

NombreTamañoNúmero
Registros de Dirección Base16 bits4
Registros de Conteo de Palabras Base16 bits4
Registros de Dirección Actual16 bits4
Registros de Conteo de Palabras Actual16 bits4
Registro de Dirección Temporal16 bits1
Registro de Conteo de Palabras Temporal16 bits1
Registro de Estado8 bits1
Registro de Comando8 bits1
Registro Temporal8 bits1
Registros de Modo6 bits4
Registro de Máscara4 bits1
Registro de Petición4 bits1

Operación DMA

En un sistema, las salidas de dirección y control del 82C37A y los pines del bus de datos están conectados básicamente en paralelo con los buses del sistema. Se requiere un cerrojo externo para el byte de dirección superior. Cuando está inactivo, las salidas del controlador están en un estado de alta impedancia. Cuando se activa por una petición de DMA y se relinque el control del bus por parte del host, el 82C37A impulsa los buses y genera las señales de control para realizar la transferencia de datos. La operación realizada por la activación de una de las cuatro entradas de petición de DMA fue previamente programada en el controlador a través de los registros de comando, modo, dirección y conteo de palabras.

Para comprender mejor la operación del 82C37A, el controlador DMA opera en dos ciclos principales: activo e inactivo.

Ciclo Inactivo

Cuando no hay canales pidiendo servicio, el 82C37A entrará en el ciclo inactivo y realizará estados “SI”. En este ciclo, el 82C37A muestreará las líneas DREQ en el flanco descendente de cada ciclo de reloj para determinar si algún canal está pidiendo servicio de DMA.

El estado I (SI) es el estado inactivo. Se entra cuando el 82C37A no tiene peticiones de DMA válidas pendientes, al final de una secuencia de transferencia, o cuando ha ocurrido un reinicio o borrado maestro. Mientras está en SI, el controlador DMA está inactivo pero puede estar en la condición de programa (siendo programado por el procesador).

Comandos de software especiales pueden ser ejecutados por el 82C37A en la condición de programa. Estos comandos se decodifican como conjuntos de direcciones con CS, IOR e IOW. Los comandos no hacen uso del bus de datos. Las instrucciones incluyen establecer y borrar el flip-flop primero/último, borrado maestro, borrar el contador del registro de modo y borrar el registro de máscara.

Cuando no hay ningún canal pidiendo servicio, el 82C37A entrará en el ciclo inactivo y realizará estados “SI”. En este ciclo, el 82C37A muestreará las líneas DREQ en el flanco descendente de cada ciclo de reloj para determinar si algún canal está pidiendo servicio de DMA.

Tenga en cuenta que para operación en espera donde el reloj ha sido detenido, se ignorarán las peticiones de DMA. El dispositivo responderá a CS (selección de chip), en caso de un intento del microprocesador de escribir o leer los registros internos del 82C37A. Cuando CS es bajo y HLDA es bajo, el 82C37A entra en la condición de programa. La CPU ahora puede establecer, cambiar o inspeccionar la definición interna de la parte leyendo desde o escribiendo en los registros internos.

El 82C37A puede ser programado con el reloj detenido, siempre que HLDA sea bajo y haya ocurrido al menos un flanco ascendente de reloj después de que HLDA fue llevado a nivel bajo, de modo que el controlador está en un estado SI. Las líneas de dirección A0-A3 son entradas al dispositivo y seleccionan qué registros serán leídos o escritos. Las líneas IOR e IOW se usan para seleccionar y temporizar las operaciones de lectura o escritura. Debido al número y tamaño de los registros internos, se utiliza un flip-flop interno llamado flip-flop primero/último para generar un bit de dirección adicional. El bit se usa para determinar el byte superior o inferior de los registros de dirección y conteo de trabajo de 16 bits. El flip-flop se reinicia por borrado maestro o RESET. Comandos de software separados también pueden establecer o restablecer este flip-flop.

Ciclo Activo

Cuando el 82C37A está en el ciclo inactivo, y se produce una solicitud de software o un canal sin máscara solicita servicio de DMA, el dispositivo emitirá HRQ al microprocesador e entrará en el ciclo activo. Es en este ciclo donde tendrá lugar el servicio de DMA, en uno de cuatro modos:

El estado 0 (S0) es el primer estado de un servicio de DMA. El 82C37A ha solicitado una retención pero el procesador aún no ha devuelto un reconocimiento. El 82C37A puede seguir siendo programado hasta que haya recibido HLDA de la CPU. Un reconocimiento de la CPU señalará que la transferencia de DMA puede comenzar. S1, S2, S3 y S4 son el estado de trabajo del servicio de DMA. Si se necesita más tiempo para completar una transferencia del disponible con temporización normal, se pueden insertar estados de espera (SW) entre S3 y S4 en transferencias normales mediante el uso de la línea Ready en el 82C37A. Para transferencias comprimidas, se pueden insertar estados de espera entre S2 y S4. Ver figuras de temporización 14 y 15.

Tenga en cuenta que los datos se transfieren directamente desde el dispositivo de E/S a memoria (o viceversa) con IOR y MEMW (o MEMR e IOW) activos al mismo tiempo. Los datos no se leen ni se impulsan fuera del 82C37A en transferencias DMA de E/S-a-memoria o memoria-a-E/S.

Las transferencias memoria-a-memoria requieren una lectura-de y una escritura-a memoria para completar cada transferencia. Los estados, que se asemejan a los estados normales de trabajo, utilizan números de dos dígitos para identificación. Se requieren ocho estados para una única transferencia. Los primeros cuatro estados (S11, S12, S13, S14) se utilizan para la mitad de lectura-de-memoria y los últimos cuatro estados (S21, S22, S23, S24) para la mitad de escritura-a-memoria de la transferencia.

Modos de Transferencia

Modo de Transferencia Simple

En el modo de transferencia simple, el dispositivo se programa para hacer una transferencia sola. El conteo de palabras será decrementado y la dirección decrementada o incrementada tras cada transferencia. Cuando el conteo de palabras se “sobrepasa” de cero a FFFFH, se establece un bit de conteo terminal en el registro de estado, se genera un pulso EOP, y el canal se autoinicializará si esta opción ha sido seleccionada. Si no se programa para autoinicializar, se establecerá el bit de máscara, junto con el bit TC y pulso EOP.

DREQ debe mantenerse activo hasta que DACK se vuelva activo. Si DREQ se mantiene activo durante la transferencia simple, HRQ irá inactivo y liberará el bus al sistema. Irá activo nuevamente y, tras la recepción de un nuevo HLDA, se realizará otra transferencia simple, a menos que un canal de prioridad más alta tome control. En sistemas 8080A, 8085A, 80C88 u 80C86, esto asegurará una ejecución de ciclo de máquina completa entre transferencias de DMA. Los detalles de temporización entre el 82C37A y otros protocolos de control de bus dependerán de las características del microprocesador implicado.

Modo de Transferencia en Bloque

En el modo de transferencia en bloque, el dispositivo se activa por DREQ o solicitud de software y continúa haciendo transferencias durante el servicio hasta que se encuentra un TC, causado por un conteo de palabras que va a FFFFH, o se encuentra un fin de proceso externo (EOP). DREQ solo necesita mantenerse activo hasta que DACK se vuelva activo. De nuevo, la autoinicialización ocurrirá al final del servicio si el canal ha sido programado para esa opción.

Modo de Transferencia a la Demanda

En el modo de transferencia a la demanda, el dispositivo continúa haciendo transferencias hasta que se encuentra un TC o EOP externo, o hasta que DREQ se vuelve inactivo. Por lo tanto, la transferencia puede continuar hasta que el dispositivo de E/S haya agotado su capacidad de datos. Después de que el dispositivo de E/S ha tenido la oportunidad de ponerse al día, el servicio de DMA se restablece por medio de un DREQ. Durante el tiempo entre servicios cuando el microprocesador está permitido operar, los valores intermedios de dirección y conteo de palabras se almacenan en los registros de dirección actual y conteo de palabras actual del 82C37A. Los canales de prioridad más alta pueden intervenir en el proceso de demanda, una vez que DREQ se ha vuelto inactivo. Solo un EOP puede causar una autoinicialización al final del servicio. EOP es generado por TC o por una señal externa.

Modo Cascada

Este modo se utiliza para cascada de más de un 82C37A para expansión simple del sistema. Las señales HRQ y HLDA del 82C37A adicional se conectan a los señales DREQ y DACK respectivamente de un canal para el 82C37A inicial. Esto permite que las peticiones de DMA del dispositivo adicional se propaguen a través de la red de circuitería de prioridad del dispositivo anterior. La cadena de prioridad se conserva y el nuevo dispositivo debe esperar su turno para reconocer peticiones. Dado que el canal cascada del 82C37A inicial se utiliza solo para priorizar el dispositivo adicional, no saca una dirección o señales de control propias. Estos podrían entrar en conflicto con las salidas del canal activo en el dispositivo agregado. El 82C37A inicial responderá a DREQ y generará DACK pero todos los demás productos excepto HRQ.

Ver figura 3 que muestra dos dispositivos adicionales cascadiados con un dispositivo inicial usando dos de los canales del dispositivo inicial. Esto forma un sistema DMA de dos niveles. Se podrían agregar más 82C37As en el segundo nivel utilizando los canales restantes del primer nivel. También se pueden agregar dispositivos adicionales cascadiando en los canales de los dispositivos de segundo nivel, formando un tercer nivel.

Al programar controladores cascadiados, comience con el dispositivo del primer nivel (más cercano al microprocesador). Después del RESET, las salidas DACK se programan para ser activas bajas y se mantienen en estado alto. Si se usan para impulsar HLDA directamente, los dispositivos del segundo nivel no pueden ser programados hasta que la polaridad de DACK sea seleccionada como activa alta en el dispositivo inicial. También, la función de bits de máscara del dispositivo inicial funcionan normalmente en canales cascadiados, de modo que pueden ser utilizados para inhibir servicios de segundo nivel.

Cuando se produce un EOP en el dispositivo agregado, el dispositivo inicial lo verá como una petición de DMA normal. EOP del dispositivo agregado se propagará a través de la red de prioridad del dispositivo inicial, permitiendo que este dispositivo realice otro servicio de DMA, sin intervención de la CPU, tan pronto como se detecte un DREQ válido, o se realice una solicitud de software.

Un EOP externo será ignorado por el dispositivo inicial, pero tendrá el efecto habitual en el dispositivo agregado.

Tipos de Transferencia

Cada uno de los tres modos de transferencia activos puede realizar tres tipos diferentes de transferencias. Estos son lectura, escritura y verificación.

Las transferencias de escritura mueven datos desde un dispositivo de E/S a la memoria activando MEMW e IOR. Las transferencias de lectura mueven datos desde memoria a un dispositivo de E/S activando MEMR e IOW. Las transferencias de verificación son pseudo-transferencias. El 82C37A opera como en transferencias de lectura o escritura generando direcciones y respondiendo a EOP, etc., sin embargo las líneas de control de memoria y E/S permanecen inactivas. El modo de verificación no se permite para operación memoria-a-memoria. READY se ignora durante transferencias de verificación.

Transferencia Memoria-a-Memoria

Para realizar movimientos en bloque de datos de un espacio de dirección de memoria a otro con un mínimo de esfuerzo de programa y tiempo, el 82C37A incluye una característica de transferencia memoria-a-memoria. La configuración del bit 0 en el registro de comando selecciona los canales 0 y 1 para operar como canales de transferencia memoria-a-memoria.

La transferencia se inicia configurando el DREQ de software o hardware para el canal 0. El 82C37A solicita un servicio de DMA de la manera normal. Después de que HLDA es verdadero, el dispositivo, usando transferencias de cuatro estados en modo de transferencia en bloque, lee datos de la memoria. El registro de dirección actual del canal 0 es la fuente para la dirección utilizada e incrementada o decrementada de la manera normal. El byte de datos leído de la memoria se almacena en el registro temporal interno del 82C37A. Otra transferencia de cuatro estados mueve los datos a memoria usando la dirección en el registro de dirección actual del canal uno e incrementándola o decrementándola de la manera normal. El conteo de palabras actual del canal 1 se decrementa.

Cuando el conteo de palabras del canal 1 se decrementa a FFFFH, se genera un TC causando una salida EOP, terminando el servicio e estableciendo el bit TC del canal 1 en el registro de estado. El bit de máscara del canal 1 también se establecerá, a menos que el registro de modo del canal 1 esté programado para autoinicialización.

El decremento del conteo de palabras del canal 0 a FFFFH no establecerá el bit TC del canal 0 en el registro de estado ni generará un EOP, ni establecerá el bit de máscara del canal 0 en este modo. Causará una autoinicialización del canal 0, si esa opción ha sido seleccionada.

Si se desea autoinicialización completa para una operación memoria-a-memoria, los conteos de palabras de los canales 0 y 1 deben estar establecidos en valores iguales antes de que comience la transferencia. De lo contrario, si el canal 0 se desborba antes que el canal 1, se autoinicializará y fijará la dirección de origen de datos al principio del bloque. Si el conteo de palabras del canal 1 se desborba antes que el canal 0, el servicio de DMA memoria-a-memoria terminará, y el canal 1 se autoinicializará pero el canal 0 no.

En el modo memoria-a-memoria, el canal 0 puede ser programado para mantener la misma dirección para todas las transferencias. Esto permite que un byte único sea escrito en un bloque de memoria. Esta característica de retención de dirección del canal 0 se selecciona estableciendo el bit 1 en el registro de comando.

El 82C37A responderá a señales EOP externas durante transferencias memoria-a-memoria, pero solo relinquirá los buses del sistema después de que la transferencia sea completa (es decir, después de un estado S24). Debe notarse que un EOP externo no puede causar que los registros de dirección y conteo de palabras del canal 0 se autoinicialicen, incluso si el registro de modo se programa para autoinicialización. Un EOP externo autoinicializará los registros del canal 1, si se programa así. Los comparadores de datos en esquemas de búsqueda en bloque pueden usar la entrada EOP para terminar el servicio cuando se encuentra una coincidencia. La temporización de transferencias memoria-a-memoria se encuentra en la figura 13. Las operaciones memoria-a-memoria pueden detectarse como un AEN activo sin salidas DACK.

Prioridad

El 82C37A tiene dos tipos de codificación de prioridad disponible como opciones seleccionables de software. El primero es prioridad fija que fija los canales en orden de prioridad basado en el valor descendente de sus números. El canal con la prioridad más baja es 3 seguido de 2, 1 y el canal de prioridad más alta, 0. Después del reconocimiento de cualquier canal para servicio, los otros canales se previenen de interferir con el servicio hasta que se completa.

El segundo esquema es prioridad rotatoria. El último canal en recibir servicio se convierte en el canal de prioridad más baja con los otros rotando en consecuencia. El siguiente canal más bajo del canal servido tiene la prioridad más alta en la siguiente solicitud. La prioridad rota cada vez que se devuelve el control de los buses del sistema al procesador.

Prioridad Rotatoria

1ª Solicitud2ª Solicitud3ª Solicitud
Más alta: 02 Servicio3 Servicio
1 Servicio3 Solicitud0
Más baja: 201
312

Con prioridad rotatoria en un sistema DMA de un solo chip, cualquier dispositivo pidiendo servicio se garantiza que sea reconocido después de no más de tres servicios de prioridad más alta. Esto previene que cualquier canal monopolice el sistema.

Independientemente de qué esquema de prioridad se elija, la prioridad se evalúa cada vez que HLDA se devuelve al 82C37A.

Temporización Comprimida

Para lograr un mayor rendimiento donde las características del sistema lo permitan, el 82C37A puede comprimir el tiempo de transferencia a dos ciclos de reloj. De la figura 12 se puede ver que el estado S3 se utiliza para extender el tiempo de acceso del pulso de lectura. Al eliminar el estado S3, el ancho del pulso de lectura se hace igual al ancho del pulso de escritura y una transferencia consta solo del estado S2 para cambiar la dirección y estado S4 para realizar la lectura/escritura. Los estados S1 aún ocurrirán cuando A8-A15 necesiten actualización (ver generación de dirección). La temporización para transferencias comprimidas se encuentra en la figura 15. EOP se sacará en S2 si se selecciona temporización comprimida. La temporización comprimida no se permite para transferencias memoria-a-memoria.

Generación de Dirección

Para reducir el número de pines, el 82C37A multiplexa los ocho bits de dirección de orden superior en las líneas de datos. El estado S1 se utiliza para sacar los bits de dirección de orden superior a un cerrojo externo desde el cual pueden colocarse en el bus de direcciones. El flanco descendente de la captura de dirección (ADSTB) se usa para cargar estos bits de las líneas de datos en el cerrojo. La habilitación de dirección (AEN) se usa para habilitar los bits en el bus de direcciones a través de una habilitación de tres estados. Los bits de dirección de orden inferior son sacados directamente por el 82C37A. Las líneas A0-A7 deben estar conectadas al bus de direcciones. La figura 12 muestra las relaciones de tiempo entre CLK, AEN, ADSTB, DB0-DB7 y A0-A7.

Durante el servicio del modo de transferencia de bloque y demanda, que incluye múltiples transferencias, las direcciones generadas serán secuenciales. Para muchas transferencias, los datos contenidos en el cerrojo de dirección externo permanecerán igual. Estos datos solo necesitan cambiar cuando ocurre un acarreo o préstamo de A7 a A8 en la secuencia normal de direcciones. Para ahorrar tiempo y acelerar transferencias, el 82C37A ejecuta estados S1 solo cuando es necesaria la actualización de A8-A15 en el cerrojo. Esto significa para servicios largos, los estados S1 y capturas de dirección pueden ocurrir solo una vez cada 256 transferencias, un ahorro de 255 ciclos de reloj para cada 256 transferencias.

Autoinicialización

Configurando el bit 4 en el registro de modo, un canal puede ser configurado como un canal de autoinicialización. Durante la autoinicialización, los valores originales de los registros de dirección actual y conteo de palabras actual se restauran automáticamente de los registros de dirección base y conteo de palabras base del canal tras el EOP. Los registros base se cargan simultáneamente con los registros actuales por el microprocesador y permanecen sin cambios durante el servicio de DMA. El bit de máscara no se establece cuando el canal está en modo de autoinicialización. Tras la autoinicialización, el canal está listo para realizar otro servicio de DMA, sin intervención de la CPU, tan pronto como se detecte un DREQ válido, o se realice una solicitud de software.

La autoinicialización solo ocurre después de un EOP. En el modo memoria-a-memoria, el registro de dirección actual del canal 0 puede ser prevenido de incrementar o decrementar configurando el bit de retención de dirección en el registro de comando.

Programación

El 82C37A aceptará programación del procesador host en cualquier momento que HLDA sea inactivo, y al menos un flanco ascendente de reloj haya ocurrido después de que HLDA fue bajo. Es responsabilidad del host asegurar que la programación y HLDA son mutuamente excluyentes.

Tenga en cuenta que se puede producir un problema si una petición de DMA ocurre en un canal sin máscara mientras el 82C37A está siendo programado. Por ejemplo, la CPU puede estar comenzando a reprogramar el registro de dirección de dos bytes del canal 1 cuando el canal 1 recibe una petición de DMA. Si el 82C37A está habilitado (bit 2 en el registro de comando es 0), y el canal 1 está sin máscara, un servicio de DMA ocurrirá después de que solo un byte del registro de dirección ha sido reprogramado. Esta condición puede evitarse deshabilitando el controlador (configurando el bit 2 en el registro de comando) o enmascarando el canal antes de programar cualquiera de sus registros. Una vez que la programación está completa, el controlador puede ser habilitado/desenmascarado.

Después de la activación de potencia se sugiere que todas las ubicaciones internas se carguen con algún valor conocido, incluso si algunos canales no se usan. Esto ayudará en la depuración.

Descripción de Registros

Registro de Dirección Actual

Cada canal tiene un registro de dirección actual de 16 bits. Este registro contiene el valor de la dirección utilizada durante transferencias de DMA. La dirección se incrementa o decrementa automáticamente en uno después de cada transferencia y los valores de la dirección se almacenan en el registro de dirección actual durante la transferencia. Este registro se escribe o lee por el microprocesador en bytes sucesivos de 8 bits. Ver figura 6 para información de programación. También puede ser reinicializado por una autoinicialización volviendo a su valor original. La autoinicialización solo ocurre después de un EOP. En el modo memoria-a-memoria, el registro de dirección actual del canal 0 puede ser impedido de incrementar o decrementar configurando el bit de retención de dirección en el registro de comando.

Registro de Conteo de Palabras Actual

Cada canal tiene un registro de conteo de palabras actual de 16 bits. Este registro determina el número de transferencias a ser realizadas. El número real de transferencias será uno más que el número programado en el registro de conteo de palabras actual (es decir, programar un conteo de 100 resultará en 101 transferencias). El conteo de palabras se decrementa después de cada transferencia. Cuando el valor en el registro va de cero a FFFFH, se generará un TC.

Este registro se carga o lee en bytes sucesivos de 8 bits por el microprocesador en la condición de programa. Ver figura 6 para información de programación. Tras el final de un servicio de DMA también puede ser reinicializado por una autoinicialización volviendo a su valor original. La autoinicialización puede ocurrir solo cuando ocurre un EOP. Si no es autoinicializado, este registro tendrá un conteo de FFFFH después del TC.

Registros de Dirección Base y Conteo de Palabras Base

Cada canal tiene un par de registros de dirección base y conteo de palabras base. Estos registros de 16 bits almacenan el valor original de sus registros actuales asociados. Durante la autoinicialización, estos valores se usan para restaurar los registros actuales a sus valores originales. Los registros base se escriben simultáneamente con su registro actual correspondiente en bytes de 8 bits en la condición de programa por el microprocesador. Ver figura 6 para información de programación. Estos registros no pueden ser leídos por el microprocesador.

Registro de Comando

Este registro de 8 bits controla la operación del 82C37A. Es programado por el microprocesador y se borra por RESET o una instrucción de borrado maestro.

BitSignificado
0Desabilitar transferencia memoria-a-memoria (0) / Habilitar transferencia memoria-a-memoria (1)
1Desabilitar retención de dirección del canal 0 (0) / Habilitar retención de dirección del canal 0 (1)
2Habilitación del controlador (0) / Desabilitación del controlador (1)
3Temporización normal (0) / Temporización comprimida (1)
4Selección de escritura normal (0) / Selección de escritura extendida (1)
5Prioridad fija (0) / Prioridad rotatoria (1)
6Sentido DREQ activo alto (0) / Sentido DREQ activo bajo (1)
7Sentido DACK activo bajo (0) / Sentido DACK activo alto (1)

Registro de Modo

Cada canal tiene un registro de modo de 6 bits asociado con él. Cuando el registro está siendo escrito por el microprocesador en la condición de programa, los bits 0 y 1 determinan qué registro de modo de canal debe ser escrito. Cuando el procesador lee un registro de modo, los bits 0 y 1 serán unos. Ver el siguiente diagrama y figura 4 para funciones del registro de modo y direcciones.

BitsSignificado
1-000 = Seleccionar canal 0; 01 = Seleccionar canal 1; 10 = Seleccionar canal 2; 11 = Seleccionar canal 3; XX = Releer
3-200 = Transferencia de verificación; 01 = Transferencia de escritura; 10 = Transferencia de lectura; 11 = Ilegal
40 = Desabilitar autoinicialización; 1 = Habilitar autoinicialización
50 = Seleccionar incremento de dirección; 1 = Seleccionar decremento de dirección
7-600 = Seleccionar modo de demanda; 01 = Seleccionar modo simple; 10 = Seleccionar modo de bloque; 11 = Seleccionar modo cascada

Registro de Solicitud

El 82C37A puede responder a solicitudes de servicio de DMA que son iniciadas por software así como por un DREQ. Cada canal tiene un bit de solicitud asociado con él en el registro de solicitud de 4 bits. Estos son no enmascarables y sujetos a priorización por la red del codificador de prioridad. Cada bit de registro se puede establecer o restablecer por separado bajo control de software. El registro completo se borra por un reinicio o instrucción de borrado maestro. Para establecer o restablecer un bit, el software carga la forma correcta de la palabra de datos. Ver figura 4 para codificación de dirección de registro, y el siguiente diagrama para formato de registro de solicitud.

BitsSignificado
1-000 = Seleccionar bit de solicitud del canal 0; 01 = Seleccionar bit de solicitud del canal 1; 10 = Seleccionar bit de solicitud del canal 2; 11 = Seleccionar bit de solicitud del canal 3
20 = Borrar bit de solicitud; 1 = Establecer bit de solicitud

Cuando se lee el registro de solicitud, los bits 4-7 siempre se leen como unos, y los bits 0-3 mostrarán los bits de solicitud de los canales 0-3 respectivamente.

Una solicitud de software para operación de DMA puede hacerse en modos de bloque o simple. Para transferencias memoria-a-memoria, la solicitud de software para el canal 0 debe ser establecida.

Registro de Máscara

Cada canal tiene asociado con él un bit de máscara que puede ser configurado para desabilitar un DREQ entrante. Cada bit de máscara se establece cuando su canal asociado produce un EOP si el canal no se programa para autoinicialización. Cada bit del registro de máscara de 4 bits también puede ser establecido o borrado por separado o simultáneamente bajo control de software. El registro completo también se establece por un reinicio o instrucción de borrado maestro. Esto desabilita todas las peticiones de DMA de hardware hasta que una instrucción de borrado de registro de máscara permite que ocurran. La instrucción para establecer o borrar por separado los bits de máscara es similar en forma a la usada con el registro de solicitud. Consulte el siguiente diagrama y figura 4 para detalles.

BitsSignificado
1-000 = Seleccionar bit de máscara del canal 0; 01 = Seleccionar bit de máscara del canal 1; 10 = Seleccionar bit de máscara del canal 2; 11 = Seleccionar bit de máscara del canal 3
20 = Borrar bit de máscara; 1 = Establecer bit de máscara

Cuando se lee el registro de máscara, los bits 4-7 siempre se leen como unos lógicos, y los bits 0-3 mostrarán los bits de máscara de los canales 0-3, respectivamente. Los 4 bits del registro de máscara también pueden ser borrados simultáneamente mediante una instrucción de borrado de registro de máscara.

Registro de Estado

El registro de estado está disponible para ser leído desde el 82C37A por el microprocesador. Contiene información sobre el estado de los dispositivos en este punto. Esta información incluye cuál canales han alcanzado un conteo terminal y cuales canales tienen peticiones de DMA pendientes. Los bits 0-3 se establecen cada vez que se alcanza un TC por ese canal o se aplica un EOP externo. Estos bits se borran al RESET, borrado maestro, y en cada lectura de estado. Los bits 4-7 se establecen cada vez que su canal correspondiente está pidiendo servicio, independientemente del estado del bit de máscara. Si los bits de máscara están establecidos, el software puede sondear el registro de estado para determinar cuales canales tienen DREQs, y borrar selectivamente un bit de máscara, permitiendo así prioridad de servicio definida por el usuario. Los bits de estado 4-7 se actualizan mientras el reloj es alto, y se cierran en el flanco descendente. Los bits de estado 4-7 se borran al RESET o borrado maestro.

BitsSignificado
01 = El canal 0 ha alcanzado TC
11 = El canal 1 ha alcanzado TC
21 = El canal 2 ha alcanzado TC
31 = El canal 3 ha alcanzado TC
41 = Solicitud de canal 0
51 = Solicitud de canal 1
61 = Solicitud de canal 2
71 = Solicitud de canal 3

Registro Temporal

El registro temporal se utiliza para mantener datos durante transferencias memoria-a-memoria. Tras la finalización de las transferencias, el último byte movido puede ser leído por el microprocesador. El registro temporal siempre contiene el último byte transferido en la operación memoria-a-memoria anterior, a menos que sea borrado por un reinicio o instrucción de borrado maestro.

Comandos de Software

Hay comandos de software especiales que pueden ser ejecutados leyendo o escribiendo en el 82C37A. Estos comandos no dependen del patrón de datos específico en el bus de datos, sino que se activan por la operación de E/S en sí. En comandos de tipo lectura, el valor de datos no está garantizado. Estos comandos son:

Borrar Flip-Flop Primero/Último

Este comando se ejecuta antes de escribir o leer información de dirección o conteo de palabras nueva en el 82C37A. Este comando inicializa el flip-flop a un estado conocido (byte bajo primero) de modo que los accesos posteriores a los contenidos del registro por el microprocesador direccionarán bytes superiores e inferiores en la secuencia correcta.

Establecer Flip-Flop Primero/Último

Este comando establecerá el flip-flop para seleccionar el byte alto primero en operaciones de lectura y escritura en registros de dirección y conteo de palabras.

Borrado Maestro

Esta instrucción de software tiene el mismo efecto que el reinicio de hardware. Se borran los registros de comando, estado, solicitud y temporal, así como el flip-flop primero/último interno y el contador del registro de modo, y el registro de máscara se establece. El 82C37A entrará en el ciclo inactivo.

Borrar Registro de Máscara

Este comando borra los bits de máscara de los cuatro canales, permitiéndoles aceptar peticiones de DMA.

Borrar Contador de Registro de Modo

Dado que solo se dispone de una ubicación de dirección para lectura de los registros de modo, se ha incluido un contador interno de dos bits para seleccionar registros de modo durante la operación de lectura. Para leer los registros de modo, primero ejecute el comando de borrado de contador de registro de modo, luego haga lecturas consecutivas hasta que se lea el canal deseado. El orden de lectura es canal 0 primero, canal 3 último. Los dos bits inferiores en todos los registros de modo se leerán como unos.

Operación EOP Externo

El pin EOP es un pin bidireccional de drenaje abierto que puede ser impulsado por señales externas para terminar la operación de DMA. Porque el EOP es un pin de drenaje abierto, se requiere una resistencia de carga externa a VCC. El valor de la resistencia de carga externa utilizada debe garantizar un tiempo de subida de menos de 125 ns. Es importante notar que el 82C37A no aceptará señales EOP externas cuando esté en un estado SI (inactivo). El controlador debe estar activo para capturar EXT EOP. Una vez capturado, el EXT EOP será actuado durante el siguiente estado S2, a menos que el 82C37A entre en un estado inactivo primero. En este último caso, el EOP latched se borra. Los pulsos EOP externos que ocurren entre transferencias de DMA activas en modo de demanda no serán reconocidos, ya que el 82C37A está en un estado SI.

Tabla de Códigos de Comandos de Software y Códigos de Registro

OperaciónA3A2A1A0IORIOW
Leer registro de estado100001
Escribir registro de comando100010
Leer registro de solicitud100101
Escribir registro de solicitud100110
Leer registro de comando101001
Escribir bit de máscara simple101010
Leer registro de modo101101
Escribir registro de modo101110
Establecer flip-flop primero/último110001
Borrar flip-flop primero/último110010
Leer registro temporal110101
Borrado maestro110110
Borrar contador de registro de modo111001
Borrar registro de máscara111010
Leer todos los bits de máscara111101
Escribir todos los bits de máscara111110

Tabla de Códigos de Comando de Registro de Dirección y Conteo de Palabras

(la extracción OCR de esta tabla produjo un número de columnas inconsistente entre filas — algunas filas tenían un valor de más o de menos en las columnas A3-A0/Estado — y al recomponerla se detectó que los códigos de bits A3-A0 reconstruidos para algunas filas coinciden entre sí pese a corresponder a registros distintos (por ejemplo, el código de “dirección baja, canal 1” y el de “conteo de palabras bajo, canal 0” comparten el mismo patrón 0-0-1-0 tal y como se pudo extraer), lo cual no es posible en el hardware real. La columna Registro/Operación/DB0-DB7 de cada fila es fiable; los valores exactos de A3-A0 no deben darse por buenos sin contrastarlos con el datasheet original de Intel/Harris)

CanalRegistroOperaciónCSIORIOWA3A2A1A0EstadoDB0-DB7
0Dirección base y actualEscribir0100000—A0-A7
0Dirección base y actualEscribir0100001—A8-A15
0Dirección actualLeer0010000—A0-A7
0Dirección actualLeer0010001—A8-A15
0Conteo de palabras base y actualEscribir0100010—W0-W7
0Conteo de palabras base y actualEscribir0100011—W8-W15
0Conteo de palabras actualLeer0010010—W0-W7
0Conteo de palabras actualLeer0010011—W8-W15
1Dirección base y actualEscribir0100010—A0-A7
1Dirección base y actualEscribir0100011—A8-A15
1Dirección actualLeer0010010—A0-A7
1Dirección actualLeer0010011—A8-A15
1Conteo de palabras base y actualEscribir01000110W0-W7
1Conteo de palabras base y actualEscribir01000111W8-W15
1Conteo de palabras actualLeer00100110W0-W7
1Conteo de palabras actualLeer00100111W8-W15
2Dirección base y actualEscribir0100100—A0-A7
2Dirección base y actualEscribir0100101—A8-A15
2Dirección actualLeer0010100—A0-A7
2Dirección actualLeer0010101—A8-A15
2Conteo de palabras base y actualEscribir01001010W0-W7
2Conteo de palabras base y actualEscribir01001011W8-W15
2Conteo de palabras actualLeer00101010W0-W7
2Conteo de palabras actualLeer00101011W8-W15
3Dirección base y actualEscribir0100110—A0-A7
3Dirección base y actualEscribir0100111—A8-A15
3Dirección actualLeer0010110—A0-A7
3Dirección actualLeer0010111—A8-A15
3Conteo de palabras base y actualEscribir01001110W0-W7
3Conteo de palabras base y actualEscribir01001111W8-W15
3Conteo de palabras actualLeer00101110W0-W7
3Conteo de palabras actualLeer00101111W8-W15

Información de Aplicación

La figura 6 muestra una aplicación para un sistema DMA utilizando el controlador DMA 82C37A y el microprocesador 80C88. En esta aplicación, el controlador DMA 82C37A se usa para mejorar el rendimiento del sistema permitiendo que un dispositivo de E/S transfiera datos directamente hacia o desde la memoria del sistema.

Componentes

El reloj del sistema es proporcionado y se invierte para cumplir con los tiempos de reloj alto y bajo requeridos por el controlador DMA 82C37A. Se utilizan cuatro puertas OR para soportar el microprocesador 80C88 en modo mínimo al producir las señales de control utilizadas por el procesador para acceder a memoria o E/S. Un descodificador se utiliza para generar la selección de chip para el controlador DMA y la memoria. Los bits más significativos de la dirección se emiten en el bus de dirección/datos. Por lo tanto, se utiliza el cerrojo octal 82C82 para demultiplexar los bits de dirección superior.

Cuando se recibe una petición de DMA, el controlador DMA emitirá una solicitud de retención (HRQ) al procesador. Los buses del sistema no se liberan al controlador DMA hasta que se recibe un reconocimiento de retención (HLDA) del procesador 80C88. Tras recibir el reconocimiento de retención, el controlador DMA emite direcciones y señales de control para realizar las transferencias de DMA. Los datos se transfieren directamente desde el dispositivo de E/S a memoria (o viceversa) con IOR y MEMW (o MEMR e IOW) activos. Tenga en cuenta que los datos no se leen ni se impulsan fuera del controlador DMA en transferencias de datos de E/S-a-memoria o memoria-a-E/S.

Aplicación para Sistema DMA con 80C88

Diagrama de aplicación mostrando la interconexión del 82C37A, 80C88, 82C82, 82C84, decodificador y memoria/dispositivos E/S.

Aplicación para Sistema DMA con 80C286

La figura 7 muestra una aplicación para un sistema DMA usando el controlador DMA 82C37A y el microprocesador 80C286.

En esta aplicación, el reloj del sistema viene del generador de reloj 82C284, señal PCLK, que se invierte para proporcionar tiempos de configuración y retención READY adecuados al controlador DMA en un sistema 80C286. Las señales de lectura y escritura del controlador DMA pueden estar conectadas directamente a las señales de control de lectura/escritura del controlador de bus 82C288. El cerrojo octal para A8-A15 desde el bus de datos del controlador DMA está en el bus de dirección local 80C286 de modo que los de selecciones de chip de memoria aún puedan ser generados durante transferencias de DMA. El transceptor en A0-A7 se controla por AEN y no es necesario, pero puede usarse para impulsar un bus de dirección del sistema fuertemente cargado durante transferencias. Los transceptores del bus de datos simplemente aíslan el controlador DMA del bus del microprocesador local y permiten la programación en la mitad superior o inferior del bus de datos.

Diagrama de aplicación 80C286 mostrando la interconexión del 82C37A, 80C286, 82C288, 82C284, transceptores y lógica de control.

Especificaciones Absolutas Máximas - Información Térmica

Especificaciones Absolutas Máximas

ParámetroValor
Voltaje de suministro+8,0 V
Voltaje de entrada, salida o E/S-GND -0,5 V a VCC +0,5 V
Clasificación ESDClase 1

Información Térmica

Paqueteθ_JA (°C/W)θ_JC (°C/W)
Paquete CERDIP5010
Paquete CLCC6514
Paquete PDIP50N/A
Paquete PLCC46N/A

Condiciones de Operación

ParámetroRango
Rango de temperatura de almacenamiento-65°C a +150°C
Rango de voltaje de operación+4,5 V a +5,5 V
Rango de temperatura de operación C82C37A0°C a +70°C
Rango de temperatura de operación I82C37A-40°C a +85°C
Rango de temperatura de operación M82C37A-55°C a +125°C
Temperatura de unión máxima, paquete cerámico+175°C
Temperatura de unión máxima, paquete plástico+150°C
Temperatura máxima de terminales (soldadura 10s)+300°C (puntas de terminales PLCC solamente)

Características de la Matriz

ParámetroValor
Conteo de puertas2325

PRECAUCIÓN: Los esfuerzos superiores a los listados en “Especificaciones absolutas máximas” pueden causar daño permanente al dispositivo. Esta es solo una clasificación de esfuerzo y la operación del dispositivo en estas o cualesquiera otras condiciones superiores a las indicadas en las secciones operacionales de esta especificación no es implícita.

Especificaciones Eléctricas DC

VCC = +5,0 V ± 10%, TA = 0°C a +70°C (C82C37A), TA = -40°C a +85°C (I82C37A), TA = -55°C a +125°C (M82C37A)

SímboloParámetroMínMáxUnidadesCondiciones de Prueba
VIHVoltaje de entrada lógica uno2—VC82C37A, I82C37A
2,2—VM82C37A
VILVoltaje de entrada lógica cero—0,8V
VIHCVoltaje lógico uno entrada CLKVCC -0,8—V
VILCVoltaje lógico cero entrada CLK—0,8V
VOHVoltaje salida alta3,0—VIOH = -2,5 mA
VCC -0,4—VIOH = -100 µA
VOLVoltaje salida baja—0,4VIOL = +2,5 mA para todos los pines de salida excepto EOP, IOL = +3,2 mA para pin EOP 36 solamente
IICorriente de fuga de entrada-1+1µAVIN = GND o VCC, pines 6, 7, 11-13, 16-19
IOCorriente de fuga de salida-10+10µAVOUT = GND o VCC, pines 1-4, 21-23, 26-30, 32-40
ICCSBCorriente de suministro en espera—10µAVCC = 5,5 V, VIN = VCC o GND, salidas abiertas
ICCOPCorriente de suministro operativa—2mA/MHzVCC = 5,5 V, frecuencia CLK = máxima, VIN = VCC o GND, salidas abiertas

Capacitancia

TA = +25°C

SímboloParámetroTípUnidadesCondiciones de Prueba
CINCapacitancia de entrada25pFFREQ = 1 MHz, todas las mediciones se refieren a GND del dispositivo
COUTCapacitancia de salida40pF
CI/OCapacitancia E/S25pF

Especificaciones Eléctricas AC

VCC = +5,0 V ± 10%, GND = 0 V, TA = 0°C a +70°C (C82C37A), TA = -40°C a +85°C (I82C37A), TA = -55°C a +125°C (M82C37A)

Modo DMA (Maestro)

SímboloParámetro82C37A-5 (Mín)82C37A-5 (Máx)82C37A (Mín)82C37A (Máx)82C37A-12 (Mín)82C37A-12 (Máx)Unidades
(1) TAELRetraso de tiempo AEN ALTO desde CLK BAJO (S1)—175—105—50ns
(2) TAETRetraso de tiempo AEN BAJO desde CLK ALTO (SI)—130—80—50ns
(3) TAFABRetraso de dirección activa a flotante desde CLK ALTO—90—55—55ns
(4) TAFCRetraso de lectura o escritura flotante desde CLK ALTO—120—75—50ns
(5) TAFDBRetraso de datos activos a flotantes desde CLK ALTO—170—135—90ns
(6) TAHRTiempo de retención de dirección desde lectura altaTCY-100—TCY-75—TCY-65—ns
(7) TAHSTiempo de retención de datos desde ADSTB BAJOTCL-18—TCL-18—TCL-18—ns
(8) TAHWTiempo de retención de dirección desde escritura altaTCY-65—TCY-65—TCY-50—ns
(9) TAKRetraso de tiempo DACK válido desde CLK BAJO—170—105—69ns
EOP ALTO desde CLK ALTO—170—105—90ns
Retraso de tiempo EOP BAJO desde CLK ALTO—100—60—35ns
(10) TASMDirección estable desde CLK ALTO—110—60—50ns
(11) TASSTiempo de configuración de datos a ADSTB BAJOTCH-20—TCH-20—TCH-20—ns
(12) TCHTiempo CLK ALTO (transiciones 10 ns)70—55—30—ns
(13) TCLTiempo CLK BAJO (transiciones 10 ns)50—43—30—ns
(14) TCYTiempo de ciclo CLK200—125—80—ns
(15) TDCLRetraso CLK ALTO a lectura o escritura BAJO—190—130—120ns
(16) TDCTRRetraso de tiempo lectura ALTA desde CLK ALTO (S4)—190—115—80ns
(17) TDCTWRetraso de tiempo escritura ALTA desde CLK ALTO (S4)—130—80—70ns
(18) TDQRetraso de tiempo HRQ válido desde CLK ALTO—120—75—30ns
(19) TEPHTiempo de retención EOP desde CLK BAJO (S2)90—90—50—ns
(20) TEPSTiempo de configuración EOP BAJO a CLK BAJO40—25—0—ns

Especificaciones Eléctricas AC (Continuación)

SímboloParámetro82C37A-5 (Mín)82C37A-5 (Máx)82C37A (Mín)82C37A (Máx)82C37A-12 (Mín)82C37A-12 (Máx)Unidades
(21) TEPWAncho de pulso EOP220—135—50—ns
(22) TFAABRetraso de dirección válida desde CLK ALTO—110—60—50ns
(23) TFACLectura o escritura activa desde CLK ALTO—150—90—50ns
(24) TFADBRetraso de datos válidos desde CLK ALTO—110—60—45ns
(25) THSTiempo de configuración HLDA válido a CLK ALTO75—45—10—ns
(26) TIDHTiempo de retención datos de entrada desde MEMR ALTO0—0—0—ns
(27) TIDSTiempo de configuración datos de entrada a MEMR ALTO155—90—45—ns
(28) TODHTiempo de retención datos de salida desde MEMW ALTO15—15—TCY-50—ns
(29) TODVDatos válidos de salida a MEMW ALTOTCY-35—TCY-35—TCY-10—ns
(30) TQSTiempo de configuración DREQ a CLK BAJO (SI, S4)0—0—0—ns
(31) TRHTiempo de retención CLK a READY BAJO20—20—10—ns
(32) TRSTiempo de configuración READY a CLK BAJO60—35—15—ns
(33) TCLSHRetraso de tiempo ADSTB ALTO desde CLK BAJO—80—70—70ns
(34) TCLSLRetraso de tiempo ADSTB BAJO desde CLK BAJO—120—120—60ns
(35) TWRRDRetraso lectura ALTA desde escritura ALTA0—0—5—ns
(36) TRLRHAncho de pulso lectura, temporización normal2TCY-60—2TCY-60—2TCY-55—ns
(37) TSHSLAncho de pulso ADSTBTCY-80—TCY-50—TCY-35—ns
(38) TWLWHAAncho de pulso escritura extendida2TCY-100—2TCY-85—2TCY-80—ns
(39) TWLWHAncho de pulso escrituraTCY-100—TCY-85—TCY-80—ns
(40) TRLRHCAncho de pulso lectura, temporización comprimidaTCY-60—TCY-60—TCY-55—ns
(56) TAVRLDirección válida a lectura BAJO17—17—17—ns
(57) TAVWLDirección válida a escritura BAJO7—7—7—ns
(58) TRHALLectura ALTA a AEN BAJO15—15—15—ns
(59) TRHSHLectura ALTA a ADSTB ALTO13—13—13—ns
(60) TWHSHEscritura ALTA a ADSTB ALTO15—15—15—ns
(61) TDVRLDACK válido a lectura BAJO25—25—25—ns
(62) TDVWLDACK válido a escritura BAJO25—25—25—ns
(63) TRHDILectura ALTA a DACK inactivo12—12—12—ns
(64) TAZRLDirección flotante a lectura BAJO-2,5—-2,5—-2,5—ns

Modo Periférico (Esclavo)

SímboloParámetro82C37A-5 (Mín)82C37A-5 (Máx)82C37A (Mín)82C37A (Máx)82C37A-12 (Mín)82C37A-12 (Máx)Unidades
(41) TARDirección válida o CS BAJO a lectura BAJO10—10—0—ns
(42) TAWLTiempo de configuración dirección válida a escritura BAJO0—0—0—ns
(43) TCWLTiempo de configuración CS BAJO a escritura BAJO0—0—0—ns
(44) TDWTiempo de configuración datos válidos a escritura ALTA150—100—60—ns
(45) TRATiempo de retención dirección o CS desde lectura ALTA0—0—0—ns
(46) TRDEAcceso de datos desde lectura—140—120—80ns
(47) TRDFRetraso flotante datos desde lectura ALTA585585555ns
(48) TRSTDTiempo de configuración fuente de alimentación ALTA a reinicio BAJO500—500—500—ns
(49) TRSTSRetraso reinicio a primer IOR o IOW2TCY—2TCY—2TCY—ns
(50) TRSTWAncho de pulso reinicio300—300—300—ns
(51) TRWAncho de pulso lectura200—155—85—ns
(52) TWATiempo de retención dirección desde escritura ALTA0—0—0—ns
(53) TWCTiempo de retención CS ALTO desde escritura ALTA0—0—0—ns
(54) TWDTiempo de retención datos desde escritura ALTA10—10—10—ns
(55) TWWSAncho de pulso escritura150—100—45—ns

Formas de Onda de Temporización

Nota: Los diagramas de temporización muestran las relaciones de tiempo entre varias señales del 82C37A. Incluyen:

  • Figura 8: Escritura en modo esclavo
  • Figura 9: Lectura en modo esclavo
  • Figura 10: Transferencia DMA
  • Figura 11: Transferencia memoria-a-memoria
  • Figura 12: Señal READY
  • Figura 13: Transferencia comprimida
  • Figura 14: RESET

Los accesos sucesivos de lectura al 82C37A deben permitir al menos TCY como tiempo de recuperación entre accesos. Un tiempo de recuperación de TCY debe permitirse antes de ejecutar un acceso de lectura después de un acceso de escritura.

Los accesos sucesivos de escritura al 82C37A deben permitir al menos TCY como tiempo de recuperación entre accesos. Un tiempo de recuperación de TCY debe permitirse antes de ejecutar un acceso de escritura después de un acceso de lectura.

NOTA: READY no debe hacer transiciones durante los tiempos de configuración y retención especificados.

Circuitos de Prueba AC - Formas de Onda de Entrada/Salida de Prueba

Nota: Se incluyen circuitos de prueba estándar para las mediciones AC. Los resistores y condensadores de prueba especificados son:

  • Para todas las salidas excepto EOP: V1 = 1,7 V, R1 = 520 Ω, C1 = 100 pF
  • Para EOP: V1 = VCC, R1 = 1,6 kΩ, C1 = 50 pF

Las transiciones de entrada (RISE y FALL) de CLK son impulsadas a 1 ns/V. La entrada CLK debe conmutarse entre VIHC +0,4 V y VILC -0,4 V.

Circuitos de Quemado

Nota: Se proporcionan circuitos de quemado para variantes CERDIP y CLCC del 82C37A con configuraciones de resistencia y fuente de alimentación específicas para pruebas de confiabilidad de manufactura.

  • Paquete CERDIP MD82C37A: resistencia de serie R1 y R2 = 1,2 kΩ ±5%, R3 = 47 kΩ ±5%
  • Paquete CLCC MR82C37A: configuración similar con resistencias de precisión

Se usan relaciones de frecuencia F0, F1 = F0/2, F2 = F1/2, …, F15 = F14/2 donde F0 = 100 kHz ±10%.

Características de la Matriz

Dimensiones de la Matriz

Tipo: Nitruro

Espesor: 10 kÅ ±3 kÅ

Dimensiones: 148 x 159 x 19 mils (3760 x 4040 x 525 µm)

Metalización

Tipo: SiAlCu

Espesor Metal 1: 8 kÅ ±0,75 kÅ

Espesor Metal 2: 12 kÅ ±1,0 kÅ

Densidad de Corriente en el Peor Caso

0,6 x 10⁵ A/cm²

Mapa de Enmascarilla de Metalización

[Mapa de enmascarilla no reproducible en formato texto]

4-214