Molti Protocolli di Comunicazione Seriale sono disponibili per il trasferimento di dati tra dispositivi elettronici, che si tratti di un microcontrollore che legge dati da un sensore o invia dati a un dispositivo di memorizzazione. Questo è uno di una serie di articoli che copriranno alcuni dei protocolli più popolari comunemente utilizzati. Concluderemo la serie con un confronto dei vantaggi e degli svantaggi di ciascuno.
Il mio obiettivo è che la serie si riveli un utile riferimento la prossima volta che ti troverai a dover implementare un bus di comunicazione seriale, così potrai scegliere l'opzione migliore per la tua applicazione specifica.
In questo articolo, esamineremo il popolare protocollo 1-Wire.
1-Wire è un bus di comunicazione a bassa velocità sviluppato da Dallas Semiconductor Corp. (ora Maxim Integrated) che utilizza una sola linea di dati di segnale esclusa la terra. È un sistema di comunicazione master-slave in cui un dispositivo master o host è connesso tramite una singola linea di dati a uno o più dispositivi slave. Ogni dispositivo slave 1-Wire avrà un numero di identificazione (ID) univoco di 64 bit programmato in fabbrica, che è l'indirizzo di quel dispositivo.
I dispositivi 1-Wire sono solitamente prodotti solo da Maxim Integrated e sono disponibili in vari tipi di package, come il tipico transistor TO-92, così come diversi circuiti integrati. Un dispositivo di comunicazione 1-Wire molto popolare è l'iButton (noto anche come Dallas Key). L'iButton è un piccolo dispositivo modulare utilizzato per applicazioni come data logger, sensori di temperatura e umidità, LED, dispositivi di memoria, adattatori, ecc. Sebbene l'iButton sia storicamente stata un'implementazione molto popolare del 1-Wire, oggi ci sono molti sensori disponibili da Maxim Integrated che implementano il protocollo 1-Wire.
In linea di principio, un iButton è un microchip molto simile a quelli utilizzati nelle smart card. La differenza è che il microchip è alloggiato in un bottone di acciaio inossidabile rotondo ed è progettato per l'uso in ambienti difficili e impegnativi. Si affidano a contatti fisici per la connessione con il bus 1-Wire.
I tipici intervalli di tensione 1-Wire su cui il dispositivo opera includono:
Una delle caratteristiche più interessanti del bus 1-Wire è che l'alimentazione può essere fornita attraverso la linea di comunicazione, piuttosto che necessitare di una alimentazione esterna. Questo può permettere di collegare sensori esterni, come i sensori di temperatura, con solo i fili dei dati e di massa, alimentando il sensore attraverso l'alimentazione parassita dal bus dati. Ciò può risparmiare una notevole complessità e cablaggio rispetto agli altri protocolli di comunicazione in serie che abbiamo esaminato in questa serie.
Un tipico collegamento di un dispositivo bus 1-Wire può essere visto nel seguente schema circuitale:
Nell'esempio sopra, un dispositivo master controlla diversi dispositivi slave.
La maggior parte dei dispositivi 1-Wire richiede un'energia estremamente bassa e non necessita di pin per l'alimentazione. Questi dispositivi estraggono l'energia di cui hanno bisogno per operare dalla linea dati 1-Wire, conosciuta come alimentazione parassita.
Una tipica configurazione di alimentazione parassita di un dispositivo 1-Wire può essere osservata nel seguente schema circuitale:
Esistono vari dispositivi 1-Wire, che possono essere utilizzati per applicazioni che includono la rilevazione della temperatura, identificazione, registrazione del tempo, EEPROM o EPROM (programmabili una sola volta), autenticazione sicura, ecc., consentendo la creazione di dispositivi con applicazioni che variano dall'identificazione, autenticazione di consumabili, accessori per PCB e computer, protezione della proprietà intellettuale, controllo dell'accesso ai sistemi di guardia, denaro elettronico, tempo e presenze, monitoraggio della temperatura di alimenti o sicurezza farmaceutica.
Il valore della resistenza di pull-up necessaria per la connessione 1-Wire dovrebbe essere abbastanza basso da fornire corrente sufficiente per alimentare il dispositivo ma non troppo basso tale che i dispositivi slave non riescano a portare la linea dati al livello logico 0 con successo.
I valori tipici della resistenza di pull-up per una connessione 1-Wire sono tra 1 kΩ e 4.7 kΩ. Questo imposta la corrente da un'alimentazione di 5 V tra 5 mA e 1.06 mA. Come esempio, il dispositivo DS2480B richiede un valore di corrente tra 1.5 mA e 5 mA per funzionare, tipicamente 3 mA.
Sul bus 1-Wire, c'è sempre un master che ha il controllo generale, che può essere un computer personale o un microcontrollore. Il master inizia sempre l'attività sul bus per evitare collisioni di trasmissione. Il dispositivo master è responsabile del rilevamento e della gestione di eventuali collisioni derivanti dalla trasmissione simultanea di più dispositivi slave.
I dispositivi trasmettono utilizzando impulsi bassi corti e lunghi per rappresentare i dati. Un impulso basso di 1–15 µs equivale a un livello logico 1, mentre un impulso basso di 60 µs equivale a un livello logico 0. Il bordo discendente (negativo) dell'impulso è utilizzato dai dispositivi slave per ascoltare la larghezza dell'impulso. Misurano la sua durata utilizzando un multivibratore monostabile molto semplice. Il master inizia le comunicazioni inviando un impulso di reset seguito da un comando di 8 bit, e poi i dati vengono inviati o ricevuti in gruppi di 8 bit. Il rilevamento degli errori è implementato utilizzando un semplice controllo di ridondanza ciclica (CRC) di 8 bit.
Questo articolo ha esaminato alcune caratteristiche del popolare protocollo 1-Wire e discusso alcuni dei suoi vantaggi e dettagli implementativi. Negli altri articoli di questa serie, esamineremo alcuni dei protocolli di comunicazione seriale alternativi disponibili.
Vorresti scoprire di più su come Altium Designer® può aiutarti con il tuo prossimo progetto di PCB? Parla con un esperto di Altium.