La conversione tra RS232 e RS485

Sul blog di Elettronica Open Source puoi leggere non solo tutti gli articoli Premium riservati agli abbonati e inseriti nella rivista Firmware 2.0 (approfondimenti, news, progetti, tutorial a puntate) ma anche gli articoli della Rubrica Firmware Reload. In questa Rubrica del blog abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi evergreen per Professionisti, Makers, Hobbisti e Appassionati di elettronica. Gli standard RS232 e RS485, la loro coesistenza, la conversione da uno all’altro ed i campi di utilizzo sono i temi affrontati in questo articolo, cercando di aiutare il lettore non esperto in materia nella scelta del proprio protocollo di comunicazione ideale e, nel caso fosse necessario, anche convertire da una versione all’altra.

Introduzione

Agli inizi degli anni Sessanta, quando l’elettronica cominciava ad espandersi maggiormente sotto il profilo della programmabilità a basso livello, le varie periferiche avevano la necessità di scambiarsi dati e informazioni, senza però dover implementare all’interno appositi circuiti che convertissero le informazioni tra i vari standard. Nel mercato si continuava a prediligere la comunicazione parallela, definendola robusta ed efficace in qualsiasi situazione, ma la quantità di cavi necessari spesso scoraggiava l’utilizzo per applicazioni “compatte”. Una soluzione efficace venne data dalla comunicazione seriale, che però non aveva alle spalle un robusto studio a tavolino e lasciava ai vari produttori la libertà di utilizzare le caratteristiche elettriche che maggiormente preferivano, senza tener conto di una eventuale compatibilità. Per tali motivi, importanti studi e bozze di standard sono stati rilasciati prima di raggiungere un risultato definitivo e prima di implementare l’RS232 e l’RS485. Anche se con nomi molto simili, le due specifiche per la trasmissione si equivalgono solamente per l’utilizzo dell’interfaccia seriale come mezzo di condivisione delle informazioni. Le caratteristiche elettriche adottate e le differenze per quanto riguarda la protezione da disturbi esterni che possono alterare la comunicazione sono molto differenti, rendendo il campo di utilizzo il più disparato.

L’RS232 E LE CARATTERISTICHE ELETTRICHE DELLA PERIFERICA

Fermo restando che l’RS232 è un protocollo datato, al giorno d’oggi resta però il modo più economico, veloce e affidabile per scambiare informazioni tra microcontrollori e computer, o anche tra periferiche programmabili impiegate in ambiti differenti. La buona protezione da disturbi elettromagnetici lo rende impiegabile anche in ambienti considerati ostili; certo, la velocità di trasferimento dati non consente la condivisione di informazioni con alto contenuto di dati, ma per il monitoraggio o controllo remoto di periferiche risulta essere tutt’ora impiegato senza problemi.

LE CARATTERISTICHE ELETTRICHE

Lavorare con segnali transitori all’interno di una linea richiede sempre alcuni piccoli accorgimenti che, se ignorati, spesso sommano tra di loro gli effetti negativi nei confronti del segnale da trasmettere, portando alla ricezione di dati non voluti. Secondo le specifiche degli standard in uso, l’RS232 predispone che la tensione in uscita dal trasmettitore debba essere compresa in valore assoluto tra 5 e 25 V, arrivando a 12 V in alcune versioni dello standard. Le interfacce che richiedono basse emissioni di campo elettromagnetico tendono ad abbassare esponenzialmente questa soglia, raggiungendo tensioni, espresse sempre in valore assoluto, di 6 V. Per soddisfare tutte le specifiche relative, il ricevitore deve poter funzionare con segnali compresi tra 3 e 25 V, anche se molti ricevitori impostano come valore di soglia 2 V: al di sopra di quella viene riconosciuto come un uno, al di sotto come uno zero. L’impedenza di uscita del trasmettitore deve in ogni situazione essere maggiore di 300 Ohm; l’impedenza di ingresso deve essere compresa tra 3 e 7 kOhm, anche a dispositivo spento. La corrente prelevabile in uscita mantenendo i corretti valori logici dovrà attestarsi ad almeno 1,6 mA, restando comunque inferiore a 100 mA in caso di corto.

Lo slew-rate, la pendenza della curva nel passare da zero a uno, deve essere minore di 30 V/us per evitare eccessive emissioni elettromagnetiche. Sono state finora affrontate le varie caratteristiche elettriche che un segnale RS232 deve, e non deve, possedere per essere definito tale. Le specifiche dichiarano che per una comunicazione efficiente tra due sistemi si debba utilizzare una codifica di tipo Manchester: lo zero logico viene immesso in linea con il valore di tensione più alto, quindi compreso tra 5 V e 25 V, mentre l’uno logico si affronta portando la linea al valore più basso possibile, e dunque compreso tra -5 e -25 V. Sicuramente, e non meno importante, è da notare che l’RS232 è uno standard pensato per il funzionamento senza alcuna modulazione, cosa quindi che oltre a non permettere di avere un baud rate differente dal bit rate, non permette allo stesso tempo di immunizzare ulteriormente la comunicazione da fonti di disturbo esterne. Alcune volte il funzionamento avviene in zone con grossa interazione elettromagnetica. I dati ricevuti correttamente e senza disturbi sono ottenuti mediante l’impiego di una solida schermatura che in tratte non considerevoli abbatte abbondantemente l’influsso da fonti esterne.

LA CONVERSIONE DA TTL A RS232

Se ci si interfaccia con un integrato programmabile, o si sfrutta circuiteria predisposta per operare con valori di tensione TTL, si possono riscontrare le prime problematiche di condivisione. Con valori compresi tra 0 e 5 V, o nei casi di sistemi a batteria tra 0 e 3,3 V, non sempre è facile comunicare in RS232 anche adottando la proprietà della periferica di operare a 6 V. Certo, in ambito commerciale esistono opportuni traslatori di livello progettati per convertire valori di tensione in altri, ma ciò presuppone l’utilizzo di un’alimentazione duale.

Ma allora quale sarebbe il problema?

Adottata un’alimentazione duale, poi è anche facile realizzare un convertitore di segnale sfruttando due semplici transistor e qualche zener. Il problema nell’implementare l‘RS232 in sistemi con singola alimentazione sta proprio nel generare valori di tensione negativa partendo da una fonte unica di alimentazione, spesso con valori inferiori, e non duale. In aiuto però arriva il MAX232 che, sfruttando la teoria dei circuiti a pompa di carica, è in grado di realizzare una solida interfaccia di conversione tra protocolli trasformando le informazioni con caratteristiche elettriche TTL in segnali adatti a interfacce RS232. Ovviamente, la velocità di commutazione è proporzionale al tipo di integrato scelto, ed è anche riduttivo poter pensare di estrapolare un bit rate elevato da un circuito pensato per il funzionamento in banda base e senza un’opportuna modulazione alle spalle. La sezione ricevente del MAX232 è costituita da due porte invertenti che accettano in ingresso una tensione assoluta di 12 V (o altra tensione compatibile allo standard RS232) e in uscita presentano un segnale TTL compatibile. La sezione trasmittente ha due driver invertenti con un ingresso TTL compatibile e capaci di erogare a vuoto una tensione di poco meno di +/-10 V.

LA PIEDINATURA E IL CONNETTORE

Per l’uso didattico al quale il materiale seguente è indirizzato, qualcuno potrà domandarsi a che pro sia utile descrivere in maniera così dettagliata la piedinatura del connettore ma, visto che il protocollo RS485, oltre a richiedere un pin per la trasmissione e uno per la ricezione, necessita anche della direzione del flusso dati, si dovrà avere l'accortezza di collegare uno dei pin funzione (RTS o DTR), per commutare lo stato.

L’RS485 E LE CARATTERISTICHE ELETTRICHE DELLA PERIFERICA

Veniamo ora ad analizzare la parte che maggiormente interessa hobbisti e addetti ai lavori, affrontando la comunicazione che per distanza e velocità è maggiormente usufruibile in campo amatoriale. Lo standard RS485 originariamente è stato proposto per garantire una comunicazione di 10 Mbit/s con distanze comprese di circa 1.200 metri. Con lo sviluppo tecnologico moderno è possibile, con i giusti accorgimenti, riuscire a superare tranquillamente i limiti proposti dalle specifiche, aumentando i pacchetti al secondo o raggiungendo anche distanze maggiori.

COME AVVIENE LA COMUNICAZIONE

Lo standard prevede due conduttori (A e B) per l’invio delle informazioni ma, contrariamente a quanto accade nell’RS232 dove il valore del segnale prende come riferimento massa, in RS485 si affronta una comunicazione cosiddetta a differenziale, in cui il segnale digitale è dato dalla differenza di tensione presente nel polo A rispetto al polo B. Quando il terminale A ha una tensione inferiore a B, in linea è presente un uno logico, mentre quando il terminale A ha una tensione superiore a quella presente in B, si ha in linea uno zero logico. Il sistema è piuttosto facile e non richiede conoscenze elevate, ma la sola differenza nel porre le due linee differenziali tra loro per la comunicazione garantisce immunità contro disturbi molto elevate. Vediamo perché: mentre nell’RS232 quando un disturbo tende ad alterare il segnale ne aumenta o ne diminuisce il valore rispetto alla massa; nel caso dell’RS485 ciò non genera effetti, in quanto entrambe le linee sarebbero coinvolte dal medesimo disturbo con la medesima ampiezza, ma essendo le due differenziali tra di loro, nel momento dell’analisi tra i due segnali questo verrebbe “liberato” dai valori non voluti. È evidente come nel caso della comunicazione RS232, lavorando con segnali che si aggirano attorno a 6 V con cavo molto lungo e sottoponendo la trasmissione a forti disturbi, non appena si avrà un rumore che riesca ad alterare il segnale di 4 V ci si troverà in una condizione di incomprensione nella linea, generando probabilmente false interpretazioni.

LE CARATTERISTICHE ELETTRICHE E LE VARIE TIPOLOGIE DI CONNESSIONE

Come accennato all’inizio di questa sezione, lo standard nasce per il controllo e l’invio di dati in linee alle quali è collegato un numero variabile di postazioni. Ogni ricetrasmettitore presuppone al suo interno un’interfaccia d’ingresso ad alta impedenza, per non appesantire il carico della linea stessa. All’uscita del trasmettitore la differenza di potenziale tra le linee A e B deve essere garantita compresa tra 4 e 7 V, normalmente un pin si attesta su 0 V e l’altro a 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. Il supporto delle linee multi-drop, cioè linee in cui coesistono più ricevitori e trasmettitori sulla stessa coppia di fili, forse è uno dei pregi maggiori del sistema che con pochi conduttori riesce a garantire una comunicazione efficace tra più dispositivi. 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. I ricevitori possono invece essere tutti attivi contemporaneamente, e in genere lo sono. Ogni modulo per la comunicazione, oltre a predisporre di un pin per la comunicazione e uno per la ricezione, deve rendere disponibile anche un ingresso di selezione per poter selezionare la modalità di utilizzo: ricezione o trasmissione. Per non venire danneggiati in caso di corto circuito permanente in linea, i driver sono opportunamente progettati per erogare una corrente massima di 250 mA. Lo standard originario permette la connessione di 32 ricevitori al massimo ma utilizzando integrati a basso assorbimento tale limite può essere abbondantemente superato.

LE DIFFERENZE NELL’IMPIEGO E LA CONVERSIONE

Affrontate le varie caratteristiche di entrambe le trasmissioni, si cercherà ora di entrare nel merito della vera problematica dell’impiego di tecnologie così differenti, riuscendo a porre l’accento sul reale utilizzo finale e sul valore monetario del sistema stesso.

PERCHÉ CONVERTIRE?

La risposta più ovvia a questa domanda risiede nel fatto che le caratteristiche elettriche sono estremamente differenti. I due standard sono uno l’opposto all’altro: il primo adotta un riferimento verso massa, il secondo un riferimento differenziale tra due conduttori; uno sfrutta opportuni valori di tensione per l’interpretazione dei dati, l’altro accredita il riconoscimento delle informazioni con una differenza di potenziale minima di 0,2 V in linea. Il concetto è veramente differente, ma occorre considerare il periodo di tempo trascorso tra la realizzazione di RS232 e di RS485. Fino a qualche anno fa, quando l’interfaccia USB era ancora in fase di espansione e non era ancora incorporata nei microcontrollori, il modo più facile e più economico per trasferire informazioni da computer a un circuito in fase di test era proprio l’interfaccia seriale. A fronte di ciò, tutti i maggiori produttori predisponevano almeno una porta RS232 nell’hardware in produzione, lasciando ai progettisti la facoltà di dialogare con le periferiche in uso. Uno dei punti a sfavore di questo standard però proveniva dal fatto che le distanze in gioco non potevano essere superiori ai quindici metri, pena l’insorgenza di errori di comunicazione e la successiva incomprensione dei pacchetti in gioco.

Venne dunque predisposto un apposito sistema di comunicazione più affidabile nelle lunghe distanze ma che, per ragioni prettamente operative, lasciasse spazio al progettista per la definizione del tipo di comunicazione seriale da usare. Non venivano imposti limiti nella lunghezza dei dati, come non veniva imposto l’uso di un bit di start e uno di stop: ognuno poteva decidere quanti bit trasmettere, con quale velocità e con quale preambolo tra un’informazione e l’altra. Ovviamente, quello standard, che avrebbe preso il nome di RS485, venne subito applicato in ambienti ostili, in cui più dispositivi dovevano comunicare tra di loro a distanze considerevoli. Però come per tutte le interfacce dell’epoca, essendo progettata per la comunicazione tra stazione e stazione, e non tra stazione e computer, era impossibile irrompere all’interno di una linea così solida mediante l’uso di un PC, a meno che questo non fosse correttamente interfacciato. Nacque quindi la necessità di far dialogare l’RS232, presente nella maggior parte dei PC, con l’RS485, robusta e facilmente implementabile con sistemi di comunicazione avanzati.

Figura 1: l’integrato messo a punto da Maxim per la conversione da RS232 a TTL. La tabellina presente nell’immagine fornisce indicazioni riguardo i condensatori da utilizzare per un corretto uso.

Figura 1: L’integrato messo a punto da Maxim per la conversione da RS232 a TTL. La tabellina presente nell’immagine fornisce indicazioni riguardo i condensatori da utilizzare per un corretto uso

UN SEMPLICE CIRCUITO CON MAX485 E MAX232

Da molti anni Maxim, una delle aziende leader nel settore della circuiteria integrata, ha messo a disposizione alcuni integrati in grado di interpretare e convertire sia l’RS232 sia l’RS485 verso TTL. Il circuito a disposizione nello schema evidenzia la presenza di questi due componenti che permettono il funzionamento del sistema. I componenti sono meno di una manciata, e la realizzazione pratica, fermo restando il controllo delle polarità e la disposizione corretta degli integrati, non dovrebbe risultare complessa. Il MAX232, partendo da una tensione di alimentazione anche inferiore a quella prevista dalle normative dell’RS232, mediante un apposito circuito a pompa di carica, permette di realizzare tensioni duali interpretabili dal PC, partendo da un segnale da 0 a 5 V. L’effetto di pompa di carica avviene tra i condensatori C1 e C2, mediante l’apposito circuito interno all’integrato stesso. Il MAX485 interpreta segnali TTL trasformandoli in dati compatibili per linee RS485 e quindi a uso differenziale tra i due conduttori. Le resistenze R6 e R7 sono selezionabili attraverso i jumper JP6 e JP7 e vengono impiegate nelle linee in cui è richiesto un assorbimento minimo di corrente dal sistema, per determinare l’effettivo collegamento dei dispositivi alla linea. La resistenza R3, attivabile mediante il jumper JP5, è la resistenza di fine linea e permette l’adattamento dell’intero sistema nella linea stessa, in modo da fornire sempre la medesima impedenza (Figura 2).

Figura 2: osservando lo schema elettrico si nota come i due integrati MAX232 e MAX485 siano connessi tra loro allo scopo di prelevare il segnale in RS232, convertirlo in TTL e trasformarlo nuovamente in RS485.

Figura 2: Osservando lo schema elettrico si nota come i due integrati MAX232 e MAX485 siano connessi tra loro allo scopo di prelevare il segnale in RS232, convertirlo in TTL e trasformarlo nuovamente in RS485

MAX3162 E ISL3330

Sia Maxim sia Intersil rendono disponibile al mercato un integrato che predispone all’interno una circuiteria molto simile a quella descritta nel paragrafo precedente. Anche se la didattica è importante, spesso la comodità e la semplicità nel connettere pochi conduttori sono da prediligere nettamente, così che un sistema di comunicazione possa essere realizzato in maniera più facile e veloce. I componenti richiesti sono pochissimi: quattro condensatori, i medesimi utilizzati anche nel circuito precedente, due per la pompa di carica e due per l’alimentazione in ingresso. Per la gestione dell’integrato, e quindi per comunicare tra i due standard, si avrà la necessità di predisporre di 3 pin nell’RS232 e di 2 pin per l’RS485. In più si potrà però usufruire di un controllo non disponibile né sul MAX485 né sul MAX232 ma molto utile quando si opera in ambienti a batteria e si punta a risparmiare carica: la funzione shut-down. Non appena portato a livello logico basso questo pin, il circuito si porterà in condizione di risparmio energetico, disabilitando qualsiasi sua porzione interna che consuma energia.

Figura 3: il MAX3162 svolge la stessa funzione del circuito proposto nell’articolo, raggruppando in un case più contenuto tutte le funzionalità messe a disposizione dai due integrati MAX232 e MAX485.

Figura 3: Il MAX3162 svolge la stessa funzione del circuito proposto nell’articolo, raggruppando in un case più contenuto tutte le funzionalità messe a disposizione dai due integrati MAX232 e MAX485

CONCLUSIONI

L’elettronica in generale e, prevalentemente, il ramo delle telecomunicazioni, ha fatto e sta facendo passi da gigante. Ogni sviluppo in qualsiasi direzione coincide con la necessità da parte di appassionati o addetti ai lavori di documentarsi e studiare come vengono svolte le nuove operazioni da parte dei sistemi in gioco. L’RS232 ormai è datato ma, continuando a possedere una fetta considerevole nel mercato della comunicazione a basso livello tra dispositivi, sarà ancora per lungo tempo fonte di studio e di ricerche da parte del pubblico più esigente. RS485 dal canto suo è un’ottima soluzione per chi ha esigenze particolari, è costretto a lavorare in campo aperto e connettere più punti molto distanti tra loro. Molto difficilmente un protocollo soppianterà l’altro, ed ecco che imparare a farli coesistere è la scelta migliore.

Scarica subito una copia gratis

Una risposta

  1. Daniele Valanzuolo 13 Febbraio 2022

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend