Come connettersi in modo efficiente ai sensori negli endpoint IoT utilizzando la comunicazione 1-Wire

Di Bill Giovino

Contributo di Editori nordamericani di DigiKey

Se è comune per gli endpoint Internet delle cose (IoT) e Internet delle cose industriale (IIoT) avere aree di controllo localizzate, alcuni hanno bisogno di connettersi a semplici sensori a più di un metro di distanza dalla posizione del microcontroller host. Tradizionalmente, sono utilizzate le interfacce seriali SPI o I²C per comunicare facilmente con questi sensori. Tuttavia, poiché gli algoritmi di controllo diventano più complicati e l'uso dei sensori aumenta, il microcontroller deve utilizzare più linee SPI e I²C per raggiungerli. Questo aumenta la complessità del cablaggio, che si aggiunge ai costi di configurazione e manutenzione, in particolare quando le distanze aumentano.

Questo articolo mostrerà agli sviluppatori come utilizzare il protocollo 1-Wire di Maxim Integrated per connettersi in modo economico ai sensori IoT utilizzando solo un conduttore più la massa. Verranno discussi i vantaggi del protocollo 1-Wire, tra cui l'estensione significativa della portata del sensore e la fornitura di potenza e dati sugli stessi conduttori. Introdurrà poi un dispositivo ponte che converte i segnali 1-Wire in SPI o I²C e un kit di sviluppo con software per aiutare i progettisti a muovere i primi passi.

Espansione dell'uso di sensori IoT e IIoT

L'espansione delle reti IoT e IIoT si prefigge di rendere i sistemi e i processi di produzione più efficienti e ne aumenta la funzionalità. Questo comporta la raccolta di dati tramite sensori. Se una casa può avere un termostato in una stanza con un sensore di temperatura, un edificio automatizzato o una rete IIoT possono mettere molti sensori di temperatura e umidità in una stanza e in tutto l'edificio o la struttura. Ad esempio, i sensori aggiuntivi possono essere collocati nei condotti di riscaldamento, ventilazione e condizionamento dell'aria (HVAC) insieme ai sensori di pressione. I sistemi di sicurezza possono anche utilizzare diversi tipi di sensori, collocati in vari punti.

I sistemi di produzione e i nastri trasportatori stanno anche vedendo un aumento nell'uso di sensori per il monitoraggio del processo e la registrazione dei dati a scopo di analisi ad esempio, per risparmiare energia rendendo i sistemi più efficienti e migliorandone anche la sicurezza.

I sensori più comuni per queste applicazioni sono quelli ambientali - temperatura, umidità e pressione - sensori visivi di luce e sensori di prossimità capacitivi e sensori di posizione tra cui accelerometri MEMS (sistemi microelettromeccanici), giroscopi MEMS e sensori di vibrazione. La miniaturizzazione e i progressi nelle tecnologie MEMS hanno portato a sensori in contenitori più piccoli di un'unghia del pollice che assorbono solo poche centinaia di milliampere. La maggior parte di questi sensori è facilmente accessibile tramite un'interfaccia di comunicazione SPI o I²C, entrambe presenti su quasi tutti i microcontroller. Quando ci si interfaccia con questi semplici sensori, può essere poco pratico costruire un intero endpoint IoT o IIoT o un nodo figlio per campionare solo la temperatura, quindi è spesso più semplice e veloce instradarvi solo le linee di comunicazione SPI o I²C direttamente.

In alcuni casi, si utilizzano ancora i sensori analogici, come le termocoppie per alte temperature e alcuni sensori di pressione. In questi casi, il microcontroller si interfaccia con un convertitore analogico/digitale (ADC) SPI o I²C nella posizione del sensore che campiona localmente il sensore analogico. Ciò evita le cadute di tensione sulle linee dei sensori analogici e quindi migliora la precisione.

Interfacciamento con sensori SPI e I²C remoti

Un microcontroller comunica con questi sensori estendendo la portata delle linee dati SPI e I²C. Tuttavia, I²C è limitato a una portata massima di un metro; SPI ha limitazioni simili. Inoltre, SPI full-duplex richiede quattro pin, compresa la selezione di periferica individuale per ciascuno. Di conseguenza, raggiungere quattro periferiche SPI su un bus richiede sette pin, più alimentazione e massa, per un totale di nove pin. I²C half-duplex richiede due pin, più alimentazione e massa, alla periferica, per un totale di quattro linee. Allo stesso tempo, i segnali ad alta velocità aumentano l'interferenza elettromagnetica (EMI), che può generare diafonia, con conseguente riduzione dell'integrità del segnale e minore affidabilità del sistema.

C'è bisogno di una soluzione che riduca al minimo il cablaggio dell'alimentazione e dei dati e semplifichi il funzionamento, mantenendo la compatibilità con i sensori I²C e SPI esistenti.

Per risolvere il problema di connettersi a sensori remoti su distanze maggiori riducendo il numero di conduttori, Maxim Integrated ha sviluppato un protocollo 1-Wire che si connette alla maggior parte dei sensori SPI o I²C utilizzando un solo conduttore, più una massa. Il protocollo riduce i sei conduttori SPI e i quattro I²C a due soli che trasportano sia i dati che l'alimentazione fino a 100 metri.

Applicazione di 1-Wire

Quando si usa 1-Wire, il sensore remoto ha un ponte di comunicazione 1-Wire che converte il protocollo 1-Wire in segnali SPI o I²C compatibili che si interfacciano al sensore. Sia il ponte 1-Wire che il sensore ricevono l'alimentazione in modo parassita dal solo segnale 1-Wire più una linea di massa. Questo permette ai segnali 1-Wire di essere instradati in piccole aree, risparmiando sui costi dato che si usano meno conduttori.

Mentre sia SPI che I²C usano un segnale di clock dedicato, 1-Wire incorpora il clock nel segnale dati. SPI indirizza una particolare periferica usando un segnale di selezione separato per ogni periferica, mentre I²C usa un indirizzo di bus a 7 bit trasmesso lungo la linea dati; in confronto, 1-Wire usa un indirizzo a 56 bit che è cablato in ogni singolo ponte di comunicazione. Questo raggio di indirizzamento più ampio non solo aumenta il numero di periferiche uniche su un bus, ma aumenta anche la sicurezza rendendo più difficile per un hacker indovinare l'indirizzo di una periferica sul bus 1-Wire.

La dimensione del termine su un bus periferico 1-Wire è di 8 bit. Un host del bus 1-Wire del microcontroller può usare il protocollo 1-Wire in bit-bang, ma è anche supportato da un semplice driver UART. Questo permette anche a un microcontroller a 8 bit di essere un host di bus a 1 bit. Un bus a 1 bit può contenere periferiche SPI o I²C, ma non entrambe. Questa coerenza previene i conflitti e le collisioni sul bus e semplifica la programmazione del protocollo.

Soluzioni 1-Wire del mondo reale

Per i progettisti che desiderano interfacciarsi a una periferica SPI o I²C attraverso un bus 1-Wire, Maxim Integrated offre il ponte DS28E18Q+T 1-Wire-I²C/SPI con sequenziatore di comandi (Figura 1).

Schema del ponte DS28E18Q+T 1-Wire-I²C/SPI di Maxim Integrated con sequenziatore di comandi (fare clic per ingrandire)Figura 1: Il ponte DS28E18Q+T 1-Wire-I²C/SPI con sequenziatore di comandi si interfaccia con un bus 1-Wire IO e pin GND. (Immagine per gentile concessione di Maxim Integrated)

Facendo riferimento alla Figura 1, la potenza parassita viene estratta dal bus quando IO è alto e resa disponibile sul pin SENS_VDD per alimentare la periferica. Il ponte bufferizza e traduce i comandi 1-Wire nei comandi I²C o SPI appropriati.

Il pin IO e GND si collegano al bus 1-Wire e sono inviati al front-end con la sua macchina a stati. Ogni dispositivo è identificato da un ID ROM a 56 bit, preceduto da un codice di famiglia a 8 bit, 1-Wire, che designa la revisione di DS28E18Q+T. Questo permette al firmware del microcontroller di identificare in modo univoco uno specifico DS28E18Q+T, ed è abbastanza flessibile da affrontare qualsiasi cambiamento nella famiglia del dispositivo. C'è un numero di serie unico a 48 bit per il dispositivo con un codice di controllo a ridondanza ciclica (CRC) a 8 bit.

Il front-end invia i dati tradotti al sequenziatore di comandi usando un buffer di comando di 144 byte che include 128 byte di dati dal bus IO e 16 byte per uso interno. Il sequenziatore di comandi elabora i comandi e può memorizzare fino a 512 byte di comandi I²C o SPI nel suo buffer per essere successivamente inviati alla periferica, invece di avere il bus 1-Wire che elabora i comandi uno alla volta.

Questo buffer di 512 byte consente anche a DS28E18Q+T di coordinare il comportamento di alimentazione interna in modo che la temporizzazione della comunicazione con la periferica permetta di mantenere la potenza parassita. Il sequenziatore di comandi mantiene questa temporizzazione quando invia le istruzioni al master I²C/SPI e al controller GPIO che elabora i dati in modo che siano conformi agli standard I²C e SPI.

Un condensatore esterno da 470 nF è collegato al pin CEXT che funge da riserva di potenza per DS28E18Q+T durante il funzionamento del bus 1-Wire. L'alimentazione parassita è disponibile per la periferica collegata al pin SENS_VDD. Per il funzionamento SPI, i quattro pin SS#, MISO, MOSI e SCLK forniscono la comunicazione full-duplex alla periferica collegata. Il funzionamento I²C utilizza solo due pin con funzioni alternative, SDA e SCL. I pin SS# e MISO per il funzionamento SPI sono inutilizzati per il funzionamento I²C e quindi possono essere utilizzati come I/O di uso generale (GPIO) con funzione alternativa GPIOA e GPIOB. Questa maggiore flessibilità può essere utilizzata per illuminare i LED diagnostici nella posizione del sensore o per gestire i pin di configurazione su un sensore o ADC per cambiare il comportamento del dispositivo.

Utilizzando DS28E18Q+T di Maxim Integrated, un singolo UART su un microcontroller può comunicare utilizzando solo due conduttori con molti sensori sullo stesso bus 1-Wire più la massa; ogni sensore è collegato a un DS28E18Q+T che può essere fino a 100 m di distanza. Ciò può essere particolarmente utile per i sistemi HVAC dove è possibile instradare solo due conduttori possono attraverso un condotto dell'aria per monitorare la temperatura e l'umidità a ogni bocca. Questo migliora l'efficienza del sistema monitorando i punti caldi o freddi che possono essere causati da ostruzioni.

Sviluppo di 1-Wire

Per iniziare a sviluppare con il protocollo 1-Wire, Maxim Integrated offre il sistema di valutazione DS28E18EVKIT#, che consiste di una scheda di sviluppo hardware (Figura 2) e software.

Immagine della scheda di valutazione DS28E18EVKIT# di MaximFigura 2: La scheda di valutazione DS28E18EVKIT# di Maxim permette allo sviluppatore di collegare facilmente una periferica SPI o I²C al bus 1-Wire. Il software incluso può essere usato per programmare e monitorare il comportamento del bus e delle periferiche, oltre ad aiutare a generare i driver dei dispositivi del microcontroller. (Immagine per gentile concessione di Maxim Integrated)

La scheda di valutazione permette a uno sviluppatore di programmare e monitorare DS28E18Q+T. Per scopi di sviluppo, la scheda viene fornita con un adattatore USB che la interfaccia con una porta USB di un computer Windows. Lo sviluppatore deve scaricare ed eseguire il software del kit di valutazione DS28E18EVKIT# per lo sviluppo. Come si vede nella Figura 3, il software di valutazione permette la programmazione e il monitoraggio di DS28E18Q+T e della sua periferica collegata.

Immagine dei il software di valutazione DS28E18EVKIT# di Maxim Integrated (fare clic per ingrandire)Figura 3: Il software di valutazione DS28E18EVKIT# permette allo sviluppatore di configurare DS28E18Q+T su scheda usando l'adattatore USB e di monitorare il suo comportamento. La memoria del sequenziatore di comandi da 512 byte può essere occupata dai dati che poi sono inviati alla periferica per eseguire l'operazione del sensore. (Immagine per gentile concessione di Maxim Integrated)

Il software può inviare comandi alla scheda di valutazione DS28E18Q+T e configurarla per la periferica SPI o I²C di destinazione. Può selezionare l'intervallo di indirizzi della periferica e colmare la memoria del sequenziatore di comandi da 512 byte con i comandi della periferica da eseguire. Il software può anche aiutare a configurare i driver UART per il microcontroller finale, evitando di dover imparare tutti i dettagli del protocollo di comunicazione 1-Wire. Uno sviluppatore può anche utilizzare la scheda di valutazione nella propria applicazione, risparmiando il tempo e la fatica di dover costruire e configurare un nodo sensore.

Conclusione

Via via che i sistemi IoT e IIoT aggiungono più sensori, il cablaggio diventa più complesso e costoso, in particolare quando le distanze aumentano. L'invio di energia ai sensori è anche un altro aspetto che può complicare la creazione di una rete di sensori. Come mostrato, il protocollo 1-Wire e l'hardware associato di Maxim Integrated possono rendere l'interfacciamento alla rete di sensori più semplice ed efficiente, fornendo dati e potenza su un solo conduttore, più la massa.

DigiKey logo

Esonero della responsabilità: le opinioni, le convinzioni e i punti di vista espressi dai vari autori e/o dai partecipanti al forum su questo sito Web non riflettono necessariamente le opinioni, le convinzioni e i punti di vista di DigiKey o le sue politiche.

Informazioni su questo autore

Image of Bill Giovino

Bill Giovino

Bill Giovino è un ingegnere elettronico con un BSEE ottenuto a Syracuse University, ed è uno dei pochi ad essere passati con successo da progettista, a ingegnere delle applicazioni sul campo, al marketing tecnologico.

Da oltre 25 anni, Bill promuove le nuove tecnologie per un pubblico tecnico e non tecnico a nome di molte aziende, tra cui STMicroelectronics, Intel e Maxim Integrated. In STMicroelectronics, Bill ha contribuito a guidare i primi successi dell'azienda nel settore dei microcontroller. Con Infineon, Bill ha orchestrato i primi successi di progettazione di microcontroller dell'azienda nel settore automotive statunitense. In qualità di consulente di marketing per la sua società CPU Technologies, Bill ha aiutato molte aziende a trasformare prodotti di secondo grado in storie di successo.

Bill è stato uno dei primi ad adottare l'Internet delle cose, compresa l'integrazione del primo stack TCP/IP completo su un microcontroller. Bill è fedele al motto "Le vendite guidate dall'educazione" e tiene molto alla crescente importanza di comunicazioni chiare e ben scritte nella promozione di prodotti online. È moderatore del famoso gruppo Sales & Marketing di LinkedIn Semiconductor e parla correntemente di B2E.

Informazioni su questo editore

Editori nordamericani di DigiKey