|
Appunti informatica |
|
Visite: 1723 | Gradito: | [ Medio appunti ] |
Leggi anche appunti:Il dispositivo di collegamento tra nodi: ELABNODEIl dispositivo di collegamento tra nodi: ELABNODE Con i dispositivi MMU/BUS Protezione e SicurezzaProtezione e Sicurezza Si parla di protezione in presenza di meccanismi, messi Il computerIL COMPUTER ll personal computer (in italiano elaboratore personale), |
LA PORTA PARALLELA
La porta parallela (detta anche LPT) è un'interfaccia usata inizialmente per collegare un computer a una stampante o ad un plotter. Ma quando i costruttori si sono accorti della praticità di questo sistema di comunicazione, hanno ben pensato di incrementare le sue capacità e di renderla bidirezionale, ossia in grado di inviare dati e riceverli in ingresso.
Attualmente questo tipo di porta è considerata obsoleta: nonostante permetta la trasmissione di ben 8 bit contemporaneamente, la tecnologia USB ha superato di molto le capacità della porta parallela, e inoltre è meno ingombrante, in quanto seriale. Nelle schede madri di nuova generazione i connettori si vedono sempre più raramente, e nemmeno i cavi di collegamento sono facilmente reperibili.
Ma questa è una risorsa importante per tutti quelli che hanno il bisogno di avere a disposizione tutta la potenza di un personal computer per controllare ogni tipo di periferica.
Presenta una velocità maggiore di quella seriale, anche se si riscontrano due importanti problemi: il primo si tratta dell'affidabilità dei dati, il secondo lo spazio occupato.
Infatti,si
ha la sicurezza dell'integrità dei dati solamente se il cavo non supera i
Il secondo svantaggio è il numero di fili da cui il cavo è composto: per garantire il trasferimento dei dati sono necessari molti fili (almeno 18, dovendo garantire anche la massa).
Per questi
motivi si preferisce adoperare
Essendo collegata direttamente alla scheda madre, è necessario prestare particolare attenzione allo schema circuitale, perché un assorbimento improvviso di corrente da parte di un utilizzatore potrebbe portare ad un crash l'intera porta, con possibili danni alla scheda madre del computer.
Va quindi trattata con delicatezza, e non sottoposta a tensioni troppo elevate.
La corrente erogata si aggira intorno ai 3mA, assolutamente insufficienti per alimentare qualsiasi tipo di dispositivo, ma sufficiente invece per pilotare dei transistor come interruttori digitali, proprio come fa QWEWER!
Comandare la porta parallela è estremamente facile, perché essa fa riferimento a dei registri software modificabili direttamente dall'utente attraverso delle PROCEDURE ASSEMBLY, che vedremo meglio nella sezione del programma. All'accensione del computer, il BIOS rileva la presenza della porta (da zero fino a tre, numerate progressivamente) e ne inizializza automaticamente i registri.
È qui illustrata la piedinatura. Visto che è stata concepita per il controllo delle stampanti, non dobbiamo stupirci se alcuni piedini di controllo abbiano nomi ambigui.
Il primo pin, o STROBE, nel caso di una stampante segnala che sul bus dati è presente un dato corretto (attivo basso).
D0-D7: pin di output.
ACK: ingresso attivo basso; indica al PC che il dato presente sul bus è stato letto e che la stampante è pronta per ricevere altri dati; consente l'abilitazione della richiesta d'interrupt alla CPU.
Busy: ingresso, attivo alto; indica che la stampante è occupata e non può ricevere altri dati, il segnale va alto durante le operazioni di trasferimento e ritorna basso appena la stampante è nuovamente disponibile per ricevere altri dati.
Paper-Out: ingresso attivo alto. Indica al PC che la stampante è senza carta.
Select: ingresso attivo alto. Indica al PC che la stampante è collegata e pronta a funzionare.
Auto/Linefeed: uscita, attivo bassa; indica alla stampante la modalità di avanzamento carta; quando è attivo l'avanzamento è generato da 0x0d (carriage return), quando è alto l'avanzamento sarà operato dalla stampante solo in seguito alla ricezione del carattere 0x0a (line feed o newline).
Error/Fault: ingresso, attivo basso, comunica al PC che qualcosa non va nella stampante.
Initialize: uscita, attivo basso, serve a interrompere un'eventuale stampa in corso svuotando il buffer della stampante e a riportarla allo stato in cui si trovava dopo l'accensione.
Select-Printer: uscita, attivo basso, abilita la stampante a ricevere i dati.
Nel corso del tempo, la porta parallela è stata soggetta a diversi cambiamenti ed evoluzioni, mirati ad estendere le sue funzioni.
Si possono individuare tre tipi di porta parallela: in ordine cronologico, SPP, EPP, ECP.
EVOLUZIONE, GLI INDIRIZZI E I REGISTRI UTILIZZATI
Il primo tipo in
questione,
Le potenzialità di questa porta erano ridotte, si presentava come porta monodirezionale (tipicamente dal computer alla stampante) e la velocità di scrittura andava tipicamente dai 50kb/s ai 150kb/s.
Per la corretta sincronizzazione con la stampante, era comunque necessario uno scambio di segnali di handshacking, effettuato attraverso le uniche 5 linee di ingresso della porta. Sebbene il trasferimento dei dati attraverso la porta parallela SPP sia monodirezionale ci sono i presupposti per collegare e gestire il trasferimento bidirezionale dei dati tra il computer ed un secondo dispositivo. I primi coraggiosi programmatori idearono uno stratagemma, chiamato NIBBLE MODE, che permetteva la lettura di 4 bit alla volta.
Anche io, per la sua semplicità di gestione, ho utilizzato questo metodo:
per leggere un byte,
basta multiplexare le 4 linee del Registro
di Stato (10,11,12,13) e acquisire un nibble (ossia una serie di 4 bit)
alla volta. Per questo scopo torna utile il quadruplo doppio deviatore (da
Il multiplexer opera la doppia lettura in funzione del valore applicato al suo piedino di selezione (pilotato del piedino di STROBE): con uno 0 sposta in uscita i 4 bit letti dagli ingressi di tipo 'A' con un 1 sposta in uscita i 4 bit letti dagli ingressi di tipo 'B'.
Il Sistema Operativo e i nostri programmi sono sempre in grado di conoscere il numero di porte parallele presenti nel sistema, consultando le variabili di sistema caricate dal BIOS nelle fasi preliminari che seguono l'accensione del computer. Per farlo, semplicemente il microprocessore tenta di scrivere nei loro registri e, se l'operazione va a buon fine, vuol dire che la porta parallela esiste e può essere utilizzata.
Il Sistema riserva, per le porte parallele, 3 intervalli di 8 indirizzi di I/O ciascuno, cioè ne riconosce solo fino a 3:
Un tempo ormai remoto era possibile trovare una porta parallela tra i circuiti della scheda grafica; si tratta di antichissime schede monocromatiche, per cui 03BCH ÷ 03BFH sono indirizzi di I/O praticamente non più utilizzati.
Oggi la porta parallela è, di norma, integrata nella scheda madre; poiché l'indagine sul primo gruppo di indirizzi non può dare esito positivo, sarà certamente il secondo (0378H ÷ 037FH) ad essere associato alla porta0 (per il BIOS) o LPT1 (per il DOS).
Le moderne porte parallele (EPP/ECP) hanno rispettivamente otto e 6 Registri, sebbene nella pratica comune (SPP) ne vengano usati solo 3.
La tabella in alto mostra i registri della porta SPP.
Questi sono anche i registri utilizzati per il controllo del robot QWEWER.
Registro 0378H: il movimento dei motori, attivazione del ponte H e l'ADC
Registro 0379H: acquisizione del valore dell'intensità luminosa attraverso il metodo NIBBLE.
Registro 037AH: pilotaggio del pin SELECT del multiplexer 74LS157.
La scelta di utilizzare proprio questi registri è data dalla necessità di mantenere una certa retrocompatibilità anche con le porte parallele più vecchie, supportate da sistemi operativi come WINDOWS98. Questo perché è più facile, con le architetture dei processori della famiglia Intel 80x86, agire direttamente da software nei registri di sistema e scrivere su di essi a proprio piacimento.
Successivamente, con l'introduzione di schede madri più avanzate, la versione SPP venne dotata di registri più estesi, in grado di gestire in modo più efficiente il flusso dei dati in entrata e in uscita.
Nel marzo 1994 giunse finalmente la nuova versione migliorata, detta EPP(Enhanced Parallel Port).
La sua caratteristica principale è quella di offrire un bus dati bidirezionale veloce, disponendo di un Registro dati in grado di essere sia scritto sia letto; le altre linee di controllo svolgono lo stesso compito di prima, almeno dal punto di vista della eventuale stampante ad esse collegata, ma con significati leggermente diversi, nel contesto di una migliorata funzionalità.
Ad esempio, la velocità di scrittura ora si aggira dai 500kb/s ai 2Mb/s, con punte massime fino a 10Mb/s, e le procedure di handshaking necessitano di una sola istruzione I/O. Dispone di 8 Registri, di solito individuati dagli indirizzi Base standard, con la possibilità di essere riallocati a piacimento. I primi 3 Registri sono ovviamente gli stessi della porta SPP, mentre gli altri supportano le novità della porta.
Le porte EPP hanno 8 Registri; ritenendo che l'indirizzo Base (il primo della serie) sia 0378H per la porta0 (LPT1) e 0278H per l'eventuale porta1 (LPT2).
I primi 3 Registri sono identici a quelli delle SPP; i 2 Registri successivi, 037BH/027BH e 037CH/027CH, sono in ogni caso usati per la gestione bidirezionale della scrittura o della lettura rispettivamente di un indirizzo o di un dato con una sola istruzione di I/O; è sufficiente infatti eseguire un'istruzione di OUT di IN per mettere in atto automaticamente tutte le operazioni necessarie per la gestione del trasferimento.
L'ultimo standard di porta parallela, chiamata anche ECP - Extended Capabilities Port, venne definito insieme alla precedente, ma questa versione è più mirata per gli ambienti plug-and-play e Windows, incrementando le prestazioni della sua interfaccia bidirezionale.
Prevede l'impiego del DMA (Direct Memory) e dispone di Registro FIFO (First Input First Output) in grado di contenere fino a 16 bytes sia in ricezione che in trasmissione, e assicura una velocità di 2,4Mb/s.
È in grado di trattare i dati con codifiche di compressione RLE (Run Lenght Encoding) prima di spedirli a destinazione, al fine di ottimizzare il rendimento del collegamento; ideale per periferiche come Scanner e Stampanti, chiamate a gestire informazioni molto spesso ripetitive.
Le ECP usano la tecnica dell'indirizzamento logico del canale dati, ottimizzando la gestione di periferiche multifunzione.
i PC di nuova generazione sono ora in grado di organizzare la decodifica di un numero maggiore di indirizzi dando potenzialmente luogo ad una enorme quantità di indirizzi; tuttavia per assicurare la compatibilità essi sono da ritenersi raggruppati in pagine da 1024 indirizzi ciascuna.
L'accesso ai registri con i nuovi indirizzi è comunque possibile solo se il controller della scheda di I/O è in grado di riconoscerli; quello delle porte ECP è proprio di questo tipo.
In ogni caso, l'utente può sempre decidere di modificare il tipo della sua porta parallela a piacimento, impostando il tipo desiderato mediante l'utility di Setup, tenendo premuto il tasto Canc (Del) durante la fase di caricamento iniziale.
Per quanto riguarda il pilotaggio di QWEWER, ad ogni piedino corrisponde una specifica funzione. Andiamo ad analizzarli.
SELECT MUX A/B: seleziona quale parte del byte convertito avere disponibile in entrata. 0: nibble meno significativo.
1: nibble più significativo.
ENABLE M1: attiva il ponte H per permettere il movimento al motore della torretta.
0:spento 1:attivo
DIREZIONE M1: dirige la direzione del motore della torretta. 0:destra 1:sinistra
ENABLE M2: come M1, ma comanda il motore del braccio
DIREZIONE M2: come sopra.
0:alto 1:basso
ENABLE ADC: attiva il convertitore analogico/digitale per permettergli di operare.
0:spento 1:acceso
START ADC: comincia la conversione. Per farlo è necessario un passaggio di livello da basso a alto. Per terminare la conversione si riporta a livello logico basso.
INPUT 1/2/3/4: linee di ingresso dati
FINECORSA:piedino che, portato a massa (ossia quando tocca il cavo di fine corsa), avverte il programma, che di conseguenza ne blocca il movimento orizzontale.
GND: massa del microprocessore, da mettere in comune con quella del circuito.
Appunti su: |
|