MARK = tensione è compresa fra -3V e -15V = livello logico “1” SPACE = tensione è compresa fra +3V e +15V = livello logico “0” Notare che, dal punto di vista elettrico, i segnali sono invertiti rispetto alla standard TTL (“1”=+5V, “0”=0V) Lo Standard USB L'Universal Serial Bus (USB) è uno standard di comunicazione seriale che permette di collegare diverse periferiche a un computer. È stato progettato per consentire a più periferiche di essere connesse mediante l'utilizzo di una sola interfaccia standardizzata e di un solo tipo di connettore, nonché per migliorare la funzionalità plug and play, consentendo di collegare o scollegare i dispositivi senza dover riavviare il computer (hot swap). Lo standard 1.0 dell'USB (gennaio 1996) supporta collegamenti a solo 1,5 Mbit/s, velocità adeguata solo per mouse, tastiere e altri dispositivi lenti. La versione 1.1 (settembre 1998) aggiunge la modalità full speed, che innalza la velocità a 12 Mbit/s. La maggior novità dello standard USB versione 2.0 (aprile 2000) è l'innalzamento della velocità teorica di trasferimento a 480 Mbit/s. Questa velocità consente all'USB di essere competitivo con lo standard Firewire 400 (IEEE 1394), che ha una velocità di trasferimento di 400 Mbit/s, benché agli effetti pratici quest'ultimo risulti più veloce e stabile del primo, soprattutto con dispositivi che manipolano flussi video. La versione 3.0 (agosto 2008) raggiunge invece la velocità di 4,8 Gbit/s, la versione 3.1 raggiunge i 10 Gbit/s, supporta i connettori reversibili, introduce il connettore tipo C. La versione 3.1 supporta anche tensioni superiori ai 5 V (12V e 20V a 5A) per poter ricaricare dispositivi che richiedono più di 10 W arrivando anche a 100 W. Le periferiche USB sono le più diffuse in quanto presentano i seguenti vantaggi: - un solo tipo di interfaccia per dispositivi assolutamente diversi tra loro: da periferiche “semplici” come mouse e tastiere, a stampanti, scanner, fotocamere, dischi... - collegamento semplice e configurazione automatica (se esistono i driver, ovviamente) - possibilità di connessione e disconnessione a macchine accese (hot plug) - forniscono l'alimentazione ai dispositivi connessi Svantaggi: - necessità di utilizzare comunque periferiche “intelligenti” anche per usi banali (es. l'accensione di un LED...) - protocollo complesso, da affrontare con hardware e software specializzati (circuiti integrati specifici) - distanza limitata a pochi metri tra dispositivi Convertitore USB/TTL Permette di ottenere un segnale in standard TTL e di realizzare una comunicazione di tipo asincrono. E' basato sul chip FTDI FT232RQ (che si trova nel connettore USB) e permette di collegare con interfaccia TTL a una porta USB; i pin di ingresso e di uscita funzionano con la logica standard TTL (5V corrisponde a “1” logico e 0V a “0”). Un lato del cavo termina con un connettore a 6 pin passo 2,54 mm con la seguente configurazione: RTS, RX, TX, 5V, CTS, GND (RTS è il cavo verde e GND è nero). Esempi di cavi NULL-MODEM Null modem è un metodo di collegamento che permette a due dispositivi data terminal equipment (DTE) (computer, terminali, stampanti ecc.) di essere connessi direttamente usando un cavo seriale. Il connettore DB-25 può essere utilizzato sia per una seriale sincrona, sia per una asincrona; il connettore DB-9 può essere utilizzato solo per una seriale asincrona. Null modem semplice asincrono (Fig.1) Lo schema più semplice per collegare fra loro due dispositivi DTE è quello di invertire la linea di trasmissione dati (TD) con quella di ricezione dati (RD) in modo da collegare la linea di trasmissione di un dispositivo DTE con la linea di ricezione dell'altro e viceversa. Ovviamente la massa (GND, piedino 7 nella seriale DB-25 e 5 in quella DB-9) deve essere connessa direttamente. Questo schema null modem non utilizza nessuna linea di sincronismo. Null modem a 3 fili con handshaking locale asincrono (Fig. 2) Un null modem senza sincronismi, come quello dello schema precedente, non sempre permette alla comunicazione di avviarsi se uno o entrambi i DTE controllano le linee di sincronismo RTS/CTS, DTR/DSR e DCD. Dove si ha un software che gestisce un controllo di flusso hardware si possono collegare linee RTS e CTS fra loro in modo che il DTE, attivando l'uscita RTS, veda il segnale CTS attivo; allo stesso modo si collegano le DTR, DSR e DCD; in questo modo quando il DTE è pronto ad inviare i dati e attiva l'uscita DTR si vede attive le linee DSR e DCD e ritiene così che esista la portante (segnale DCD) e che il DTE remoto sia operativo (DSR) e quindi invia i dati. Fig. 1 Fig. 2 Null modem a 5 fili con handshaking parziale asincrono (Fig. 3) Un controllo di flusso parziale si ottiene su un cavo a 5 fili collegando la linea RTS di un DTE alla linea CTS dell'altro DTE e viceversa. In questo modo, quando il buffer di un DTE si riempie, abbassando la linea RTS si comunica all'altro DTE di sospendere la trasmissione fino a quando l'RTS non sarà nuovamente impostato su alto; con questo schema il trasferimento dati è coperto dal controllo di flusso anche se un DTE non sa quando l'altro DTE è operativo Null modem a 7 fili con handshaking completo asincrono (Fig. 4) Un controllo di flusso completo può essere ottenuto con un cavo a 7 fili in cui le linee TD, RD, GND, RTS e CTS sono collegate come nello schema di null modem a 5 fili mentre la linea DTR di un DTE è collegata alla linea DSR e alla linea DCD dell'altro DTE. Il controllo di flusso durante la trasmissione avviene utilizzando le linee RTS e CTS come nello schema precedente, ma un DTE può in questo modo comunicare all'altro DTE quando ci sono dei dati da trasferire alzando il segnale DTR. Il segnale DTR su un lato deve essere collegato sia al DSR del DTE remoto sia al DCD dello stesso DTE remoto. Il collegamento DTR/DSR fa sì che un DTE comunichi all'altro quando ha dei dati da trasmettere mentre il collegamento DTR/DCD emula il segnale di presenza della portante in modo che il DTE ritenga che il modem remoto (emulato dal null modem) sia in linea. Fig. 3 Fig. 4