View Single Post
Old 17-02-2004, 22:02   #4
Mistral PaolinuX
Senior Member
 
Iscritto dal: Oct 2000
Città: Bergamo
Messaggi: 5869
LA DINAMICA DI LETTURA/SCRITTURA

LA DINAMICA DI LETTURA
Sicuramente il punto di partenza per affrontare la questione del funzionamento delle unità ottiche è il laser utilizzato per la lettura di un CD (di qualunque formato). I lettori CD usano un laser avente lunghezza d'onda pari a 780 nm (nanometri), che è invisibile ad occhio nudo (lo spettro di visibilità della luce dell'occhio umano va infatti dai 400 ai 700 nm, con punte di 720 nm). Per completezza, si deve aggiungere che i DVD usano un laser rosso visibile avente lunghezza d'onda pari a 635 o 650 nm. Questo laser passa attraverso lo strato di policarbonato, rimbalza sullo strato riflettivo e quindi passa nuovamente attraverso il policarbonato. La quantità di luce filtrata attraverso questi passaggi viene catturata da un fotosensore che si trova nella testina del device. A seconda della maggiore o minore intensità del raggio riflesso, il fotosensore capisce se il laser si trova su un pit o su una land.

PITS E LANDS
I pits e le lands non corrispondono ai dati 0 e 1 della sequenza binaria che viene scritta su CD. E' la transizione tra pits e lands (e viceversa, tra lands e pits) a generare il dato binario. Quindi sono fondamentali l'inizio e la fine di un pit. Il numero di dati 0 compreso tra l'inizio e la fine di ogni pit è determinato per mezzo di un precisissimo timing, che produce un segnale elettrico. Per chiarire il funzionamento di questa procedura, è sufficiente un semplice esempio: avvicinando un orologio analogico all'orecchio, ovviamente, ad ogni secondo si sente il tic prodotto dal meccanismo dell'orologio. L'inizio e la fine di ogni pit corrispondono a quel tic, mentre le lands ed i pits corrispondono al silenzio che intercorre tra un tic e l'altro. Ma è chiaramente necessario che i pits e le lands abbiano una determinata lunghezza, o meglio, una serie di lunghezze determinate a priori, perché lunghezze arbitrarie non potrebbero permettere la corretta lettura del CD: se si pensa ancora all'orologio, ogni secondo dura un determinato tempo T, e non può assolutamente verificarsi che un secondo duri Tx2 o T/3: in tal caso l'orologio è chiaramente guasto e va avanti od indietro (nel campo dei CD l'orologio che va avanti o indietro è il jitter). E' a questo punto che entra in gioco la codifica EFM.

L'EFM (EIGHT TO FOURTEEN MODULATION)
L'EFM è il metodo che assicura che la lunghezza dei pits sia sempre compresa entro un determinato intervallo. Tramite questo metodo di codifica dei dati, 1 byte (formato da una struttura di 8 bit) viene convertito in una struttura di 14 bit (o meglio channel bit) tramite una tabella di riferimento (che si trova nel Red Book) che contiene 256 possibili combinazioni. In questa struttura di 14 bit i dati 0 indicano la presenza di un pit o di una land, mentre i dati 1 indicano la presenza di una transizione tra un pit ed una land (o tra una land od un pit). La modulazione EFM impone che tra le transizioni (e quindi tra due dati 1) siano sempre presenti un minimo di 2 ed un massimo di 10 dati 0, il che significa che possono esistere solo nove diverse lunghezze predefinite di transizioni. Per evitare che una struttura da 14 bit finisca con un 1 e la struttura (sempre da 14 bit) successiva cominci con un altro dato 1, vengono interposti tra ogni struttura 3 "merging bits" o bit di fusione, formati da tre dati 0.
Il funzionamento di questo metodo di codifica può essere approfondito. Ricordando che si lavora sempre su una base binaria (e quindi si hanno solo 2 tipi di dati a disposizione: 0 e 1), si deve notare che i vari standard dei CD impongono che tra ogni dato 1 vi sia sempre un minimo di due ed un massimo di dieci dati 0 (quindi un dato corretto è, per esempio, 1001 mentre un dato 1100 è errato). Ne risulta che il pit più corto è formato da dato 100 (uno-zero-zero) ed il più lungo da un dato 10000000000 (uno-zero-zero-zero-zero-zero-zero-zero-zero-zero-zero). Dato che è richiesto un tempo T (che è pari a 231 nanosecondi alla velocità di 1x) affinché il laser legga un bit, i pits 100 possono essere chiamati 3T pits (è necessario un tempo Tx3 per la lettura, poiché nel tempo T viene letto un solo bit) ed i pits 10000000000 possono essere chiamati 11T pits (è necessario un tempo Tx11 per la lettura). La modulazione dei dati secondo il formato EFM avviene tramite la trasformazione di 8 data bit in blocchi di 14 channel bit, che vengono uniti tra di loro da altri 3 bit, detti bit di fusione (merging bits), in modo che la lunghezza dei dati appartenga sempre ad un insieme predeterminato di lunghezze ed il timing di lettura sia facilitato, perché se durante la lettura il device trova pits più corti dei pits 3T o più lunghi dei pits 11T, capisce che la velocità di rotazione del CD è cambiata, e vengono eseguiti gli aggiustamenti necessari. L'utilizzo di strutture formate da 14 bit si spiega con il fatto che in questo modo si ottengono fino a 2^14 (=16384) possibili combinazioni di 14 channel bit, il che permette solo un certo numero di combinazioni tra i bit, limitando a 9 i possibili tipi di transizione tra pits e lands. Quando le strutture formate dai 14 channel bit vengono raggruppate per mezzo dei merging bits, può accadere che vengano generate delle combinazioni errate, per esempio 0100100010000[101]001000100000: l'errore è dato dallo 101 segnato tra le parentesi quadre, perché tra due dati 1 compresi nella "porzione" 101 devono esserci almeno due dati 0 (quindi il dato corretto sarebbe, come minimo, 1001). In questo caso si ricorre nuovamente ai merging bits per ottenere un dato binario corretto. Tramite questo tipo di modulazione, anche se c'è un elevato numero di bit da codificare, la frequenza d'uscita più elevata non supera una certa soglia, e questo permette una maggiore accuratezza nella lettura dei dati senza che ci siano problemi a mantenere il clock durante la lettura.

LA DEMODULAZIONE
I dati modulati secondo lo schema EFM vengono infine demodulati, e passati al CIRC per la correzione d'errore.

I FRAMES
La codifica EFM si svolge a livello di frames. Spesso si crede che un frame equivalga ad un settore, ma non è così: un frame è infatti formato da 24 bytes riservati ai dati dell'utente, 1 byte per i dati di sottocanale e 8 bytes per la correzione d'errore, per un totale di 33 bytes. A livello di lettura, ogni frame è preceduto da 24 bit di sincronizzazione e 3 bit di fusione. Per ciascun frame i 24 bit di sincronizzazione sono disposti in uno schema che è assolutamente unico nel CD, e questo permette alla testina del lettore di posizionarsi correttamente all'inizio di ogni frame.

I SETTORI
Un settore è formato da 98 frames da 24 bytes, quindi un settore contiene 2352 bytes e 98 bytes di sottocodice. Il settore è l'unità minima che un software può manipolare. A questo punto s'impone però una distinzione tra CD-DA e CD-ROM
  • CD-DA -> un settore in un CD-DA è formato da tutti i 2352 bytes. L'audio stereo a 16 bit necessita di 4 bytes per ogni sample, quindi ci sono 588 (=2352/4) samples per ogni settore. Alla velocità di 75 settori per secondo, ci sono 44100 samples al secondo (ecco spiegati i 44.1 KHz). Il lettore CD passa i samples attraverso il circuito DAC (Digital/Analog Conversion) o attraverso un'uscita S/PDIF mentre i dati del sottocanale vengono inviati al display, in modo che sia possibile l'aggiornamento del tempo di lettura.
  • CD-ROM -> un settore in un CD-ROM contiene 2048 bytes, lasciando i rimanenti 304 bytes alla correzione d'errore. Ogni settore è preceduto da un header di 16 bytes, che consta di 12 bytes per la sincronizzazione, 3 bytes per l'indirizzamento e 1 byte per la mode del CD. Il byte per la mode determina il contenuto dei rimanenti 2336 bytes che formano il settore.
Anche qui s'impone una distinzione:
  • Mode 0 -> dati vuoti. Non ha alcuna utilità nel processo di scrittura di un CD
  • Mode 1 -> E' la modalità tipica di ogni CD-ROM, che si compone di 2048 bytes per i dati utente, 4 bytes per l'EDC (Error Detection Code, un CIRC a 32 bit), 8 bytes riservati (tutti contenenti dati 0), ed il resto riservato alla parità.
  • Mode 2 à Tutti i 2336 bytes sono riservati ai dati. E' la cosiddetta modalità CD-ROM/XA

L'ECC (Error Correction Code) di un CD-ROM Mode 1 è del tutto indipendente rispetto al CIRC, dato che usa un altro codice (il Reed-Solomon Production Code, con acronimo RSPC) per raggiungere il (ragguardevole) risultato di 1 errore ogni 10^15 bit. Il CD-ROM/XA (acronimo di eXtended Architecture) è utilizzato per la compressione Audio/Video e ha un sub-header di 8 bytes, 2324 bytes per i dati e possono inoltre essere aggiunti 4 bytes per l'EDC (Error Detection Code). Questo significa che scrivendo un CD-ROM/XA si può decidere di riservare più spazio alla correzione d'errore od ai dati.

Una precisazione finale: ho sempre fatto riferimento a pits e lands, ma com'è noto un CD-W casalingo non può creare i veri e propri pits. Viene però alterato lo stato fisico del CD, ma si deve distinguere tra
  • CD-R -> Il laser di scrittura riscalda il dye organico fino a 250°C, causando lo scioglimento o la decomposizione chimica per creare una bruciatura nel layer. Questa bruciatura diminuisce la riflettività, e viene interpretata come un pit in fase di lettura.
  • CD-RW -> Il laser cambia lo stato del materiale da cristallino (che ha una riflettività del 25%) ad amorfo (riflettività pari al 15%). Il procedimento avviene portando il materiale oltre al suo punto di fusione (tra i 500°C ed i 700°C) per ottenere il passaggio allo stato amorfo o riscaldando il materiale fino al suo punto di transizione (200°) per ottenere il passaggio allo stato cristallino

Ultima modifica di Mistral PaolinuX : 21-02-2004 alle 14:20.
Mistral PaolinuX è offline