WISP

RS485 MultiPoint  Single wire Protocol

 

    Applet Java not supported

Caratteristiche

Il protocollo WISP e' stato progettato da While1 per risolvere tutte le problematiche di connettivita’ tra sistemi collegati tra di loro utilizzando una linea Seriale Rs485 (anche Rs232 per la versione point to point). Le possibilita’ di connessione tra sistemi utilizzando un dispositivo di questo tipo sono di solito di due tipi: una chiamata “Master/Slave” e la seconda identificata come “Multi Point Balanced”. Il protocollo Wisp e’ stato progettato per funzionare su entrambe le configurazioni e quindi definito per essere utilizzato in tutte le casistiche classiche di utilizzo della connessione Rs485. Questo protocollo e’ stato sviluppato nel contesto del modulo TSI (sempre di produzione While1) e quindi l’utilizzo dello stesso si puo’ ottenere richiamando le funzioni fornite dall’interfaccia “session” disponibile da quest’ultimo.

 La libreria TSI e' in grado di fornire agli applicativi una interfaccia indipendente dal protocollo e dal sistema di trasporto, in questo modo si riesce a  svincolare le applicazioni dalla gestione di problematiche legate a protocolli di comunicazione. In tal senso, gli applicativi potranno essere scritti senza badare a quale sistema di interfaccia di comunicazione si desidererà utilizzare nel presente o nel futuro e inoltre lo stesso applicativo potrà essere ospitato da sistemi che utilizzano metodi di comunicazione diversi, senza richiedere nessuna modifica.

 

Modalita' di utilizzo

Il protocollo Wisp puo' essere utilizzato in due modi distinti dipendentemente dalla modalita' di connessione e operativita' fisica della connettivita' RS485i. I due modi previsti sono:

 

Master/Slave

La modalita’ Master/Slave prevede di eleggere una sistema al grado di master e costringe tutti gli altri sistemi connessi alla rete ad operare come slave.

Il ruolo del Master e’ quello di governare il BUS e quindi diciamo che rappresenta in questa configurazione lo scheduler delle comunicazioni. Ovviamente quando si prevede la presenza di un componente con incarichi particolari e del resto anche unico sulla rete, si rischia di avere un cosiddetto “single-point-of-failure” , ovvero un elemento che se cessa da funzionare si perde completamente l’utilizzo della rete da parte di tutti gli altri sistemi connessi. Il vantaggio rappresentato da questa configurazione, rispetto a quella bilanciata e’ legato al fatto che essendo disgiunti  i canali di trasmissione  e ricezione non si rischia di incappare in contese di utilizzo della risorsa e quindi si eliminano le possibilita’ di errore legate alle collisioni sul cavo, come di fatto puo’ accadere utilizzando il secondo tipo di connessione prevista. Inoltre se non si interviene sul sistema Master adeguatamente dotandolo di una funzione di “routing”, questa modalita'  porta a determinare che un sistema slave non puo’ comunicare con un altro della stessa categoria, ma potra’ colloquiare solo con il Master. La comunicazione tra due sistemi slaves potra’ avvenire solo transitando per il Master. Per risolvere questo problema, il Wisp prevede per il sistema Master la funzione di "routing". Ossia molto banalmente, se l'indirizzo del destinatario della frame non e' suo, ritrasmette sul TX la frame che verra’ ricevuta dall'RX di un'altro Slave.

In funzione di questo fatto il protocollo Wisp e' stato sviluppato per assumere sia la qualifica di master che la qualifica di slave, implementando internamente un polling verso tutti gli slaves con lo scopo di determinare se questi ultimi hanno delle richieste da fare verso il master. Questo livello di operativita' del protocollo e' affogato nel suo ultimo livello e di fatto serve solo per sopperire al fatto che con Rs485 non vi e' il controllo della condizione di Busy del bus.

Questa condizione in ogni caso non pregiudica nessuna modalita' operativa del TSI, ossia sia il master che gli slaves via TSI potranno eseguire la CONNECT e/o la LISTER,  potranno richiedere una RECEIVE e/o SEND, senza sapere che il protocollo di basso livello opera in modalita' Master/Slave. Di conseguenza lo stesso Master potra’ ospitare applicazioni esattamente come accade per gli Slaves senza assumere particolari differenze.

 

 MultiPOint Balanced

La seconda modalita’ che abbiamo definito con il nome di “Multi Point Balanced” invece si prefigge di eliminare il problema della presenza di un sistema Master e prevede che tutti i sistemi vengano collegati utilizzando un unico filo. Percio’ i fili  TX e  RX saranno collegati entrambi ad un unico filo che a sua volta si colleghera’ nello stesso modo a tutti i sistemi presenti sulla rete, come illustra il seguente schema:

Nella configurazione “Multi Point Balanced” esistendo un unico filo condiviso da tutti i sistemi sia per la RX che la TX, si puo’ facilmente incappare in una collisione. Per sopperire a tale problema senza disporre di un dispositivo hardware in grado di controllare automaticamente l’accesso alla risorsa (es: transceiver), si deve intervenire via software per cercare di ridurre al minimo gli errori. Il protocollo Wisp, e in modo particolare il livello data-link (device nella pila TSI) e’ in grado di cautelarsi contro le collisioni adottando un algoritmo basato sul fatto che durante la ricezione di una frame, vengono vietate le trasmissioni.  Cio’ significa che il device driver responsabile della gestione del dispositivo Rs485 si porra’ di default in ricezione ascoltando tutto quello che passa sul bus e rilevando cosi’ i momenti di passaggio della frames. Per evitare le collisioni, le fasi di trasmissione verranno abilitate solo quando sul bus non transitano dati ossia non ci si trova nel mezzo della ricezione di una frame. Ovviamente essendo un meccanismo software non si puo’ essere garantiti  al 100% contro le collisioni, pero’ sicuramente il margine di sicurezza e’ sufficientemente elevato ed eventuali errori potranno essere recuperati dal protocollo di piu’ alto livello ossia dal Wisp essendo dotato di sistemi di recovery automatica dell’errore.

Se ammettiamo essere infallibile il sistema software di gestione delle collisioni, e’ ovvio che quest’ultima soluzione risulta senza alcun dubbio la migliore, in quanto non prevede la presenza di elementi critici come era il sistema elevato al grado di Master per la precedente soluzione.