Cenni ai protocolli di trasmissione

[ Le interfacce RS422 ed RS485: indice ] [ Pagina precedente ] [ Pagina successiva ]

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

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:

Quello appena descritto assomiglia all'algoritmo CSMA/CD 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.

Le interfacce RS422 ed RS485: indice

  1. Tipologie di segnali digitali
  2. Lo standard RS422
  3. Lo standard RS485
  4. Adattamento di impedenza
  5. Valutare la qualità della trasmissione
  6. La polarizzazione
  7. La protezione
  8. La selezione dei cavi
  9. La conversione da RS232 a RS422 e RS485
  10. Cenni ai protocolli di trasmissione
  11. Dispositivi integrati e risorse in rete
  12. Appendice: caratteristiche elettriche

Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima