Commutazione trasmissione/ricezione in RS485

L’RS485 è uno standard di comunicazione differenziale: questo aspetto è ciò che lo caratterizza maggiormente distinguendolo dalla RS232 e rendendolo robusto e flessibile specie nelle comunicazioni in ambiente industriale (Nota applicativa sul corretto cablaggio). L'interfaccia RS485 supporta 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).

Lo standard prevede che la tensione differenziale tra la linea A e la linea B in uscita al trasmettitore sia in modulo almeno pari a 4V e che la tensione di modo comune non ecceda 7V. Lo standard impone che il ricevitore sia in grado di distinguere il livello logico trasmesso per tensioni differenziali ricevute maggiori di 200 mV.

Commutazione Tx/Rx

Per gestire connessioni multidrop è necessario commutare nei vari nodi RS485 lo stato di ricezione e trasmissione, in pratica per trasmettere un carattere occorre commutare in Tx il driver RS485 tenendolo attivo per tutta la durata di trasmissione del carattere. Il tempo di attivazione quindi dipende dalla lunghezza del dato 7/8 bits, dalla parità si/no e dal baud rate di comunicazione.

Layout connessione RS485

Commutazione automatica

Alcuni convertitori come quelli da noi distribuiti hanno la gestione automatica della commutazione, questo permette di gestire comunicazioni multidrop da qualsiasi programma usando solo i segnali Rx, Tx e GND della porta seriale RS232, l'ATC-106 ricava anche la propria alimentazione dalla stessa porta RS232.

Questi convertitori non sono configurabili quindi utilizzano un circuito che ad ogni bit ricevuto dalla RS232 abilitano per un tempo prederminato e uguale per tutti i baud rates il trasmettitore RS485. Il tempo potrebbe essere troppo corto quindi la linea RS485 và in tri-state prima della fine della trasmissione del bit, oppure troppo lungo quindi la linea RS485 rimane in trasmissione per il tempo superiore alla trasmissione del bit impedendo di ricevere l'eventuale risposta.

Di seguito il report oscillografico, nella traccia superiore il segnale Tx della RS232, nella traccia inferiore il segnale sul bus RS485. Viene eseguita la trasmissione a 9600, n, 8, 1, nel primo a sinistra viene trasmesso 0x00, nel secondo 0x55, nel terzo 0xFF e nel quarto vengono trasmessi due caratteri consecutivi 0x00 0xFF.

  1. Sul bit di start si chiude immediatamente il tri-state e sul bus RS485 viene posto il dato 0
  2. La durata del bit 1 è maggiore del tempo di commutazione ed il segnale RS485 và per un attimo in tri-state.
  3. Su fine di un carattere è inizio dell'altro c'è un tempo superiore al tempo di commutazione ed il segnale RS485 và per un attimo in tri-state.
  4. Terminata la trasmissione del carattere il bus RS485 và in tri-state.

Se analizziamo gli oscillogrammi vediamo proprio questo effetto sul segnale RS485 (Punti 2 e 3), si sceglie di utilizzare un tempo più corto del tempo di trasmissione carattere perchè comunque i drivers RS485 riescono a ricevere correttamente il dato alto anche se la linea RS485 và in tri-state prima del tempo.

Commutazione deterministica

In alcuni convertitori RS232/RS485 la commutazione è gestita dal segnale DTR della seriale, attivandolo il driver RS485 si commuta nello stato di trasmissione, quindi occorre che il programma che gestisce la comunicazione seriale gestisca oportunamente il DTR.

Di seguito il report oscillografico, nella traccia superiore il segnale Tx della RS232, nella traccia inferiore il segnale sul bus RS485. Viene eseguita la trasmissione a 9600, n, 8, 1, nel primo a sinistra viene trasmesso 0x00, nel secondo 0x55, nel terzo 0xFF e nel quarto vengono trasmessi due caratteri consecutivi 0x00 0xFF.

Se analizziamo gli oscillogrammi vediamo che il segnale RS485 segue fedelmente il segnale RS232. Il tri-state s i chiude prima di trasmettere il dato e  si apre al termine della trasmissione. E anche tra i due dati consecutivi non vi è alcuna interruzione.

I nostri sistemi SlimLine gestiscono in modo automatico la commutazione deterministica. Da programma PLC è possibile gestire comunicazioni multidrop in RS485 senza preoccuparsi della commutazione Rx/Tx, il sistema operativo provvede alla commutazione considerando i parametri seriali impostati. Utilizzando il FB DataStreamExch è possibile realizzare un semplice convertitore Ethernet/Seriale (Vedi forum). Rientrano in questo tipo di commutazione anche gli ATC-1200 e ATC-3000.

Was this article helpful?