Linee Guida per reti 1-Wire a lunga distanza

Benvenuti a un nuovo appuntamento con la Rubrica Firmware Reload di Elettronica Open Source. In questa Rubrica del blog EOS abbiamo raccolto gli articoli tecnici della vecchia rivista cartacea Firmware, che contengono argomenti e temi passati ancora di interesse per Professionisti, Makers, Hobbisti e Appassionati di elettronica. Il protocollo 1-Wire, nato inizialmente per gestire la comunicazione con dispositivi a breve distanza, è stato esteso nel tempo per utilizzi anche al di fuori delle dimensioni di una semplice scheda. Scopriamo in questo articolo le linee guida da seguire per realizzare con efficienza delle reti 1-Wire anche molto complesse.

Introduzione

Il protocollo 1-Wire è stato inizialmente progettato per la comunicazione a corto raggio tra il microcontrollore e i dispositivi periferici, come ad esempio le memorie ausiliarie. Basato su un bus composto da un unico filo, il protocollo 1-Wire ha riscosso in breve tempo un significativo successo, ed è pertanto sorta la necessità di gestire reti di dispositivi anche molto estese e complesse. Una rete 1-Wire è essenzialmente composta da un certo numero di dispositivi 1-Wire e dai relativi collegamenti. Ogni rete 1-Wire è in genere differente dall’altra, sia a livello di topologia (il “layout” della rete) che a livello di dispositivi hardware utilizzati. In questo articolo, basato su un Application Note di Maxim, vedremo quali criteri occorre seguire per realizzare efficientemente delle reti 1-Wire con varie strutture, dimensioni e tipologia di dispositivi impiegati. Alcuni degli aspetti che andremo ad esaminare non sono tuttavia critici nel caso di applicazioni a corto raggio, tipicamente per reti con collegamenti di lunghezza inferiore a un metro.

RETE 1-WIRE

Nel corso dell’articolo verranno prese in considerazione soltanto reti 1-Wire che utilizzano dei cavi di collegamento di tipo CAT5 e dispongono di un bus alimentato a 5V direttamente dal nodo master. La maggior parte dei nodi 1-Wire slave sarebbe in realtà in grado di operare a tensioni del bus inferiori, ma per reti di dimensioni significative occorre tenere conto delle perdite lungo le connessioni, che provocano delle cadute di tensione anche significative. Nel corso dell’articolo non prenderemo in considerazione la programmazione di dispositivi slave quali le memorie EPROM; è infatti poco raccomandabile eseguire la programmazione di questi dispositivi quando le distanze rispetto al nodo master sono significative. Anche la modalità di funzionamento over drive (incremento della velocità di trasmissione) non verrà considerata, in quanto essa è significativa soltanto nel caso di collegamenti molto brevi, ed è comunque sconsigliata la sua applicazione alle reti di dispositivi 1-Wire. Parlando di topologia, possiamo anzitutto affermare che una qualunque rete 1-Wire è caratterizzata da due fattori: il raggio ed il peso.

RAGGIO

Per raggio di una rete 1-Wire si intende la distanza massima, misurata sul collegamento (filo) tra il nodo master e il nodo slave più distante da esso. Il raggio viene sempre misurato in metri.

PESO

Per peso di una rete 1-Wire si intende il numero totale di nodi slave collegati alla rete. Anche il peso viene misurato in metri. Come? Consideriamo come esempio una rete con una configurazione a stella composta da tre rami di lunghezza, rispettivamente, pari a 10 metri, 20 metri e 30 metri. Il raggio della rete (distanza massima del collegamento tra il master e lo slave più distante) sarà perciò pari a 30 metri, mentre il peso della rete sarà pari a 60 metri (lunghezza totale dei collegamenti presenti nella rete, quindi 10 metri+20 metri+30 metri). In generale, il peso di una rete influisce sul tempo di salita del segnale del bus, mentre il raggio determina il tempo di riflessione del segnale più lento. Il peso massimo che una rete 1-Wire può supportare è limitato, e dipende dal tipo di interfaccia (driver) implementata sul nodo 1-Wire master. In generale, il peso limite può essere raggiunto utilizzando un numero elevato di slave con collegamenti molto corti, oppure attraverso un numero ridotto di slave con collegamenti di lunghezza elevata. Anche i dispositivi slave (come ad esempio i noti iButtons® o altri dispositivi della famiglia 1-Wire) contribuiscono ad aumentare il peso di una rete. Più precisamente, possiamo affermare che ogni nodo slave aggiunge un peso equivalente a quello di un filo di una certa lunghezza, ed è così possibile calcolare il peso complessivo della rete includendo anche gli slave. Il peso è uno dei fattori da calcolare con precisione quando si progetta una rete 1-Wire.

I dispositivi iButtons®, ad esempio, hanno un peso equivalente pari a 1 metro, mentre altri dispositivi slave hanno un peso pari a 0,5 metri. Ad esempio, 100 dispositivi iButtons® incrementano il peso totale di una rete di 100 metri, e quindi, a parità di peso, occorrerà ridurre di 100 metri i collegamenti affinché la rete continui ad operare con lo stesso livello di efficienza. Anche le tracce di rame presenti sul PCB, i connettori e i dispositivi di protezione ESD contribuiscono ad aumentare il peso di una rete. Anche se il peso è influenzato da numerosi fattori, l’elemento che influisce in modo maggiore è rappresentato dalle capacità. Come regola generale, il peso introdotto dai dispositivi di protezione ESD e dalle piste del PCB può essere stimato con un fattore di capacità pari a 24 pF/m. Se, ad esempio, la capacità equivalente di tutte le piste di PCB presenti in una rete 1-Wire è pari a 12 pF, possiamo affermare che il contributo di peso introdotto da queste piste è pari a 0,5 m. In Figura 1 è visibile un dispositivo appartenente alla famiglia iButtons® di Maxim. Nel caso specifico si tratta di un logger per l’acquisizione e la memorizzazione della temperatura. In primo piano sono presenti due dispositivi logger, mentre dietro di essi è visibile un adattatore USB che consente un agevole collegamento ad un comune PC.

Figura 1: un dispositivo iButtons®

Figura 1: Un dispositivo iButtons®

TOPOLOGIE 1-WIRE

Nonostante il più delle volte le reti 1-Wire abbiano una struttura “libera” senza una particolare architettura, è possibile classificare le varie topologie di reti in alcune categorie, basandosi sulla distribuzione degli slave 1-Wire e sulla disposizione dei cavi di collegamento. Possiamo individuare tre classi principali di reti 1-Wire, che ora andremo ad esaminare.

RETE LINEARE

E’ sicuramente la tipologia di rete più semplice in assoluto. In essa, il bus 1-Wire è composto da un unico ramo che parte dal nodo master e si estende sino a raggiungere il nodo slave più distante. Al bus possono essere collegati anche altri slave, a condizione che la lunghezza dei loro collegamenti non sia significativa (viene accettata una lunghezza non superiore a 3 metri). Un esempio di rete 1-Wire lineare è indicato in Figura 2.

Figura 2: rete 1-Wire lineare

Figura 2: Rete 1-Wire lineare

RETE STUB

Questo tipo di rete ha una struttura molto simile alla precedente, nel senso che anche in questo caso troviamo un collegamento principale, di una certa lunghezza, che parte dal master e raggiunge lo slave da esso più distante. Anche in questo caso sono presenti altri slave collegati nei punti intermedi della “dorsale”. Rispetto al caso di rete lineare, tuttavia, i collegamenti degli slave possono in questo caso avere una lunghezza anche superiore a 3 metri. Si ottengono quindi delle configurazioni analoghe a quella visibile in Figura 3.

Figura 3: rete 1-Wire di tipo stub

Figura 3: Rete 1-Wire di tipo stub

RETE A STELLA

In questa topologia di rete il bus 1-Wire dispone di un punto centrale posto in corrispondenza del nodo master, e da questo si dipartono poi una serie di rami, di lunghezza variabile, ai quali sono collegati i dispositivi slave. Gli slave possono collegarsi, indifferentemente, agli estremi di ciascun ramo oppure nei suoi punti intermedi. In Figura 4 possiamo osservare una caratteristica configurazione di rete a stella: in questo caso i cinque dispositivi slave presenti sul bus sono collegati in corrispondenza dei punti estremi di ciascun ramo della rete.

Figura 4: rete 1-Wire a stella

Figura 4: Rete 1-Wire a stella

Le reti a stella andrebbero sempre progettate con una certa cautela. In particolare, bisognerebbe sempre evitare di creare le cosiddette reti “unswitched”, cioè quelle particolari configurazioni a stella composte da un numero elevato di rami che partono dal centro della rete. Utilizzando questa configurazione è infatti molto difficile garantire un elevato grado di affidabilità. Le giunzioni tra i vari rami della rete presentano infatti degli elevati valori di disaccoppiamento di impedenza; le riflessioni del segnale dall’estremo di un ramo possono percorrere distanze equiparabili a circa il peso della rete (anziché al raggio) e provocare degli errori sui dati trasmessi. Proprio per questa ragione la topologia a stella di tipo unswitched è fortemente sconsigliata, e non è possibile fornire alcuna garanzia sul livello di performance con essa ottenibile.

Reti switched

Per consentire a una rete di crescere in complessità senza aumentare l’entità del peso e del raggio, la rete stessa viene suddivisa in sezioni che vengono attivate una alla volta, in modo quindi mutuamente esclusivo. Utilizzando degli switch analogici a singola alimentazione e bassa impedenza, la rete può assumere una particolare topologia dal punto di vista fisico, e un altro tipo di topologia dal punto di vista elettrico. Ciò significa, ad esempio, che una rete a stella con uno switch analogico posto in corrispondenza di ogni ramo può diventare simile a una rete di tipo lineare. Come detto in precedenza, solo un ramo alla volta può essere attivo. In Figura 5 possiamo osservare una rete a stella con un raggio di 150 metri e peso pari a 450 metri. Se, tuttavia, ciascun ramo “switched” viene considerato singolarmente, la rete assume una topologia lineare con un peso pari a soli 150 metri.

Figura 5: rete switched

Figura 5: Rete switched

COME OTTIMIZZARE UNA RETE

Esistono diversi fattori che concorrono a limitare il valore massimo del raggio e del peso di una rete. Alcuni di questi fattori possono essere controllati, mentre altri no.

INTERFACCIA MASTER

L’interfaccia del nodo master influenza anzitutto la dimensione massima disponibile della rete. L’interfaccia deve infatti fornire una corrente sufficiente per fare fronte al peso determinato dai cavi e dagli slave. Non solo, essa deve anche essere in grado di generare le forme d’onda utilizzate sul bus 1-Wire secondo le tempistiche richieste, e presentare un opportuno valore di impedenza che si adatti al resto della rete, in modo tale da evitare pericolose riflessioni dei segnali. Quando la rete ha dimensioni ridotte, è conveniente utilizzare un’interfaccia master molto semplice. In questo caso, infatti, le capacità sono ridotte, i segnali riflessi non sono in grado di interferire con la normale trasmissione, e le perdite sui collegamenti sono minime. Si può quindi utilizzare una semplice interfaccia basata su un transistor FET e su una resistenza di pull-up. Quando però la lunghezza dei collegamenti e il numero di nodi collegati crescono, entrano in gioco dei fattori che richiedono l’adozione di interfacce più complesse.

IL RAGGIO

Il raggio di una rete è limitato da diversi fattori: la tempistica con cui avviene la riflessione delle forme d’onda, il ritardo di tempo introdotto dal cavo, la resistenza del cavo, il degrado del livello dei segnali. La tipica velocità di propagazione del segnale in un cavo telefonico è pari a circa 2/3 della velocità della luce. In un cavo lungo 750 metri, ad esempio, il ritardo di propagazione è pari a circa 7,5 μs. Se il master, per iniziare un’operazione di lettura, porta il bus allo stato basso esattamente per 7,5 μs, è probabile che esso non riesca a comunicare con lo slave più distante.

IL PESO

Il peso di una rete è limitato dalla capacità del cavo di essere caricato e scaricato in modo sufficientemente rapido da soddisfare i requisiti del protocollo 1-Wire. Una semplice resistenza di pull-up comporta una limitazione del peso pari a circa 200 metri. Sono, tuttavia, disponibili delle interfacce master più sofisticate che utilizzano dei pull-up attivi in grado di erogare correnti maggiori, estendendo il massimo peso sopportabile a oltre 500 metri.

ALIMENTAZIONE DEGLI SLAVE

In una rete 1-Wire, il segnale non deve essere soltanto sufficiente a garantire la comunicazione, ma deve anche fornire una quantità di energia in grado di alimentare gli slave. Ciascun slave, infatti, sottrae potenza dal bus quando la tensione del bus stesso è maggiore della tensione presente sul suo condensatore di carica interno. Quando il peso della rete cresce significativamente, la corrente erogata dal master potrebbe non essere più sufficiente ad alimentare tutti gli slave. Il caso peggiore si ha quando il master trasmette una lunga sequenza di zeri: in questo caso, infatti, il bus si mantiene per lungo tempo nello stato basso, e gli slave hanno meno opportunità di ricaricarsi. Se il bus riesce a raggiungere un livello di tensione sufficiente durante il tempo che intercorre tra la trasmissione di due bit adiacenti (oppure se tale periodo è sufficientemente ampio), il problema non sussiste. In caso contrario, un nodo slave potrebbe a un certo punto ricevere un’alimentazione non più sufficiente. Quando ciò avviene, lo slave si porta in uno stato di reset, e interrompe la comunicazione con il master. Se successivamente l’alimentazione dello slave ritorna operativa, lo slave stesso emette un segnale di presenza, rischiando di corrompere con questo l’attività corrente del bus. In definitiva, quando una rete non dispone di energia sufficiente per alimentare tutti gli slave, possono generarsi delle anomalie intermittenti che affliggono i dati trasmessi sul bus.

ACCOPPIAMENTO DI IMPEDENZA

La soluzione più semplice per risolvere il problema dell’accoppiamento di impedenza risultante dall’aggiunta di ogni nuovo dispositivo alla rete è basata sull’utilizzo di una resistenza da 150 collocata in ogni punto di giunzione tra il ramo principale della rete e lo stub (collegamento) che lo collega allo slave, come indicato in Figura 6.

Figura 6: adattamento di impedenza

Figura 6: Adattamento di impedenza

Questo valore è in grado di ridurre del 20% il disaccoppiamento di impedenza, e attenua la riflessione del segnale del 40%. Tuttavia, l’aggiunta della resistenza diminuisce l’immunità al rumore dell’80%.

Scarica subito una copia gratis

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend