Comunicazione seriale a basso numero di pin: introduzione al bus a 1 filo



2 giorni fa p Robert Keim La comunicazione seriale è un'alternativa a conteggio di segnale ridotto alle interfacce parallele. Trasferendo i bit in sequenza anziché simultaneamente, le connessioni seriali possono, in teoria, ridurre un bus parallelo di qualsiasi dimensione fino a un pin. In pratica, tuttavia, i protocolli seriali tendono a utilizzare più di un pin perché possiamo rendere la comunicazione più comoda e robusta incorporando segnali aggiuntivi.
SPI, ad esempio, include un segnale di clock seriale e un segnale di selezione slave e utilizza due segnali di dati per fornire una comunicazione full duplex. I2C consente una comunicazione solida, flessibile e half-duplex utilizzando solo due segnali (dati e clock) che operano nel contesto di transazioni altamente organizzate. UART è un'interfaccia semplice e affidabile che richiede solo un segnale dati, ma vedremo in seguito che il bus a 1 filo merita più l'etichetta "un filo" rispetto a UART.
Il bus a 1 filo è stato sviluppato da Dallas Semiconductor e Dallas è stata acquisita da Maxim, per quanto ne so Maxim è l'attuale "proprietario" del protocollo. L'interfaccia utilizza una struttura master / slave e le uniche connessioni necessarie tra master e slave sono il riferimento di terra e una linea di segnale. Come con I2C, la linea del segnale viene inviata a VDD attraverso un resistore e pilotata tramite un circuito di uscita a drain aperto.
Il bus a 1 filo enfatizza il basso numero di pin sulla velocità o sulla flessibilità di implementazione. Il protocollo originale era limitato a una velocità di trasmissione dati di 16,3 kbps, che sembra assurdamente lento rispetto agli standard attuali, ma è comunque perfettamente adeguato per molte applicazioni.
I più recenti dispositivi a 1 filo supportano una modalità "overdrive" a velocità più elevata. Come avrete intuito, il bus a 1 filo non supporta la comunicazione full duplex. (Sarebbe un bel trucco trasferire simultaneamente flussi di dati separati in due direzioni su un filo.
) Tuttavia, è bidirezionale. Un aspetto distintivo del protocollo a 1 filo è che è destinato all'uso in (per usare la terminologia di Maxim) "ambienti di contatto momentanei". Quando penso a I2C e in particolare a SPI, immagino un PCB con vari circuiti integrati che vengono installati e collegati in modo permanente tramite connessioni permanenti.
Il bus a 1 filo, tuttavia, viene spesso utilizzato con componenti che sono in contatto elettrico con il master solo temporaneamente. L'importanza dei sistemi di contatto momentaneo nelle implementazioni del bus a 1 filo si riflette nel pacchetto "iButton" (vedere la foto sotto). Questo è uno dei fattori di forma standard per i componenti del bus a 1 filo e funge da custodia durevole e standardizzata per i dispositivi slave che sono spesso separati dal dispositivo master.
La caratteristica più interessante del bus a 1 filo, secondo me, è "l'alimentazione del parassita". All'inizio di questo articolo ho detto che il protocollo a 1 filo è più vicino a un'interfaccia a un solo filo di UART. La mia giustificazione per questa affermazione è che gli slave a 1 filo non richiedono una connessione di alimentazione, mentre con UART sia il ricevitore che il trasmettitore devono avere connessioni separate a un alimentatore.
Come mai i circuiti integrati a 1 filo - tra cui sensori di temperatura, autenticatori, memoria e registratori di dati - funzionano e comunicano senza un pin di alimentazione? Bene, in realtà, hanno un pin di alimentazione, perché "un filo" tra master e slave è in grado di trasferire sia i dati che l'alimentazione. Un circuito integrato a 1 filo può estrarre la potenza operativa da un segnale seriale attraverso un circuito di alimentazione interno costituito da un diodo e un condensatore. Quando la linea di dati è logicamente alta, viene utilizzata della corrente aggiuntiva per caricare il condensatore, quindi il diodo impedisce al condensatore di scaricarsi quando la linea di dati è logicamente bassa.
Un'altra caratteristica interessante del protocollo a 1 filo è il suo metodo di indirizzamento dei componenti collegati al bus. Ogni dispositivo a 1 filo è preprogrammato con un numero seriale univoco e permanente a 64 bit. (Ringraziamo Dallas Semiconductor per una buona pianificazione a lungo termine; 264 è pari a circa 18.
4 quintilioni, quindi non credo che presto esauriremo gli indirizzi a 1 filo.) Questo 64- il numero seriale di bit include 8 bit per un CRC e 8 bit per un codice che identifica la famiglia a cui appartiene l'IC. Il master utilizza questi numeri di serie a 64 bit per indirizzare gli slave, il che significa che non è possibile che più dispositivi su un bus abbiano lo stesso indirizzo slave.
Indirizzare gli slave è abbastanza semplice se i numeri di serie sono noti e incorporati nel firmware del master, ma cosa succede se non sono noti? Bene, il protocollo a 1 filo incorpora un utile algoritmo di ricerca che consente al master di determinare i numeri di serie di tutti i dispositivi collegati. Se sei interessato ai dettagli della procedura di ricerca a 1 filo, questo documento di Maxim fornisce molte altre informazioni. Spero che questo articolo ti abbia fornito una chiara panoramica di ciò che è il bus a 1 filo e come viene utilizzato.
Se hai mai incorporato questo protocollo in uno dei tuoi progetti, sarebbe bello sapere delle tue esperienze . Perché hai scelto 1 filo invece di SPI o UART? Hai notato vantaggi o svantaggi significativi?

Yorumlar

Bu blogdaki popüler yayınlar

Classici protocolli CAN vs CAN FD: le differenze che contano per i progettisti

Che cos'è DrMOS, l'IC che alimenta i processori di nuova generazione?

Il modello Elmore Delay nel design VLSI