
Un controlador de disquete ( FDC ) es un componente de hardware que dirige y controla la lectura y escritura en la unidad de disquete (FDD) de una computadora. Ha evolucionado desde un conjunto discreto de componentes en una o más placas de circuitos hasta un circuito integrado de propósito especial (IC o "chip") o un componente del mismo. Un FDC es responsable de leer los datos presentados desde la computadora host y convertirlos al formato en disco de la unidad utilizando uno de varios esquemas de codificación, como la codificación FM (densidad simple) o la codificación MFM (densidad doble), y leer esos formatos y devolverlos a sus valores binarios originales.
Dependiendo de la plataforma, las transferencias de datos entre el controlador y el ordenador anfitrión serían controladas por el propio microprocesador del ordenador , o por un microprocesador dedicado de bajo coste como el MOS 6507 o el Zilog Z80 . Los primeros controladores requerían circuitos adicionales para realizar tareas específicas, como proporcionar señales de reloj y configurar varias opciones. Los diseños posteriores incluyeron más de esta funcionalidad en el controlador y redujeron la complejidad de los circuitos externos; las soluciones de un solo chip eran comunes a finales de la década de 1980.
En la década de 1990, el disquete fue cediendo terreno a los discos duros , que requerían controladores similares. En estos sistemas, el controlador también solía combinar un microcontrolador para gestionar la transferencia de datos a través de conectores estandarizados como SCSI e IDE que se podían utilizar con cualquier ordenador. En los sistemas más modernos, el FDC, si es que está presente, suele ser parte de las muchas funciones que proporciona un único chip de E/S .
Historia
El primer controlador de unidad de disquete (FDC) como la primera unidad de disquete (la IBM 23FD) enviada en 1971 como un componente en la Unidad de Control de Almacenamiento IBM 2385 para la unidad de disco de cabezal fijo IBM 2305 , [1] y de los modelos 155 y 165 del Sistema 370. La Unidad de Control de Almacenamiento IBM 3830, un controlador contemporáneo y bastante similar, usa su procesador interno para controlar un 23FD. [2] El FDC resultante es una implementación simple en los circuitos híbridos MST de IBM en unas pocas tarjetas de circuito impreso. [2] La unidad, el FDC y los medios eran propiedad de IBM y aunque otros fabricantes proporcionaron FDD tempranos antes de 1973, no había estándares para FDC, unidades o medios.
La introducción del sistema de entrada de datos 3740 de IBM en 1973 creó el estándar de medios básico para el disquete de un solo lado de 8 pulgadas, el disquete "Tipo 1" de IBM , que junto con los crecientes requisitos de almacenamiento de acceso directo extraíble y económico para muchas aplicaciones pequeñas provocó un crecimiento espectacular en los envíos de unidades y controladores. [3]
Antes de la introducción de versiones de circuitos integrados de propósito especial, la mayoría de los FDC consistían en al menos un circuito impreso implementado con 40 o más circuitos integrados. [4] Algunos ejemplos de dichos FDC incluyen:
- 1973: El FDC en el 3741 de IBM es un tipo de microcontrolador que acepta comandos del microprocesador del sistema ("MPU" en la terminología de IBM) y los ejecuta en el 33FD conectado de la forma más independiente posible. Acepta y ejecuta los siguientes comandos: seleccionar/detener, comprobar escritura, buscar en orden inferior, buscar en orden superior, leer datos, leer ID, escribir datos, escribir control, escribir ID, preparar, restablecer contador de acceso y nada (no-op). Se implementó utilizando los circuitos híbridos MST de IBM en la placa base más una PCB separadora de datos (VFO) independiente. [5] Este FDC de IBM estableció el disquete IBM Tipo 1 como el primer medio de disquete estándar de la industria, pero ni su interfaz con el microprocesador anfitrión ni su interfaz con el 33FD se adoptaron como estándares de la industria.
- 1974: El FD360 de iCOM contenía un FDC temprano, el CF 360, que generaba medios estándar de la industria, se conectaba a buses host estándar de la industria y admitía FDD estándar de la industria. [6] [7] Su FDC se implementó en una placa de circuito impreso de aproximadamente 12 x 9 pulgadas como una máquina de estados utilizando 30 circuitos integrados. [8]
- 1976: El FDC FD0300 de Scientific Micro Systems [9], construido sobre una placa de circuito de 8 x 12 pulgadas, contiene un microprocesador y aproximadamente 50 circuitos integrados y está diseñado para proporcionar una fácil conexión a varios buses host. [10]
- 1976: Shugart Associates presentó la primera unidad de disquete de 5¼ pulgadas junto con un FDC asociado y el primer para este factor de forma, el SA4400. [11] El SA4400 realiza funciones de control para transferir datos entre un sistema host y hasta 3 unidades de disco utilizando una interfaz de host de propósito general de 8 bits que formatea los discos de acuerdo con especificaciones de formato de medio de tipo IBM 3740 modificadas. El FDC está controlado por microprocesador e implementado en una PCB de 5,75 por 9,50 pulgadas con 45 IC. [12] La interfaz de la unidad y los factores de forma del medio se convirtieron en estándares de la industria y luego los medios evolucionaron con el tiempo para admitir varios formatos diferentes .
- 1977: Se construye el Apple Disc II FDC, la "Máquina Woz" , con solo 8 circuitos integrados. [4] [13] Al igual que el anterior IBM 3830 FDC, logró la reducción de componentes mediante el uso del procesador anfitrión y el firmware. Su interfaz con el host de Apple, así como su interfaz con la unidad de disquete de 5¼ pulgadas de Apple, es única y no se adoptó como estándar de la industria.
El primer FDC implementado como un circuito integrado de propósito especial es el Western Digital FD1771 [14] anunciado el 19 de julio de 1976. [15] El diseño inicial admitía un solo formato y requería circuitos adicionales pero con el tiempo, como familia, el diseño se volvió de múltiples fuentes y evolucionó para admitir muchos formatos y minimizar los circuitos externos.
El NEC μPD765 se anunció en 1978 [16] y en 1979 NEC introdujo el μPD72068, que era compatible con el software del μPD765 e incorporaba un PLL digital . [17] El μPD765 se convirtió en un estándar casi industrial cuando se adoptó en el IBM PC original (1981); el FDC estaba ubicado físicamente en su propia tarjeta adaptadora junto con los circuitos de soporte. Otros proveedores, como Intel, produjeron piezas compatibles. Este diseño evolucionó con el tiempo hasta convertirse en una familia que ofrecía un FDC casi completo en un chip. [18]
En marzo de 1986, Sharp había comercializado el FDC LH0110. [19]
A principios de 1987, Intel presentó el controlador de disquete integrado CHMOS 82072 para su uso en computadoras PC estándar de la industria. [20] [21]
Finalmente, en la mayoría de los sistemas informáticos, el FDC pasó a formar parte de un chip Super I/O o de un chip Southbridge . [18] [22] [23] Sin embargo, en las placas base posteriores, a medida que los usuarios de ordenadores personales fueron dejando de utilizar disquetes, esta interfaz se eliminó. Algunos fabricantes desarrollaron controladores de disquetes basados en USB . [24]
Descripción general
Un disquete almacena datos binarios no como una serie de valores, sino como una serie de cambios de valor. Cada uno de estos cambios, registrados en la polaridad del medio de grabación magnético, hace que se induzca un voltaje en el cabezal de la unidad a medida que la superficie del disco gira a su alrededor. Es la sincronización de estos cambios de polarización y los picos de voltaje resultantes lo que codifica los unos y los ceros de los datos originales. Una de las funciones del controlador es convertir los datos originales en el patrón adecuado de polarizaciones durante la escritura y luego recrearlos durante las lecturas.
Como el almacenamiento se basa en la sincronización, y esa sincronización se ve fácilmente afectada por perturbaciones mecánicas y eléctricas, la lectura precisa de los datos requiere algún tipo de señal de referencia, el reloj . Como la sincronización en el disco cambia constantemente, la señal del reloj debe ser proporcionada por el propio disco. Para ello, los datos originales se modifican con transiciones adicionales para permitir que la señal del reloj se codifique en los datos y luego se utiliza la recuperación del reloj durante las lecturas para recrear la señal original. Algunos controladores requieren que esta codificación se realice externamente, pero la mayoría de los diseños proporcionan codificaciones estándar como FM y MFM .
El controlador también proporciona una serie de otros servicios para controlar el mecanismo de la unidad en sí. Estos suelen incluir el movimiento del cabezal de la unidad para centrarlo sobre las pistas independientes del disco, el seguimiento de la ubicación del cabezal y su retorno a cero, y, a veces, funcionalmente, para formatear un disco en función de entradas simples como la cantidad de pistas, sectores por pista y cantidad de bytes por sector.
Para producir un sistema completo, el controlador debe combinarse con circuitos adicionales o software que actúen como puente entre el controlador y el sistema anfitrión. En algunos sistemas, como el Apple II y el IBM PC , esto se controla mediante software que se ejecuta en el microprocesador anfitrión del ordenador y la interfaz de la unidad se conecta directamente al procesador mediante una tarjeta de expansión . En otros sistemas, como los ordenadores Commodore 64 y Atari de 8 bits , no hay una ruta directa desde el controlador hasta la CPU anfitriona y se utiliza un segundo procesador como el MOS 6507 o el Zilog Z80 dentro de la unidad para este propósito.
El controlador original del Apple II tenía la forma de una tarjeta enchufable en el ordenador anfitrión. Podía admitir dos unidades y las unidades eliminaban la mayor parte de los circuitos integrados normales. Esto le permitió a Apple llegar a un acuerdo con Shugart Associates para obtener una unidad simplificada que carecía de la mayor parte de sus circuitos normales. [4] Esto significaba que el costo combinado de una sola unidad y una tarjeta controladora era aproximadamente el mismo que en otros sistemas, pero se podía conectar una segunda unidad por un costo adicional menor. [ cita requerida ]
El IBM PC adoptó un enfoque más convencional, su tarjeta adaptadora podía admitir hasta cuatro unidades; en el PC, el acceso directo a memoria (DMA) a las unidades se realizaba utilizando el canal DMA 2 e IRQ 6. El diagrama siguiente muestra un controlador de disquete convencional que se comunica con la CPU a través de un bus de arquitectura estándar de la industria (ISA) o un bus similar y se comunica con la unidad de disquete con un cable plano de 34 pines. Una disposición alternativa que es más habitual en los diseños recientes tiene el FDC incluido en un chip de E/S super que se comunica a través de un bus de bajo conteo de pines (LPC).

La mayoría de las funciones del controlador de disquete (FDC) las realiza el circuito integrado , pero algunas las realizan circuitos de hardware externos. A continuación se muestra la lista de funciones que realiza cada uno.
Funciones del controlador de disquete (FDC)
- Traducir bits de datos al formato FM , MFM , M²FM o GCR para poder grabarlos
- Interpretar y ejecutar comandos como buscar, leer, escribir, formatear, etc.
- Detección de errores con generación y verificación de sumas de comprobación , como CRC
- Sincronizar datos con bucle de enganche de fase (PLL)
Funciones de hardware externo
- Selección de la unidad de disquete (FDD) a direccionar
- Encendido del motor de la unidad de disquete
- Señal de reinicio para el IC controlador de disquete
- Habilitar/deshabilitar señales de interrupción y DMA en el controlador de disquete (FDC)
- Lógica de separación de datos
- Escribir lógica de precompensación
- Controladores de línea para señales al controlador
- Receptores de línea para señales del controlador
Puertos de entrada/salida para controlador x86-PC común
El FDC tiene tres puertos de E/S :
- Puerto de datos
- Registro de estado principal (MSR)
- Puerto de control digital
Los dos primeros se encuentran dentro del CI FDC, mientras que el puerto de control se encuentra en el hardware externo. Las direcciones de estos tres puertos son las siguientes.
Puerto de datos
El software utiliza este puerto para tres propósitos diferentes:
- Al enviar un comando al CI FDC, los bytes del comando y de los parámetros del comando se envían al CI FDC a través de este puerto. El CI FDC almacena los diferentes parámetros y el comando en sus registros internos.
- Después de ejecutar un comando, el CI FDC almacena un conjunto de parámetros de estado en los registros internos. Estos son leídos por la CPU a través de este puerto. El CI FDC presenta los diferentes bytes de estado en una secuencia específica.
- En el modo programado y de interrupción de transferencia de datos, el puerto de datos se utiliza para transferir datos entre el IC FDC y la instrucción IN o OUT de la CPU.
Registro de estado principal (MSR)
Este puerto es utilizado por el software para leer la información de estado general del CI FDC y las FDD. Antes de iniciar una operación con un disquete, el software lee este puerto para confirmar la condición de preparación del FDC y las unidades de disco para verificar el estado del comando iniciado anteriormente. Los diferentes bits de este registro representan:
Puerto de control digital
El software utiliza este puerto para controlar determinadas funciones de los circuitos integrados FDD y FDC. Las asignaciones de bits de este puerto son:
Interfaz con la unidad de disquete
Un controlador se conecta a una o más unidades mediante un cable plano, 50 cables para unidades de 8" y 34 cables para unidades de 3,5" y 5,25". Un "cable universal" tiene cuatro conectores de unidad, dos para cada unidad de 3,5" y 5,25". [25] En la familia IBM PC y compatibles, se utiliza una torsión en el cable para distinguir las unidades de disco por el zócalo al que están conectadas. Todas las unidades se instalan con el mismo conjunto de direcciones de selección de unidad y la torsión en el cable intercambia las líneas de selección de unidad en el zócalo. La unidad que está 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. [26]
- En las especificaciones del fabricante de las unidades o controladores host se incluyen descripciones más detalladas de las señales de interfaz, incluidos significados alternativos.
Cuando el controlador y la unidad de disco se ensamblan como un solo dispositivo, como es el caso de algunas unidades de disquete externas, por ejemplo, las unidades de disquete Commodore 1540 y USB, [27] la unidad de disquete interna y su interfaz no se modifican, mientras que el dispositivo ensamblado presenta una interfaz diferente, como IEEE-488 , puerto paralelo o USB .
Formatear datos
Son posibles muchos formatos de disquete entre sí incompatibles; además del formato físico del disco, también son posibles sistemas de archivos incompatibles.
[38]
Lados:
- SS (o 1S) – Una sola cara
- DS (o 2S) – Doble cara
Densidad:
- SD (o 1D) – Densidad única ( FM )
- DD (o 2D): Doble densidad (generalmente MFM )
- QD (o 4D) – Densidad cuádruple
- HD – Alta densidad
- ED – Densidad extra alta
- TD – Triple densidad
Unidad de disquete de 3 modos

En Japón, principalmente, existen 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 formato), 1,2 MB (1,6 MB sin formato) y 720 KB (1 MB sin formato). Originalmente, los modos de alta densidad para unidades de disquete de 3,5" en Japón solo admitían una capacidad de 1,2 MB en lugar de los 1440 KB que se utilizaban en otros lugares. [39] Mientras que el formato más común de 1440 KB giraba a 300 rpm, los formatos de 1,2 MB giraban a 360 rpm, por lo que se parecían mucho a las geometrías del formato de 1,2 MB con 80 pistas, 15 sectores por pista y 512 bytes por sector que se encontraban anteriormente en los disquetes de alta densidad de 5,25" o el formato de 1,2 MB con 77 pistas, 8 sectores por pista y 1024 bytes por sector que se encontraba anteriormente en los disquetes de doble densidad de 8". Las unidades de disquete japonesas posteriores incorporaron soporte para ambos formatos de alta densidad (así como para el formato de doble densidad), de ahí el nombre de modo 3. Algunas BIOS tienen una opción de configuración para habilitar este modo para las unidades de disquete que lo admiten. [40]
Véase también
- Western Digital FD1771
- Máquina Woz Integrada (IWM)
- Paula (controlador de Amiga)
- Interfaz de unidad de disquete
- Lista de formatos de disquetes
Referencias
- ^ "IBM 2835 Storage Control and IBM 2305 Fixed Head Storage Module Reference Manual" (PDF) . Octubre de 1983 . Consultado el 22 de julio de 2022 .
La unidad de control contiene un dispositivo de acceso directo en miniatura que proporciona almacenamiento de solo lectura para la copia de seguridad de la lógica de control y el almacenamiento de microdiagnósticos no residentes. El medio de grabación es un cartucho de disco económico recubierto de Mylar.
- ^ ab "IBM Maintenance Library – Storage Control, Model 2, Volume 2" (PDF) . 4 de junio de 1973. págs. MPL 25A, MPL 200, MPL 245, MPL 260. Consultado el 29 de julio de 2022.
El hardware ya ha añadido 64 palabras (pista 0, sector 0) y este microprograma cargará el resto del almacenamiento de control.
- ^ Porter, James N. (agosto de 1977). INFORME DE TENDENCIAS/DISCO DE 1977 – UNIDADES DE DISCO FLEXIBLES (Informe). pág. 26.
- ^ abc Gregg, Williams; Moore, Rob, eds. (1984). "LA HISTORIA DE APPLE, PARTE 2, Una entrevista con Steve Wozniak". Byte . Consultado el 6 de agosto de 2022 .
En ese momento, todos los controladores de disquete existentes eran de 40 o 50 chips...
- ^ 3741 Data Station, Theory-Maintenance. IBM. 15 de mayo de 1974. págs. 14–2.14–15 (488/599) . Consultado el 9 de agosto de 2022 .
- ^ "Primer periférico de disquete diseñado para microcomputadoras". Diseño Electrónico . 27 de septiembre de 1974. p. 138 . Consultado el 11 de agosto de 2022 .
- ^ "CONTROLADOR DE DISQUETE CF 360" (PDF) . iCOM Microperipherals . Consultado el 19 de agosto de 2022 .
El controlador es totalmente compatible con IBM 3740 y 3540 y todo el formateo y desformateo se realiza automáticamente dentro del controlador.
- ^ DIAGRAMAS ESQUEMÁTICOS Y LÓGICOS DEL MODELO FD360 (PDF) (Informe). iCOM Microperipherals. Marzo de 1976. págs. 8, 34. Consultado el 11 de agosto de 2022 .
- ^ "Discos". INTERFACE AGE . Noviembre de 1976. págs. 65–66 . Consultado el 24 de julio de 2022 .
- ^ "FD0300 FLOPPY DISK CONTROLLER" (PDF) . 1976 . Consultado el 24 de julio de 2022 .
También se proporciona una interfaz de host de propósito general para una fácil interfaz con sistemas host como minicomputadoras, buses de E/S de microprocesadores, terminales CRT, instrumentos, microprocesadores TTL/MSI, controladores industriales y otros sistemas orientados a bytes.
- ^ "Tecnología de disco de última generación" (PDF) . Byte . Diciembre de 1976 . Consultado el 1 de septiembre de 2022 .
- ^ "Controlador de unidad de disquete ministreaker SA4400" (PDF) . 1977. Consultado el 1 de septiembre de 2022 .
- ^ Craig, David T (abril de 1978). "Información de la familia de computadoras Apple II, esquema: tarjeta de interfaz del disco 2" (PDF) . Consultado el 6 de agosto de 2022 .
- ^ Joe, Jaworski (1985). "Controladores de disquete". 1985 Controller Concepts – Volume 1 (PDF) (Informe técnico). pág. SEMI-1 (67/160) . Consultado el 9 de septiembre de 2022.
Western Digital Corporation fue pionera en este campo y, en 1976, comenzó a muestrear el primer controlador de disquete LSI, el FD1771.
- ^ "Anuncios recientes de IC". Computadora . IEEE. 1976 . Consultado el 6 de agosto de 2022 .
- ^ "μPD765 CONTROLADOR DE DISQUETE DE DENSIDAD SIMPLE/DOBLE" (PDF) . NEC. Diciembre de 1978 . Consultado el 9 de septiembre de 2022 .
- ^ "Controlador de disquete μPD72068 de NEC Electronics Inc." (PDF) . Consultado el 24 de enero de 2024 .
- ^ ab Necasek, Michal (26 de mayo de 2011). «La evolución del controlador de disquete» . Consultado el 2 de septiembre de 2022 .
- ^ "Sharp 1986 Semiconductor Data Book" (PDF) . págs. 279–295 . Consultado el 14 de enero de 2024 .
- ^ Intel Corporation, "Nuevos componentes de enfoque de producto: controlador de disco de un solo chip que comprime más en menos", Solutions, enero/febrero de 1987, página 14
- ^ Kearns, Patrick, Begur, Sridhar y Fischer, Steve, "Subsistema controlador de disquete de alto rendimiento e integración con el 82072", Intel Corporation, Microcomputer Solutions, noviembre/diciembre de 1987, página 20
- ^ Mueller, Scott (2005). "Componentes de la placa base". Actualización y reparación de portátiles de Scott Mueller, segunda edición . Consultado el 5 de septiembre de 2022 .
- ^ "FDC37C78 Floppy Disk Controller" (PDF) . SMSC. 2007. Archivado desde el original (PDF) el 13 de diciembre de 2007 . Consultado el 9 de septiembre de 2022 .
Controlador de disquete CMOS 765B con licencia
- ^ "Controlador de disquete USB USB97CFDC2-01" (PDF) . keil.com . 13 de diciembre de 2001.
- ^ Davis, Larry (13 de junio de 2015). "Pinout de la unidad de disquete, nombres de señales, descripción de los pines y cableado trenzado de cables". interfacebus.com . Consultado el 29 de enero de 2019 .
- ^ Scott Mueller, Actualización y reparación de PC, segunda edición , Que, 1992, ISBN 0-88022-856-3 , página 487
- ^ Fisher, Tim (18 de enero de 2022). "¿Qué es una unidad de disquete?" . Consultado el 20 de septiembre de 2022 .
- ^ Ableman, Genna (2005). Elert, Glenn (ed.). "Velocidad angular de un disquete". The Physics Factbook . Consultado el 25 de enero de 2022 .
- ^ "C 64 Workshop / C= 8 Bit & Peripherals". 19 de mayo de 1998. Consultado el 18 de abril de 2016 .
- ^ abcdef "unifr.ch – sys/src/kernel/floppy.c". Archivado desde el original el 19 de julio de 2011 . Consultado el 5 de mayo de 2011 .
- ^ "Especificación del producto TM100-4 unidad de disco flexible 96, tpi" (PDF) . Consultado el 8 de enero de 2022 .
- ^ ab iesleonardo.info – Este tutorial sobre disquetes proporciona información técnica sobre disquetes.
- ^ ab oldskool.org – Permitir que las unidades de disco duro de 5,25" funcionen a 300 rpm en lugar de 360 rpm
- ^ ab intel.com – Intel 82077SL para disquetes superdensos Archivado el 8 de octubre de 2012 en Wayback Machine
- ^ Johnson, Herbert R. (22 de diciembre de 2016). «Floppy Drive Tech Info» (Información técnica de la unidad de disquete) . Consultado el 14 de enero de 2017 .
- ^ yi.org – Disquetes de alta densidad Mf2hd Disk 3 5 1 Pk [ enlace muerto permanente ]
- ^ mcamafia.de – Unidades de disquete IBM Personal system/2 de 3,5 pulgadas, referencia técnica
- ^ "Linux-2.6.17/drivers/block/floppy.c". Archivado desde el original el 23 de agosto de 2008.090504 gelato.unsw.edu.au
- ^ books.google.com – Repara tu propia PC por Corey Sandler
- ^ rojakpot.com – Compatibilidad con disquetes de 3 modos
Lectura adicional
- de Boyne Pollard, Jonathan (2003). "No existe nada parecido a un disquete de 3,5 pulgadas". Respuestas frecuentes .
- ISO/IEC 8860-1:1987 Doble densidad (DD)
- ISO/IEC 9529-1:1989 Alta densidad (HD)
- ISO 10994-1:1992 Densidad extra alta (ED)
- ECMA-147
- NEC μPD72070 – Floppy Disk Controller Specification Version 2.0 (PDF) . 2.0 preliminar. NEC Corporation . Octubre de 1991. Archivado desde el original (PDF) el 20 de marzo de 2017 . Consultado el 20 de marzo de 2017 .
- Shah, Katen A. (1996) [septiembre de 1992, abril de 1992]. Intel 82077SL para disquetes superdensos (PDF) (Nota de aplicación) (2.ª ed.). Intel Corporation, IMD Marketing. AP-358, 292093-002. Archivado desde el original (PDF) el 19 de junio de 2017. Consultado el 19 de junio de 2017 .
- Johnson, Herb (2009). "¿El primer controlador de disquete para CP/M y S-100?" . Consultado el 9 de septiembre de 2022 .
Enlaces externos
- viralpatel.net Un tutorial sobre programación de controladores de disquetes
- isdaman.com Programación de controladores de disquetes