SMBus: Funcționare, diferențe și aplicațiile sale

Încercați Instrumentul Nostru Pentru Eliminarea Problemelor





SMBus a fost lansat în anul 1995 de Intel și se bazează pe protocolul de magistrală serială I²C de la Philips. Acest autobuz transportă date, CLK și instrucțiuni unde frecvența ceasului variază de la 10 kHz la 100 kHz. Intenția principală a SMBus este de a permite o metodă ieftină și puternică de a controla și obține date de la dispozitivele de pe o placă de bază. SMBus este utilizat în mod normal în PC-uri pentru controlul temperaturii, baterii inteligente și alte comunicații de gestionare a sistemului cu lățime de bandă redusă.


Această magistrală identifică legătura de comunicație dintre un încărcător, o baterie inteligentă și un microcontroler care conversează cu restul sistemului. Dar, SMBus este, de asemenea, folosit pentru a conecta diferite dispozitive, cum ar fi senzori de sistem, dispozitive legate de alimentare, dispozitive de comunicații, EEPROM-uri de inventar etc. Acest articol discută o prezentare generală a unui SMBus - lucrul cu aplicații.



Ce este protocolul SMBus?

SMBus (System Management Bus) este o interfață cu 2 fire, folosită frecvent între diferite dispozitive de pe o placă de bază pentru comunicarea de gestionare a sistemului de viteză redusă. Acest tip de autobuz a fost proiectat de către Protocolul I2C fundatii. Deci, atât I2C, cât și SMBus-ul pot avea unele asemănări și pot, de asemenea, să interacționeze pe magistrala similară.

Această magistrală funcționează pe principiile de funcționare I2C care furnizează o magistrală de control, în special pentru ca sistemul să permită mesaje către sau de la dispozitive, mai degrabă decât să folosească linii de control separate pentru a reduce firele de sistem și numărul de pini.



Un dispozitiv cu un SMBus poate furniza informațiile de fabricație, informează sistemul despre numărul piesei sau modelului său, raportează diferite tipuri de erori, permite parametrii de control și revizuiește poziția acestuia.

Specificația SMBus

Specificațiile SMBus se referă pur și simplu la 3 tipuri de dispozitive gazdă, master și slave.

  • O gazdă este un anumit master și oferă interfața principală cu CPU-ul sistemului.
  • Un dispozitiv principal care emite instrucțiuni, generează ceasurile și încheie transferul.
  • Un dispozitiv slave primește, altfel reacționează la o comandă.

Cum funcționează SMBus?

Există 3 tipuri de dispozitive utilizate în comunicarea SMBus, cum ar fi un dispozitiv gazdă, un dispozitiv master și un dispozitiv slave, care sunt prezentate în diagrama următoare. În această magistrală, dispozitivul gazdă este o interfață specifică de tip master pentru CPU-ul sistemului; cu toate acestea, nu este necesar întotdeauna. Unele sisteme, cum ar fi sistemele simple de încărcare a bateriei, pot fi fără gazdă.

Un dispozitiv principal începe comunicarea, conduce CLK și oprește transferul. Un dispozitiv poate fi selectat să fie pur și simplu master sau master-slave, unde poate funcționa fie ca dispozitiv master, fie ca dispozitiv slave.

  Diagrama SMBus
Diagrama SMBus

Pe SMBus, există, de asemenea, mai sus de un master, cu toate acestea, doar unul poate stăpâni autobuzul la un moment dat. De exemplu, atunci când cele două dispozitive stăpânesc magistrala simultan, atunci SMBus oferă un mecanism de arbitrare care depinde pur și simplu de conexiunea prin cablu și a tuturor interfețelor dispozitivului SMBus la SMBus.

Dispozitivele slave răspund la adresa sa, precum și la comenzi și pot transmite și primi date de la și către un dispozitiv master. Un dispozitiv poate fi selectat total ca slave, altfel este posibil ca slave să lucreze ca un master în anumite exemple.

Similar protocolului I2C, fiecare slave de pe această magistrală este pur și simplu alocat cu o adresă slave de șapte biți, unde bitul de citire sau scriere este atașat acestei adrese pentru a descrie dacă dispozitivul citește sau scrie mesajul transmis pe magistrală.

Dispozitivele sunt necesare pentru a-și recunoaște propria adresă, astfel încât, odată ce un dispozitiv își identifică adresa, atunci va reacționa la comandă.

Când adresa slave a acestei magistrale este în conflict, atunci acceptă ARP sau Address Resolution Protocol. Odată ce gazda observă două dispozitive cu o adresă slave similară, atunci procedura de protocol de rezoluție a adresei va atribui dinamic o nouă adresă unică slave. Protocolul de rezoluție a adreselor va permite ca dispozitivele să fie utilizate imediat, fără a fi necesară repornirea sistemului.

Această magistrală utilizează 2 fire pentru comunicare, cum ar fi firul SMBDAT și firul SMBCLK, unde firul SMBDAT este folosit pentru a transfera date seriale, iar firul SMBCLK funcționează ca ceasul serial. În SMBus-ul de mai sus, masterul conduce pur și simplu SMBCLK care variază de la 10 la 100 kHz, cu toate acestea, orice linie poate conduce SMBDAT.

Aceste două fire sunt bidirecționale, ceea ce oferă o opțiune de a include un semnal de alertă, cum ar fi SMBALERT, care permite dispozitivelor să solicite atenție de la gazdă.

Pachetul de date al acestei magistrale conține un bit de pornire, un bit ACK sau NACK, 8 biți de date și un bit de oprire. Transferul de date al SMBus utilizează unele dintre funcțiile, altfel protocoale ale diferitelor SMBus în timp ce trimite mesaje, cum ar fi Trimitere octet, Comandă rapidă, Citire cuvânt, Scriere octet, Citire octet, Scriere cuvânt, Apel de proces, Scriere bloc, Citire blocare, Apel proces de citire și Bloc scriere-Blocare.

Această magistrală acceptă și PEC (verificarea erorilor de pachete) pentru a îmbunătăți fiabilitatea comunicării. Deci, acest lucru poate fi realizat prin includerea unui cod de eroare de pachet la sfârșitul fiecărui mesaj.

Funcții

Funcții SMBus se mai numesc si protocoale. Prin urmare, principalele protocoale ale SMBus sunt Comandă rapidă, Trimite octet, Octet de primire, Octet de scriere, Octet de citire, Apel de procesare, Apel de proces de scriere bloc de scriere/citire, Protocol de notificare gazdă SMBus, Protocol de scriere-32, Citire-32 Protocol, Write 64-Protocol & Read 64 Protocol.

Format mesaj SMBUS

După starea START, masterul va localiza adresa de 7 biți a dispozitivului slave și trebuie să se adreseze pe magistrală. Deci, lungimea adresei este de 7 biți, urmată de 8 biți care semnifică direcția de transfer de date (R/W); un ONE specifică o solicitare pentru READ (date) și un ZERO specifică o WRITE (transmisie).

  Format mesaj
Format mesaj

Transferul datelor este terminat întotdeauna printr-o condiție STOP generată prin master.

Fiecare octet include 8 biți și fiecare octet este transferat pe SMBus și ar trebui urmat printr-un bit de confirmare. Octeții sunt transmisi mai întâi prin MSB (bitul cel mai semnificativ).

Un dispozitiv SMBus tipic include un set de comenzi prin care datele pot fi pur și simplu citite și scrise. Lungimea tuturor acestor comenzi este de 1 octet, în timp ce argumentele lor, precum și valorile returnate, se pot modifica în lungime.

Permiterea unei comenzi nu există, altfel nu este acceptată, deci poate cauza o stare de eroare. În conformitate cu specificația SMBus, MSB este mai întâi transferat.

În primul rând, toate comenzile stabilesc o condiție de pornire pe magistrală, după aceea pornesc transmisia prin transmiterea datelor sau comenzii, așteptați o acceptare de la dispozitivul slave pe parcursul transmisiei de date sau comenzi, apoi setează o condiție de oprire pe magistrală.

Condiții de pornire și oprire pentru protocolul SMBus

Condiția START & STOP a unui mesaj va fi definită de două condiții unice de magistrală de la înaltă la scăzută și de la scăzut la ridicat.

  Condiții de pornire și oprire
Condiții de pornire și oprire

Într-o tranziție de linie SMBDAT HIGH la LOW, când SMBCLK este HIGH, atunci indică o condiție START a unui mesaj.

Într-o tranziție de linie SMBDAT LOW la HIGH, când SMBCLK este HIGH, atunci definește o condiție STOP a unui mesaj. Deci aceste două condiții sunt generate întotdeauna de stăpânul autobuzului. Autobuzul este ocupat după starea START. Autobuzul va deveni din nou inactiv după un anumit timp în urma unei stări STOP.

Cerințe hardware SMBus

Cerințele hardware ale SMBus pentru a permite o comunicare eficientă, precum și fără întreruperi între un computer și unele dintre cele mai esențiale hardware ale acestuia, sunt două fire precum SMBDAT și SMBCLK, PSU (unitate de alimentare), set de circuite integrate, drivere și ventilatoare de răcire. . Practic, acest controler SMBus permite unui computer să gestioneze și să execute cu succes comenzi, cum ar fi pornirea alimentatorului și controlarea ventilatoarelor de răcire.

Transferul de date SMBus utilizează diferite protocoale sau funcții în timpul transferului de mesaje precum Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write etc. De asemenea, acceptă PEC sau verificarea erorilor de pachete pentru sporind fiabilitatea comunicațiilor prin simpla includere a unui cod de eroare de pachet la fiecare capăt de mesaj.

Hardware-ul SMBus oferă pur și simplu controlul de sincronizare și schimbare utilizat pentru transferurile seriale. Deci, hardware-ul SMBus realizează diferite sarcini independente ale aplicației, cum ar fi controlul temporizării, transferurile de date în serie și recunoașterea adreselor slave.

SMBus vs I2C

The diferența dintre SMBus și I2C include următoarele.

SMBus

2C

Termenul SMBus înseamnă „System Management Bus”. Termenul I2C înseamnă „Inter-Integrated Circuit”.
SMBus este o magistrală de control cu ​​2 fire utilizată în sarcinile de gestionare a energiei și a sistemului. I2C este un protocol de comunicație la bord folosit pentru lățime de bandă redusă și distanțe scurte.
Un sistem poate utiliza această magistrală pentru a direcționa mesajele de la și către dispozitive, mai degrabă decât să activeze linii de control individuale.

I2C este utilizat în mod normal pentru conectarea perifericelor bazate pe viteză redusă, cum ar fi microcontrolere și senzori, la procesoarele de peste distanțe scurte într-un circuit integrat.
Viteza maximă CLK este de 100 kHz. Viteza maximă CLK este de 400 kHz.
Viteza minimă CLK este de 10 kHz. Fără viteză CLK minimă.
Timeout CLK scăzut de 35 ms. Nu există timeout.
Are niveluri logice fixe. Nivelurile sale logice depind de VDD.
Are diverse tipuri de adrese, cum ar fi rezervate, dinamice etc. Are diferite tipuri de adrese, cum ar fi adresa generală slave de apel, pe 7 biți și pe 10 biți.
Are diverse protocoale de magistrală, cum ar fi apeluri de proces, comenzi rapide etc. Nu are protocoale de autobuz.

SMBus Vs Pmbus

Diferența dintre SMBus și Pmbus include următoarele.

SMBus

Pmbus

SMBus este o magistrală cu 2 fire, cu un singur capăt, utilizată pentru comunicații ușoare. Extensia SMBus este Pmbus și este un protocol cu ​​costuri reduse utilizat în principal pentru comunicarea între dispozitivele de gestionare a energiei.
Modul slave al acestei magistrale permite valorile ratelor de date precum 10 kbps, 50 kbps, 100 kbps și 400 kbps. Modul slave al acestei magistrale permite pur și simplu valori ale ratei de date precum 100 kbps și 400 kbps.
Acest tip de magistrală funcționează cu hardware I2C, dar include software de nivel al doilea, permițând schimbarea la cald a dispozitivelor fără a reporni sistemul. Această magistrală extinde SMBus prin simpla definire a unui set de comenzi ale dispozitivului și este concepută în special pentru manipularea convertoarelor de putere, expunând atributele dispozitivului cum ar fi curentul măsurat, tensiunea, temperatura etc.
SMBus este un superset al I2C PMBus este un superset al SMBus
Această magistrală include atât straturile de rețea, cât și de legătură de date. Acest bus include stratul Transport și un set de comenzi.

Diagrama de sincronizare

The Diagrama de timp SMBus este prezentat mai jos.

  Diagrama de sincronizare a SMBus
Diagrama de sincronizare a SMBus

TLOW.SEXT este dispozitivul slave care extinde ciclurile CLK într-un singur mesaj de la START la STOP. Deci, este posibil ca, masterul sau alt dispozitiv slave să extindă și ciclul CLK pentru a face ca timpul prelungit scăzut al CLK combinat să fie mai mare decât TLOW.SEXT. Astfel, acest parametru este pur și simplu măsurat prin intermediul dispozitivului slave ca ținta unică a unui master cu viteză maximă.

TLOW.MEXT este dispozitivul principal care extinde ciclurile CLK în fiecare octet al unui mesaj. Așadar, este posibil ca un alt dispozitiv master sau slave să extindă și CLK pentru a determina ca timpul scăzut al CLK combinat să fie mai mare în comparație cu TLOW.MEXT pe un octet specificat. Astfel, parametrii sunt pur și simplu măsurați printr-un dispozitiv slave cu viteză maximă, cum ar fi ținta unică a masterului.

Aplicații

The aplicații SMBus includ următoarele.

  • SMBus este folosit ca un cip component al sistemului folosit pentru a comunica în cadrul unui sistem. Mai precis, permite bateriilor să comunice cu alte componente ale sistemului, cum ar fi componentele legate de alimentare și CPU.
  • Acesta este folosit pentru comunicarea ușoară.
  • Această magistrală este utilizată pentru monitorizarea parametrilor critici în sisteme integrate și pe plăcile de bază ale PC-ului.
  • Acesta este cel mai comun tip de comunicare pentru instrumentele avansate de măsurare a combustibilului de la Texas Instruments.
  • Acest lucru este utilizat în comunicarea de gestionare a sistemului bazată pe o lățime de bandă mai mică.

Astfel, despre asta este vorba o prezentare generală a unui SMBus – lucrul cu aplicații. Aceasta este o magistrală simplă și cu un singur capăt, cu două fire, utilizată pentru comunicații ușoare. Această magistrală este utilizată în plăcile de bază ale computerelor pentru comunicarea cu sursa de alimentare pentru instrucțiuni de pornire sau oprire. Iată o întrebare pentru tine, ce este protocolul I2C?