SMBus: lavoro, differenze e sue applicazioni

Prova Il Nostro Strumento Per Eliminare I Problemi





SMBus è stato lanciato nel 1995 da Intel e si basa sul protocollo bus seriale I²C di Philips. Questo bus trasporta dati, CLK e istruzioni in cui la frequenza di clock varia da 10 kHz a 100 kHz. L'intenzione principale di SMBus è di consentire un metodo economico e potente per controllare e ottenere dati dai dispositivi su una scheda madre. SMBus è normalmente utilizzato nei PC per il controllo della temperatura, batterie intelligenti e altre comunicazioni di gestione del sistema a bassa larghezza di banda.


Questo bus identifica il collegamento di comunicazione tra un caricabatterie, una batteria intelligente e un microcontrollore che dialoga con il resto del sistema. Tuttavia, SMBus viene utilizzato anche per collegare diversi dispositivi come sensori di sistema, dispositivi relativi all'alimentazione, dispositivi di comunicazione, EEPROM di inventario, ecc. Questo articolo illustra una panoramica di un SMBus: lavorare con le applicazioni.



Cos'è il protocollo SMBus?

SMBus (System Management Bus) è un'interfaccia a 2 fili, spesso utilizzata tra vari dispositivi su una scheda madre per la comunicazione di gestione del sistema a bassa velocità. Questo tipo di autobus è stato progettato dal protocollo I2C fondazioni. Quindi sia l'I2C che l'SMBus potrebbero avere alcune somiglianze e possono anche interagire sul bus simile.

Questo bus funziona in base ai principi di funzionamento I2C che forniscono un bus di controllo, in particolare per consentire al sistema di consentire messaggi da o verso i dispositivi anziché utilizzare linee di controllo separate per ridurre i cavi del sistema e il numero di pin.



Un dispositivo con un SMBus può fornire le informazioni di produzione, informare il sistema del suo codice o modello, segnalare diversi tipi di errori, consentire parametri di controllo e rivisitare la sua posizione.

Specifiche SMBus

La specifica di SMBus si riferisce semplicemente a 3 tipi di dispositivi host, master e slave.

  • Un host è un particolare master e fornisce l'interfaccia principale alla CPU del sistema.
  • Un dispositivo master che emette istruzioni, genera gli orologi e termina il trasferimento.
  • Un dispositivo slave riceve altrimenti reagisce a un comando.

Come funziona SMBus?

Ci sono 3 tipi di dispositivi utilizzati nella comunicazione SMBus come un host, un master e un dispositivo slave che sono mostrati nel diagramma seguente. In questo bus, il dispositivo host è una specifica interfaccia di tipo master per la CPU del sistema; tuttavia, non è sempre necessario. Alcuni sistemi come i semplici sistemi di ricarica della batteria possono essere privi di host.

Un dispositivo master avvia la comunicazione, guida il CLK e interrompe il trasferimento. Un dispositivo può essere selezionato per essere semplicemente un master o un master-slave, dove può funzionare sia come dispositivo master che come dispositivo slave.

  Schema SMBus
Schema SMBus

Su SMBus, c'è anche sopra un master, tuttavia solo uno può masterizzare il bus in un dato momento. Ad esempio, quando i due dispositivi padroneggiano il bus contemporaneamente, SMBus fornisce un meccanismo di arbitrato che dipende semplicemente dalla connessione AND cablata di tutte le interfacce del dispositivo SMBus all'SMBus.

I dispositivi slave rispondono al suo indirizzo e ai comandi e possono trasmettere e ricevere dati da e verso un dispositivo master. Un dispositivo può essere selezionato totalmente come slave, altrimenti in alcuni esempi è possibile che lo slave funzioni come un master.

Simile al protocollo I2C, a ogni slave su questo bus viene semplicemente assegnato un indirizzo slave a sette bit in cui il bit di lettura o scrittura viene aggiunto a questo indirizzo per descrivere se il dispositivo sta leggendo o scrivendo il messaggio trasmesso sul bus.

I dispositivi sono necessari per riconoscere il proprio indirizzo, quindi una volta che un dispositivo identifica il proprio indirizzo, allora reagirà al comando.

Quando l'indirizzo slave di questo bus è in conflitto, supporta ARP o Address Resolution Protocol. Una volta che l'host rileva due dispositivi con un indirizzo slave simile, la procedura del protocollo di risoluzione degli indirizzi assegnerà dinamicamente un nuovo indirizzo univoco agli slave. Il protocollo di risoluzione degli indirizzi consentirà di utilizzare immediatamente i dispositivi senza la necessità di riavviare il sistema.

Questo bus utilizza 2 fili per la comunicazione come il cavo SMBDAT e il cavo SMBCLK in cui il cavo SMBDAT viene utilizzato per trasferire dati seriali e il cavo SMBCLK funziona come l'orologio seriale. Nell'SMBus sopra, il master pilota semplicemente l'SMBCLK che va da 10 a 100 kHz, tuttavia, qualsiasi linea può pilotare l'SMBDAT.

Questi due fili sono bidirezionali, il che fornisce un'opzione per includere un segnale di avviso come SMBALERT che consente ai dispositivi di richiedere l'attenzione dell'host.

Il pacchetto di dati di questo bus contiene un bit di avvio, un bit ACK o NACK, 8 bit di dati e un bit di stop. Il trasferimento dei dati di SMBus utilizza alcune delle funzioni altrimenti protocolli di diversi SMBus durante l'invio di messaggi come Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Blocca blocco di scrittura.

Questo bus supporta anche PEC (controllo degli errori di pacchetto) per migliorare l'affidabilità della comunicazione. Quindi questo può essere eseguito includendo un codice di errore del pacchetto alla fine di ogni messaggio.

Funzioni

Funzioni SMBus sono anche chiamati protocolli. Quindi i principali protocolli di SMBus sono Quick Command, Send Byte, Receive Byte, Write Byte, Read Byte, Process Call, Block Write/Read Block Write-Block Read Process Call, SMBus Host Notify Protocol, Write-32 Protocol, Read-32 Protocollo, Scrivi 64 Protocolli e Leggi 64 Protocolli.

Formato messaggio SMBUS

Dopo la condizione di START, il master individuerà l'indirizzo a 7 bit del dispositivo slave che deve indirizzare sul bus. Quindi, la lunghezza dell'indirizzo è di 7 bit seguiti da un 8 bit che indica la direzione di trasferimento dei dati (R/W); uno ONE specifica una richiesta di READ (dati) e uno ZERO specifica una SCRITTURA (trasmissione).

  Formato messaggio
Formato messaggio

Il trasferimento dei dati viene interrotto sempre da una condizione di STOP generata tramite il master.

Ogni byte include 8 bit e ogni byte viene trasferito sull'SMBus e deve essere seguito da un bit di riconoscimento. I byte vengono prima trasmessi tramite l'MSB (bit più significativo).

Un tipico dispositivo SMBus include una serie di comandi attraverso i quali i dati possono essere semplicemente letti e scritti. La lunghezza di tutti questi comandi è di 1 byte mentre i loro argomenti, così come i valori di ritorno, possono cambiare all'interno della lunghezza.

Consentire un comando non esiste altrimenti non è supportato, quindi potrebbe causare una condizione di errore. In conformità con la specifica SMBus, l'MSB viene prima trasferito.

Innanzitutto, tutti i comandi impostano una condizione di avvio sul bus, dopodiché avviano la trasmissione trasmettendo i dati o il comando, attendono un'accettazione dal dispositivo slave durante la trasmissione dei dati o del comando, quindi impostano una condizione di arresto sul bus.

Condizioni di avvio e arresto per il protocollo SMBus

La condizione START & STOP di un messaggio sarà definita da due condizioni bus univoche da alto a basso e da basso ad alto.

  Condizioni di inizio e fine
Condizioni di inizio e fine

In una transizione di linea SMBDAT da ALTA a BASSA, quando SMBCLK è ALTO, indica una condizione di START di un messaggio.

In una transizione di linea da LOW a HIGH SMBDAT, quando SMBCLK è HIGH, definisce una condizione di STOP di un messaggio. Quindi queste due condizioni sono generate sempre dal master del bus. L'autobus diventa occupato dopo la condizione di START. Il bus tornerà ad essere inattivo dopo un certo tempo dopo una condizione di STOP.

Requisiti hardware SMBus

I requisiti hardware di SMBus per consentire una comunicazione efficiente e senza interruzioni tra un PC e alcuni dei suoi hardware più essenziali, sono due fili come SMBDAT e SMBCLK, PSU (unità di alimentazione), set di circuiti integrati, driver e le relative ventole di raffreddamento . Fondamentalmente, questo controller SMBus consente a un computer di gestire ed eseguire comandi con successo come accendere la sua PSU e controllare le sue ventole di raffreddamento.

Il trasferimento dati SMBus utilizza protocolli o funzioni diversi durante il trasferimento di messaggi come Invia byte, Comando rapido, Scrivi byte, Leggi byte, Scrivi parola, Leggi parola, Lettura blocco, Chiamata processo, Scrittura blocco, ecc. Supporta anche il controllo degli errori PEC o pacchetto per migliorare l'affidabilità della comunicazione semplicemente includendo un codice di errore del pacchetto a ciascuna estremità del messaggio.

L'hardware SMBus fornisce semplicemente il controllo del tempo e dello spostamento utilizzato per i trasferimenti seriali. Quindi l'hardware di SMBus esegue le diverse attività applicative indipendenti come il controllo della temporizzazione, i trasferimenti di dati seriali e il riconoscimento degli indirizzi slave.

SMBus contro I2C

Il differenza tra SMBus e I2C include quanto segue.

SMBus

2C

Il termine SMBus sta per 'Bus di gestione del sistema'. Il termine I2C sta per 'Circuito Inter-Integrato'.
SMBus è un bus di controllo a 2 fili utilizzato nelle attività di gestione dell'energia e del sistema. I2C è un protocollo di comunicazione di bordo utilizzato per bassa larghezza di banda e brevi distanze.
Un sistema può utilizzare questo bus per instradare i messaggi da e verso i dispositivi piuttosto che attivare singole linee di controllo.

I2C viene normalmente utilizzato per collegare periferiche a bassa velocità come microcontrollori e sensori a processori su brevi distanze in un circuito integrato.
La velocità CLK massima è 100 kHz. La velocità CLK massima è 400 kHz.
La velocità CLK minima è 10 kHz. Nessuna velocità CLK minima.
Timeout CLK basso di 35 ms. Non c'è timeout.
Ha livelli logici fissi. I suoi livelli logici dipendono da VDD.
Ha vari tipi di indirizzo come riservato, dinamico, ecc. Ha diversi tipi di indirizzo come indirizzo slave di chiamata generale, 7 bit e 10 bit.
Ha vari protocolli bus come chiamate di processo, comandi rapidi, ecc. Non ha protocolli bus.

SMBus vs Pmbus

La differenza tra SMBus e Pmbus include quanto segue.

SMBus

Pmbus

SMBus è un bus single-ended a 2 fili utilizzato per comunicazioni leggere. L'estensione di SMBus è Pmbus ed è un protocollo a basso costo utilizzato principalmente per la comunicazione tra dispositivi di gestione dell'energia.
La modalità slave di questo bus consente valori di velocità dati come 10 kbps, 50 kbps, 100 kbps e 400 kbps. La modalità slave di questo bus consente semplicemente valori di velocità dati come 100 kbps e 400 kbps.
Questo tipo di bus funziona con l'hardware I2C, tuttavia include un software di secondo livello che consente di sostituire a caldo i dispositivi senza riavviare il sistema. Questo bus espande SMBus semplicemente definendo una serie di comandi del dispositivo ed è particolarmente progettato per gestire convertitori di potenza, esporre attributi del dispositivo come corrente misurata, tensione, temperatura, ecc.
SMBus è un superset di I2C PMBus è un superset di SMBus
Questo bus include entrambi i livelli di collegamento di rete e dati. Questo bus include il livello di trasporto e una serie di comandi.

Diagramma temporale

Il Diagramma di temporizzazione SMBus è mostrato di seguito.

  Diagramma temporale di SMBus
Diagramma temporale di SMBus

Il TLOW.SEXT è il dispositivo slave che estende i cicli CLK all'interno di un unico messaggio da START a STOP. Quindi è possibile che il master o un altro dispositivo slave estenda anche il ciclo CLK per far sì che il tempo prolungato basso del CLK combinato sia maggiore di TLOW.SEXT. Pertanto, questo parametro viene semplicemente misurato attraverso il dispositivo slave come il singolo target di un master a piena velocità.

TLOW.MEXT è il dispositivo master che estende i cicli CLK in ogni byte di un messaggio. Quindi è possibile che un altro master o un dispositivo slave estenda anche il CLK per far sì che il tempo basso del CLK combinato sia maggiore rispetto a TLOW.MEXT su un byte specificato. Pertanto, i parametri vengono semplicemente misurati attraverso un dispositivo slave a piena velocità come il singolo target del master.

Applicazioni

Il applicazioni di SMBus include il seguente.

  • SMBus viene utilizzato come un chip componente di sistema utilizzato per comunicare all'interno di un sistema. Più in particolare, consente alle batterie di comunicare con altri componenti del sistema come i componenti relativi all'alimentazione e la CPU.
  • Questo è usato per la comunicazione leggera.
  • Questo bus viene utilizzato per monitorare i parametri critici in sistemi integrati e sulle schede madri del PC.
  • Questo è il tipo più comune di comunicazione per gli indicatori di livello carburante avanzati di Texas Instruments.
  • Questo viene utilizzato in comunicazioni di gestione del sistema meno basate sulla larghezza di banda.

Quindi, questo è tutto una panoramica di un SMBus – lavorare con le applicazioni. Questo è un bus a due fili semplice e single-ended utilizzato per comunicazioni leggere. Questo bus viene utilizzato nelle schede madri dei computer per la comunicazione con la fonte di alimentazione per le istruzioni di accensione o spegnimento. Ecco una domanda per te, qual è il protocollo I2C?