Controlador de disquet

El controlador de disquet (FDC, de Floppy Disk Controller) és un xip especial que amb els circuits associats d'un controlador de disc, dirigeix i controla la lectura i escriptura d'una disquetera (FDD).l

Zilog Z765A
Controlador de disquetera NEC D765AC.

Encara que el sistema majoritàriament utilitzat prové del WD1771 i sobretot dels seus successors, el NEC μPD765 utilitzat en l'IBM PC i l'Intel 82072A en l'IBM AT, són dignes de menció els xips usats en l'Apple Macintosh i sobretot per la seva versatilitat els dels Commodore Amiga.

Per connectar amb les disqueteres majoritàriament fan servir un connector mascle de cable pla amb 34 pins, amb una osca guia, encara que en primitives targetes o equips com el Amstrad CPC 6128 es recorria al connector de vora de targeta amb ranura guia, idèntic al present en les unitats de 5¼ "

Aquest article conté conceptes dels FDC basats en el NEC μPD765, Intel 8072A, 82072A i els seus descendents, com van ser usats en l'IBM PC i compatibles des dels anys 1980 i 1990. Els conceptes poden o no ser aplicables o il·lustratius d'altres controladors o arquitectures.

Introducció modifica

Una simple targeta controladora de disc flexible pot suportar fins a quatre disqueteres. El controlador està connectat amb el bus de sistema de l'ordinador i apareix al CPU com un conjunt de ports d'E/S. Sovint també està connectat a un canal del controlador DMA. En el PC x86 la controlador de la disquetera utilitza l'IRQ 6, en altres sistemes poden ser usats altres esquemes d'interrupció. El controlador de disc flexible usualment realitza la transmissió de dades en la mode d'accés directe a memòria (DMA)

El següent diagrama mostra un controlador de disc flexible que comunica amb el CPU mitjançant un bus d'arquitectura estàndard de la indústria (ISA). Un arranjament alternatiu que és més habitual en els últims dissenys té el FDC inclòs dins d'un xip super I/O que es comunica a través d'un bus Low Pin Count (LPC).

Diagrama de bloc mostrant la comunicació del FDC amb la CPU i la FDD.

 
Diagrama de bloc mostrant la comunicació del FDC amb la CPU i la FDD.
 
Adaptador de controlador de disquets de 5¼" (FDC) de la IBM PC original.
 
Disquetera de 5¼" (FDD) amb un disquet parcialment inserit.

La majoria de les funcions del controlador de disc flexible (FDC) es realitza pel circuit integrat principal, però algunes són fetes per circuits externs de hardware. La llista de funcions realitzades per cada un és donada a continuació.

Funcions del controlador de disquet modifica

  • Tradueix bits de dades en el format MFM o GCR per poder gravar-los.
  • Interpreta i executa ordres com ara cercar, llegir, escriure, formatar, etcètera (seek, read, write, format, etcètera).
  • Detecta errors amb la generació de sumes de comprovació i verificació, com ara el CRC.
  • Sincronitza dades amb phase-locked loop (PLL).

Funcions del hardware extern modifica

  • Selecció de la unitat de disquet
  • Posada en marca del motor de la disquetera
  • Senyal de reset pel del controlador de disquet
  • Habilitar/deshabilitar els senyals d'interrupció i DMA del controlador de disc flexible
  • Lògica de separació de dades
  • Lògica de pre-compensació d'escriptura
  • Drivers de línia per als senyals cap el controlador
  • Receptors de línia per als senyals des del controlador

Ports d'entrada / sortida per als controladors comuns en el PCx86 modifica

El FDC té tres ports d'E/S, que són:

  • Port de dades
  • Registre de l'estat principal (MSR)
  • Port de control

Els dos primers dos estan dins del xip del FDC mentre el port de control està en el hardware associat. Les adreces d'aquests tres ports són les següents::

Adreça del port[hex]



Nom del port Ubicació Tipus de port
3F5 Registre de dades Xip del FDC E/S bidireccional
3F4 Registre de l'estat principal Xip del FDC Entrada
3F2 Port de control digital hardware associat Sortida

Ports del FDC modifica

El port 3F5 és utilitzat pel programari per a tres funcions diferents:

  • Mentre s'emet una ordre al xip del FDC, bytes de l'ordre i els seus paràmetres són emesos al xip del FDC a través d'aquest port. el FDC emmagatzema l'ordre i els diferents paràmetres en els seus registres interns.
  • Després que una ordre és executada, el xip de FDC emmagatzema en els registres interns un conjunt de paràmetres d'estat. Aquests són llegits pel CPU a través d'aquest port. Els diferents bytes d'estatus es presenten pel d'FDC en una seqüència específica.
  • En mode de transferència de dades programat i d'interrupció, el port de dades és usat per a transferir dades entre el xip del FDC i les instruccions IN/OUT de la CPU.

Registre (MSR) d'estat principal 3F4 modifica

l port 3F4 és utilitzat pel programa de lectura de la informació general sobre el xip del FDC i els FDD. Abans d'iniciar una operació de disquet el programari llegeix aquest port per confirmar l'estat de preparació del FDC i les unitats de disc per comprovar l'estat de l'ordre prèviament iniciada. Els diferents bits d'aquest registre representen el següent:

+---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---+---+---+---+---+---+---+---+
| | | | | | | |
| | | | | | | +---- 1 = el FDD 0 està ocupat en mode seek
| | | | | | +-------- 1 = el FDD 1 està ocupat en mode seek
| | | | | +------------ 1 = el FDD 2 està ocupat en mode seek
| | | | +---------------- 1 = el FDD 3 està ocupat en mode seek
| | | |
| | | +-------------------- FDC ocupat; Hi ha un comando de Lectura/Escriptura en progrés
| | | 1 = ocupat
| | | 0 = no ocupat
| | +------------------------ Mode no DMA
| | 1 = el controlador no està en mode DMA
| | 0 = el controlador està en mode DMA
| +---------------------------- VA DONAR; Indica l'adreça de la transferència entre el xip del FDC i el CPU
| 1 = controlador té dades pel CPU
| 0 = el controlador està esperant dades des del CPU
+-------------------------------- MQR; Indica que el registre de dades està llest per a la transferència de dades
1 = llest
0 = no llest

Port auxiliar modifica

Port de control digital 3F2 modifica

El port 3F2 és utilitzat pel programari per controlar certes funcions dels FDD i del xip del FDC. Les assignacions de bit d'aquest port són:

+---+---+---+---+---+---+---+---+
| 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
+---+---+---+---+---+---+---+---+
| | | | | | | |
| | | | | | +---+---- Dispositiu a ser seleccionat
| | | | | | 00 = FDD 0
| | | | | | 01 = FDD 1
| | | | | | 10 = FDD 2
| | | | | | 11 = FDD 3
| | | | | |
| | | | | +------------ RESET IC del FDC (baix)
| | | | +---------------- Habilita els senyals de la interrupció del FDC i la sol·licitud DMA
| | | |
| | | | Encén o apaga la unitat de disquet (1 = encén, 0 = apaga)
| | | +------------------------- FDD 0
| | +----------------------------- FDD 1
| +--------------------------------- FDD 2
+------------------------------------- FDD 3

Format data modifica

Unitat Format Capacitat en KiB Velocitat transferència [kbit/s] RPM Pistes Pistes/polzada Comentari
8" SD 8" SD 80 33.333 360 32 48 Només en controladors antics.[1]
5.25" SD 5.25" SD 160 125 40 Només en controladors antics
5.25" SD 171 250 - 308 35 Només en compatibles del Commodore 1541.
5.25" SD 180 150 40 Només en controladors antics
5.25" DD 5.25" DD 360 250 300 40 [2]
5.25" DD 360 300 360 40 48 [3][4]
5.25" HD 5.25" HD 1200 500 360 80 96 Fins a 83 pistes. Diferent corrent de bias[3][4]
5.25" HD 720 300 360 80 Fins a 83 pistes.[2]
3.5" DD 3.5" DD 720 250 300 80 135 Fins a 83 pistes[2][5]
3.5" DD 800 250 300 80 Usat pel Commodore 1581.
3.5" DD 880 250 300 80 Fins a 83 pistes. Usat pels computadors Amiga.
3.5" DD 360 250 300 40 [2]
3.5" DD 720 250 300 80 Fins a 83 pistes[2]
3.5" HD 3.5" HD 1440 500 300 80 135 Fins a 83 pistes[2][6]
3.5" HD 1760 250 300 80 Usat pels computadors Amiga
3.5" ED 3.5" ED 2880 1000 300 80 135 Fins a 83 pistes.[5][7]
Cares Densitat
  • SS - Simple Cara
  • DS - Doble Cara
  • SD -Simple Densitat (FM)
  • DD - Doble Densitat (MFM)
  • HD - Alta Densitat
  • ED - Densitat Estesa (enregistrament perpendicular)

Referències modifica

Vegeu també modifica

Enllaços externs modifica