Controlador de disquete

De El Museo de los 8 bits
Saltar a: navegación, buscar
Controlador de disquetera NEC D765AC.
Zilog Z765A
Controlador de disquete U8272 (VEB Mikroelektronik "Karl Marx" Erfurt)

El controlador de disquete (Floppy Disk Controller, FDC) es un chip especial y los circuitos de controlador de disco asociados, que dirige y controla la lectura y escritura de una disquetera (FDD).

Aunque el sistema mayoritariamente usado proviene del Western Digital FD1771 y sobre todo de sus sucesores, el NEC µPD765 utilizado en el IBM PC y el Intel 82072A en el IBM AT, son dignos de mención los chips usados en el Apple Macintosh y sobre todo por su versatilidad los de los Commodore Amiga Paula (MOS Technology 8364 R4).

Este artículo contiene conceptos comunes a los FDC basados en el NEC µPD765, Intel 8072A, Intel 82072A y sus descendientes, como fueron usados en el IBM PC y compatibles desde los años 1980 y 1990. Los conceptos pueden o no ser aplicables o ilustrativos de otros controladores o arquitecturas.

Introducción

Una simple tarjeta controladora de disco flexible puede soportar hasta cuatro disqueteras. El controlador está conectado con el bus de sistema de la computadora y aparece al CPU como un conjunto de puertos de E/S. A menudo también está conectado a un canal del controlador DMA. En el PC x86 la controladora de disquetes utiliza el IRQ 6, en otros sistemas pueden ser usados otros esquemas de interrupción. El controlador de disco flexible usualmente realiza la transmisión de datos en el modo de acceso directo a memoria (DMA).

El diagrama siguiente muestra un controlador de disco flexible que se comunica con el CPU mediante un bus ISA. Un arreglo alternativo que es más habitual en los últimos diseños tiene al FDC incluido dentro de un chip super I/O que se comunica a través de un bus Low Pin Count (LPC).

Diagrama de bloque mostrando la comunicación del FDC con la CPU y la FDD.
Adaptador de controlador de disquetes de 5¼" (FDC) de la IBM PC original.
Disquetera de 5¼" (FDD) con un disquete parcialmente insertado.

La mayoría de las funciones del controlador de disco flexible (FDC) se realiza por el circuito integrado principal, pero algunas son hechas por circuitos externos de hardware. La lista de funciones realizadas por cada uno es dada a continuación.

Funciones del controlador de disquete

  • Traduce bits de datos en el formato MFM o GCR para poder grabarlos.
  • Interpreta y ejecutar comandos tales como buscar, leer, escribir, formatear, etcétera (seek, read, write, format, etcétera).
  • Detección de error con la generación de sumas de comprobación y verificación, como el CRC.
  • Sincroniza datos con phase-locked loop (PLL).

Funciones del hardware externo

  • Selección de la unidad de disquete
  • Encendido el motor de la disquetera
  • Señal de reset para el IC del controlador de disquete
  • Habilitar / deshabilitar las señales de interrupción y DMA en el controlador de disco flexible
  • Lógica de separación de datos
  • Lógica de precompensación de escritura
  • Conductores de línea para señales al controlador
  • Receptores de línea para señales desde el controlador

Puertos de entrada/salida para controladores comunes en los PC x86

La FDC tiene tres puertos de la E/S. Estos son:

  • Puerto de datos
  • Registro del estado principal (MSR)
  • Puerto de control

Los dos primeros dos residen dentro de la IC del FDC mientras el puerto de control está en el hardware externo. Las direcciones de estos tres puertos son las siguientes:

Dirección del puerto
[hex]
Nombre del puerto Ubicación Tipo de puerto
3F5 Registro de datos IC del FDC E/S bidireccional
3F4 Registro del estado principal IC del FDC Entrada
3F2 Puerto de control digital Hardware externo Salida

Puertos del FDC

Puerto de datos 3F5

El puerto 3F5 es utilizado por el software para tres propósitos diferentes:

  • Mientras se emite un comando al IC del FDC, bytes del comando y sus parámetros son emitidos al IC del FDC a través de este puerto. El IC FDC almacena el comando y los diferentes parámetros en sus registros internos.
  • Después de que un comando es ejecutado, el IC de FDC almacena en los registros internos un conjunto de parámetros de estado. Estos son leídos por el CPU a través de este puerto. Los diferentes bytes de estatus son presentados por el IC de FDC en una secuencia específica.
  • En modo de transferencia de datos programado y de interrupción, el puerto de datos es usado para transferir datos entre el IC del FDC y las instrucciones IN o OUT del CPU.

Registro de estado principal (MSR) 3F4

El puerto 3F4 es utilizado por el software para leer la información general sobre el IC del FDC y los FDD. Antes de iniciar una operación de disquete el software lee este puerto para confirmar el estado de preparación del FDC y las unidades de disco para comprobar el estado del comando previamente iniciado. Los diferentes bits de este registro representan lo siguiente:

+---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---+---+---+---+---+---+---+---+
  |   |   |   |   |   |   |   |
  |   |   |   |   |   |   |   +---- 1 = el FDD 0 está ocupado en modo seek
  |   |   |   |   |   |   +-------- 1 = el FDD 1 está ocupado en modo seek
  |   |   |   |   |   +------------ 1 = el FDD 2 está ocupado en modo seek
  |   |   |   |   +---------------- 1 = el FDD 3 está ocupado en modo seek
  |   |   |   |
  |   |   |   +-------------------- FDC ocupado; Hay un comando de Lectura/Escritura en progreso
  |   |   |                              1 = ocupado
  |   |   |                              0 = no ocupado
  |   |   +------------------------ Modo no DMA
  |   |                                  1 = el controlador no está en modo DMA
  |   |                                  0 = el controlador está en modo DMA
  |   +---------------------------- DIO; Indica la dirección de la transferencia entre el IC del FDC y el CPU
  |                                      1 = controlador tiene datos para el CPU
  |                                      0 = el controlador está esperando datos desde el CPU
  +-------------------------------- MQR; Indica que el registro de datos está listo para la transferencia de datos
                                         1 = listo
                                         0 = no listo

Puerto auxiliar

Puerto de control digital 3F2

El puerto 3F2 es utilizado por el software para controlar ciertas funciones de los FDD y del IC del FDC. Las asignaciones de bit de este puerto son:

+---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---+---+---+---+---+---+---+---+
  |   |   |   |   |   |   |   |
  |   |   |   |   |   |   +---+---- Dispositivo a ser seleccionado
  |   |   |   |   |   |                  00 = FDD 0
  |   |   |   |   |   |                  01 = FDD 1
  |   |   |   |   |   |                  10 = FDD 2
  |   |   |   |   |   |                  11 = FDD 3
  |   |   |   |   |   |
  |   |   |   |   |   +------------ RESET IC del FDC (bajo)
  |   |   |   |   +---------------- Habilita las señales de la interrupción del FDC y la solicitud DMA
  |   |   |   |
  |   |   |   |                     Enciende o apaga la unidad de disquete (1 = enciende, 0 = apaga)
  |   |   |   +------------------------- FDD  0
  |   |   +----------------------------- FDD  1
  |   +--------------------------------- FDD  2
  +------------------------------------- FDD  3

Interfaz con la disquetera

Para conectarse con las disqueteras mayoritariamente usan un Conector Berg en el que se fija un Conector IDC de cable plano con 34 pines, con una muesca guía, aunque en primitivas tarjetas como la del controlador del IBM PC original o equipos como el Amstrad CPC 6128 se recurría al conector de borde de tarjeta con ranura guía, idéntico al presente en las unidades de 5¼". Los conectores que se fijan sobre el cable plano suelen corresponderse con el tipo de disquetera (hembra para borde de tarjeta en unidades de 8 y 5,25 pulgadas, hembra para Conector Berg en las de 3,5 y 3 pulgadas) aunque los compatible IBM PC entronizan usar un giro en el cable para distinguir las unidades de disco por el zócalo al que están conectadas. En los equipos con procesadores de los 386sx al Pentium aparecen cuatro conectores para dar soporte a las diferentes posiciones en que pueden estar las unidades de alta densidad, pero en los posteriores se reducen de nuevo a dos hembra para Conector Berg. Este tipo de cable se denomina conector universal.[1]

Todas las unidades se instalan con el mismo conjunto de direcciones de selección de unidad y el giro en el cable intercambia la línea de selección de unidad en el zócalo. La unidad que se encuentra en el extremo más alejado del cable también tendría una resistencia de terminación instalada para mantener la calidad de la señal. [2]

Pin Out de la Disquetera A

Pin No.

Nombre de la señal

Descripción

2

/REDWC

Density Select 1=Low/0=High

4

N/C

Reserved

6

N/C

Reserved

8

/INDEX

0=Index

10

/MOTEA

0=Motor Enable Drive 0

12

/DRVSB

Drive Select 1

14

/DRVSA

Drive Select 0

16

/MOTEB

0=Motor Enable Drive 1

18

/DIR

0=Direction Select

20

/STEP

0=Head Step

22

/WDATA

Write Data

24

/WGATE

Floppy Write Enable, 0=Write Gate

26

/TRK00

0=Track 00

28

/WPT

0=Write Protect

30

/RDATA

Read Data

32

/SIDE1

1=Side 0/0=Side 1

34

/DSKCHG

1=Disk Change/0=Ready

Odd pins 1 thru 33 are ground

Disquetera A/B con cable girado

Controlador

Unidad A

Unidad B

Descripción

Wire 1-9

1-9

1-9

1-9

No Change

Wire 10

10

16

10

Motor Enable Drive 0/1

Wire 11

11

15

11

Ground, No Change

Wire 12

12

14

12

Drive Select 0/1

Wire 13

13

13

13

Ground, No Change

Wire 14

14

12

14

Drive Select 0/1

Wire 15

15

11

15

Ground, No Change

Wire 16

16

10

16

Motor Enable Drive 0/1

Wire 17-34

17-34

17-34

17-34

No Change

Las especificaciones de los controladores o unidades contienen más descripciones de las señales de interfaz.[3]

Formatos

Unidad Formato Capacidad en KiB Transferencia
velocidad
[kbit/s]
RPM Pistas Pistas por
pulgadas
Comentario
8" SD 8" SD 80 33.333 360 32 48 Solo en controladores antiguos.[4]
5.25" SD 5.25" SD 160 125 40 Solo en controladores antiguos
5.25" SD 171 250 - 308 300 35 48[5] Solo en compatibles del Commodore 1541.
5.25" SD 180 150 40 Solo en controladores antiguos
5.25" DD 5.25" DD 360 250 300 40 [6]
5.25" DD 360 300 360 40 48 [7][8]
5.25" HD 5.25" HD 1200 500 360 80 96 Hasta 83 pistas. Diferente corriente de bias[7][8]
5.25" HD 720 300 360 80 Hasta 83 pistas.[6]
3.5" DD 3.5" DD 720 250 300 80 135 Hasta 83 pistas[6][9]
3.5" DD 800 250 300 80 Usado por el Commodore 1581.
3.5" DD 800 KB 394–590 80 Usado por los computadores Apple Macintosh.[10]
3.5" DD 880 250 300 80 Hasta 83 pistas. Usado por los computadores Amiga.
3.5" DD 360 250 300 40 [6]
3.5" DD 720 250 300 80 Hasta 83 pistas[6]
3.5" HD 3.5" HD 1440 500 300 80 135 Hasta 83 pistas[6][11]
3.5" HD 1760 250 300 80 Usado por los computadores Amiga
3.5" ED 3.5" ED 2880 1000 300 80 135 Hasta 83 pistas.[9][12]
[13]
Caras Densidad
  • SS - Simple Cara
  • DS - Doble Cara
  • SD - Densidad Simple (FM)
  • DD - Densidad Doble (MFM)
  • HD - Densidad Alta
  • ED - Densidad Extendida (grabación perpendicular)
[14]

"3-mode" floppy drive

Un disco de instalación de Microsoft Office 4.3 en japonés, provisto con formatos de 3,5" 1,2 MB y 1440 KB.

Principalmente en Japón, hay unidades de disquete de alta densidad de 3,5 "que admiten tres modos de formatos de disco en lugar de los dos habituales: 1440 KB (2 MB sin formatear), 1,2 MB (1,6 MB sin formatear) y 720 kB (1 MB sin formatear). Originalmente, el modo de alta densidad para unidades de disquete de 3,5 "en Japón solo admitía una capacidad de 1,2 MB en lugar de la capacidad de 1440 KB que se utilizaba en otros lugares.[15] Mientras que el formato más común de 1440 KB giraba a 300 rpm, el formato de 1,2 MB giraba a 360 rpm, por lo que se asemeja mucho al formato de 1,2 MB con 15 sectores por pista que se encontraban anteriormente en unidades de disquete de alta densidad de 5,25 ". Posteriormente las unidades de disquete japonesas incorporaron soporte para ambos formatos de alta densidad (así como el formato de doble densidad), de ahí el nombre 3-mode. Algunas BIOS tienen un ajuste de configuración para habilitar este modo para las unidades de disquete que lo admiten.[16]

Referencias

  1. Davis, Larry (13 de junio de 2015). «Floppy Drive Pinout, Signal names, Pin out Description and Cable twist wiring» (en inglés). www.interfacebus.com. Consultado el 27 de junio de 2021.
  2. (1992) Upgrading and Repairing PCs, Second Edition (en inglés). Que Publishing, pp. 487. ISBN 0-88022-856-3. Consultado el 27 de junio de 2021.
  3. «Product specification single-sided and double-sided TM100 series 5 1/4-inch flexible disk drives 48, 96, and 100 tracks per inch» (en inglés). Consultado el 27 de junio de 2021.
  4. hypertextbook.com - Angular Speed of a Floppy Disk
  5. «C 64 Workshop / C= 8 Bit & Peripherals» (en inglés) (19 de mayo de 1998). Consultado el 27 de junio de 2021.
  6. 6,0 6,1 6,2 6,3 6,4 6,5 «unifr.ch - sys/src/kernel/floppy.c». Archivado desde el original el 19 de julio de 2011. Consultado el 5 de mayo de 2011.
  7. 7,0 7,1 iesleonardo.info - This diskette tutorial provides technical information concerning diskettes
  8. 8,0 8,1 oldskool.org - Let HD 5,25" FDDs operate at 300 rpm instead of 360 rpm
  9. 9,0 9,1 intel.com - Intel 82077SL for Super Dense Floppies Archivado 2012-octubre-8 en la Wayback Machine.
  10. Johnson, Herbert R. (22 de diciembre de 2016). «Floppy Drive Tech Info» (en inglés). Consultado el 27 de junio de 2021.
  11. yi.org - High Density Floppy Disks Mf2hd Disk 3 5 1 Pk
  12. mcamafia.de - IBM Personal system/2, 3,5"-inch Diskette Drives, Technical Reference
  13. «Linux-2.6.17/drivers/block/floppy.c». Archivado desde el original el 23 de agosto de 2008. Consultado el 18 de marzo de 2013. 090504 gelato.unsw.edu.au
  14. «What is the difference between the traditional floppy disk and the high capacity floppy disks? - Yahoo! Answers». Archivado desde el original el 17 de octubre de 2012. Consultado el 18 de marzo de 2013. 100626 answers.yahoo.com
  15. Fix Your Own PC. Wiley.com. ISBN 978-0-470-10787-4. Consultado el 27 de junio de 2021.
  16. Wong, Adrian. «3mode floppy support». Consultado el 27 de junio de 2021.

Véase también

Enlaces externos