torna a frapec
Un messaggio composto da caratteri di 8 bit può essere trasmesso usando 8 canali trasmissivi su cui inviare gli 8 bit dei singoli caratteri. Gli 8 canali trasmissivi possono essere 8 coppie di fili o 8 fili singoli più un filo comune come riferimento di tensione. Questa tecnica prende il nome di trasmissione parallela. La trasmissione seriale usa un solo canale trasmissivo, ad esempio una coppia di fili, su cui vengono inviati, uno dopo l'altro, gli 8 bit di un carattere.
La trasmissione seriale può essere sincrona o asincrona. La trasmissione seriale asincrona prevede che vengano trasmessi e ricevuti gli 8 bit di un byte alla volta. Per il sincronismo gli 8 bit sono preceduti da un bit di start e sono seguiti da un bit di stop. La trasmissione seriale sincrona consiste nel formare pacchetti di byte da trasmettere preceduti da una sequenza di bit aggiuntivi per stabilire il sincronismo iniziale e una tecnica di codifica dei dati per mantenere il sincronisco. Per mantenere il sincronismo tra il trasmettitore e il ricevitore è richiesto che nel flusso dei dati siano presenti delle variazioni. Queste permettono al ricevitore di regolare il proprio oscillatore di clock.
Al termine della trasmissione di un byte si invia un bit di stop, la cui durata minima può essere 1, 1.5 o 2 tempi di bit. Il bit di stop è rappresentato dallo stato logico 1 sulla linea (che in telefonio è denominato mark). Lo stesso livello indica la stato idle della linea, cioè assenza di trasmissione. In pratica il bit di stop viene prolungato finchè non inizia la trasmissione del byte successivo.
Per permettere al ricevitore di sincronizzarsi (cioè di avvertirlo che deve leggere i bit sul canale), prima del primo bit di dato viene trasmesso un bit di start, rappresentato da una transizione dallo stato logico 1 allo stato logico 0 della linea (in telefonia il livello basso sulla linea è denominato space) per la durata di un tempo di bit. Poi vengono inviati i bit di dato e l'eventuale bit di parità.
Mark | |||||||||||
bit di start |
bit 0 | bit 1 | bit 2 | bit 3 | bit 4 | bit 5 | bit 6 | bit 7 | parità | bit di stop | |
← | formato di un carattere in modalità seriale asincrona | → |
Nella trasmissione sincrona i dati sono inviati tramite un continuo flusso di bit (trama). Per mantenere il ricevitore sincronizzato con il trasmettitore, ogni blocco di dati è preceduto da uno o più caratteri di sincronismo, in genere codificati con una sequenza di uni e zeri che li identificano univocamente come tali. Il ricevitore ricava dai caratteri di sincronismo un segnale di clock locale che pilota la lettura dei bit durante la ricezione del blocco di dati.
La trasmissione sincrona richiede circuiti più complessi e costosi sia per la bufferizzazione dei dati sia per la generazione del segnale di clock che deve essere sufficientemente stabile da rimanere in fase con il trasmettitore almeno per tutto il tempo che intercorre tra la trasmissione di un gruppo di byte di sincronismo e il successivo.
Il controllo di flusso (handshake) consente al ricevitore di segnalare al trasmettitore la richiesta di interrompere o riprendere la trasmissione. Questo è necessario perchè è possibile che il ricevitore elabori i dati in arrivo più lentamente di quanto il trasmettitore li generi. Casi tipici sono rappresentati dal collegamento computer-stampante.
Esistono tre meccanismi di controllo di flusso: segnali hardware RTS/CTS (spesso detto handshake hardware), e trasmissione dei caratteri XON/XOFF o ENQ/ACK.
RTS/CTS
Molte interfacce seriali dispongono di una coppia di fili corrispondenti ai segnali RTS (Request To Send) e CTS (Clear To Send). Quando un dispositivo ricevente rileva l'attivazione del segnale RTS da parte del dispositivo trasmittente ed è pronto per ricevere, allora risponde attivando il CTS. Per interrompere l'invio dei dati da parte del trasmettitore, il ricevitore può disattivare il segnale CTS, e riattivarlo quando sarà nuovamente in grado di ricevere i dati.
L'utilizzo dei caratteri XON e XOFF (codici 17 e 19 della tabella ASCII, identificati come DC1 e DC3 - device control numero 1 e 3 - e corrispondenti ai codici di controllo CTRL-Q e CTRL-S) permette di realizzare un controllo dì flusso senza bisogno di segnali hardware dedicati, in quanto XON e XOFF viaggiano sugli stessi canali dei dati. Il ricevitore trasmette un XOFF quando non è più in grado di ricevere i dati e un XON quando è nuovamente in grado di riceverli.
Trasmettitore | Ricevitore | ||
---|---|---|---|
1 | Invia i dati | … dati … | Riceve i dati |
2 | ← … XOFF … ← | Quando il buffer è quasi pieno invia un carattere XOFF | |
3 | Ricevuto un XOFF interrompe la trasmissione |
||
4 | ← … XON … ← | Quando il buffer è quasi vuoto invia un carattere XON | |
5 | Ricevuto un XON Riprende la trasmissione |
… dati … | Riceve i dati |
Un problema associato all'uso del controllo di flusso XON/XOFF è dovuto al fatto che i codici corrispondenti a tali caratteri possono essere presenti all'interno di file di dati di comuni programmi applicativi e, durante il trasferimento, possono provocare la sospensione all'infinito della trasmissione.
Il controllo di flusso mediante i caratteri ENQ (Enquire) e ACK (Acknowledge) è orientato alla trasmissione dei dati a blocchi. Il trasmettitore invia un ENQ quando ha pronto un blocco di dati da trasmettere, ed attende l'ACK prima di effettuare la trasmissione. Avendo predefinito la massima dimensione del blocco di dati (in genere circa 2000 byte), si previene la saturazione del buffer del ricevitore.
Trasmettitore | Ricevitore | |
Invia la richiesta per trasmettere | → … ENQ … → | è avvertito che ci son dei dati pronti |
← … ACK … ← | appena possibile invia il consenso a trasmettere | |
invia i dati | → … dati … → | riceve i dati |
I modem consentono di adattare il segnale digitale proveniente da un'interfaccia seriale ad un canale trasmissivo limitato in banda sia inferiormente che superiormente. Il caso è quello del canale telefonico che ha una banda passante di circa 3000Hz (tra 300 e 3300 Hz).
Questa larghezza di banda limita la massima velocità trasmissiva. Inoltre, essendoci una frequenza di taglio inferiore a 300 Hz, non è possibile trasmettere la corrente continua. Una sequenza di cifre binarie uguali, o lo stato di idle della linea, sono codificate dagli standard per interfacce seriali proprio come tensioni fisse, cioè corrente continua. È pertanto necessario modificare la codifica dei bit. I modem fanno questo tramite tecniche di modulazione, da cui il nome (modem = MOdulatore-DEModulatore).
La porta seriale del personal computer
Il PC usa i livelli di tensione 0 e 5V per rappresentare le informazioni binarie, sul canale i corrispondenti livelli di tensione sono +12V e -12V (logica invertita). Pertanto la porta seriale del PC è collegata al modem tramite circuiti traslatori di tensione (da 5V a 12V e viceversa).
La porta seriale possiede due registri a scorrimento, uno per il trasmettitore e uno per il ricevitore, integrati nello stesso componente, così che per un calcolatore è possibile la ricezione e la trasmissione simultanea. Entrambi i registri a scorrimento usano uno stesso oscillatore di clock.
L'informazione da trasmettere viene depositata dalla CPU sul data bus e scritta nel registro a scorrimento di trasmissione. Ad ogni impulso di clock, il trasmettitore deposita un bit sulla linea TD. Il ricevitore all'altro estremo campiona, con la linea RD, il canale e acquisisce il dato trasmesso, un bit alla volta, nel suo registro di ricezione.
Definisce le caratteristiche elettriche, meccaniche e funzionali dei segnali dell'interfaccia. Le caratteristiche elettriche riguardano le specifiche dei parametri quali l'impedenza del circuito, il livello di potenza dei segnali di interfaccia, ecc.. Come conseguenza delle caratteristiche elettriche, la massima lunghezza del cavo tra elaboratore e modem è di 15m. Quindi se gli elaboratori distano meno di 15m, il modem è inutile.
Le caratteristiche meccaniche si riferiscono invece alla posizione dei segnali sul connettore, alla numerazione dei piedini, ecc..
Le caratteristiche funzionali descrivono il significato di ciascun segnale.
La comunicazione tra due elaboratori, per mezzo della linea telefonica, richiede un handshake tra elaboratore e linea, e un handshake tra elaboratore trasmettitore ed elaboratore ricevitore.
Ring indicator (RI). Il trasmettitore compone il numero del destinatario, il modem lo immette sul canale nel codice appropriato e il modem ricevitore riconoscendo la segnalazione di chiamata, attiva il segnale Ring Indicator verso l'elaboratore ricevitore.
Data Terminal Ready (DTR). O in seguito all'arrivo di una chiamata, oppure per iniziativa dell'elaboratore che ravvisa la necessità di chiedere al modem di connettersi alla linea, viene attivato il segnale DTR.
Data Set Ready (DSR) In risposta al segnale DTR il modem completa la procedura di connessione alla linea e invia all'elaboratore il segnale DSR.
A questo punto termina il primo protocollo di handshake, corrispondente all'operazione di verifica della disponibilità di un canale.
Request to Send (RTS). L'elaboratore attiva il segnale RTS, per richiedere al modem di predisporsi in trasmissione, preparando la sezione modulatore a inviare i dati sulla linea telefonica.
Clear to Send (CTS). Il modem attiva questo segnale per indicare all'elaboratore che si è predisposto in modulazione e, avendo posto la portante sul canale, ha chiesto al modem destinatario di predisporsi in ricezione. Questo segnale, in altri termini, viene distinto come consenso a trasmettere, per cui l'elaboratore può inviare i dati sulla linea trasmitted data.
Data Carrier Detect (DCD). Con questo segnale il modem ricevitore segnala all'elaboratore che deve campionare la linea received data.
Trasmitted Data (TD). Il trasmettitore, dopo aver ricevuto il CTS inizia a depositare i bit sul circuito TD, il modem li modula e li pone sulla linea, il modem ricevitore, avverte, con DCD, il ricevitore che vi sono dati sulla linea e li fornisce demodulati sul circuito RD.
Receved Data (RD) Su questa linea l'elaboratore ricevitore acquisisce i dati demodulati
Se un elaboratore e un terminale, oppure due elaboratori, sono dotati della porta seriale e sono posti a una distanza inferiore a 15 metri, allora le caratteristiche elettriche assicurano che la trasmissione dati è possibile anche senza modem.
L'elaboratore avvia la sequenza di connessione alla linea attivando il segnale DTR, verso il modem, per richiedergli di connettersi alla linea telefonica. Poichè la linea telefonica è sostituita da un semplice filo, lo stesso segnale DTR, uscente dall'elaboratore, viene usato per simulare l'attivazione del segnale DSR del modem che serve per confermare l'avvenuta connessione.
Anche il secondo hanshake viene simulato: poichè, prima di inviare un carattere, il terminale attiva il segnale RTS e aspetta dal modem il consenso a trasmettere sulla linea CTS, anche in questo caso lo stesso segnale RTS si chiude sul segnale CTS dell'elaboratore trasmettitore e sul segnale DCD dell'elaboratore ricevitore. Infine la linea TD di uno va direttamente alla linea RD dell'altro.