TRASMISSIONE DATI SU RETI
RS422 – RS485 – RS232
Tipologie di segnali digitali
I segnali con cui si ha a che fare nei sistemi digitali sono spesso di tipo single ended o sbilanciati:
la tensione è misurata rispetto ad un riferimento comune indicato come massa (o anche come
reference o signal ground). Due esempi di tali segnali sono, per rimanere nel campo dei sistemi
di comunicazione:
•la porta parallela Centronics: tensioni maggiori di 2 V indicano l’uno logico, tensioni
minori di 0.8 V identificano lo zero logico, definizioni coincidenti con quelle utilizzate per
i segnali TTL
•la porta seriale RS232: l'uno logico è identificato da una tensione negativa compresa, in
modulo, tra 3 e 15 V e lo zero da una tensione positiva maggiore di 3 V.
Per trasmettere un singolo bit usando un segnale sbilanciato è evidentemente necessario usare
un solo filo oltre alla massa che è unica e comune a tutti i segnali.
I limiti nell'uso di segnali non bilanciati nella trasmissione di informazioni derivano da due
considerazioni:
•Se è vero, almeno in prima approssimazione, che il potenziale di massa è univocamente
definito in un circuito di piccole dimensioni, tale concetto diventa una illusione quando le
distanze sono elevate; infatti la corrente, scorrendo nel filo di riferimento, produce
differenze di potenziali a causa dell'impedenza elettrica del collegamento. Questo fatto è
già abbastanza rilevante in corrente continua (quando occorre tener conto della sola
resistenza del cavo) ma è fondamentale quando, usando segnali ad alta velocità,
l'induttanza del cavo diviene la l'elemento predominante dell'impedenza.
•Lungo un filo di lunghezza non trascurabile la tensione subisce l'influsso casuale e
continuamente variabile dei disturbi esterni: il ricevitore quindi osserva un segnale
digitale sovrapposto a "rumore" che, se elevato, potrebbe portare ad interpretazioni
errate del valore logico. Tale effetto si verifica in modo casuale sia nei confronti del
segnale sia nei confronti del riferimento, per di più con diversa intensità considerando
che l'impedenza equivalente verso massa è diversa.
Una soluzione ad entrambi i problemi è quella di adottare elevate escursioni del segnale al fine
di aumentare il rapporto tra segnale e disturbo (p.e. la RS232 prevede escursioni tipiche di 24 V)
oppure mantenere corti i i collegamenti (soluzione ovviamente improponibile se i due oggetti da
collegare sono fisicamente distanti) oppure ancora usare, almeno per il segnale di riferimento,
cavi di elevata sezione (opzione con evidenti impatti negativi e comunque che porta a benefici
solo marginali).
Il secondo dei due problemi accennati è inoltre parzialmente risolvibile utilizzando cavi
schermati.
Nei sistemi bilanciati o differenziali la tensione associata alla trasmissione di un singolo bit è
misurata come differenza di potenziale tra due fili, tra loro identici e pilotati da trasmettitori
con la stessa impedenza di uscita: se la tensione è maggiore su un filo rispetto all'altro il valore
logico è associato ad uno zero, se è minore ad un uno. Non ha invece nessuna importanza la
tensione dei due fili rispetto a massa.
Questo metodo permette di superare i due problemi appena descritti:
•Il valore logico è associati alla differenza di potenziale tra due fili: il potenziale assoluto
della massa è quindi teoricamente ininfluente. In questo modo, anche se sul filo di massa
scorrono correnti e quindi si creano differenze di potenziale, non si generano effetti sui
valori logici.
Si usa dire che un sistema di trasmissione differenziale non è sensibile alla tensione di
modo comune (Vcm), definita come la media della tensione dei due fili che trasportano il
segnale misurata rispetto alla massa locale.
•Visto che la coppia di fili su cui il segnale viaggia è costituita da un "doppino" pilotato da
trasmettitori con la stessa impedenza di uscita, i disturbi sono fortemente attenuati,
come descritto in uno dei seguenti paragrafi.
Esistono ovviamente anche degli svantaggi:
•È necessario prevedere un numero doppio di conduttori: per ogni singolo segnale servono
due fili, oltre alla massa comune a tutti i segnali ed in genere necessaria.
•Sono richiesti driver e ricevitori più complessi. Utilizzando circuiti integrati
appositamente studiati e largamente diffusi, questo problema è però facilmente
superabile.
Lo standard RS422
Questo standard è stato originariamente proposto per la trasmissione di segnali digitali fino a 10
Mbit/s (10 milioni di bit al secondo) su distanze fino a 4000 piedi (circa 1200 m). Usando
integrati moderni è inoltre possibile superare i limiti imposti dallo standard sia in termini di
velocità che di distanza.
Lo standard RS422 prevede che ciascuna linea differenziale sia pilotata da un driver. I ricevitori
possono essere fino a 10 ma è più comune l'utilizzo di questo standard nelle comunicazioni
punto-punto, cioè per collegare un singolo trasmettitore (Tx) ad un singolo ricevitore (Rx), come
rappresentato nello schema.
I due stati di ciascuna linea sono definiti nel seguente modo:
•Quando il terminale A è negativo rispetto a B, la linea rappresenta un uno binario. Tale
stato rappresenta anche l'assenza di segnale (idle state)
•Quando il terminale A è positivo rispetto a B, la linea rappresenta uno zero binario
Nella figura seguente viene mostrato l'andamento idealizzato dei segnali sui due fili A (in rosso) e
B (in blu): come si vede si tratta di due segnali tra loro in opposizione di fase. Nell'immagine
sono mostrati come variabili tra zero ed una tensione positiva (come del resto avviene il più
delle volte anche nei sistemi reali) anche se questo non è richiesto dallo standard. La tensione
differenziale è quella che effettivamente trasmette l'informazione ed è positiva o negativa in
funzione del livello logico trasmesso.
Da notare che in molte realizzazioni il terminale A è identificato come - ed il terminale B come +
oppure con altri nomi in cui è evidenziato, anche graficamente, che hanno sempre valori logici
opposti.
All'uscita del trasmettitore la differenza di potenziale tra le linee A e B deve essere di almeno 4
V e la tensione di modo comune deve essere minore di 7 V (normalmente una linea vale circa 0 V
e l'altra circa 5 V). Il ricevitore deve essere in grado di interpretare correttamente lo stato della
linea quando la differenza di potenziale è superiore in modulo a 200 mV. In appendice ho
riportato una tabella con tutti i valori elettrici definiti dallo standard.
Nel caso di realizzazioni industriali, la topologia più frequente prevede due dispositivi collegati
tra loro attraverso due coppie di cavi (oltre la massa), una per ciascun verso di trasmissione del
segnale; in questo caso è possibile realizzare una comunicazione full-duplex: ciascuno dei due
dispositivi dispone di un trasmettitore e di un ricevitore e può quindi contemporaneamente
ricevere e trasmettere dati.
Lo standard RS485
Lo standard RS485 è dal punto di vista elettrico molto simile all'RS422: alcune differenze minori
sono riportate nelle tabelle in appendice.
La differenza sostanziale è il supporto delle linee multi-drop, cioè linee in cui coesistono più
ricevitori e trasmettitori sulla stessa coppia di fili. Al fine di evitare conflitti è ovviamente
necessario che un solo trasmettitore alla volta sia attivo. Questo implica l'uso di trasmettitori
che, oltre alle uscite corrispondenti allo zero e all'uno, possano gestire anche un "terzo stato" in
cui l'elettronica appare come fisicamente non collegata alla linea (stato detto ad alta
impedenza, three-state o Hi-Z).
I ricevitori possono invece essere tutti attivi contemporaneamente ed in genere lo sono
effettivamente.
La topologia più usata con questo protocollo è quella a due fili (oltre alla massa) rappresentata
nello schema seguente. Questa connessione permette la trasmissione bidirezionale(ma
ovviamente non contemporanea) tra due o più nodi che, dal punto di vista elettrico, sono tra
loro equivalenti.
La sezione rice-trasmittente di ciascuno dei nodi è evidenziato nella figura da un rettangolo blu.
Le connessioni verso la linea di trasmissione sono costituite semplicemente dai due terminali A e
B comuni sia alla sezione di ricezione che a quella di trasmissione e dalla massa. Possono essere
ovviamente presenti dei moduli dotati del solo ricevitore o, caso meno probabile, del solo
trasmettitore. Il collegamento di terra non ha funzioni nella trasmissione ma è richiesto, come
verrà illustrato nella prosecuzione di questa guida.
Ciascun modulo trasmettitore deve possedere verso il dispositivo digitale di un ingresso dati e di
un ingresso di abilitazione alla trasmissione, pilotato localmente, che permette di disabilitare il
trasmettitore quando non serve: al fine di evitare conflitti è necessario prevedere un qualche
meccanismo che impedisca l'attivazione contemporanea di più trasmettitori oppure sia in grado
rilevare tali conflitti ed intervenire opportunamente. I driver RS485 sono comunque progettati
per non riportare danni anche in caso di corto circuito permanente, limitando la corrente
massima a 250 mA.
Nello schema disegnato è previsto anche un segnale di abilitazione del ricevitore, sebbene
spesso non necessario: è infatti possibile lasciare tutti i ricevitori sempre attivi oppure collegare
insieme i due ingressi di abilitazione essendo normalmente attivi su livelli logici opposti.
Lo standard originario permette la connessione di massimo 32 ricevitori ma utilizzando integrati
a basso assorbimento tale limite può essere abbondantemente superato.
Adattamento di impedenza
(terminazione)
In prima approssimazione, in un sistema digitale il concetto di "linea di trasmissione" che
verrà illustrato in questa pagina deve essere applicato ogni volta in cui la durata di un bit
è minore di 10 volte il tempo necessario al segnale a percorrere la distanza tra
trasmettitore e ricevitore oppure il tempo di salita dei segnali è maggiore di 5 volte il
tempo di trasmissione.
La descrizione dei fenomeni associati alle linee di trasmissione vanno oltre gli scopi di questo
tutorial ma, per una comprensione almeno approssimativa è necessario tenere presente che:
•Il segnale elettrico si propaga nei conduttori ad una velocità finita, prossima a 2/3 di
quella della luce.
•Ciascun cavo è caratterizzato da parametri elettrici di tipo distribuito sintetizzabili con
l'impedenza caratteristica Zo, un valore puramente resistivo indipendente dalla lunghezza
del cavo, dato dal produttore e non misurabile con strumenti hobbistici.
•Se la resistenza di uscita di un trasmettitore e la resistenza di ingresso di un ricevitore
non sono uguali all'impedenza caratteristica della linea usata, si generano riflessioni del
segnale cioè, mi si scusi il paragone poco preciso, il segnale "torna indietro" quando
raggiunge la fine del cavo, causando interferenze non trascurabili. Si usa dire, per
indicare l'uguaglianza delle tre resistenze, che le linee di trasmissione devono essere
"adattate" oppure "terminate", operazione che si riduce il più delle volte all'aggiunta di
uno o più resistori.
Purtroppo non sempre è comodo terminare le linee (non tanto per i costi quanto per il maggior
assorbimento di corrente, una attenuazione del segnale, la difficoltà di manutenzione e/o
estensione della rete) per cui è prima opportuno chiedersi se tale operazione sia effettivamente
necessaria in una specifica applicazione.
I due parametri fondamentali da considerare sono ovviamente la lunghezza del cavo e la velocità
di trasmissione. Una buona regola empirica che si rifà a quanto detto nell'introduzione alla
pagina afferma che la terminazione non è necessaria nel caso in cui la durata di un singolo bit è
molto maggiore del tempo impiegato dal segnale per percorrere l'intera linea. Normalmente con
il termine un poco scorretto "molto maggiore" si intende almeno dieci volte più grande. Questa
regola trae origine dal fatto che le eventuali riflessioni vengono attenuate dalla resistenza del
cavo stesso e nel volgere di poco tempo divengono trascurabili. Siccome la misura della tensione
viene normalmente effettuata dal ricevitore al centro del bit, è possibile trascurare gli effetti
delle riflessioni se è trascorso un tempo sufficiente rispetto al fronte del segnale.
Come esempio pratico, si consideri una linea di 1200 metri, il massimo previsto dallo standard
RS485. Sapendo che un segnale elettrico si propaga in un cavo tipico a circa 2/3 della velocità
della luce, il tempo impiegato per percorrere tale distanza è approssimativamente:
Se la trasmissione avviene a 9600 bit/s la durata di un singolo bit è 104 us, valore decisamente
maggiore di 6, e quindi è possibile non terminare la linea senza effetti negativi sulla qualità del
segnale. Se sulla stessa linea la trasmissione fosse effettuata a 115.000 bit/s la terminazione
sarebbe invece indispensabile in quanto il singolo bit dura circa 8 us. Infine, se la linea fosse di
soli 10 metri, anche a 230.000 bit/s la terminazione potrebbe essere evitata in quanto il tempo
impiegato per percorrere il tratto di linea è dell'ordine dai 50 ns e la durata del bit circa 4000 ns
Terminazione parallela
Il metodo di terminazione che offre le migliori prestazioni è quello cosiddetto parallelo. Nel caso
di trasmissioni punto-punto, in parallelo al ricevitore ed il più possibile vicino ad esso è
necessario inserire tra i terminali A e B un resistore di valore pari all'impedenza caratteristica
della linea Zo.
I valori del resistore, usando i cavi normalmente impiegati per questo scopo, sono compresi tra
100 e 120 ohm. Nelle trasmissioni ad alta velocità è opportuno usare resistori di tipo non
induttivo, per esempio a carbone.
Nel caso in cui è presente un solo trasmettitore e più ricevitori sulla stessa linea è necessario
mettere il trasmettitore ad un estremo della linea e l'unica resistenza di terminazione
all'estremo opposto. I ricevitori intermedi non vanno connessi a resistenze aggiuntive.
Nel caso di connessioni multi-drop, le resistenze da inserire sono due, anche in questo caso pari
ciascuna a Zo. Queste due resistenze vanno poste agli estremi fisici della linea, non
necessariamente in corrispondenza di un ricevitore o di un trasmettitore.
Le prestazioni di questo tipo di terminazione sono molte buone dal punto di vista elettrico ma
hanno il problema di richiedere un elevato assorbimento di corrente: considerando la situazione
normale con una resistenza di 100 ohm ed una tensione differenziale di 5 V, il trasmettitore deve
generare una corrente di 50 mA oltre a quella assorbita dai ricevitori. Tale valore deve essere
raddoppiato nelle linee multi-drop in quanto le resistenze sono due.
Un secondo problema legato alle linee multi-drop deriva dal fatto che le connessioni tra i nodi
centrali ed il bus (i cosiddetti stub) devono essere mantenuti il più breve possibile in quanto non
è possibile inserire su ciascuno di essi un resistore di terminazione
Terminazione serie
La terminazione serie è utilizzata nel caso di trasmissioni punto-punto. In questo caso due
resistori pari a metà dell'impedenza di linea meno l'impedenza di uscita del trasmettitore sono
poste in serie alle due uscite del trasmettitore: in questo modo le riflessioni create dal segnale
in corrispondenza del ricevitore sono assorbite appena tornano al trasmettitore.
Da notare che molti trasmettitori hanno l'impedenza di uscita prossima a 100 ohm e quindi la
terminazione serie è "automaticamente" presente.
Il metodo non è applicabile ai sistemi multi-drop in quanto i ricevitori intermedi osservano i
segnali riflessi.
Terminazione AC
La terminazione di tipo AC cerca di risolvere i problemi di assorbimento di corrente della
terminazione parallela, particolarmente sentiti per esempio in applicazioni alimentate a
batteria. L'idea è quella di inserire in serie al resistore di terminazione un condensatore che ha
lo scopo di annullare l'assorbimento di corrente in assenza di trasmissione; il valore può essere
calcolato con la formula:
Dove Td è il tempo impiegato dal segnale a percorrere il cavo e Zo è l'impedenza caratteristica
della linea.
Le caratteristiche di questo tipo di terminazione sono di poco inferiori a quelle della
terminazione parallela come qualità del segnale ma sono utili solo alle velocità più basse in
quanto, salendo in frequenza, l'impedenza del condensatore diviene trascurabile.
Valutare la qualità della trasmissione
Nel mondo reale non sempre un segnale trasmesso è interpretato correttamente dal ricevitore a
causa dei disturbi, delle distorsioni e della imprecisione dei componenti, aspetti inevitabilmente
sempre presenti.
Una valutazione complessiva del sistema di trasmissione deve tener conto di tutti i componenti e
della loro interazione:
•L'algoritmo usato in ricezione per riconoscere se un bit è zero oppure uno: è possibile
per esempio effettuare un solo campionamento al "centro" del bit oppure un certo
numero di campionamenti (3, 5, o più) e quindi decidere "a maggioranza"
•La precisione del clock del trasmettitore e del ricevitore
•La capacità del ricevitore di impostare correttamente la soglia di discriminazione tra i
due valori logici
•La qualità del segnale elettrico trasmesso, aspetto che coinvolge sia il trasmettitore che
il cavo di trasmissione
Tralascio intenzionalmente le tecniche meno "elettroniche" quali la rilevazione degli errori
attraverso CRC e le richieste di ri-trasmissione delle informazioni errate piuttosto che la scelta
di protocolli capaci di correggere gli errori (FEC).
In genere viene usata come unità di misura il BER (tasso di errori di trasmissione, riferito al
singolo bit, spesso espresso in percentuale). Esistono appositi strumenti di misura che inviano al
trasmettitore stringhe semi-casuali ed effettuano il conteggio degli errori commessi dal
ricevitore; non è ovviamente difficile, anche per l'hobbista, realizzare un simile dispositivo
utilizzando, per esempio, un personal computer sia come sorgente di dati casuali che come
"controllore" della ricezione.
L'eye diagram
Una valutazione qualitativa più specifica della sola sezione di trasmissione differenziale può
essere fatta osservando con un oscilloscopio dotato di ingresso differenziale il cosiddetto eye
diagram (diagramma ad occhio). Il nome deriva dal fatto che, con un po' di fantasia, si intravede
la forma di un occhio la cui apertura è indice della facilità con cui è possibile individuare
correttamente il livello logico.
Per utilizzarlo è necessario un trasmettitore che invia dati in modo casuale o comunque
abbastanza variabile ed un oscilloscopio con ingresso differenziale. Occorre impostare il trigger
dell'oscilloscopio coincidente con la soglia di discriminazione tra 0 e 1 e la base dei tempi sulla
lunghezza di due o tre bit.
Sullo schermo dell'oscilloscopio deve apparire un'immagine simile alle seguenti, la prima riferita
ad un segnale "pulito" e la seconda ad un segnale al limite della possibilità di riconoscimento.
Nella prima figura sono chiaramente visibili al centro due "occhi" completi; nella seconda i
segnali appaiono molto più confusi, indice di peggiore qualità del segnale.
La polarizzazione
La polarizzazione è una necessità che riguarda i sistemi di trasmissione in cui è possibile
disattivare i driver: in particolare deve quindi sempre essere tenuto presente nelle reti RS485.
Quando tutti i driver sono sconnessi dal bus il livello logico è indeterminato e questo può causare
falsi segnali sui ricevitori a causa della fluttuazione casuale della tensione indotti dai disturbi
esterni. In sistemi reali questa situazione è molto frequente in quanto è necessario lasciar
trascorrere un certo lasso di tempo tra la disconnessione di un trasmettitore e la connessione di
un altro, al fine di evitare conflitti.
La soluzione normalmente adottata è quella rappresentata nello schema seguente: vengono
aggiunte due resistenze di polarizzazione Rb in modo tale che formino un partitore resistivo che
mantenga la differenza di potenziale tra i terminali A e B ad un valore di 200 mV nel caso in cui
tutti i trasmettitore lungo la linea siano disattivati.
Le connessioni rappresentate sono tali che il terminale A è a potenziale minore cioè il valore
logico corrisponde allo stato di riposo. Questa connessione è spesso indicata come fail-safe.
La scelta del valore di Rb dipende dalla configurazione della rete e dal numero di nodi connessi.
Si consideri il seguente caso: al bus sono collegati 32 ricevitori (ciascuno con un'impedenza di
ingresso di 12 kohm); sono inoltre presenti i due resistori di terminazione Zo di 120 ohm. La
resistenza complessiva tra le linee A e B è quindi di 120//120//(32 x 12k) cioè circa 52 ohm. Per
mantenere 200 mV ai capi di tale resistenza occorre una corrente di poco meno di 4 mA.
Considerando una tensione di alimentazione di 5 V, le due resistenze Rb devono allora essere
ciascuna di circa:
Al fine di evitare fraintendimenti relativamente allo schema rappresentato è opportuno chiarire
che:
•In una rete RS485 il resistore Zo di terminazione va posto solo sui due nodi agli estremi
della rete
•Le resistenze di polarizzazione vanno poste solo in punto della rete. Il nodo nel quale
sono inserite è irrilevante anche se potrebbe essere comodo farlo sul primo nodo, in
corrispondenza di uno dei resistori di terminazione.
Si consideri come altro esempio una rete senza le due resistenze di terminazione. In questo caso
la resistenza tra le linee A e B causata dalla sola resistenza di ingresso dei ricevitori è di circa
375 ohm, la corrente necessaria è di circa 0.53 mA e quindi le due resistenze di polarizzazione
devono essere di circa 4.5 kohm.
Molti dispositivi commerciali hanno resistori di polarizzazione già integrati (indicativamente
qualche decina di kohm per ciascun nodo) e ciò potrebbe rendere inutile l'aggiunta d resistori
esterni nel caso frequente in cui non si usino resistenze di terminazione.
La protezione
Le linee che trasportano segnali RS485 si trovano spesso ad essere usate in ambienti
industriali grazie alla loro ottima immunità ai disturbi di origine esterna. In questi
ambienti è possibile che accidentalmente i circuiti vengano a contatto con tensioni e/o
correnti molto elevate e tali da mettere a rischio la funzionalità dei dispositivi che
costituiscono la rete.
In genere sono due i problemi presenti:
•Tensioni molto elevate (diversi kV) caratterizzate da una durata estremamente breve
(ordine di grandezza del millesimo di secondo). In genere sono conseguenza di cariche
elettrostatiche, della commutazione di grossi carichi induttivi, di fenomeni atmosferici o
"scintille" in genere.
•Tensione minori (centinaia di volt) ma con durata molto lunga, tipicamente generate da
guasti che causano un corto circuito tra i cavi che trasportano dati e quelli di
alimentazione.
Inoltre i disturbi possono essere classificati in due grosse categorie:
•Disturbi di modo comune, cioè presenti su tutti i fili e misurati rispetto alla massa locale
del circuito. In genere la prima causa di questo tipo di tensioni deriva dall'impossibilità
pratica di ottenere collegamenti di massa a bassa impedenza lunghi centinaia di metri, in
particolare durante i transitori.
•Disturbi differenziali, cioè presenti tra le due linee di dati. Questa situazione si ha per
esempio nel caso di un corto circuito tra uno dei fili e un cavo di alimentazione ad alta
tensione.
L'isolamento galvanico
Questo approccio è quello più efficace ed universalmente adottato contro le grosse differenze di
potenziale di modo comune. È importante capire che quando si ha a che fare con distanze
elevate è impossibile garantire collegamenti a bassa impedenza sia per la resistenza associata al
cavi sia, soprattutto, per l'induttanza, decisamente preponderante alle frequenze più elevate. In
queste condizioni è sbagliato ritenere che due punti collegati da un cavo siano allo stesso
potenziale: in particolare questo è vero per la terra o in genere la massa. Su linee di molte
centinaia di metri non è impossibile trovare differenze di potenziale di molte centinaia di volt
anche se dalla durata di frazioni di ms
Il metodo più usato per garantire l'isolamento in sistemi di trasmissione digitale è l'utilizzo di
fotoaccoppiatori cioè di dispositivi che convertono i segnali elettrici in segnali ottici e quindi
ancora in segnali elettrici.
Le tensioni di modo comune che questi componenti sono in grado di gestire sono dell'ordine di
qualche kV, anche per tempi molto lunghi. Anche se non è sempre consigliabile, utilizzando
dispositivi optoisolati le linee di trasmissione e il riferimento possono essere di tipo floating, cioè
senza alcun riferimento a potenziali esterni alla linea stessa.
I principali svantaggi di questo metodo sono:
•La relativa lentezza della trasmissione: in funzione dei componenti usati, le velocità
difficilmente può raggiungere i 10 Mbit/s.
•La necessità di disporre di alimentazioni isolate per i due lati del circuito, impedendo la
possibilità di un'alimentazione unica per abbattere i costi.
•L'efficacia nulla contro tensioni differenziali (anche se viene comunque garantita la
sicurezza dei dispositivi collegati anche nel caso di eventi "catastrofici")
Le tecniche di shunt
Queste tecniche si basano sull'uso di componenti che riescono a bloccare la tensione ai loro capi
a valori predefiniti, assorbendo anche migliaia di ampere; dispositivi di questo tipo sono i MOV, i
Tranzorb®, gli scaricatori a gas e, con qualche limitazione, i diodi zener generici.
Nei casi più complessi possono essere associati in parallelo dispositivi di tipo diverso, collegando
un componente di potenza elevata ma non particolarmente veloce (quale uno scaricatore a gas)
ad un altro più veloce. I due dispositivi devono essere connessi tra loro attraverso una resistenza
di poche decine di ohm.
Le tensioni di soglia dei componenti di protezione devono essere scelte nell'ordine dei 6-8 V e la
capacità parassita la più piccola possibile, soprattutto se sono richieste velocità di trasmissione
elevate.
Pur trattandosi di dispositivi in grado di gestire potenze istantanee di migliaia di watt, gli
scaricatori sono poco efficaci nel confronto di differenze di potenziale applicate per lungo
tempo, quali quelle causate da un corto circuito con le linea di alimentazione. In questo caso è
opportuno collegare su ciascuna linee un fusibile (tipicamente 125 mA, non indicato nello
schema), possibilmente del tipo auto-ripristinante. Il montaggio di questi dispositivi richiede che
siano installati presso ciascun trasmettitore e ricevitore, e che siano connessi alla terra locale di
protezione attraverso un percorso breve ed a bassa impedenza.
Un problema legato al collegamento diretto con la terra deriva dal fatto che in questo modo il
filo di riferimento della linea RS485 si comporta a sua volta come "collegamento di terra" tra i
vari nodi senza essere dimensionato correttamente per questo scopo: è quindi consigliata la
connessione dei dispositivi di trasmissione alla terra locale attraverso un resistore, per esempio
da 100 ohm - 1/2 W.
La combinazione di shunt ed isolamento
Si tratta ovviamente dell'insieme dei due sistemi precedentemente descritti.
La soluzione in assoluto più sicura è costituita dalla presenza dell'isolamento ottico e di tre
scaricatori per ciascun nodo, uno per ciascuna delle due linee di dati ed una per la connessione
di riferimento. È richiesta la connessione all'impianto di terra.
Una soluzione alternativa, da applicare solo qualora non fosse disponibile un'adeguata
connessione di terra, prevede sempre la presenza di tre scaricatori, uno tra ciascuna copia di
fili.
La selezione dei cavi
La selezione dei cavi è un aspetto spesso trascurato ma che nelle installazioni che
richiedono alte velocità e grandi distanze è di fondamentale importanza. Infatti lungo il
cavo il segnale subisce delle perdite a causa della resistenza non nulla del conduttore e
delle perdite dovute al tipo di dielettrico usato per l'isolamento.
Il cavo richiesto per le connessioni RS422 ed RS485 è costituito da un doppino cioè di una coppia
di cavi attorcigliati su se stessi e posti all'interno di una guaina isolante. Non sono adatti per
nessun tipo di applicazione collegamenti realizzati utilizzando cavi non attorcigliati, tranne che
tratte di poche decine di centimetri in ambienti non elettricamente rumorosi e a velocità basse.
Il primo parametro da considerare è ovviamente il numero di conduttori, ricordandosi che è
necessario prevedere anche la presenza del riferimento: nel caso di una rete RS485 è quindi
tipicamente necessario predisporre un cavo con un doppino ed un terzo filo per il riferimento.
Nella realizzazioni di reti in cui il costo è un aspetto importante è comune l'utilizzo del filo di
riferimento anche per l'alimentazione dei circuiti periferici, con l'aggiunta di un quarto filo per
l'alimentazione non stabilizzata: ovviamente la soluzione è praticabile solo se la corrente
assorbita è piccola e le distanze non eccessive.
L'impedenza caratteristica del cavo è un aspetto da verificare nel caso di velocità elevate anche
se i valori necessari, compresi tra 100 e 150 ohm, sono quelli più comuni. Nel caso di
trasmissioni ad alta velocità è importante mantenere bassa la capacità del cavo per metro
lineare per non sovraccaricare eccessivamente i driver.
In genere l'uso di cavi schermati non è necessario neppure negli ambienti industriali più
rumorosi. Se non ci sono particolari problemi di peso, elevata velocità, difficoltà di montaggio o
costo potrebbe comunque essere opportuna l'adozione dei cavi schermati per la maggiore
resistenza meccanica più che per ragioni di tipo elettrico. Occorre comunque notare che la
presenza di uno schermo aumenta la capacità dei conduttori verso massa, con effetti negativi
nelle trasmissioni ad alta velocità.
La scelta del tipo di cavo è in genere fatta utilizzando un grafico di tipo empirico fornito dal
costruttore del cavo e simile a quello riportato a titolo di esempio e riferito al classico "doppino
telefonico" AWG24, usato dalle norme come riferimento.
Al fine di una corretta interpretazione occorre verificare le condizioni operative utilizzate per
effettuare i test, in particolare il tipo di segnale utilizzato e la presenza o meno del resistore di
adattamento dell'impedenza. Come si può vedere questo cavo di bassissimo costo è adeguato
fino alla massima distanza prevista dallo standard se la velocità si mantiene sotto i 100 kbit/s,
valore largamente superiore a quelli più spesso usato.
Doppino
Un doppino (twisted pair) è costituito da una coppia di fili tra di loro attorcigliati in modo da
formare una decina di spire per ogni metro. L'esempio più noto è forse il doppino bianco/rosso
usato negli impianti telefonici da cui il nome spesso usato di "doppino telefonico".
Si tratta del metodo migliore per ridurre le interferenze ed è richiesto obbligatoriamente sia per
la RS422 che per la RS485. Se usato in configurazioni differenziali permette infatti di garantire
prestazioni adeguate anche in ambienti molto rumorosi e su grandi distanze.
Un po' di teoria. I disturbi trasmessi tra due conduttori generici possono essere classificati in due
modi:
•Trasmessi per effetto delle capacità parassite: dati due fili tra di loro isolati, si forma
una struttura simile ad un condensatore (due conduttori separati da un dielettrico). Se
tra i due conduttori vi è una differenza di potenziale variabile nel tempo, nel
condensatore parassita passa corrente che fa interferire i segnali presenti. Ovviamente
l'effetto è influenzato dalla distanza, dalla lunghezza/superficie, dalla frequenza del
segnale e dall'ampiezza della tensione.
•Trasmessi per effetto induttivo: dato un filo in cui scorre corrente viene generato un
campo magnetico. Se è presente un secondo conduttore che forma una spira chiusa,
viene generata una tensione se il campo magnetico è variabile. In questo caso l'effetto è
proporzionale alla frequenza, alla distanza, all'area della spira e al suo orientamento,
all'intensità della corrente.
Il doppino permette di ridurre entrambi questi effetti:
•Per gli accoppiamenti capacitivi, possiamo pensare che la sorgente del disturbo
(nell'immagine un cavo di alimentazione a 220V, di colore blu) sia separate dai due fili del
doppino dai due condensatori C1 e C2 tra di loro uguali in quanto il sistema è
sostanzialmente simmetrico (anche se nella figura, per ragioni grafiche, il filo bianco è
più vicino di quello giallo). La corrente che scorre in C1 e C2 è quindi uguale e, se le
impedenze di uscita dei due generatori collegati al doppino sono tra di loro uguali, anche
il cambiamento di tensione è uguale. Trattandosi di un sistema differenziale in cui ha
importanza la differenza di potenziale tra il filo giallo e quello bianco, l'influenza è
quindi nulla.
•Si consideri ora un campo magnetico uniforme, rappresentato nella figura seguente da
linee verticali dirette verso l'alto, che attraversa le spire del doppino. La tensione indotta
è innanzitutto proporzionale all'area compresa tra i due fili: essendo questi molto vicini in
quanto attorcigliati tra loro, questa tensione è piccola. Si consideri inoltre che le linee
del campo rappresentate in figura di colore nero attraversano la "spira" in un verso
(facendo riferimento alla cosiddetta "regola della mano destra", il filo giallo è sul dorso
della mano) mentre quelle rosse nel verso contrario (ora è il filo blu sul dorso della
mano): la tensione indotta ha quindi verso opposto nelle due spire e quindi il contributo
totale è nullo.
L'uso di cavi attorcigliati è praticamente l'unica richiesta nella specifica dei cavi.
Cavi schermati
Un cavo schermato (shielded) è costituito da un cavo intorno al quale è presente un conduttore
tubolare (detto calza, shield o schermo) che lo avvolge completamente che ha lo scopo di
ridurre le influenze dell'ambiente esterno sui conduttori.
Due sono le soluzioni spesso adottate:
•Lo schermo è unico e racchiude tutti i conduttori necessari. Le prestazioni sono buone
nei confronti dei disturbi di origine esterna ma poco efficace nei disturbi di "crosstalk" tra
i vari conduttori
•Ogni coppia di conduttori ha un proprio schermo, soluzione più costosa ma utile per
evitare disturbi tra i segnali
Erroneamente viene a volte chiamato "schermato" anche un cavo coassiale, per esempio quello
dell'antenna televisiva, trattandosi di un oggetto costruttivamente simile. La differenza
sostanziale per gli effetti elettrici deriva dal fatto che in un cavo coassiale la corrente che
scorre nel conduttore esterno è quella "di ritorno" del conduttore interno mentre lo schermo non
è attraversato da alcuna corrente.
L'efficienza dello schermo, oltre che dalle caratteristiche costruttive e dai materiali, dipende
dalla frequenza del segnale di disturbo e dal tipo di accoppiamento.
Un caso concreto è rappresentato dai disturbi generati dai cavi di alimentazione in quanto, per
ragioni di cablaggio, i cavi di segnale ed i cavi di alimentazione occupano per lunghi tratti gli
stessi passaggi. In questo caso un cavo schermato permette di ridurre gli effetti dei disturbi
causati per "effetto capacitivo": in assenza di schermo il conduttore del segnale (bianco in
figura) e quello di alimentazione (blu) sono separati da un "condensatore parassita" C1che
trasmette un disturbo in quanto si ha passaggio di corrente; se si interpone lo schermo,
collegato a massa, la corrente che passa nel condensatore C2 non influenza il potenziale dello
schermo e quindi in C3 non passa corrente generata dal disturbo
Lo schermo è invece sostanzialmete inutile nella riduzione degli effetti causati dalla corrente
attraverso gli accoppiamenti induttivi: infatti i comuni materiali sono "trasparenti" ai campi
magnetici, almeno a bassa frequenza.
Per funzionare correttamente lo schermo deve essere collegato ad un potenziale fisso,
normalmente la terra. Tale collegamento può essere effettuato ad un solo capo (soluzione scelta
quando il segnale è a bassa velocità) e da ambedue i capi (soluzione nella quale è opportuno
l'uso di un condensatore se si vogliono evitare correnti causate dalla differenza di potenziale tra
diversi punti della terra).
Un problema nell'uso dei cavi schermati deriva dal fatto che la presenza del condensatore C3 tra
cavo e schermo, di valore piuttosto elevato, potrebbe dare problemi in caso di trasmissioni su
distanze medio-lunghe a causa dell'eccessiva corrente richiesta al trasmettitore, problema
particolarmente sentito ad alta velocità.
Lo standard RS422 non da indicazioni relativamente all'uso o meno della schermatura anche se è
comunque necessario prevedere comunque l'uso di doppini anche in caso di schermatura.
La conversione da RS232 a RS422 e RS485
Ho già accennato al fatto che le norme relative agli standard RS422 e RS485 non fanno
alcun riferimento al significato dei segnali trasmessi sulla linea. Questo paragrafo ed il
seguente devono essere quindi intesi come presentazione di esempi applicativi, sebbene
frequentemente utilizzati e spesso, a torto, considerati parte delle norme di riferimento.
La conversione da RS232 a RS422
Spesso i trasmettitori ed i ricevitori RS422 sono utilizzati per estendere la portata delle porte
RS232, in genere limitata a pochi metri oppure poche decine se le velocità rimane sotto i 100
kb/s. Per fare ciò viene effettuata una semplice conversione dei livelli elettrici conservando per
esempio la classica struttura del byte composto da un bit di start, da 6 a 8 bit di dati ed almeno
un bit di stop .
Per trasmettere un singolo segnale è utilizzata una struttura simile a quella di seguito
rappresentata: il segnale RS232 viene prima convertito in TTL e quindi in RS422; alla ricezione
viene effettuata la conversione opposta. È necessario prevedere almeno due coppie di cavi, uno
per ciascuna direzione, operazione facilitata dal fatto che ciascun circuito integrato contiene a
volte sia il ricevitore che il trasmettitore.
Spesso non sono utilizzati i segnali di controllo quali RTS e CTS in quanto se la distanza è elevata
il numero di conduttori necessari potrebbe essere un problema ma, qualora fosse necessario, è
sufficiente duplicare il circuito tutte le volte che serve. Dal punto di vista del software, la
connessione è perfettamente trasparente a condizione di usare un sufficiente numero di cavi e
quindi sono utilizzabili tutti i protocolli normalmente adottati con le porte RS232 (half-duplex
piuttosto che full-duplex, con handshaking hardware oppure software).
Per il funzionamento di questo circuito è richiesta una alimentazione esterna, in genere di 5
volt.
Alcuni convertitori RS232/RS422 utilizzano come fonte di energia i livelli logici presenti sulle
porte seriali del PC (port powered): è una soluzione comoda ma non è in grado di garantire il
funzionamento della rete in caso di terminazioni parallele o ricevitori multipli a causa delle
grosse correnti richieste. Nel caso di PC portatili o comunque a basso consumo, è possibile che il
convertitore port powered non funzioni del tutto.
La conversione da RS232 a RS485
Spesso è necessario connettere un PC o un altro computer ad una rete RS485. Lo soluzione più
efficace è quella di utilizzare apposite porte seriali RS485 disponibili come accessorio standard
su molti PC industriali o come schede aggiuntive per i PC desktop.
Per una soluzione a basso costo è possibile utilizzare un convertitore da RS232 a RS485 che pur
non avendo le medesime caratteristiche (in particolare ben poche porte seriali raggiungono il
Mbit/s) presenta indubbi vantaggi di costi, reperibilità e flessibilità.
Anche in questo tipo di applicazione è pratica comune adottare un protocollo che, a livello di
byte, è simile se non identico a quello usato dalle porte di comunicazione RS232. Per poter
effettuare questo tipo di conversione occorre considerare i seguenti aspetti:
•Per la conversione dei livelli dei segnali si usa un circuito simile a quello descritto nel
precedente paragrafo, usando ovviamente driver e ricevitori di tipo RS485.
•È necessario provvedere ad un meccanismo per attivare il trasmettitore solo durante la
trasmissione di un byte; come verrà descritto, questo aspetto può avere impatti sul
software di comunicazione e, se mal gestito, rendere impossibili le comunicazioni.
•La trasmissione è normalmente di tipo half-duplex dato che è disponibile una sola coppia
di cavi da utilizzare sia per la trasmissione che per la ricezione.
Il problema più grosso è associato alla necessità di attivare e disattivare il trasmettitore. Una
soluzione spesso adottata è quella riportata nello schema seguente: si utilizza un segnale della
porta Rs232 (nell'immagine in DTR ma potrebbe essere anche il RTS) e si controlla via software il
suo livello:
1.Si attiva il trasmettitore portando basso il segnale DTR (nello schema è presente un
inverter, fatto comune a quasi tutti i ricevitori RS232)
2.Si trasmette il byte utilizzando nel modo consueto la porta RS232
3.Si disattiva il trasmettitore portando alto il DTR
Non ho indicato nessuna connessione per l'abilitazione del ricevitore perché spesso è lasciata
semplicemente sempre attiva collegandola a massa oppure è collegata direttamente alla linea
DTR e quindi è automaticamente disattivato solo durante la trasmissione.
Purtroppo non è sempre possibile implementare questo semplicissimo protocollo perché è
praticamente impossibile conoscere esattamente quanto tempo impiega un byte ad essere
trasmesso, soprattutto in ambienti multitasking. La soluzione che spesso si adotta è quella di
lasciare sempre attivo il ricevitore e disattivare il trasmettitore solo quando si è ricevuto
indietro quanto appena trasmesso: purtroppo si rischia di inserire ritardi, spesso inaccettabili.
Una soluzione alternativa e decisamente più efficace è quella di inserire un monostabile che
attiva automaticamente
Cenni ai protocolli di trasmissione
Esistono numerosi protocolli che utilizzano come layer fisico lo standard RS485: per tutti cito il
CAN (originariamente pensato per applicazioni automobilistiche ma poi affermatosi anche in
ambito industriale) e il profibus (uno standard di fatto in ambito industriale). La descrizione di
questi protocolli va oltre gli scopi di questo tutorial ed in questo paragrafo mi limiterò a
presentare tre tipologie che spesso si incontrano in applicazioni industriali.
Master-slave
Questa è la configurazione più semplice da gestire quando si lavora con molti dispositivi connessi
alla rete. La struttura è caratterizzata da un master e numerosi slave, ciascuno individuato da
un proprio indirizzo; tutti i dispositivi sono elettricamente identici e deve esistere un accordo
preventivo sulla velocità di trasmissione ed il formato dei byte e dei pacchetti di dati. Tutti i
dispositivi slave sono permanentemente in ascolto sulla rete. Il dispositivo master (per esempio
un PC) è l'unico che può iniziare la trasmissione di dati, inviando un pacchetto contenente
l'indirizzo del nodo slave di destinazione ed il comando. Lo slave a cui il comando è indirizzato
leggerà l'intero pacchetto, eseguirà il comando ed eventualmente risponderà al master. Gli slave
a cui il pacchetto non è indirizzato semplicemente ignoreranno il pacchetto. Non è ammessa la
comunicazione diretta tra due slave ed i pacchetti broadcast (cioè diretti contemporaneamente
dal master a tutti gli slave, quale potrebbe essere un comando di inizializzazione) sono possibili
solo a condizione che non richiedano risposte.
Questo protocollo ha lo scopo di impedire che due trasmettitori vengano attivati
contemporaneamente causando conflitti e, se non ci sono errori di trasmissione o
interpretazione, lo scopo è raggiunto grazie al fatto che il master coordina tutte le attività.
Purtroppo sono sempre possibili malfunzionamenti: per esempio, a causa di un errore di
trasmissione, uno slave potrebbe interpretare scorrettamente un indirizzo oppure leggere come
indirizzo ciò che in realtà è un comando o una risposta di un altro slave. È anche possibile che a
causa di un errore di configurazione due slave abbiano lo stesso indirizzo. Per questo è
opportuno prevedere alcune strategie di controllo:
•evidenziare se un byte rappresenta un indirizzo oppure un comando, per esempio
imponendo che uno dei bit di ogni byte trasmesso sia 1 se si tratta di un indirizzo e 0 in
tutti gli altri casi
•inserire in ogni pacchetto un byte di controllo del tipo CRC oppure checksum: questo
permette di identificare e scartare pacchetti difettosi. È possibile anche l'utilizzo per
ciascun byte di un "bit di parità" anche se non è una pratica frequente.
•inserire in ogni pacchetto trasmesso l'indirizzo del mittente oltre che del destinatario, al
fine di permettere al master di identificare risposte non richieste.
•se non ci sono particolari problemi di efficienza, utilizzare pacchetti di lunghezza
omogenea (oppure includere un byte di conteggio) al fine di identificare i frammenti dei
pacchetti "spezzati".
Multi-master
Questa struttura è finalizzata a realizzare nodi tra loro equivalenti dal punto di vista logico:
ciascun nodo è identificato da un indirizzo univoco e può inviare un pacchetto a qualunque altro
nodo in qualunque momento. Visto che non esiste nessun controllo centralizzato dell'accesso alla
linea sono sempre possibili conflitti nel caso in cui due dispositivi decidano di inviare dati nello
stesso momento.
Al fine di evitare un numero eccessivo di conflitti e comunque ridurre al minimo i danni è
necessario:
•adottare tutti gli accorgimenti di cui al paragrafo precedente
•prima di iniziare una trasmissione verificare che la linea non sia già occupata,
verificando che non ci traffico. Questo metodo produce in ambienti ad alto traffico
l'effetto secondario di picchi di trasmissioni dopo la fine di un pacchetto di grosse
dimensioni: è quindi necessario attendere un certo tempo, possibilmente casuale, dopo la
fine di un pacchetto prima di iniziare una nuova trasmissione.
•è utile "ascoltare" la linea durante la propria trasmissione al fine di identificare sul
nascere eventuali conflitti. L'ideale sarebbe verificare condizioni di corto-circuito
misurando la corrente ma spesso è una soluzione troppo complessa.
Quello appena descritto assomiglia all'algoritmo CSMA/CD utilizzato sulle reti Ethernet ma è
possibile anche implementare un algoritmo ispirato al Token Ring o ad altri protocolli di gestione
dei conflitti.
Codifica ASCII
I segnali usati per trasmettere un byte su una rete RS485 in genere hanno un formato uguale a
quello usato nella trasmissione seriale asincrona RS232 tipica p.e. dei personal computer:
ciascun gruppo di 8 bit è preceduto da un singolo bit di start e seguito da almeno un bit di stop,
oltre un eventuale bit di parità. Una delle esigenze che possono nascere nella realizzazione di un
protocollo di comunicazione è la possibilità di identificare facilmente se un byte rappresenta un
indirizzo, un comando o un dato generico. La tecnica spesso adottata è quella di codificare
ciascun byte che deve essere trasmesso attraverso due o tre byte che rappresentano ciascuno il
codice ASCII di un carattere. Si consideri per esempio il numero decimale 163 (rappresentato in
esadecimale da 0xA3): per trasmettere questo numero possono essere inviati i tre byte
corrispondenti 0x31, 0x36 e 0x33 (oppure i due byte 0x41 e 0x33). In questo modo tutti i byte
generici occupano i soli sette bit meno significativi, rendendo disponibile l'MSB per identificare
gli indirizzi. I caratteri non utilizzati in questa codifica sono disponibili per indicare comandi o
delimitatori dei pacchetti. Lo svantaggio di tale tipo di codifica è l'occupazione di banda almeno
doppia dello stretto necessario.
9 bit
Lo scopo di questo protocollo è quello di identificare in modo immediato i byte che
rappresentano un indirizzo pur mantenere i dati lunghi 8 bit: l'idea è quella di utilizzare per la
codifica di ciascun byte un blocco costituito da 9 bit: otto sono quelli effettivi, il nono indica se
si tratta di un byte generico oppure di un indirizzo. Questa tecnica di codifica permette alle
UART dotate della possibilità di gestire in hardware questa modalità di generare un interrupt
solo in presenza di un indirizzo: in questo modo il processore non deve esaminate ogni singolo
byte trasmesso sulla linea per riconoscere pacchetti destinati al proprio indirizzo.
Purtroppo questa tecnica è incompatibile con le UART normalmente installate nei personal
computer.
EIA RS-422
Parametro
Condizioni
Minimo Massimo Unità di misura
Tensione di uscita differenziale
Circuito aperto
+10
- 10
Tensione di uscita differenziale
Rl = 100 ohm
Resistenza di uscita
Corrente di corto circuito
RAB
A o B a massa
100
± 150
Tempo di salita
Rl = 100 ohm
10
Tensione di modo comune (driver)
Sensibilità (ricevitore)
Tensione di modo comune
(ricevitore)
Resistenza di ingresso (ricevitore)
Rl = 100 ohm
|Vcm| < 7 V
±3
± 200
V
V
V
V
ohm
mA
% della durata di un
bit
V
mV
+7
V
-2
2
-7
4
kohm
EIA RS-485
Parametro
Condizioni
Tensione di uscita differenziale
Circuito aperto
Tensione di uscita differenziale
Rl = 54 ohm
Corrente di corto circuito
Tempo di salita
Minimo
+ 1.5
- 1.5
+ 1.5
- 1.5
A o B a + 12 V o -7
V
Rl = 54 ohm
Cl = 50 pF
Tensione di modo comune
Rl = 54 ohm
-1
(driver)
Sensibilità (ricevitore)
- 7 V < Vcm < 12 V
Tensione di modo comune
-7
(ricevitore)
Resistenza di ingresso (ricevitore)
12
Massimo
+6
-6
+5
-5
Unità di misura
V
V
V
V
± 250
mA
30
% della durata di un
bit
±3
V
± 200
mV
+ 12
V
kohm
Scarica

trasmissione dati su reti rs485-422-232