Mentre le funzionalità di rete e di sicurezza dell'IoT continuano a fare rapidi progressi, migliora anche la tecnologia utilizzata per la connessione, l'alimentazione e la sicurezza. In questo articolo di Analog Devices, scopri come scegliere il bus master 1-Wire giusto per le applicazioni alimentate in cui l'interconnessione deve essere ridotta al minimo.
Introduzione
Il bus 1-Wire è un semplice schema di segnalazione che esegue comunicazioni bidirezionali half-duplex tra un controller master e uno o più slave che condividono una linea dati comune. Sia l'alimentazione che la comunicazione dati avvengono su quest'unica linea e ciò rende i dispositivi 1-Wire senza eguali nella loro capacità di fornire funzioni chiave ai sistemi in cui l'interconnessione deve essere ridotta al minimo. I prodotti 1-Wire forniscono combinazioni di funzioni di memoria, segnale misto e autenticazione sicura tramite un'interfaccia seriale a contatto singolo. Le applicazioni tipiche dei dispositivi 1-Wire sono identificazione di cartucce di stampa o materiali di consumo medicali, calibrazione e controllo di schede rack, identificazione e autenticazione di circuiti stampati (PCB), accessori e periferiche, protezione di proprietà intellettuale, prevenzione della clonazione e controllo di funzionalità di sicurezza.
Per sfruttare la tecnologia 1-Wire è necessario un master 1-Wire che generi le forme d'onda necessarie per identificare i dispositivi sul bus e comunicare con essi. Esistono vari modi per implementare un master 1-Wire. Questa nota sulle applicazioni illustra una serie di implementazioni di master 1-Wire per aiutare i progettisti a scegliere la soluzione giusta per la loro applicazione integrata e si concentra principalmente sull'estremità master di un circuito 1-Wire.
I master 1-Wire illustrati in questa nota sulle applicazioni sono diversi per la loro tensione di esercizio che va da 1,8 V a 5 V. Se la tensione di esercizio di un master 1-Wire non corrisponde a quella dei dispositivi slave target (ad esempio, un master da 3,3 V che comunica con slave da 1,8 V), si consiglia l'uso di un commutatore del livello di tensione.
Glossario 1-Wire
Esistono diversi termini che si trovano comunemente nella documentazione 1-Wire e che devono essere spiegati fin dall'inizio.
Tensione di esercizio
In genere, i dispositivi 1-Wire operano nei seguenti intervalli di tensione:
- Da 1,71 V (min) a 1,89 V (max)
- Da 2,97 V (min) a 3,63 V (max)
- Da 2,8 V (min) a 5,25 V (max)
La maggior parte dei dispositivi 1-Wire non dispone di un pin per l'alimentazione. Tali dispositivi sono alimentati in modo parassitario tramite la linea di comunicazione 1-Wire. Di conseguenza, tensione di esercizio e tensione di pull-up 1-Wire sono praticamente sinonimi. Maggiore è la tensione operativa (di pull-up), maggiore è la corrente che i dispositivi 1-Wire sono in grado di ricevere.
Pull-up forte
Con pull-up forte si intende un metodo per fornire corrente aggiuntiva alla rete 1-Wire tra i time slot. La corrente aggiuntiva è necessaria per varie funzioni dei dispositivi EEPROM (memoria elettricamente cancellabile programmabile di sola-lettura), ad esempio per copiare dati da un buffer a celle EEPROM, per le memorie sicure quando il motore crittografico è in funzione o per i sensori di temperatura 1-Wire durante una conversione di temperatura. Quando tali dispositivi 1-Wire vengono utilizzati in un ambiente da 1,8 V o 3 V, il pull-up forte è necessario; in un ambiente da 5 V con gli stessi slave 1-Wire, un pull-up forte potrebbe essere opzionale.
Timing 1-Wire
Si tratta di un'espressione generica per la forma dei time slot 1-Wire e la sequenza di ripristino/rilevamento presenza e per i mezzi per generare queste forme d'onda. È possibile utilizzare hardware speciale (ad esempio dei chip con il proprio generatore di timing) o semplicemente generare le forme d'onda tramite software. Il metodo che prevede l'utilizzo di hardware è più semplice per gli sviluppatori software, ma richiede un altro chip. Il metodo che contempla l'impiego di software consente di risparmiare sui costi dell'hardware, ma probabilmente aumenta i costi di sviluppo e test del software.
Supporto per overdrive
La maggior parte degli slave 1-Wire può comunicare a due velocità: velocità standard e velocità overdrive. In overdrive, il timing è circa otto volte più veloce rispetto alla velocità standard.
Pull-up attivo
Il bus o la rete 1-Wire è un ambiente open-drain, con 0 V (0 logico) come stato attivo. Quando è inattivo, il bus viene portato alla tensione di pull-up tramite un resistore (pull-up resistivo). I fronti di caduta, di conseguenza, sono ripidi; i fronti di salita, invece, a causa del resistore e dell'alimentazione parassitaria, possono essere piuttosto lenti. Per pull-up attivo si intende a un metodo che verifica i fronti di salita e, se è stata superata una soglia specifica, bypassa il resistore di pull-up per un tempo limitato con un percorso a bassa impedenza. Il pull-up attivo non è generalmente necessario nelle reti brevi o con un singolo dispositivo slave. Se disponibile, il pull-up attivo ricarica la linea 1-Wire più velocemente del pull-up resistivo e, di conseguenza, supporta più slave 1-Wire nella rete senza dover prolungare il tempo di ripristino tra i time slot. I master 1-Wire si differenziano per la forza (impedenza) del bypass e per il metodo che controlla la durata del pull-up attivo.
Circuiti master 1-Wire
Questa sezione analizza in dettaglio i vari circuiti master. I circuiti sono raggruppati in due categorie:
- Pin della porta del microprocessore
- Master 1-Wire con hardware Maxim
Ciascuna categoria presenta uno o più circuiti. Mostra lo schema, elenca i prerequisiti, valuta i vantaggi e gli svantaggi, indica a cosa fare attenzione e consiglia ulteriori letture e URL per il software di supporto.
Categoria 1. Creazione di un master con un pin della porta del microprocessore
La figura 1 mostra l'implementazione più basilare di un master 1-Wire.
Figura 1. Pin della porta unidirezionali con circuito opzionale per pull-up forte (linee tratteggiate).
Come unico prerequisito, questo circuito richiede una porta bidirezionale libera e un po' di spazio libero nella memoria del programma. Il vantaggio di questo circuito è il costo limitato dell'hardware. Lo svantaggio è rappresentato dal fatto che il timing 1-Wire viene generato tramite software e ciò può aumentare i tempi e i costi per lo sviluppo del software iniziale.
A seconda degli slave 1-Wire nell'applicazione e della tensione di pull-up 1-Wire, potrebbe essere necessario un pin della porta aggiuntivo per implementare un pull-up forte. La tensione di esercizio massima sul bus 1-Wire è determinata dalle caratteristiche della porta bidirezionale. Se c'è più di uno slave sul bus 1-Wire, il valore RPUP deve essere diminuito. In tal caso, verificare se il valore VOLMAX risultante è compatibile con le caratteristiche degli slave 1-Wire e dell'ingresso della porta del microprocessore.
La comunicazione a velocità overdrive richiede un microcontroller con un'elevata frequenza di clock e/o un basso numero di cicli di clock per ciclo di istruzione.
La figura 2 mostra un altro circuito base simile a quello della figura 1.
Figura 2. Pin della porta bidirezionale con circuito opzionale per pull-up forte (linee tratteggiate).
Come prerequisiti, questo circuito richiede due porte unidirezionali libere, un transistor pull-down e un po' di spazio libero nella memoria del programma. Il vantaggio di questo circuito è che non necessita di una porta bidirezionale. Lo svantaggio è rappresentato dal fatto che il timing 1-Wire viene generato tramite software e ciò può aumentare i tempi e i costi per lo sviluppo del software iniziale.
A seconda degli slave 1-Wire nell'applicazione e della tensione di pull-up 1-Wire, potrebbe essere necessario un pin della porta aggiuntivo per implementare un pull-up forte. La tensione di esercizio massima sul bus 1-Wire è determinata dalle caratteristiche della porta di ingresso. Se c'è più di uno slave sul bus 1-Wire, il valore RPUP deve essere diminuito. In tal caso, verificare se il valore VOLMAX risultante è compatibile con le caratteristiche degli slave 1-Wire e dell'ingresso della porta del microprocessore.
La comunicazione a velocità overdrive richiede un microcontroller con un'elevata frequenza di clock e/o un basso numero di cicli di clock per ciclo di istruzione.
Categoria 2. Master 1-Wire con hardware Maxim
Maxim produce un'ampia gamma di prodotti hardware master 1-Wire che possono essere utilizzati anche per gestire in modo affidabile una rete di dispositivi slave 1-Wire. Tali master sono più comunemente indicati come dispositivi "bridge 1-Wire" e vengono utilizzati per collegare l'interfaccia tra il processore host di un sistema (ad esempio, microcontroller, FPGA, PC, ecc.) e uno slave 1-Wire. Per spiegare meglio il concetto, se si integra un dispositivo bridge tra un processore host e uno slave 1-Wire, il processore host non si interfaccia più direttamente con lo slave 1-Wire per farlo funzionare. Il processore host, invece, si interfaccia con il dispositivo bridge tramite un protocollo di comunicazione specifico, come I2C, e gli ordina di inoltrare i dati 1-Wire allo slave 1-Wire. Il vantaggio di ciò è che la comunicazione 1-Wire non è più a carico del processore host, ma del dispositivo bridge 1-Wire, esonerando così il processore host dalla generazione di forme d'onda 1-Wire critiche dal punto di vista del tempo. Di conseguenza, l'intera applicazione software può essere sviluppata in un linguaggio di alto livello e tempi e costi di sviluppo del software iniziale sono notevolmente ridotti.
Oltre a generare un protocollo 1-Wire fondamentale, un dispositivo bridge 1-Wire include funzionalità aggiuntive che possono contribuire alla gestione più efficiente di una linea 1-Wire. Ad esempio, ogni dispositivo bridge 1-Wire include un pull-up passivo interno (ad esempio, un valore RPUP) per contribuire a ridurre il numero di componenti hardware esterni necessari. Di seguito vengono presentati alcuni dei migliori dispositivi bridge 1-Wire di Maxim con le rispettive, straordinarie funzionalità per aiutare i progettisti a scegliere la soluzione giusta per la loro applicazione. Per ciascun dispositivo viene fornito un circuito di applicazione tipico come riferimento per l'esecuzione della configurazione.
DS2480B
Il master 1-Wire DS2480B semplifica la progettazione a basso costo di una porta universale COM RS-232 per l'interfaccia 1-Wire. Questo dispositivo include:
- Un pull-up attivo interno (APU) che viene utilizzato automaticamente dopo il superamento di determinata una soglia sui fronti di salita della linea 1-Wire, per la gestione facile di più dispositivi sul bus 1-Wire.
- Un pull-up forte interno (SPU) che può essere abilitato opzionalmente in base ai requisiti di alimentazione di un dispositivo slave 1-Wire.
- Un acceleratore di ricerca a 4 bit integrato, che semplifica l'implementazione nel software della sequenza di ricerca della memoria di sola lettura (ROM) 1-Wire.
- La possibilità di programmare dispositivi EPROM (memorie di sola lettura programmabili e cancellabili) 1-Wire, utilizzando un'unità di alimentazione esterna a 12 V.
- Caratteristiche programmabili di timing 1-Wire e driver per adattarsi a un'ampia gamma di configurazioni di dispositivi slave a velocità standard.
- Una gamma di tensioni di esercizio superiori a 5 V ±10%.
Il dispositivo DS2480B si interfaccia direttamente con ricevitori-trasmettitori asincroni universali (UART) e sistemi RS232 da 5 V ed è in grado di comunicare a velocità fino a 115,2 kbps. Il circuito nella figura 3 mostra come integrare la soluzione DS2480B in un sistema compatibile.
Figura 3. Dispositivo DS2480B collegato alla porta dell'UART di un microcontroller host.
DS2484
Il dispositivo DS2484 è un master da I2C a 1-Wire entry-level che include:
- Un traslatore del livello di tensione integrato che consente al dispositivo DS2484 di funzionare a vari livelli di tensione sul lato 1-Wire, che vanno da 1,8 V -5% a 5 V +5%, indipendentemente dalla tensione di esercizio dell'I2C.
- Un pull-up attivo interno (APU) e un pull-up passivo selezionabile (RPUP) per il funzionamento efficiente a lunga distanza dei dispositivi 1-Wire.
- Un pull-up forte interno (SPU) che può essere abilitato opzionalmente in base ai requisiti di alimentazione di un dispositivo slave 1-Wire.
- Un comando Triplet 1-Wire integrato per semplificare l'implementazione nel software della sequenza di ricerca della ROM 1-Wire.
- Controllo dell'alimentazione tramite la porta 1-Wire per spegnere i dispositivi sul bus tramite software.
- Pin della modalità a basso consumo (SLPZ) per risparmiare energia quando il dispositivo DS2484 non è in uso.
- Parametri di timing 1-Wire regolabili per supportare un'ampia gamma di slave 1-Wire.
Il dispositivo DS2484 si interfaccia direttamente con un master I2C ed è in grado di comunicare a velocità fino a 400 kHz. Il circuito nella figura 4 mostra come integrare la soluzione DS2484 in un sistema compatibile.
Figura 4. Dispositivo DS2484 collegato alla porta I2C di un microcontroller host.
DS2485
Il dispositivo DS2485 è un master 1-Wire completo ottimizzato per velocità di elaborazione più elevate che offre il pieno controllo di un ampio set di funzionalità. Questo dispositivo include:
- Funzionalità di scripting per l'esecuzione di sequenze personalizzate di comandi primitivi 1-Wire.
- Algoritmo di ricerca 1-Wire integrato per individuare e recuperare facilmente gli ID ROM del dispositivo sul bus 1-Wire in base a comandi.
- Ampio buffer di blocchi 1-Wire con dimensione di 126 byte per un'elevata velocità di elaborazione.
- Parametri di timing 1-Wire regolabili, sia per velocità standard che overdrive, per supportare un'ampia gamma di slave 1-Wire.
- Tre pagine di memoria EEPROM da 32 byte per i dati utente.
- Un pull-up attivo selezionabile interno (APU) e un pull-up passivo selezionabile (RPUP) per il funzionamento efficiente a lunga distanza dei dispositivi 1-Wire.
- Un pull-up forte interno (SPU) che può essere abilitato opzionalmente in base ai requisiti di alimentazione di un dispositivo slave 1-Wire.
- Controllo dell'alimentazione tramite la porta 1-Wire per spegnere i dispositivi sul bus tramite software.
- Un pin GPIO per funzionalità di controllo specifiche per applicazioni.
- Una gamma di tensioni di esercizio superiori a 3,3 V ±10%.
Il dispositivo DS2485 si interfaccia direttamente con un master I2C ed è in grado di comunicare a velocità fino a 1 MHz. Il circuito nella figura 5 mostra come integrare correttamente la soluzione DS2485 in un sistema compatibile.
Figura 5. Dispositivo DS2485 collegato alla porta I2C di un microcontroller host.
DS2465
Il dispositivo DS2465 è un master 1-Wire e coprocessore SHA-256 progettato per funzionare con autenticatori di sicurezza 1-Wire SHA-256. Questo dispositivo include:
- Un set di base di strumenti crittografici tra cui:
- Un motore SHA-256 integrato per l'autenticazione crittografica di dispositivi slave 1-Wire SHA-256.
- Due pagine di memoria EEPROM da 32 byte per i dati utente.
- Un pull-up attivo interno (APU) e un pull-up passivo selezionabile (RPUP) per il funzionamento efficiente a lunga distanza dei dispositivi 1-Wire.
- Un pull-up forte interno (SPU) che può essere abilitato opzionalmente in base ai requisiti di alimentazione di un dispositivo slave 1-Wire.
- Pin della modalità a basso consumo (SLPZ) per risparmiare energia quando il dispositivo DS2465 non è in uso.
- Un comando Triplet 1-Wire integrato per semplificare l'implementazione nel software della sequenza di ricerca della ROM 1-Wire.
- Controllo dell'alimentazione tramite la porta 1-Wire per spegnere i dispositivi sul bus tramite software.
- Parametri di timing 1-Wire regolabili, sia per velocità standard che overdrive, per supportare un'ampia gamma di slave 1-Wire.
- Una gamma di tensioni di esercizio superiori a 3,3 V ±10%.
Il dispositivo DS2465 si interfaccia direttamente con un master I2C ed è in grado di comunicare a velocità fino a 400 kHz. Il circuito nella figura 6 mostra come integrare correttamente la soluzione DS2465 in un sistema compatibile.
Figura 6. Master 1-Wire DS2465 collegato a vari dispositivi 1-Wire SHA-256.
DS2477
Il dispositivo DS2477 è un master 1-Wire e coprocessore SHA-3 progettato per funzionare con autenticatori di sicurezza 1-Wire SHA3-256. Questo dispositivo include:
- Un set di base di strumenti crittografici tra cui:
- Un motore SHA-3 integrato per l'autenticazione crittografica di dispositivi slave 1-Wire SHA-3.
- Tecnologia PUF (Physical Unclonable Function) ChipDNA™ per proteggere i dati del dispositivo dagli attacchi alla sicurezza.
- 2 Kb di memoria EEPROM per i dati utente e l'archiviazione delle chiavi.
- Un vero generatore casuale (TRNG) conforme agli standard FIPS (Federal Information Processing Standard)/NIST (National Institute of Standards and Technology).
- Un numero di identificazione (ROM ID) a 64 bit univoco e inalterabile, programmato in fabbrica.
- Un pull-up attivo interno (APU) e un pull-up passivo selezionabile (RPUP) per il funzionamento efficiente a lunga distanza dei dispositivi 1-Wire.
- Un pull-up forte interno (SPU) che può essere abilitato opzionalmente in base ai requisiti di alimentazione di un dispositivo slave 1-Wire.
- Controllo dell'alimentazione tramite la porta 1-Wire per spegnere i dispositivi sul bus tramite software.
- Parametri di timing 1-Wire regolabili per supportare un'ampia gamma di slave 1-Wire.
- Ampio buffer di blocchi 1-Wire con dimensione di 126 byte per un'elevata velocità di elaborazione.
- Un pin GPIO per funzionalità di controllo specifiche per applicazioni.
- Una gamma di tensioni di esercizio superiori a 3,3 V ±10%.
Nei test di laboratorio, il dispositivo DS2477 è stato in grado di gestire con successo 50 dispositivi slave 1-Wire DS1990 a una distanza di oltre 300 metri utilizzando un'impostazione del resistore di pull-up da 333Ω. Il dispositivo DS2477 si interfaccia direttamente con un master I2C ed è in grado di comunicare a velocità fino a 1 MHz. Il circuito nella figura 7 mostra un esempio applicativo della soluzione DS2477 che gestisce più dispositivi slave 1-Wire SHA-3, come i DS28E50.
Figura 7. Dispositivo DS2477 collegato alla porta I2C di un microcontroller host con più slave DS28E50.
Adattatori basati su PC e kit di valutazione
Dato che non richiedono alcuno sviluppo software da parte dell'utente, gli adattatori basati su PC che funzionano come master 1-Wire e i kit di valutazione (kit EV) specifici per il dispositivo sono molto comodi per la valutazione dei dispositivi 1-Wire e per la prototipazione.
Per la soluzione basata su PC, oltre all'adattatore, ai dispositivi 1-Wire da esplorare e ad alcuni cablaggi standard, tutto ciò di cui l'utente ha bisogno è il software di valutazione, come OneWireViewer basato su Java®, disponibile per il download gratuito.
I kit di valutazione sono più comodi rispetto a un adattatore standalone in quanto contengono tutto il necessario per eseguire la prototipazione e l'esplorazione. Inoltre, i kit di valutazione includono un adattatore da USB a I2C o da USB a I2C/1-Wire.
Oltre al software di valutazione gratuito incluso con i kit di valutazione, Maxim fornisce su richiesta anche esempi di codici dimostrativi gratuiti basati su C. La tabella 1 mostra i dettagli di alcune piattaforme di valutazione disponibili.
Tabella 1. Adattatori basati su PC e kit di valutazione
Conclusione
Il master 1-Wire giusto per un'applicazione integrata è quello che soddisfa i requisiti elettrici per i dispositivi 1-Wire (ovvero, tensione operativa e pull-up forte, se necessario) a un costo ragionevole, ma fornisce la migliore funzionalità complessiva. La scelta finale dipende dalle risorse libere (non utilizzate) nell'applicazione, che possono essere pin di una porta, un bus UART o I2C e spazio nella memoria del programma. Attualmente, i master 1-Wire hardware forniti da Maxim (categoria 2) sono le opzioni più versatili disponibili sul mercato a un costo estremamente ragionevole. Sono ricchi di funzionalità e programmabili per supportare tutti i sistemi 1-Wire, compresi quelli dotati di requisiti di sicurezza elevati.