Interface RS422 and RS485

 

Vv

La paginina di VincenzoV

Le interfacce RS422 e RS485


Pagina principale - Sommario - Tutorial - Progetti - Risorse - Non solo elettronica - Chi sono - Novità


Questo tutorial illustra gli aspetti principali degli standard di trasmissione digitale differenziale EIA/TIA-422 ed EIA/TIA-485, nel seguito indicati semplicemente come RS422 e RS485, spesso utilizzati per trasmissioni seriali in ambiente industriale e/o a grande distanza. La scelta di descrivere contemporaneamente queste due interfacce deriva dal fatto che sono molto simili tra loro ed in alcune applicazioni sostanzialmente intercambiabili.

Le interfacce RS422 e RS485 - Versione 2.0d - Settembre 2001
Copyright © 2001, Vincenzo Villa
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
(E' garantito il permesso di copiare,  distribuire e/o modificare questo documento seguendo i termini della GNU Free Documentation License, Versione 1.1 o ogni versione successiva pubblicata dalla Free Software Foundation)
Il contenuto di questi documenti è fornito "così come è" (AS IS), a solo titolo didattico e senza garanzia alcuna, implicita o esplicita. In particolare non ci si ritiene responsabili di alcun danno diretto o indiretto causato dall'uso di queste informazioni.
Tutti i nomi di ditte e prodotti citati sono proprietà dei legittimi proprietari.

Prima di cominciare, una premessa: questi standard si riferiscono esclusivamente agli aspetti elettrici del segnale (il cosiddetto livello 1 o physical layer dello standard ISO/OSI), ignorando completamente ogni definizione del significato delle tensioni trasmesse. Nel seguito violerò per alcuni aspetti questa premessa, accennando in particolare alla trasmissione seriale asincrona su lunghe distanze in ambienti industriali, ambito che a rigore dovrà essere ritenuto solo un esempio applicativo anche se consolidato.

A puro titolo informativo, accenno ad altre due applicazioni in cui tali standard sono utilizzati:

  • bus SCSI differenziali: la trasmissione è sincrona ed avviene in parallelo, utilizzando molte decine di fili, a velocità e distanze medie (decine di Mbyte/s, pochi metri).
  • reti locali di computer 10baseTX: sono utilizzate due coppie di cavi, su distanze fino a 100 m e velocità di 10 Mbit/s; ciascun bit ha generalmente una codifica di tipo Manchester ed è inserito in un frame composto da migliaia di bit,trasmessi serialmente.

I segnali

I segnali digitali con cui normalmente si ha a che fare sono del tipo single ended o sbilanciato: la tensione è misurata rispetto ad un riferimento comune indicato come massa (o più propriamente 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 riferimento è 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 resistenza del cavo) ma è fondamentale quando, usando segnali ad alta velocità, l'induttanza del cavo assume la predominanza.
  • 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 cavi (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).

Il secondo dei due problemi accennati è inoltre parzialmente risolvibile utilizzando cavi schermati.

Nei sistemi bilanciati 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 uno dei fili 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 prima detti:

  • Il valore logico è associati alla differenza di potenziale tra due fili: il potenziale di massa è quindi ininfluente. In questo modo, anche se sul filo di massa scorrono correnti e quindi si creano differenze di potenziale, non si hanno impatti sui valori logici.
    Si usa dire che un sistema di trasmissione differenziale non è sensibile alla tensione di modo comune Vcm, definita come media della tensione dei due fili che trasportano il segnale rispetto alla massa locale.
  • Visto che la coppia di fili su cui il segnale viaggia è costituita in genere 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 la massa comune a tutti i segnali.
  • 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 (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 singolo driver. I ricevitori possono essere fino a 10 ma è più comune l'utilizzo di questo standard nelle comunicazioni punto-punto, cioè per collegare un trasmettitore ad un singolo ricevitore, come rappresentato nello schema.

rs485.1.gif - Linea RS422

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.

rs485.15 - I segnali RS-422

Da notare che in molte realizzazioni il terminale A è identificato come - ed il terminale B come + oppure con altri nomi in cui però è 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 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 soli 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 può 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 che presentano la coesistenza di 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 o Hi-Z).

I ricevitori possono invece essere tutti attivi contemporaneamente ed in genere lo sono.

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.

rs485.2 - Il bus RS485

La sezione rice-trasmittente di ciascuno dei nodi è evidenziato nella figura da un rettangolo blu. Le connessioni verso la linea 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.

Ciascun modulo trasmettitore possiede, oltre un ingresso dati, anche 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

In prima approssimazione, in un sistema digitale il concetto di "linea di trasmissione" 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 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 a 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 certa 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 al paragrafo 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 per "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:

rs485.3 - 1/.66C * 1.2 = 6 us

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.

Chi fosse interessato alla valutazione rigorosa delle riflessioni dei segnali digitali lungo linee di trasmissione, può per esempio consultare le AN 806, AN 807 ed AN 808 pubblicate da National Semiconductor e disponibili sul sito http://www.national.com/.

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 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:

rs485.4 - C = Td / Zo

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

Una valutazione complessiva del sistema di trasmissione deve tener conto di tutti i componenti e della loro interazione:

  • L'algoritmo usato in ricezione dalla UART 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

Ho ovviamente tralasciato intenzionalmente le tecniche meno "elettroniche" quali la rilevazione degli errori attraverso CRC e le richieste di ri-trasmissione delle informazioni errate.

In genere viene usata come unità di misura il BER% (tasso percentuale di errori di trasmissione, riferito al singolo bit). 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 chiarezza 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.

rs485.14 - Eye diagram

La polarizzazione

Questo aspetto 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 indotta, per esempio, da 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.

rs485.5 - Le R di polarizzazione

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:

rs485.6 - Rb = 1/2 * (5V/4mA - 52) = 560 ohm

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 è 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 raggiunge 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 alla rete 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.

rs485.7 - Protezione con scaricatori

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 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 ciascun filo.

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 troppo 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.

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.

rs485.8 - Prestazioni dell'AAWG24

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.

Si tratta del metodo migliore per ridurre le interferenze ed è obbligatorio 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 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.

rs485.12 . Effetto dei disturbi (1)

  • 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 "legge 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.

rs485.13 - Effetto del campo magnetico

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 completamente diversi 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

rs485.11 - Effetto dello schermo

Lo schermo è invece 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.

rs485.9 - Conversione RS232-RS485-RS232

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 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

rs485.10 - Conversione RS232-RS485

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. Un circuito di questo tipo è presente sul sito http://www.vincenzov.net/, nella sezione dedicata ai progetti.

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 il trasmettitore appena inizia la trasmissione di un byte e lo disattiva al termine del bit di stop. Un circuiti di questo tipo è presente sul sito http://www.vincenzov.net/, nella sezione dedicata ai progetti.

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 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 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.

Dispositivi integrati

Esistono numerosi circuiti integrati per la gestione delle linee RS422 ed RS485. Spesso il pin-out di dispositivi simili, anche se di produttori diversi, è compatibile e ciò permette l'aggiornamento di schede con nuove caratteristiche.

Il dispositivo tipico per la realizzazione di una rete RS422 o RS485 è costituito da un integrato contenete un trasmettitore ed un ricevitore, in genere in un contenitore ad 8 pin. L'alimentazione è singola, normalmente 5 V anche se non mancano dispositivi alimentati a 3 V. Alcuni integrati sono adatti per gestire sia reti RS422 che RS485 ma la maggior parte sono specializzati per una specifica tipologia. A tal fine è necessario segnalare che un driver per reti RS485 deve essere necessariamente dotato di ingresso di abilitazione mentre in un dispositivo RS422 è necessario che trasmettitore e ricevitore abbiano pin separati per ciascuna direzione di trasmissione. Oltre ovviamente all'aderenza agli standard, molte sono le caratteristiche aggiuntive che potrebbe essere utile considerare nella scelta:

  • Limitazione dello slew-rate (cioè della velocità di commutazione) al fine di ridurre le emissioni elettromagnetiche ed eccessive riflessioni su linee non terminate, ovviamente a spese di una minore velocità operativa. Alcuni dispositivi hanno lo slew-rate programmabile in base alle specifiche esigenze operative
  • Integrazione di dispositivi per la protezione ESD
  • Integrazione di dispositivi fail-safe in grado di garantire livelli noti verso l'host anche nel caso di cortocircuito o circuito aperto
  • Minore carico sulla linea, utile per aumentare il numero di nodi oltre i 32 previsti dalla norma originaria. Praticamente tutti i produttori dispongono di driver con carico pari ad 1/4 del valore normale, permettendo l'estensione della rete fino a 128 nodi senza ripetitori intermedi
  • Protezione contro i surriscaldamenti sempre possibili date le correnti non trascurabili in gioco
  • Circuiti con pre-enfasi, utile per estendere la velocità operativa o le distanze raggiungibili
  • Dispositivi a basso consumo, utili per gli apparecchi alimentati a batteria. A volte sono disponibili anche pin di spegnimento per ridurre ulteriormente i consumi in caso di non utilizzo

A puro titolo esemplificativo cito il 7517x (Motorala ed altri), il MAX485 (Maxim), il DS3695 (National Semiconductor), ADM485 (Analog Device).

Sono disponibili anche circuiti che integrano numerosi trasmettitori e/o ricevitori. In questo caso occorre tenere conto che il riscaldamento dell'integrato è significativo.

Passando ad un maggiore livello di integrazione cito due dispositivi della Maxim molto interessanti:

Il MAX3140 integra in un solo integrato un driver, un receiver ed una UART con caratteristiche particolarmente orientate alla realizzazione di reti industriali di microcontrollori

Il MAX1480 integra in un solo dispositivo dalle dimensioni di un comune circuito integrato DIP28 un driver ed un receiver RS485, un regolatore a commutazione, un trasformatore e gli optoisolatori necessari a costituire un'interfaccia isolata completamente utilizzando la sola alimentazione di +5 V dell'host.

Risorse in Rete

Sulla Rete sono presenti diversi siti che riportano informazioni relative sulle interfacce RS422 ed RS485. Tutto il materiale è evidentemente in lingua inglese.

Per una trattazione indirizzata alle tecnologie elettroniche sul sito http://www.national.com/ sono disponibili numerose note applicative: a titolo esemplificativo mi sento di segnalare le già citate AN-806, 807 ed 808 sulle linee di trasmissione, la AN-979 sulle regole pratiche per le reti RS485, la AN-916 sulla selezione dei cavi, la AN-903 sulle tecniche di terminazione delle linee. E' inoltre presente un motore di ricerca interno al sito. Ovviamente sono disponibili anche i fogli tecnici di molti componenti elettronici specifici.

Sul sito commerciale http://www.bb-elec.com/ è disponibile un'esauriente nota applicativa sulle interfacce RS422 ed RS485 di 40 pagine. Sono disponibili anche numerosi prodotti orientati al mercato industriale.

Il sito http://www.rs485.com/, anch'esso orientato al settore commerciale, mette a disposizione idee utili anche per lo sviluppo di propri dispositivi

Per quanto riguarda i componenti elettronici non posso non citare http://www.maxim-ic.com/ che produce una gamma piuttosto ampia di trasmettitori e invia gratuitamente campioni dei propri componenti

Infine sul sito http://www.vincenzov.net/ è presente un tutorial che descrive il protocollo tipicamente usato nelle trasmissione RS-232, spesso adottato anche nelle reti RS-422 ed Rs485.

Appendice

EIA RS-422

Parametro  Condizioni  Minimo  Massimo  Unità di misura
Tensione di uscita differenziale  Circuito aperto   +10
- 10
V
V
Tensione di uscita differenziale  Rl = 100 ohm  - 2
2
 V
V
Resistenza di uscitaRAB 100ohm
Corrente di corto circuitoA o B a massa ± 150mA
 Tempo di salitaRl = 100 ohm 10% della durata di un bit
Tensione di modo comune (driver)Rl = 100 ohm ± 3V
Sensibilità (ricevitore)|Vcm| < 7 V ± 200mV
Tensione di modo comune (ricevitore)  - 7+ 7V
Resistenza di ingresso (ricevitore) 4 kohm

EIA RS-485

Parametro  Condizioni  Minimo  Massimo  Unità di misura
Tensione di uscita differenzialeCircuito aperto+ 1.5
- 1.5
+ 6
- 6
V
V
Tensione di uscita differenzialeRl = 54 ohm+ 1.5
- 1.5
+ 5
- 5
V
V
Corrente di corto circuitoA o B a + 12 V o -7 V ± 250mA
Tempo di salitaRl = 54 ohm
Cl = 50 pF
 30% della durata di un bit
Tensione di modo comune (driver)Rl = 54 ohm- 1± 3V
Sensibilità (ricevitore)- 7 V < Vcm < 12 V ± 200mV
Tensione di modo comune (ricevitore) - 7+ 12V
Resistenza di ingresso (ricevitore) 12 kohm

GNU Free Documentation License

La licenza GNU FDL, disponibile sul sito http://www.gnu.org/ anche in versione italiana, è parte integrante di questo documento e ne contiene i termini di utilizzo. 

Questo tutorial è liberamente disponibile sul sito http://www.vincenzov.net/.

History

1.0Luglio 2000Prima versione del tutorial. Precedentemente alcuni capitoli erano inclusi nel mio tutorial sulle interfacce seriali
2.0Settembre 2001Prima versione GNU FDL del tutorial.
Aggiunte alcune immagini e le sezioni sul doppino e la conversione RS232/RS485

Le versioni con variazioni limitate alla sola correzione di errori di battitura e simili sono identificate dall'aggiunta di una lettera e non sono riportate.

La versione 2.0 di questo tutorial è stata pubblicata sulla rivista FareELETTRONICA n. 211 e 212 (febbraio e marzo 2003)


Pagina principale - Sommario - Tutorial - Progetti - Risorse - Non solo elettronica - Chi sono - Novità


Informativa riguardo alla legge 62/2001
English version of this site
Tutti i miei siti e gli indirizzi di posta elettronica

 

Comentários

Postagens mais visitadas