[ Le interfacce RS422 ed RS485: indice ] [ Pagina precedente ] [ Pagina successiva ]
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.
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.
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:
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:
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 https://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 www.vincenzov.net, nella sezione dedicata ai progetti.
Le interfacce RS422 e RS485 - Versione 2.0h - Settembre
2001
Copyright © 2001, Vincenzo Villa (https://www.vincenzov.net)
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 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".