Skip to the content.

Torna a reti di sensori

Esempi di collegamenti base con topologia a stella:

alt text

Accesso in scrittura e in lettura su due porte digitali di un sensore ad ultrasuoni:

alt text

Accesso in in lettura su una porta analogica di un sensore di luminosità:

alt text

Esempi di collegamenti base con topologia a bus:

Il BUS è un mezzo ad accesso multiplo composto da un unico filo per tutte le stazioni. Il tipo del collegamento in parallelo dei dispositivi lo rende un mezzo broadcast cioè un mezzo trasmissivo dove se una stazione parla tutte le altre ricevono e ascoltano. I mezzi broadcast sono soggetti a collisioni che devono essere risolte costringendo le stazioni a parlare una alla volta mediante un protocollo di arbitraggio. Questi si dividono in due categorie: centralizzati e distribuiti. Quelli che regolano il collegamento dei dispositivi sensori al gateway sono spesso centralizzati e, in ogni caso, lo sono la maggior parte dei protocolli che vedremo di seguito (tranne l’ultimo).

La privatezza dei dati, in assenza di crittografia, è limitata perchè i messaggi inviati da una stazione sono inviati fisicamente a tutte le altre stazioni. Le stazioni però sono normalmente istruite a filtrare i messaggi a loro non destinati, ma, nonostante ciò, questi sono pur sempre a loro visibili e un attacco di sniffing per carpirli da parte di una stazione “malintenzionata” è sempre possibile.

Arbitraggio centralizzato Master/Slave

In un sistema centralizzato una stazione è più importante delle altre perché può avere l’iniziativa di cominciare una comunicazione ed è detta Master. Le altre stazioni hanno un ruolo passivo, nel senso che rispondono solo se sono interrogate dal master mediante una tecnica detta polling e sono dette pertanto Slave. Il polling equivale all’interrogazione periodica di più dispositivi seguita da una risposta immediata. Il master decide chi parla e quando parla a rotazione, seguendo un ordine prestabilito detto round robin, secondo il quale si scandisce ogni interazione richiesta-risposta. Esistono sistemi centralizzati con un solo master e altri multimaster in cui il controllo del BUS passa alternativamente da un master all’altro. La presenza di più master richiede comunque la concomitante presenza un meccanismo di sincronizzazione per evitare sovrapposizioni nell’accesso al BUS (lo devono controllare in maniera esclusiva ed uno alla volta).

Arbitraggio distribuito CSMA/CA

In un sistema distribuito a filo spesso si usano sistemi di arbitraggio CSMA/CA non distruttivi come (Carrier sensing multiple access/collision arbitration). La sincronizzazione dei bit tra le stazioni deve esse molto accurata. Ogni elemento ascolta il bus. Quando lo sente libero, avvia la comunicazione. Se due lo fanno insieme, un meccanismo di arbitrazione permette ad una sola trasmissione di continuare. Nel protocollo CAN si definiscono i bit come “dominante” e come “recessivo”. Un bit dominante vince su un bit recessivo. Se un nodo trasmette un bit dominante e contemporaneamente un altro nodo trasmette un bit recessivo allora sul bus sara’ presente quello dominante. Nel protocollo CAN si definisce il bit logico 0 come bit dominante e il bit logico 1 come bit recessivo. Dal punto di vista elettrico e di interfaccia si può pensare che il bit 1 sia forzato sul bus da un resistore di pull-up mentre lo zero dominante dal un trasnsistor con il drain sul bus. Se un nodo rileva un livello dominante quando sta inviando esso stesso un livello recessivo, uscirà immediatamente dal processo di arbitraggio e si metterà in ascolto, in attesa della fine della trasmissione dominante.

alt text

In genere i BUS si trovano in due stati IDLE (riposo) e comunicazione. Lo stato di IDLE è quello predefinito ed è ottenuto tramite una resistenza di pullup collegata sulla linea. Durante lo stato di comunicazione il valore bit 0 è codificato con il livello basso L=0 Volt mentre il valore bit 1 è codificato con lo stesso valore dell’IDLE cioè H. L’inizio della trasmissione di una trama è in genere segnalata da un livello basso L iniziale detto start bit.

Ci sono sistemi a BUS che si connettono direttamente alle porte digitali di un microcontrollore senza driver HW aggiuntivi. I più diffusi sono 1-wire (Dallas), two-wire (I2C) e 3 o 4-wire (SPI). Il collegamento diretto, senza driver HW (bit banging), alle porte digitali del microcontrollore genera sul BUS segnali non bilanciati circostanza che limita la lunghezza ammissibile dei collegamenti da qualche metro ad una decina di metri.

Tutti i tipi di BUS richiedono l’installazione di librerie SW per poter gestire l’accesso al mezzo dall’interno del codice di un applicativo. In genere, ciò si ottiene mediante API di servizio di alto livello e quindi comode da utilizzare. Allo scopo, nel codice del programma, o in un file di configurazione, va riportato il mappaggio tra il numero di porta e il ruolo della stessa all’interno del protocollo, per tutte quelle adoperate per realizzare il BUS.

Esempio di bus Dallas detto anche a 1 filo (one-wire):

alt text

Esempio di bus I2C detto anche a 2 fili (two-wire):

alt text

Esempio di bus SPI detto anche 4 fili (four-wire):

alt text

Esempio di bus RS485:

alt text

Esempio di attuatori collegati con BUS RS485 arbitrato dal protocollo Modbus:

alt text

Esempio di bus CAN:

alt text

Abbiamo visto BUS centralizzati e di uso generale che definiscono il livello fisico di una comunicazione via cavo. Degli altri livelli OSI o non forniscono affatto la definizione o ne forniscono una molto essenziale sotto forma di function code. Esistono molti altri stack commerciali che si occupano di domotica e automazione che a livello fisico utilizzano sia reti cablate che wireless. Esempi notevoli sono KNX, BACNet, DALI.

Molti di questi forniscono una definizione elaborata, standard ed esaustiva di tutti i possibili tipi di servizi adoperabili nei vari scenari pratici dell’automazione (dall’accensione di una lampadina all’azionamento di una tapparella, ecc.) spesso catalogati e raccolti in strutture dati dette profili. Molti di questi BUS, per accrescere l’affidabilità, adoperano un arbitraggio del mezzo trasmissivo di tipo peer to peer usando, ad esempio, protocolli di tipo ALOHA o CSMA/CA. Dettaglio protocolli di accesso su mezzi a BUS

Sitografia:

Torna a reti di sensori