Home → Tutorial →
Appunti scolastici →
Trasmissioni digitali → 1-Wire
In preparazione
1-Wire è un protocollo di comunicazione tra circuiti integrati introdotto da
Dallas Semiconductor, azienda acquisita da Maxim Integrated
nel 2001, a sua volta acquisita da Analog Devices.
Malgrado sia uno standard proprietario nato nel secolo scorso è ancora
utilizzato in diversi ambiti:
-
Identificazione di schede elettroniche attraverso un numero di serie;
usato per esempio dalle testina
"originali" di molte stampanti oppure per identificare i parametri
elettrici degli alimentatori per PC
portatili Dell e Mac. Spesso questa funzione è associata ad algoritmi di
cifratura avanzati
-
Misura della temperatura o, più raramente, della tensione
-
Memorie (One-Time Programmable
EEPROM, RAM non volatili, EEPROM) spesso associate a funzioni di
cifratura avanzate
La fotografia di apertura mostra 15 sensori di temperatura 1-Wire
collegati a Raspberry Pi.
Come il nome indica, le comunicazioni avvengono utilizzando un singolo
filo (oltre alla massa) che trasmette dati ed, opzionalmente,
l'alimentazione. Tale linea
è indicata come DQ.
La lunghezza di questo filo può, in determinate situazioni, arrivare a
300 m.
Un singolo master ed uno o più slave costituiscono, secondo la terminologia
originale da Dallas, una MicroLAN, potenzialmente costituita da un numero
molto elevato di periferiche, anche oltre 100.
L'alimentazione del master è sempre indipendente. Quella degli slave può
essere, a seconda del dispositivo (nota 1):
- indipendente, tipicamente a 3,3 V oppure 5 V. Nello schema
precedente non è disegnata
- fornita attraverso la linea dati (nota 2). Se è utilizzata questa modalità, un condensatore interno a
ciascuno slave viene caricato quando sulla linea è presente una tensione
positiva e permette di alimentare il circuito quando la tensione sulla linea è zero. Questa modalità è detta Parasite Power
I dati sono trasmessi dal master oppure da uno o più slave sull'unica
linea dati: essi sono tutti dotati di un'uscita open drain:
- in assenza di attività da parte di master e slave la tensione sulla
linea è alta
a causa del resistore di pull-up collegato all'alimentazione positiva.
Tale tensione in base alle specifiche va da 1.7 V a 5.5 V
- se almeno un dispositivo ha l'uscita bassa, la tensione su tutti gli ingressi
collegati alla linea diventa 0 V (zero
dominante)
Ciascun bit ha la durata di 60 µs. I segnali digitali sono trasmessi dal master ad uno slave:
- con un impulso basso lungo, dalla durata di almeno 15 µs, per
lo zero logico
- con un impulso basso breve, dalla durata di 6 µs, per l'uno logico
La trasmissione di un bit da uno slave al master viene sempre iniziata
dal master con un impulso breve di 6 µs.
- Se lo slave vuole trasmettere uno non fa nulla e
quindi il livello elettrico diventa alto dopo 6 µs per effetto del resistore di
pull-up
- Se lo slave vuole trasmettere zero mantiene bassa
la linea per 60 µs, linea rossa nel disegno seguente
Tra due bit, ciascuno con durata di circa 60 µs. la linea assume un livello
alto per 10 µs sia per separare due bit, sia per permettere ai condensatori
interni ai dispositivi di tipo Parasite Power di ricaricarsi almeno
parzialmente. La velocità di comunicazione massima è di poco
più di 15 kbit/s (nota 3).
Tutte le comunicazioni sono organizzate in frame:
- (campo rosso) Il frame inizia con un reset,
tensione bassa generata dal master e dalla durata di poco meno di
500 µs, seguita da un breve impulso positivo. Al termine, se sulla MicroLAN è presente almeno uno
slave, la linea viene portata bassa da uno o più slave per circa 50 µs (presence
pulse)
- (campo giallo) Questo campo contiene l'indirizzo dello slave con
cui il master vuole comunicare (nota 4). Questo indirizzo è univoco, generato durante la produzione del
circuito integrato e memorizzato in una memoria a sola lettura interna
allo slave. La struttura è descritta nella seguente tabella, per
un totale di 2(48+8) diverse combinazioni:
- (campo verde) Il campo contiene il codice, specifico per il dispositivo indirizzato,
che permette la lettura o la scrittura di dati
Un aspetto interessante è la modalità di ricerca degli indirizzi degli
slave, cosa ovviamente impossibile da fare sia leggendo la documentazione
sia con una scansione di tutti gli indirizzi possibili, come
effettuato con I2C. Tale
algoritmo è descritto nella
nota applicativa 187 di Maxim.
L'immagine seguente mostra i segnali reali relativi all'inizio del frame:
reset, impulso di presenza, una decina di bit:
Note
- Alcuni dispositivi permettono entrambe le modalità di alimentazione
a seconda dei pin collegati
- In questo caso è necessario collegare a DQ, oltre a RPU,
un MOS capace di fornire una corrente adeguata. In alcuni casi è
sufficiente diminuire il valore di RPU (1 kΩ o anche meno), sebbene
questa modalità non sia presente nei fogli tecnici ed è, di fatto,
sconsigliata
- Lo standard prevede anche una modalità overdrive, circa 10
volte più veloce
- Sono previste anche modalità con cui il master comunica con più
slave contemporaneamente
Pagina creata nel marzo 2022
Ultima modifica: 4 maggio 2022