SMBus: Arbejde, forskelle og dets applikationer

Prøv Vores Instrument Til At Fjerne Problemer





SMBus blev lanceret i år 1995 af Intel, og den er baseret på I²C seriel bus-protokol fra Philips. Denne bus bærer data, CLK og instruktioner, hvor clockfrekvensen varierer fra 10 kHz til 100 kHz. Hovedhensigten med SMBus er at tillade en billig og kraftfuld metode til at kontrollere og hente data fra enheder på et bundkort. SMBus bruges normalt i pc'er til temperaturkontrol, smarte batterier og anden systemadministrationskommunikation med lav båndbredde.


Denne bus identificerer kommunikationsforbindelsen mellem en oplader, et intelligent batteri og en mikrocontroller, der kommunikerer med resten af ​​systemet. Men SMBus bruges også til at forbinde forskellige enheder som systemsensorer, strømrelaterede enheder, kommunikationsenheder, inventar EEPROM'er osv. Denne artikel diskuterer en oversigt over en SMBus - arbejde med applikationer.



Hvad er SMBus-protokol?

SMBus (System Management Bus) er en 2-leder-grænseflade, der ofte bruges mellem forskellige enheder på et bundkort til lavhastigheds-systemadministrationskommunikation. Denne slags bus er designet af I2C protokol fundamenter. Så både I2C og SMBus kan have nogle ligheder, og de kan også fungere sammen på den lignende bus.

Denne bus fungerer efter I2C-driftsprincipperne, som giver en kontrolbus, især for systemet til at tillade meddelelser til eller fra enhederne i stedet for at bruge separate kontrollinjer til at reducere systemledninger og pin-antal.



En enhed med en SMBus kan give oplysninger om fremstilling, informere systemet om dets del- eller modelnummer, rapportere forskellige slags fejl, tillade kontrolparametre og gense sin position.

SMBus-specifikation

Specifikationen af ​​SMBus refererer simpelthen til 3 slags enheder, vært, master og slave.

  • En vært er en bestemt master, og den giver hovedgrænsefladen til systemets CPU.
  • En masterenhed, der udsteder instruktioner, genererer urene og afslutter overførslen.
  • En slaveenhed modtager ellers reagerer på en kommando.

Hvordan virker SMBus?

Der er 3 slags enheder, der bruges inden for SMBus-kommunikation som en vært, en master og en slaveenhed, som er vist i følgende diagram. I denne bus er værtsenheden en specifik master-arbejdslignende grænseflade til systemets CPU; det er dog ikke altid nødvendigt. Nogle systemer som simple batteriopladningssystemer kan være uden en vært.

En masterenhed starter kommunikationen, driver CLK'en og stopper overførslen. En enhed kan vælges til blot at være en master eller en master-slave, hvor den kan fungere enten som en master-enhed eller som en slave-enhed.

  SMBus diagram
SMBus diagram

På SMBus er der også over én master, dog kan kun én mestre bussen på et givet tidspunkt. For eksempel, når de to enheder mestrer bussen på én gang, så giver SMBus en voldgiftsmekanisme, der simpelthen afhænger af den kablede OG-forbindelse af alle SMBus-enhedens grænseflader til SMBus.

Slavenheder reagerer på dens adresse såvel som kommandoer, og de kan transmittere og modtage data fra og til en masterenhed. En enhed kan vælges helt som en slave, ellers er det muligt for slaven at arbejde som en master i visse eksempler.

I lighed med I2C-protokollen tildeles hver slave på denne bus simpelthen en syv-bit slaveadresse, hvor læse- eller skrivebitten er tilføjet til denne adresse for at beskrive, om enheden læser eller skriver beskeden, der sendes på bussen.

Enheder er nødvendige for at genkende deres egen adresse, så når først en enhed identificerer sin adresse, vil den reagere på kommandoen.

Når slaveadressen på denne bus er i konflikt, understøtter den ARP eller Address Resolution Protocol. Når værten bemærker to enheder med en lignende slaveadresse, vil adresseopløsningsprotokolproceduren tildele en ny unik adresse dynamisk til slaverne. Adresseopløsningsprotokol vil gøre det muligt for enhederne at blive brugt med det samme uden krav om at starte systemet igen.

Denne bus bruger 2-ledere til kommunikation som SMBDAT-ledningen og SMBCLK-ledningen, hvor SMBDAT-ledningen bruges til at overføre serielle data, og SMBCLK-ledningen fungerer som det serielle ur. I ovenstående SMBus driver masteren simpelthen SMBCLK, der spænder fra 10 til 100 kHz, dog kan enhver linje drive SMBDAT.

Disse to ledninger er tovejs, hvilket giver mulighed for at inkludere et alarmsignal som SMBALERT, der gør det muligt for enheder at anmode om opmærksomhed fra værten.

Datapakken på denne bus indeholder en startbit, en ACK- eller NACK-bit, 8 databit og en stopbit. Dataoverførslen af ​​SMBus bruger nogle af funktionerne ellers protokoller fra forskellige SMBus, mens der sendes meddelelser som Send Byte, Hurtig kommando, Læs Word, Skriv Byte, Læs Byte, Skriv Word, Process Call, Block Write, Block Read, Read Process Call & Bloker skriveblokering.

Denne bus understøtter også PEC (packet error checking) for at forbedre kommunikationssikkerheden. Så dette kan udføres ved at inkludere en pakkefejlkode i slutningen af ​​hver besked.

Funktioner

SMBus funktioner kaldes også protokoller. Så hovedprotokollerne for SMBus er 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 Protocol, Write 64-Protocol & Read 64 Protocol.

SMBUS-meddelelsesformat

Efter tilstanden START, vil masteren lokalisere slaveenhedens 7-bit adresse, og den skal adresseres på bussen. Så længden af ​​adressen er 7 bit lang efterfulgt af en 8-bit, der angiver dataoverførselsretningen (R/W); en ONE angiver en anmodning om LÆS (data) og en NUL angiver en SKRIV (transmission).

  Meddelelsesformat
Meddelelsesformat

Overførslen af ​​data afsluttes altid af en STOP-tilstand, der genereres gennem masteren.

Hver byte indeholder 8 bit, og hver byte overføres på SMBus'en og skal følges gennem en bekræftelsesbit. Bytes transmitteres gennem MSB (mest signifikant bit) først.

En typisk SMBus-enhed indeholder et sæt kommandoer, hvorigennem data nemt kan læses og skrives. Længden af ​​alle disse kommandoer er 1 byte lang, mens deres argumenter, såvel som returværdier, kan ændre sig inden for længden.

At tillade en kommando eksisterer ikke, ellers understøttes den ikke, så det kan forårsage en fejltilstand. I overensstemmelse med SMBus-specifikationen overføres MSB først.

Først sætter alle kommandoerne en startbetingelse over bussen, start derefter transmissionen ved at sende dataene eller kommandoen, vent på en accept fra slaveenheden under hele data- eller kommandotransmissionen, og sætter derefter en stopbetingelse på bussen.

Start- og stopbetingelser for SMBus-protokol

START & STOP-tilstand for en meddelelse vil blive defineret af to unikke busbetingelser høj til lav og lav til høj.

  Start- og stopbetingelser
Start- og stopbetingelser

I en HØJ til LAV SMBDAT-linjeovergang, når SMBCLK er HØJ, angiver det en START-tilstand for en meddelelse.

I en LAV til HØJ SMBDAT-linjeovergang, når SMBCLK er HØJ, definerer den en STOP-tilstand for en meddelelse. Så disse to betingelser genereres altid af bussens fører. Bussen bliver optaget efter tilstanden af ​​en START. Bussen bliver igen ledig efter en vis tid efter en STOP-tilstand.

SMBus hardwarekrav

Hardwarekravene til SMBus for at muliggøre effektiv såvel som problemfri kommunikation mellem en pc og noget af dets mest essentielle hardware er to ledninger som SMBDAT & SMBCLK, PSU (Power Supply Unit), sæt IC'er, drivere og dens køleventilatorer . Grundlæggende giver denne SMBus-controller en computer mulighed for at håndtere og udføre kommandoer med succes, såsom at tænde for sin PSU og kontrollere sine køleventilatorer.

SMBus-dataoverførsel bruger forskellige protokoller eller funktioner, mens der overføres meddelelser som Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write, osv. Det understøtter også PEC eller pakkefejlkontrol for forbedre kommunikationssikkerheden ved blot at inkludere en pakkefejlkode i hver beskedende.

SMBus-hardwaren giver simpelthen timing- og skiftekontrol, der bruges til de serielle overførsler. Så SMBus' hardware udfører de forskellige uafhængige applikationsopgaver som timingkontrol, serielle dataoverførsler og genkendelse af slaveadresser.

SMBus vs I2C

Det forskel mellem SMBus og I2C omfatter følgende.

SMBus

2C

Udtrykket SMBus står for 'System Management Bus'. Udtrykket I2C står for 'Inter-Integrated Circuit'.
SMBus er en 2-leder styrebus, der bruges til energi- og systemstyringsopgaver. I2C er en indbygget kommunikationsprotokol, der bruges til lav båndbredde og korte afstande.
Et system kan bruge denne bus til at dirigere beskeder fra og til enheder i stedet for at aktivere individuelle kontrollinjer.

I2C bruges normalt til at forbinde lavhastighedsbaserede perifere enheder som mikrocontrollere og sensorer til processorer over korte afstande i en IC.
Den maksimale CLK-hastighed er 100 kHz. Den maksimale CLK-hastighed er 400 kHz.
Den mindste CLK-hastighed er 10 kHz. Ingen minimum CLK-hastighed.
35ms lav CLK timeout. Der er ingen timeout.
Den har faste logiske niveauer. Dens logiske niveauer afhænger af VDD.
Det har forskellige adressetyper som reserveret, dynamisk osv. Den har forskellige adressetyper som generel opkaldsslaveadresse, 7-bit og 10-bit.
Den har forskellige busprotokoller som procesopkald, hurtige kommandoer osv. Det har ikke busprotokoller.

SMBus vs Pmbus

Forskellen mellem SMBus og Pmbus inkluderer følgende.

SMBus

Pmbus

SMBus er en 2-leder, single-ended bus, der bruges til letvægtskommunikation. Udvidelsen af ​​SMBus er Pmbus, og det er en lavprisprotokol, der hovedsageligt bruges til kommunikation mellem strømstyringsenheder.
Slavetilstanden på denne bus tillader datahastighedsværdier som 10 kbps, 50 kbps, 100 kbps og 400 kbps. Slavetilstanden på denne bus tillader simpelthen datahastighedsværdier som 100 kbps & 400 kbps.
Denne type bus fungerer med I2C-hardware, men den inkluderer software på andet niveau ved at tillade enheder at blive hot-swap uden at genstarte systemet. Denne bus udvider SMBus ved blot at definere et sæt kommandoer for enheden, og den er specielt designet til at håndtere strømomformere, blotlægge enhedsattributter som målt strøm, spænding, temperatur osv.
SMBus er et supersæt af I2C PMBus er et supersæt af SMBus
Denne bus inkluderer både netværks- og datalinklagene. Denne bus inkluderer transportlaget og et sæt kommandoer.

Tidsdiagram

Det SMBus timing diagram er vist nedenfor.

  Tidsdiagram for SMBus
Tidsdiagram for SMBus

TLOW.SEXT er slaveenheden, der forlænger CLK-cyklusserne inden for en enkelt besked fra START til STOP. Så det er muligt, at masteren eller en anden slaveanordning også vil forlænge CLK-cyklussen for at få den lave forlængede tid for kombineret CLK til at være højere end TLOW.SEXT. Således måles denne parameter simpelthen gennem slaveenheden som det enkelte mål for en fuldhastighedsmaster.

TLOW.MEXT er masterenheden, der forlænger CLK-cyklusserne i hver byte af en besked. Så det er muligt, at en anden master eller en slave-enhed også vil udvide CLK for at få den lave tid for den kombinerede CLK til at være højere sammenlignet med TLOW.MEXT på en specificeret byte. Således måles parametrene ganske enkelt gennem en fuldhastigheds slaveenhed som masterens enkeltmål.

Ansøgninger

Det applikationer af SMBus omfatte følgende.

  • SMBus bruges som en systemkomponentchip, der bruges til at kommunikere i et system. Mere specifikt tillader det batterier til at kommunikere med andre komponenter i systemet som strømrelaterede komponenter og CPU'en.
  • Dette bruges til letvægtskommunikation.
  • Denne bus bruges til at overvåge kritiske parametre i indlejrede systemer & på bundkort på pc.
  • Dette er den mest almindelige type kommunikation for avancerede brændstofmålere fra Texas Instruments.
  • Dette bruges i mindre båndbredde-baseret systemstyringskommunikation.

Det handler altså om en oversigt over en SMBus – arbejde med applikationer. Dette er en enkel og single-ended to-wire bus, der bruges til letvægtskommunikation. Denne bus bruges i bundkort på computere til kommunikation med strømkilden til ON eller OFF instruktioner. Her er et spørgsmål til dig, hvad er I2C-protokollen?