RS485


Home
MCU & Peripheral


For English version click here


Abbreviazioni

ZL - impedenza della linea
Zo
- impedenza del cavo
A
(-) e B (+) - nomi delle linee RS485
twisted-pair
- coppie di fili elettrici attorcigliati tra loro
AWG
- numero che indica le caratteristiche del filo elettrico, AWG24 è i classico doppino telefonico
STBx
- durata del singolo bit trasmesso
Tp
- tempo che il segnale impiega a percorrere tutta il bus RS485


Introduzione

Il bus di collegamento RS485 è generalmente formato da un cavo con due conduttori attorcigliati (twisted-pair) e una schermatura che collega i vari dispositivi, vedere Fig.3.
Un bus formato da due soli fili è un bus detto half-duplex nulla toglie di raddoppiare il bus portandolo a quattro fili e ottenendo così un bus full-duplex.
Un buon bus RS485 lo si ottiene restando tra i 400 e i 500m di lunghezza massima. Ovviamente riducendo la velocità del bus è possibile arrivare anche a 1200m.
Poiché i moduli collegati sulla rete risentono anche notevolmente delle differenze di massa che si vengono a creare, soprattutto su reti molto lunghe, è consigliabile usare degli accoppiatori RS485 separati galvanicamente.

La trasmissione e del tipo differenziale ovvero il segnale è il risultato della differenza tra le tensioni dei due fili che compongono il bus Fig.0

Fig.0


I trasmettitori RS485 mettono a disposizione (sotto carico) un livello in uscita di ±2 V tra le uscite A e B, i ricevitori riconoscono livelli di ±200 mV ancora come segnale valido.
Questa tecnica permette un'ottima immunità ai disturbi anche su tratte di cavo molto lunghe.
Tipicamente l
a sezione del cavo può essere di 24 o 22 AWG per medie distanze, e dovrà essere aumentata nel caso di lunghe tratte.
Per minimizzare le riflessioni, il primo e l'ultimo dispositivo della rete devono avere una resistenza terminatrice collegata in parallelo alla linea.
L'opzione sopra non è vera nel caso la linea sia fatta a stella per cui la posizione della resistenza di terminazione andrà provata sperimentalmente.
In questo tipo di rete, peraltro molto rara, si mette una resistenza di terminazione sul centro stella e la seconda resistenza sul nodo più lontano dal centro stella.
Lo standard RS485 teoricamente può supportare fino a 32 dispositivi connessi sul bus
(con i moderni 485 si arriva tranquillamente a 128 nodi e con alcuni 485 particolari e per questo costosi si arriva sino a 256 nodi).
Tipicamente è necessario usare resistenze di terminazione il cui valore varia da
120 a 560 ohm, si veda più avanti le spiegazioni su come scegliere le resistenze di terminazione.


Carico capacitivo, resistivo e induttivo della linea

Con cavi molto lunghi bisogna tenere in considerazione la capacità, la resistenza e l'induttanza del cavo che diventano un fattore dominante nel consumo di potenza e nel generare riflessioni del segnale.
Capacità, Resistenza e Induttanza sono espresse al metro-lineare e sono dati richiedibili al costruttore dei cavi.
La capacità del cavo (in pF/metro) tipicamente è compresa fra
50pF/mt (per cavi di buona qualità, p.es. Cavo di Cat. 5) e 100pF/mt.
In caso di dubbio o in special modo con linee molto lunghe è preferibile scegliere cavi di grosse sezioni.
La tabella di Fig.1 può essere un'utile guida per valutare il legame tra distanza e velocità.

Fig.1




Polarità della linea

Secondo lo standard RS485 le connessioni della linea sono indicate con:

A anche chiamata - (meno)
B anche chiamata + (più)
GND

Tutti gli apparecchi collegati sulla linea devono essere collegati in parallelo Fig.2, esempio half-duplex:

Fig.2



Una tipica rete RS485 potrebbe essere cablata come da Fig.3:

Fig.3


E' molto importante che il cablaggio sia effettuato con del cavo twistato perchè ci garantisce la massima immunità ai disturbi.
E' possibile anche usare un cavo non schermato riducendo però la velocità della rete.

Adattamento di impedenza

Per ottenere una linea di trasmissione il più immune possibile ai disturbi, il tipico disturbo che si ha su una linea di trasmissione è la riflessione del segnale trasmesso che causa interferenze non trascurabili, è buona norma mantenere un'impedenza sulla linea ben bilanciata, è per questo motivo che si usano gli adattatori d'impedenza.
Gli adattatori di impedenza sono una o due resistenze poste a uno degli estremi della linea o su entrambi gli estremi della linea.
Di seguito, Fig.4 e Fig.5, sono riportati i due casi.

Fig.4



Fig.5



Resistenze di Terminazione

Per capire se dobbiamo mettere i terminatori di linea di trasmissione possiamo usare il seguente parametro:
Se la durata di un singolo bit trasmesso (
SBTx) è maggiore di almeno 10 volte del tempo (Tp) che il segnale impiega a percorrere tutta la linea allora la terminazione non serve.

Non Servono Terminazioni se: SBTx > ( 10 * Tp )

Per capire come fare queste valutazioni usando dei numeri ricordiamoci che:

1) la velocità di propagazione di un segnale in un cavo elettrico è circa 2/3 della velocità della luce
2) ciascun cavo è caratterizzato da parametri specifici quali: capacità, induttanza, resistenza che possiamo riassumere nell'impedenza del cavo Zo

Facciamo un'esempio pratico considerando:

1) velocità 9600 baud
2) lunghezza rete 1200 m

Con questi parametri il tempo che il segnale impiega per la sua propagazione sarà:

9600 baud equivalgono a 9600 bit/sec per cui si calcola il tempo del singolo bit che è:

1 / 9600 = 0,000104166 sec che equivale a 104,166 uS (mirosecondi)

Ritornando alla formula SBTx > ( 10 * t ) si ha:

104,166 > (10 * 6)
104,166 > 60
In questo caso si può NON utilizzare la terminazione di linea.

Se invece fosse necessario terminare la linea quello che si fa è mettere sul nodo più lontano dal master una resistenza a carbone collegata tra A e B il cui valore deve essere pari all'impedenza caratteristica della linea ZL.
In Fig.6, vi è un'esempio tipico di terminazione.
Il problema è determinare in modo corretto l'impedenza
ZL che è legata all'impedenza del cavo Zo e all'impedenza dei chip 485.
In generale l'impedenza
ZL varia tra i 120 e 560 ohm ma con i moderni 485 si arriva anche a 10...12Kohm.

Fig.6


A parte individuare il valore corretto della resistenza o delle resistenze di terminazione della linea c'è da dire che queste resistenze aumentano i consumi del bus 485.
Se supponiamo di dover inserire una sola resistenza di terminazione da 120 ohm e che la tensione differenziale sul bus sia di 5V avremo che la corrente nel bus assorbita da questa resistenza sarà di 41mA = 5 / 120 .


Capacità e Resistenze di Terminazione

Per diminuire la corrente che circola nella linea, applicazioni a batteria, si usa una terminazione resistivo capacitiva, Fig.7, il cui valore viene calcolato nel seguente modo:

C = Tp / ZL

Tp - tempo che il segnale impiega a percorrere tutta il bus RS485

ZL - impedenza della linea

Fig.7


Eye Diagram

Per valutare fisicamente la qualità del segnale sul nostro bus possiamo ricorrere ad un'oscilloscopio dotato di ingresso differenziale per valutare l'eye diagram (diagramma ad occhio) Fig.8.
Per visualizzare il grafico serve un'oscilloscopio con ingresso differenziale con il trigger impostato sulla soglia di discriminazione tra 0 e 1 e la base dei tempi coincidente con due o tre bit di trasmissione.

In Fig.8 sulla sinistra il segnale è OK mentre sulla destra il segnale è al limite della possibilità di essere interpretato dai 485.

Fig.8



Polarizzazione del bus 485

Se il bus 485 prevede che sia multi-master o che comunque quando nessuno “parla” la linea sia lasciate in alta impedenza, tutti in ricezione, nasce il problema della polarizzazione del bus.
Il bus in alta impedenza capta disturbi elettromagnetici dall'esterno che possono essere interpretati come segnali reali dai ricevitori in ascolto.
Per risolvere questo problema esistono due modi:

1) Implementazione di un protocollo SW sicuro che sia immune il più possibile ai disturbi
2) Polarizzare il bus come da Fig.9 (fail-safe)

Fig.9



Personalmente suggerisco la soluzione SW perchè non aumenta i consumi del bus ma volendo usare la soluzione di Fig.9 tenete presente che le resistenze Rb devono mantenere un valore tra A e B di 200mV quando tutti i 485 sono in ricezione.
Facciamo un'esempio numerico per capire come trovare il valore di Rb.

Supponiamo di avere la seguente condizione:

Bus formato da 32 nodi con impedenza d'ingresso di 12K
Presenti due resistori di terminazione di 120ohm
Tensione di alimentazione 5V

La resistenza complessiva tra le linee A e B sarà: 120//120//(32 x 12K) cioè circa 52ohm
Per avere una tensione tra A e B di 200mV con 52ohm serve far circolare una corrente di circa
4mA.
Le due resistenze
Rb devono essere ciascuna di:


Questa rete di polarizzazione va posta in un solo punto della rete.
ATTENZIONE:
molti dispositivi 485 di ultima generazione hanno queste resistenze già integrate per cui diventa inutile metterle esternamente.


Protezione da sovratensioni

In generale è buona norma prevedere un qualche sistema di protezione dai disturbi soprattutto se il bus è molto lungo.
Alcuni dispositivi tipicamente utilizzati sono i
MOV, TRANZORB e come ulteriore sicurezza scaricatori a GAS.
I dispositivi devono avere
tensioni di intervento comprese tra 8 e 10V e capacità parassite le più piccole possibili soprattutto se il bus 485 è ad alta velocità.
In Fig.10 è riportato uno schema tipico.

Fig.10






Home
MCU & Peripheral