SMBus: Arbete, skillnader och dess tillämpningar

Prova Vårt Instrument För Att Eliminera Problem





SMBus lanserades år 1995 av Intel och den är baserad på I²C seriell bussprotokoll från Philips. Denna buss bär data, CLK & instruktioner där klockfrekvensen sträcker sig från 10 kHz till 100 kHz. Huvudavsikten med SMBus är att tillåta en billig och kraftfull metod för att kontrollera och hämta data från enheter på ett moderkort. SMBus används normalt i datorer för temperaturkontroll, smarta batterier och annan kommunikation med låg bandbredd.


Denna buss identifierar kommunikationslänken mellan en laddare, ett intelligent batteri och en mikrokontroller som kommunicerar med resten av systemet. Men SMBus används också för att ansluta olika enheter som systemsensorer, strömrelaterade enheter, kommunikationsenheter, lager-EEPROM, etc. Den här artikeln diskuterar en översikt över en SMBus – att arbeta med applikationer.



Vad är SMBus-protokollet?

SMBus (System Management Bus) är ett 2-trådsgränssnitt, som ofta används mellan olika enheter på ett moderkort för låghastighets systemhanteringskommunikation. Den här typen av buss designades av I2C-protokoll stiftelser. Så både I2C och SMBus kan ha vissa likheter och de kan också samverka på en liknande buss.

Den här bussen fungerar enligt I2C-driftprinciperna som tillhandahåller en kontrollbuss, speciellt för systemet att tillåta meddelanden till eller från enheterna istället för att använda separata kontrolllinjer för att reducera systemledningar och stiftantalet.



En enhet med en SMBus kan tillhandahålla tillverkningsinformation, informera systemet om dess artikel- eller modellnummer, rapportera olika typer av fel, tillåta kontrollparametrar och återvända till sin position.

SMBus-specifikation

Specifikationen för SMBus hänvisar helt enkelt till 3 typer av enheter värd, master och slav.

  • En värd är en speciell master och den tillhandahåller huvudgränssnittet till systemets CPU.
  • En masterenhet som utfärdar instruktioner, genererar klockorna och avslutar överföringen.
  • En slavenhet tar emot annars reagerar på ett kommando.

Hur fungerar SMBus?

Det finns 3 typer av enheter som används inom SMBus-kommunikation som en värd, en master och en slavenhet som visas i följande diagram. I denna buss är värdenheten ett specifikt arbetsliknande huvudgränssnitt till systemets CPU; det är dock inte alltid nödvändigt. Vissa system som enkla batteriladdningssystem kan vara utan en värd.

En masterenhet startar kommunikationen, driver CLK och stoppar överföringen. En enhet kan väljas att helt enkelt vara en master eller en master-slav, där den kan fungera antingen som en masterenhet eller som en slavenhet.

  SMBus-diagram
SMBus-diagram

På SMBus finns det också över en master, dock kan endast en bemästra bussen vid varje given tidpunkt. Till exempel, när de två enheterna behärskar bussen samtidigt, tillhandahåller SMBus en skiljemekanism som helt enkelt beror på den trådbundna OCH-anslutningen av alla gränssnitt för SMBus-enheten till SMBus.

Slavenheter svarar på dess adress såväl som kommandon och de kan sända och ta emot data från och till en masterenhet. En enhet kan väljas helt som en slav, annars är det möjligt för slaven att fungera som en master i vissa exempel.

I likhet med I2C-protokollet tilldelas varje slav på denna buss helt enkelt en sjubitars slavadress där läs- eller skrivbiten läggs till denna adress för att beskriva om enheten läser eller skriver meddelandet som sänds på bussen.

Enheter är nödvändiga för att känna igen sin egen adress, så när en enhet identifierar sin adress kommer den att reagera på kommandot.

När slavadressen för denna buss kommer i konflikt, stöder den ARP eller Address Resolution Protocol. När värden märker två enheter med en liknande slavadress kommer adressupplösningsprotokollet att tilldela en ny unik adress dynamiskt till slavarna. Adressupplösningsprotokollet gör att enheterna kan användas omedelbart utan att behöva starta om systemet igen.

Denna buss använder 2-trådar för kommunikation som SMBDAT-kabeln och SMBCLK-kabeln där SMBDAT-kabeln används för att överföra seriella data och SMBCLK-kabeln fungerar som den seriella klockan. I ovanstående SMBus driver mastern helt enkelt SMBCLK som sträcker sig från 10 till 100 kHz, men vilken linje som helst kan driva SMBDAT.

Dessa två kablar är dubbelriktade vilket ger en möjlighet att inkludera en varningssignal som SMBALERT som gör att enheter kan begära uppmärksamhet från värden.

Datapaketet för denna buss innehåller en startbit, en ACK- eller NACK-bit, 8 databitar och en stoppbit. Dataöverföringen av SMBus använder några av funktionerna annars protokoll för olika SMBus när meddelanden skickas som Skicka byte, snabbkommando, läs ord, skriv byte, läs byte, skriv ord, bearbeta anrop, blockera skriv, blockera läs, läs bearbetningsanrop och Blockera skrivblock.

Denna buss stöder även PEC (paketfelskontroll) för att förbättra kommunikationens tillförlitlighet. Så detta kan utföras genom att inkludera en paketfelkod i slutet av varje meddelande.

Funktioner

SMBus funktioner kallas också protokoll. Så huvudprotokollen för SMBus är 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 meddelandeformat

Efter tillståndet START kommer mastern att lokalisera slavenhetens 7-bitars adress och den behöver adresseras på bussen. Så, längden på adressen är 7 bitar lång följt av en 8-bit som anger dataöverföringsriktningen (R/W); en ONE specificerar en begäran om READ (data) och en NOLL anger en WRITE (överföring).

  Meddelandeformat
Meddelandeformat

Överföringen av data avslutas alltid av ett STOP-villkor som genereras av mastern.

Varje byte innehåller 8 bitar och varje byte överförs på SMBus och bör följas genom en bekräftelsebit. Bytes sänds först genom MSB (den mest signifikanta biten).

En typisk SMBus-enhet innehåller en uppsättning kommandon genom vilka data enkelt kan läsas och skrivas. Längden på alla dessa kommandon är 1 byte långa medan deras argument, såväl som returvärden, kan ändras inom längden.

Att tillåta ett kommando finns inte annars stöds det inte, så det kan orsaka ett feltillstånd. I enlighet med SMBus-specifikationen överförs MSB först.

Först ställer alla kommandon ett startvillkor över bussen, efter det startar sändningen genom att sända data eller kommando, väntar på en acceptans från slavanordningen under hela data- eller kommandoöverföringen, sätter sedan ett stoppvillkor på bussen.

Start- och stoppvillkor för SMBus-protokoll

START & STOPP-villkor för ett meddelande kommer att definieras av två unika bussvillkor hög till låg och låg till hög.

  Start- och stoppvillkor
Start- och stoppvillkor

I en HÖG till LÅG SMBDAT-linjeövergång, när SMBCLK är HÖG, indikerar den ett START-villkor för ett meddelande.

I en LOW till HIGH SMBDAT-linjeövergång, när SMBCLK är HIGH definierar den ett STOPP-villkor för ett meddelande. Så dessa två villkor genereras alltid av bussens befälhavare. Bussen blir upptagen efter tillståndet av en START. Bussen kommer återigen att bli ledig efter en viss tid efter ett STOPP-tillstånd.

SMBus hårdvarukrav

Hårdvarukraven för SMBus för att möjliggöra effektiv, såväl som sömlös kommunikation mellan en PC och någon av dess viktigaste hårdvara, är två kablar som SMBDAT & SMBCLK, PSU (Power Supply Unit), uppsättning IC:er, drivrutiner och dess kylfläktar . I grund och botten tillåter denna SMBus Controller en dator att hantera och utföra kommandon framgångsrikt som att slå PÅ sin PSU och styra sina kylfläktar.

SMBus-dataöverföring använder olika protokoll eller funktioner vid överföring av meddelanden som Skicka byte, snabbkommando, skrivbyte, läs byte, skriv ord, läs ord, blockläsning, processanrop, blockskrivning, etc. Den stöder även PEC- eller paketfelsökning för förbättra kommunikationens tillförlitlighet genom att helt enkelt inkludera en paketfelkod vid varje meddelandeände.

SMBus-hårdvaran tillhandahåller helt enkelt timing- och växlingskontroll som används för de seriella överföringarna. Så hårdvaran hos SMBus utför de olika oberoende applikationsuppgifterna som tidsstyrning, seriella dataöverföringar och igenkänning av slavadresser.

SMBus vs I2C

De skillnad mellan SMBus och I2C omfattar följande.

SMBus

2C

Termen SMBus står för 'System Management Bus'. Termen I2C står för 'Inter-Integrated Circuit'.
SMBus är en 2-tråds styrbuss som används i energi- och systemhanteringsuppgifter. I2C är ett kommunikationsprotokoll ombord som används för låg bandbredd och korta avstånd.
Ett system kan använda denna buss för att dirigera meddelanden från & till enheter istället för att aktivera individuella kontrolllinjer.

I2C används normalt för att ansluta låghastighetsbaserad kringutrustning som mikrokontroller och sensorer till processorer över korta avstånd i en IC.
Den maximala CLK-hastigheten är 100 kHz. Den maximala CLK-hastigheten är 400 kHz.
Minsta CLK-hastighet är 10 kHz. Ingen minsta CLK-hastighet.
35ms låg CLK timeout. Det finns ingen timeout.
Den har fasta logiska nivåer. Dess logiska nivåer beror på VDD.
Den har olika adresstyper som reserverad, dynamisk, etc. Den har olika adresstyper som allmän anropsslavadress, 7-bitars och 10-bitars.
Den har olika bussprotokoll som processanrop, snabbkommandon etc. Den har inga bussprotokoll.

SMBus vs Pmbus

Skillnaden mellan SMBus och Pmbus inkluderar följande.

SMBus

Pmbus

SMBus är en 2-tråds buss med enkel ände som används för lätt kommunikation. Utvidgningen av SMBus är Pmbus och det är ett lågkostnadsprotokoll som huvudsakligen används för kommunikation mellan energihanteringsenheter.
Slavläget för denna buss tillåter datahastighetsvärden som 10 kbps, 50 kbps, 100 kbps och 400 kbps. Slavläget för denna buss tillåter helt enkelt datahastighetsvärden som 100 kbps & 400 kbps.
Den här typen av buss fungerar med I2C-hårdvara men den inkluderar programvara på andra nivån genom att tillåta enheter att hot-swap utan att starta om systemet. Den här bussen utökar SMBus genom att helt enkelt definiera en uppsättning kommandon för enheten och den är särskilt utformad för att hantera strömomvandlare, exponera enhetsattribut som uppmätt ström, spänning, temperatur, etc.
SMBus är en superset av I2C PMBus är en superset av SMBus
Denna buss inkluderar både nätverks- och datalänkslager. Den här bussen innehåller transportlagret och en uppsättning kommandon.

Tidsdiagram

De SMBus tidsdiagram visas nedan.

  Tidsdiagram för SMBus
Tidsdiagram för SMBus

TLOW.SEXT är slavenheten som utökar CLK-cyklerna inom ett enda meddelande från START till STOP. Så det är möjligt att mastern eller en annan slavenhet också kommer att förlänga CLK-cykeln för att få den låga förlängda tiden för kombinerad CLK att vara högre än TLOW.SEXT. Således mäts denna parameter helt enkelt genom slavenheten som det enda målet för en fullhastighetsmaster.

TLOW.MEXT är huvudenheten som utökar CLK-cyklerna i varje byte i ett meddelande. Så det är möjligt att en annan master eller en slavenhet också kommer att förlänga CLK för att få lågtiden för den kombinerade CLK att vara högre jämfört med TLOW.MEXT på en specificerad byte. Således mäts parametrarna helt enkelt genom en fullhastighetsslavenhet som masterns enda mål.

Ansökningar

De tillämpningar av SMBus inkluderar följande.

  • SMBus används som ett systemkomponentchip som används för att kommunicera inom ett system. Mer specifikt tillåter det batterier att kommunicera med andra komponenter i systemet som strömrelaterade komponenter och CPU.
  • Detta används för lätt kommunikation.
  • Denna buss används för att övervaka kritiska parametrar i inbyggda system & på moderkort till PC.
  • Detta är den vanligaste typen av kommunikation för avancerade bränslemätare från Texas Instruments.
  • Detta används i mindre bandbreddsbaserad systemhanteringskommunikation.

Alltså handlar det här om en översikt över en SMBus – arbeta med applikationer. Detta är en enkel tvåtrådsbuss med enkel ände som används för lätt kommunikation. Denna buss används i moderkort till datorer för kommunikation med strömkällan för PÅ- eller AV-instruktioner. Här är en fråga till dig, vad är I2C-protokollet?