SMBus: werking, verschillen en toepassingen

Probeer Ons Instrument Voor Het Oplossen Van Problemen





De SMBus werd in 1995 gelanceerd door Intel en is gebaseerd op het I²C seriële busprotocol van Philips. Deze bus vervoert data, CLK & instructies waarbij de klokfrequentie varieert van 10 kHz tot 100 kHz. De belangrijkste bedoeling van SMBus is om een ​​goedkope en krachtige methode mogelijk te maken om gegevens van apparaten op een moederbord te controleren en op te halen. SMBus wordt normaal gesproken gebruikt in pc's voor temperatuurregeling, slimme batterijen en andere systeembeheercommunicatie met lage bandbreedte.


Deze bus identificeert de communicatieverbinding tussen een oplader, een intelligente batterij en een microcontroller die communiceert met de rest van het systeem. Maar SMBus wordt ook gebruikt om verschillende apparaten aan te sluiten, zoals systeemsensoren, stroomgerelateerde apparaten, communicatieapparaten, inventaris-EEPROM's, enz. Dit artikel bespreekt een overzicht van een SMBus - werken met applicaties.



Wat is het SMBus-protocol?

De SMBus (System Management Bus) is een 2-draads interface die vaak tussen verschillende apparaten op een moederbord wordt gebruikt voor systeembeheercommunicatie op lage snelheid. Dit soort bus is ontworpen door de I2C-protocol stichtingen. Dus zowel de I2C als de SMBus kunnen overeenkomsten hebben en ze kunnen ook samenwerken op dezelfde bus.

Deze bus werkt volgens de I2C-bedieningsprincipes die een besturingsbus bieden, vooral voor het systeem om berichten van of naar de apparaten toe te staan ​​in plaats van afzonderlijke besturingslijnen te gebruiken voor het verminderen van systeemdraden en het aantal pinnen.



Een apparaat met een SMBus kan de fabricage-informatie leveren, het systeem informeren over het onderdeel- of modelnummer, verschillende soorten fouten rapporteren, controleparameters toestaan ​​en de positie opnieuw bekijken.

SMBus-specificatie:

De specificatie van SMBus verwijst eenvoudigweg naar 3 soorten apparaten host, master & slave.

  • Een host is een bepaalde master en biedt de hoofdinterface naar de CPU van het systeem.
  • Een master-apparaat dat instructies geeft, de klokken genereert en de overdracht beëindigt.
  • Een slave-apparaat ontvangt anders reageert op een commando.

Hoe werkt SMBus?

Er zijn 3 soorten apparaten die worden gebruikt binnen SMBus-communicatie, zoals een host-, een master- en een slave-apparaat, die in het volgende diagram worden weergegeven. In deze bus is het hostapparaat een specifieke master-werkachtige interface naar de CPU van het systeem; het is echter niet altijd nodig. Sommige systemen, zoals eenvoudige oplaadsystemen voor batterijen, kunnen zonder host zijn.

Een masterapparaat begint de communicatie, stuurt de CLK aan en stopt de overdracht. Een apparaat kan worden geselecteerd om eenvoudigweg een master of een master-slave te zijn, waar het ofwel als een master-apparaat of als een slave-apparaat kan werken.

  SMBus-diagram
SMBus-diagram

Op SMBus is er ook meer dan één master, maar er kan er maar één tegelijk de bus masteren. Als de twee apparaten bijvoorbeeld de bus tegelijk beheersen, biedt SMBus een arbitragemechanisme dat eenvoudigweg afhangt van de bedrade EN-verbinding van alle interfaces van het SMBus-apparaat met de SMBus.

Slave-apparaten reageren zowel op het adres als op opdrachten en ze kunnen gegevens van en naar een masterapparaat verzenden en ontvangen. Een apparaat kan volledig als slave worden geselecteerd, anders is het mogelijk dat de slave in bepaalde voorbeelden als een master werkt.

Net als bij het I2C-protocol, wordt aan elke slave op deze bus eenvoudig een zeven-bits slave-adres toegewezen, waarbij het lees- of schrijfbit aan dit adres wordt toegevoegd om te beschrijven of het apparaat het bericht leest of schrijft dat op de bus wordt verzonden.

Apparaten zijn nodig om hun eigen adres te herkennen, dus zodra een apparaat zijn adres identificeert, zal het op de opdracht reageren.

Wanneer het slave-adres van deze bus conflicteert, ondersteunt deze ARP of Address Resolution Protocol. Zodra de host twee apparaten met een vergelijkbaar slave-adres opmerkt, zal de procedure voor het adresresolutieprotocol dynamisch een nieuw uniek adres toewijzen aan de slaven. Met het protocol voor adresresolutie kunnen de apparaten onmiddellijk worden gebruikt zonder dat het systeem opnieuw hoeft te worden gestart.

Deze bus maakt gebruik van 2-draads voor communicatie zoals de SMBDAT-draad en SMBCLK-draad waarbij de SMBDAT-draad wordt gebruikt om seriële gegevens over te dragen en de SMBCLK-draad werkt als de seriële klok. In de bovenstaande SMBus stuurt de master eenvoudig de SMBCLK aan die varieert van 10 tot 100 kHz, maar elke lijn kan de SMBDAT aansturen.

Deze twee draden zijn bidirectioneel, wat een optie biedt om een ​​waarschuwingssignaal zoals SMBALERT op te nemen, waarmee apparaten de aandacht van de host kunnen vragen.

Het datapakket van deze bus bevat een Start bit, een ACK of NACK bit, 8 bits data & een Stop bit. De gegevensoverdracht van SMBus gebruikt enkele van de functies, anders protocollen van verschillende SMBus tijdens het verzenden van berichten zoals Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Blokkeer schrijfblok.

Deze bus ondersteunt ook PEC (pakketfoutcontrole) om de betrouwbaarheid van de communicatie te verbeteren. Dit kan dus worden gedaan door aan het einde van elk bericht een pakketfoutcode op te nemen.

Functies

SMBus-functies worden ook wel protocollen genoemd. De belangrijkste protocollen van SMBus zijn dus 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, schrijf 64-protocol en lees 64-protocol.

SMBUS-berichtindeling

Na de voorwaarde van START zal de master het 7-bits adres van het slave-apparaat lokaliseren en het moet adresseren op de bus. De lengte van het adres is dus 7 bits lang, gevolgd door een 8-bit die de richting van de gegevensoverdracht aangeeft (R/W); een ONE specificeert een verzoek om LEZEN (gegevens) en een NUL specificeert een SCHRIJF (transmissie).

  Berichtformaat
Berichtformaat

De gegevensoverdracht wordt altijd beëindigd door een STOP-voorwaarde die door de master wordt gegenereerd.

Elke byte bevat 8 bits en elke byte wordt overgedragen op de SMBus en moet worden gevolgd door een bevestigingsbit. Bytes worden eerst via de MSB (meest significante bit) verzonden.

Een typisch SMBus-apparaat bevat een reeks opdrachten waarmee gegevens eenvoudig kunnen worden gelezen en geschreven. De lengte van al deze commando's is 1 byte lang, terwijl hun argumenten, evenals retourwaarden, binnen de lengte kunnen veranderen.

Het toestaan ​​van een commando bestaat niet, anders wordt het niet ondersteund, dus het kan een fout veroorzaken. Conform de SMBus-specificatie wordt eerst de MSB overgedragen.

Eerst stellen alle commando's een startconditie over de bus in, start daarna de transmissie door het verzenden van de data of het commando, wacht op een acceptatie van het slaafapparaat gedurende de data- of commandotransmissie, en stelt vervolgens een stopconditie in op de bus.

Start- en stopvoorwaarden voor SMBus-protocol

De START & STOP-conditie van een bericht wordt bepaald door twee unieke buscondities van hoog naar laag en van laag naar hoog.

  Start- en stopvoorwaarden
Start- en stopvoorwaarden

In een HOOG naar LAAG SMBDAT-lijnovergang, wanneer de SMBCLK HOOG is, geeft dit een START-voorwaarde van een bericht aan.

In een LAGE naar HOOG SMBDAT-regelovergang, wanneer SMBCLK HOOG is, definieert het een STOP-voorwaarde van een bericht. Deze twee voorwaarden worden dus altijd gegenereerd door de master van de bus. De bus raakt bezet na de voorwaarde van een START. De bus zal na een bepaalde tijd weer inactief worden na een STOP-conditie.

SMBus-hardwarevereisten

De hardwarevereisten van SMBus voor het mogelijk maken van efficiënte, evenals naadloze communicatie tussen een pc en enkele van de meest essentiële hardware, zijn twee draden zoals SMBDAT & SMBCLK, PSU (Power Supply Unit), set IC's, stuurprogramma's en zijn koelventilatoren . Kortom, deze SMBus-controller stelt een computer in staat om opdrachten met succes af te handelen en uit te voeren, zoals het inschakelen van de PSU en het regelen van de koelventilatoren.

SMBus-gegevensoverdracht gebruikt verschillende protocollen of functies tijdens het overbrengen van berichten zoals Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write, enz. Het ondersteunt ook PEC- of pakketfoutcontrole voor het verbeteren van de betrouwbaarheid van de communicatie door simpelweg een pakketfoutcode op te nemen aan elk berichteinde.

De SMBus-hardware biedt eenvoudig timing- en schakelbesturing die wordt gebruikt voor de seriële overdrachten. Dus de hardware van SMBus voert de verschillende onafhankelijke applicatietaken uit, zoals timingcontrole, seriële gegevensoverdracht en herkenning van slave-adressen.

SMBus versus I2C

De verschil tussen SMBus en I2C omvat het volgende.

SMBus

2C

De term SMBus staat voor 'System Management Bus'. De term I2C staat voor 'Inter-Integrated Circuit'.
De SMBus is een 2-draads besturingsbus die wordt gebruikt voor energie- en systeembeheertaken. I2C is een communicatieprotocol aan boord dat wordt gebruikt voor lage bandbreedte en korte afstanden.
Een systeem kan deze bus gebruiken om berichten van & naar apparaten te routeren in plaats van individuele stuurlijnen te activeren.

I2C wordt normaal gesproken gebruikt voor het aansluiten van op lage snelheid gebaseerde randapparatuur zoals microcontrollers en sensoren op processors boven korte afstanden in een IC.
De maximale CLK-snelheid is 100 kHz. De maximale CLK-snelheid is 400 kHz.
De minimale CLK-snelheid is 10 kHz. Geen minimum CLK-snelheid.
35 ms lage CLK-time-out. Er is geen time-out.
Het heeft vaste logische niveaus. De logische niveaus zijn afhankelijk van VDD.
Het heeft verschillende adrestypen, zoals gereserveerd, dynamisch, enz. Het heeft verschillende adrestypen, zoals een algemeen slave-adres, 7-bit en 10-bit.
Het heeft verschillende busprotocollen zoals procesaanroepen, snelle opdrachten, enz. Het heeft geen busprotocollen.

SMBus versus Pmbus

Het verschil tussen SMBus en Pmbus omvat het volgende.

SMBus

Pmbus

De SMBus is een 2-draads, enkelzijdige bus die wordt gebruikt voor lichtgewicht communicatie. De extensie van SMBus is Pmbus en het is een goedkoop protocol dat voornamelijk wordt gebruikt voor communicatie tussen apparaten voor energiebeheer.
De slave-modus van deze bus maakt datasnelheden mogelijk zoals 10 kbps, 50 kbps, 100 kbps en 400 kbps. De slave-modus van deze bus staat eenvoudig datasnelheidswaarden toe zoals 100 kbps en 400 kbps.
Dit type bus werkt met I2C-hardware, maar bevat software van het tweede niveau door apparaten te hot-swappable te maken zonder het systeem opnieuw te hoeven opstarten. Deze bus breidt SMBus uit door simpelweg een reeks opdrachten van het apparaat te definiëren en is speciaal ontworpen voor het verwerken van stroomomvormers, waardoor apparaatkenmerken zoals gemeten stroom, spanning, temperatuur, enz.
SMBus is een superset van I2C PMBus is een superset van SMBus
Deze bus bevat zowel de netwerk- als datalinklagen. Deze bus bevat de transportlaag en een reeks opdrachten.

Tijdschema

De SMBus-timingdiagram wordt hieronder weergegeven.

  Timingdiagram van SMBus
Timingdiagram van SMBus

De TLOW.SEXT is het slave-apparaat dat de CLK-cycli binnen een enkel bericht verlengt van START tot STOP. Het is dus mogelijk dat de master of een ander slave-apparaat ook de CLK-cyclus verlengt om ervoor te zorgen dat de lage verlengde tijd van gecombineerde CLK hoger is dan TLOW.SEXT. Deze parameter wordt dus eenvoudig via het slave-apparaat gemeten, zoals het enige doel van een master met volledige snelheid.

TLOW.MEXT is het hoofdapparaat dat de CLK-cycli in elke byte van een bericht verlengt. Het is dus mogelijk dat een ander master- of slave-apparaat ook de CLK verlengt om ervoor te zorgen dat de lage tijd van de gecombineerde CLK hoger is in vergelijking met TLOW.MEXT op een gespecificeerde byte. De parameters worden dus eenvoudig gemeten via een full-speed slave-apparaat zoals het enige doelwit van de master.

Toepassingen

De toepassingen van SMBus omvatten het volgende.

  • SMBus wordt gebruikt als een systeemcomponentchip die wordt gebruikt om binnen een systeem te communiceren. Meer in het bijzonder zorgt het ervoor dat batterijen kunnen communiceren met andere componenten van het systeem, zoals stroomgerelateerde componenten en de CPU.
  • Dit wordt gebruikt voor lichtgewicht communicatie.
  • Deze bus wordt gebruikt voor het bewaken van kritische parameters in ingebedde systemen & op moederborden van pc.
  • Dit is de meest voorkomende vorm van communicatie voor geavanceerde brandstofmeters van Texas Instruments.
  • Dit wordt gebruikt in minder op bandbreedte gebaseerde systeembeheercommunicatie.

Dit gaat dus allemaal over een overzicht van een SMBus – werken met applicaties. Dit is een eenvoudige en enkelzijdige tweedraads bus die wordt gebruikt voor lichtgewicht communicatie. Deze bus wordt gebruikt in moederborden van computers voor communicatie met de stroombron voor AAN- of UIT-instructies. Hier is een vraag voor u, wat is het I2C-protocol?