Come utilizzare dei convertitori TTL/RS422

La comunicazione seriale RS422 è uno standard che prevede l’utilizzo di due fili per trasmettere i dati. Questo standard permette di realizzare una comunicazione con dispositivi che si trovano a distanze considerevoli (1000-1500 mt) grazie all’alta immunità ai disturbi e alla sensibilità dei circuiti di ricezione. Le velocità di trasmissione possono raggiungere su brevi distanza (circa 1mt) i 10Mb/s mentre si scende a circa 100Kb/s per distanze intorno ai 1000 mt. La RS422 è tipicamente impiegata in ambito industriale.

Nella figura seguente viene illustrato lo schema a blocchi composto da due driver che codificano e decodificano il segnale in ingresso.
Questo segnale viene messo in uscita, dal primo driver, con opposizione di fase,  e tramite una coppia di fili viene inviato al driver ricevente che ha il compito di ricostruirlo come in ingresso.
Nel grafico dei segnali possiamo osservare che :

  • Quando il segnale in A è ALTO rispetto al segnale presente in B, otteniamo in uscita un livello ALTO (Uno digitale)
  • Quando il segnale in A è BASSO rispetto al segnale presente in B, otteniamo in uscita un livello BASSO (Zero digitale)

Diagramma Segnali Rs422 e TTL

Arduino dispone di una porta seriale (pin0 e pin1) capace di pilotare un driver TTL/RS422 utile per provare a lavorare con questo tipo di comunicazione. Questi convertitori sono di facile reperibilità, con costi contenuti e di semplice impiego. Quelli che ho usato sono l’integrato sn75174 (QUADRUPLE DIFFERENTIAL LINE DRIVER) e l’integrato sn75175 (QUADRUPLE DIFFERENTIAL LINE RECEIVERS).

Di seguito trovate  lo schema del circuito che converte il segnale TTL in RS422 e viceversa:

Convertitore ttl rs422 e da rs422 a ttl

L’integrato 75174 convertirà il segnale TTL in RS422, mentre l’integrato 75175 convertirà il segnale rs422, proveniente dalla linea, in segnale TTL. Di fatto per noi, con Arduino, diventa trasparente trasmettere in RS232 piuttosto che RS422 poiché via codice utilizzeremo sempre la classe Serial e le relative istruzioni per la trasmissione e per la ricezione.

Per testare il circuito possiamo immaginare di posizionare Arduino ad una certa distanza dal PC, poi tramite un convertitore TTL-422-TTL abbinato ad un convertitore TTL-232 possiamo instaurare una comunicazione seriale utilizzando le istruzioni che mette a disposizione il linguaggio di sviluppo. Lo schema a blocchi è il seguente

Conversione TTL RS422 RS232 con Arduino

mentre questo è lo schema elettrico

Convertet uart to rs422 to rs232

Il codice di esempio invia un carattere al PC.

void setup()
{
  Serial.begin(9600);
}

void loop()
{

  Serial.print("A");

  delay(500);

}

Viste le potenzialità della rs422 questo sistema può essere una scelta valida per i progetti dove la distanza tra Arduino e pc inizia a diventare considerevole.