Porta parallela


Voce principale: Trasmissione parallela.

Porta parallela


Tipo Parallela (Point to Point)
Informazioni storiche
Ideatore IBM, Centronics
Data presentazione 1981
Produttore Centronics, Dataproducts,
Intel, IBM, Compaq, Nortel
In produzione No
Sostituito dal 1996 (USB)
Dimensione
Larghezza 2,3 cm
Specifiche fisiche
Reversibile No
Inseribile a caldo No
Esterno
Nº pin 25
Trasferimento dati
Velocità dati 150 Kbps (PP)
Velocità dati (max) 2 MB/sec (EPP)
Segnale audio No
Segnale video No
Segnale dati
Dispositivi (max) 2
Piedinatura

Nome Descrizione

Una porta parallela (detta anche LPT, dall'inglese Line Printer, termine derivato da Line Printer Terminal),[1] in elettronica e nell'informatica, è un'interfaccia usata inizialmente per collegare un computer a una stampante o a un plotter e in seguito, nella versione bidirezionale, impiegata anche per altre periferiche tra le quali scanner, unità ZIP, hard disk, lettori di CD-ROM e webcam[2].

La porta è nata come unidirezionale (trasmissione dati dal computer alla periferica collegata), ma è stato sviluppato anche uno standard bidirezionale (IEEE 1284).

La porta parallela è ormai considerata obsoleta: si preferiscono altri standard di comunicazione come l'USB (seriale e quindi di minore ingombro, più veloce e multifunzione).

Indice

Introduzione


La LPT consente il collegamento di diverse periferiche con possibilità di trasferire 8 bit in parallelo nello standard TTL. Sul computer la porta è un connettore femmina detto "a vaschetta" o DB25 con 25 pin.

Sulle stampanti è presente un connettore diverso detto Centronics (dal nome del primo costruttore). La presenza di 8 fili di GND permette di creare una sufficiente schermatura (cavi intrecciati a coppie) dei segnali.

Le porte parallele sui personal computer IBM


Indirizzi delle porte parallele

Nei computer IBM gli indirizzi riservati alle prime tre porte parallele (anche se nella maggior parte dei casi è presente un'unica porta) sono i seguenti:

Nome della porta Interrupt # Iniziale I/O Finale I/O
LPT1 IRQ 7 0x378 0x37f
LPT2 IRQ 5 0x278 0x27f
LPT3 IRQ 7 0x3bc 0x3bf

Per le porte eccedenti Linux lpt_driver sono consigliati gli indirizzi:

Nome della porta Interrupt # Iniziale I/O Finale I/O
LPT4 IRQ ? 0x27C 0x27F
LPT5 IRQ ? 0x26C 0x26F
LPT6 IRQ ? 0x268 0x26B

Registri delle porte parallele

Relazione tra pin dei connettori e bit dei registri per le porte parallele:

Indirizzo MSB LSB
Bit: 7 6 5 4 3 2 1 0
Base (Data port) Pin: 9 8 7 6 5 4 3 2
Base+1 (Status port) Pin: ~11 10 12 13 15
Base+2 (Control port) Pin: ~17 16 ~14 ~1

Il simbolo ~ indica che il livello logico tra il pin della porta e il bit del registro viene invertito dall'hardware.

Ogni porta LPT dispone di almeno tre diversi registri:

Piedinatura delle porte parallele

La tabella 1 riassume la piedinatura e le funzioni dei vari segnali sul connettore (o sui connettori) della porta parallela del computer e su quello della stampante.

Numero
pin
(DB25)
Numero
pin
(Centronics)
Nome
del
segnale
Direzione Registro-bit Segnale
invertito
dall'hardware
1 1 nStrobe Out Control-0 Si
2 2 Data0 In/Out Data-0
3 3 Data1 In/Out Data-1
4 4 Data2 In/Out Data-2
5 5 Data3 In/Out Data-3
6 6 Data4 In/Out Data-4
7 7 Data5 In/Out Data-5
8 8 Data6 In/Out Data-6
9 9 Data7 In/Out Data-7
10 10 nAck In Status-6
11 11 Busy In Status-7 Si
12 12 Paper-Out In Status-5
13 13 Select In Status-4
14 14 nAuto/Linefeed Out Control-1 Si
15 32 nError/nFault In Status-3
16 31 nInitialize Out Control-2
17 36 nSelect-Printer/nSelect-In Out Control-3 Si
18-25 19-30 Ground Gnd - -

Tabella 1

Note alla Tabella 1:

Nelle Motherboard più recenti il connettore LPT è presente solo internamente su connettore 26P IDC la corrispondenza dei pin è per file, ovvero 1IDC-1LPT 2IDC-14LPT 3IDC-2LPT etc.

Protocollo di comunicazione Centronics


La trasmissione di un dato dal PC alla stampante deve rispettare il protocollo Centronics (o Handshake Centronics) che può essere riassunto nei seguenti passi:

  1. Il computer controlla se la stampante è pronta verificando che nello Status port: Error = 1, Select = 1, Paper-Out = 0, Busy = 0. Se queste condizioni non sono verificate segnala la condizione di errore o guasto; se invece i bit sono corretti va al passo successivo.
  2. Il PC trasferisce un nuovo dato sui pin Data0, ..., Data7.
  3. Dopo un tempo di almeno 0,5 μs pone Strobe = 0 (impulso negativo di 1 µs) per indicare che è pronto un nuovo dato.
  4. La stampante risponde ponendo Busy = 1 per comunicare che sta acquisendo il dato.
  5. Terminata l'operazione di acquisizione pone Ack = 0 (impulso negativo di 8 µs) per comunicare l'avvenuta acquisizione del dato e appena è pronta per ricevere un nuovo dato rimette Busy = 0.
  6. Il computer ripete la sequenza dal punto 1 fino al completamento delle operazioni di trasferimento dei dati.

Va evidenziato che:

Altri usi della porta parallela


Protezione hardware per il software

Per impedire la copia cosiddetta "pirata" di software viene usato un dispositivo da collegare alla porta parallela chiamato in vari modi: chiave hardware, "dongle", "hardware token". Il software interagisce con la chiave hardware e, nel caso non la trovi collegata, impedisce all'utente di usare il programma. Il dispositivo non interferisce (o non dovrebbe interferire) con altri usi della porta in quanto "replica" il connettore femmina per collegare altre periferiche e risultare quindi trasparente per i normali utilizzi della porta. È da tempo sostituito con versioni per USB.

Acquisizione di dati

Anche quando la porta parallela era disponibile solo in forma unidirezionale (uscita) si erano realizzati sistemi per usarla per acquisire dati. Non si poteva ovviamente usare i bus dati (Data0, ..., Data7), ma si usavano i pin disponibili come ingressi e l'artificio era noto come "Nibble mode" in quanto si acquisivano in sequenza temporale quattro bit alla volta.

Interfaccia di controllo di dispositivi

L'interfaccia parallela è in grado di acquisire e di produrre segnali elettrici di controllo, è quindi utilizzabile per usi particolari come comandare relè, circuiti di controllo, programmare memorie, ecc.

Schema di realizzazione per comando esterno d'uso generale

Qualche nota esplicativa sullo schema

La porta parallela non inverte i segnali: quando nel registro dati si scrive 7 la porta assume il valore binario 00000111 e quindi si attivano i tre relè eventualmente collegati ai pin Data0, Data1 e Data2, mentre gli altri restano spenti.

Per questo motivo è stato usato il transistore Q1 in configurazione non invertente a emettitore comune.

Quando il pin della porta va alto sulla base del transistore il resistore R1 da 4,7 kΩ limita la corrente sulla base a circa 1 mA e contemporaneamente non sovraccarica la porta. Questa corrente porta il transistor in saturazione e quindi attiva il relè (che però deve assorbire una corrente massima di 20 mA). Quando invece va a zero volt il transistor va in interdizione e il relè stacca il carico.

Il diodo ai capi del relè con il catodo verso +12 Vcc serve a scaricare la corrente di autoinduzione che viene a crearsi quando il transistor Q1, da saturo (acceso), va in interdizione (spento), in modo che non si creino sovratensioni che potrebbero danneggiarlo.

Programmazione

Il seguente programma in C++ per GNU/Linux è un esempio di base per l'utilizzo della porta parallela:

#include <iostream>
#include <cstdio>
#define LPT 0x378int main()
{
  /* nel caso di funzionamento in modalità 386 (GNU/Linux) si rende necessario il comando */
  iopl(3);
  /* l'impostazione dell'i/o permission level nel processore per indicare che le operazioni di i/o sono fisiche e non virtuali */  int numero_out=0;
  outb(LPT,0);
  cin>>numero_out;
  outb(LPT,numero_out);
  getchar();
  outb(LPT,0);
  return 0;
}

La riga 00 definisce che ad LPT viene assegnato l'indirizzo esadecimale della porta parallela, 0x378.
Nella 03 definiamo una variabile int (intero), in questo caso numero_out a cui, nella riga 05, verrà assegnato un valore immesso da tastiera.

Nella 04 viene richiamata una funzione, outb(ex_port,int_out), che è già definita nella libreria standard stdio.h, in questo caso serve ad azzerare i valori "parassiti" presenti nella porta nel caso ce ne siano.

La riga 06 manda in output sulla porta il numero che noi abbiamo scelto, ma attenzione i bit disponibili sono 8 quindi il numero più alto possibile è 255, (es. se si scrive il numero decimale 159 in uscita come numero binario si ottiene 10011111, per 52 si ha 00110100 e così via). Per finire nella 08 viene resettata la porta a 0 dopo aver premuto invio come richiesto in riga 07.

Note


  1. ^ (EN) LPT - Definitions from Dictionary.com , su dictionary.reference.com. URL consultato il 09-12-2007.
  2. ^ Creative CTWC e CTWCII (WebCam con connessione parallela)
  3. ^ Il segnale viene attivato con un ritardo rispetto al bus dati in modo da permettere alle linee dati di stabilizzarsi.

Voci correlate


Altri progetti


Collegamenti esterni











Categorie: Bus paralleli




Data: 29.11.2020 12:49:24 CET

Sorgente: Wikipedia (Autori [Cronologia])    Licenza: CC-BY-SA-3.0

Modifiche: Tutte le immagini e la maggior parte degli elementi di design correlati a questi sono stati rimossi. Alcune icone sono state sostituite da FontAwesome-Icons. Alcuni modelli sono stati rimossi (come "l'articolo ha bisogno di espansione) o assegnati (come" note "). Le classi CSS sono state rimosse o armonizzate.
Sono stati rimossi i collegamenti specifici di Wikipedia che non portano a un articolo o una categoria (come "Redlink", "collegamenti alla pagina di modifica", "collegamenti a portali"). Ogni collegamento esterno ha un'icona FontAwesome aggiuntiva. Oltre ad alcuni piccoli cambiamenti di design, sono stati rimossi i media container, le mappe, i box di navigazione, le versioni vocali e i geoformati.

Notare che Poiché il dato contenuto viene automaticamente prelevato da Wikipedia in un determinato momento, una verifica manuale è stata e non è possibile. Pertanto LinkFang.org non garantisce l'accuratezza e l'attualità del contenuto acquisito. Se ci sono informazioni che al momento sono sbagliate o che hanno una visualizzazione imprecisa, non esitate a Contattaci: e-mail.
Guarda anche: Impronta & Politica sulla riservatezza.