SMBus: Arbeid, forskjeller og applikasjoner

Prøv Instrumentet Vårt For Å Eliminere Problemer





SMBus ble lansert i 1995 av Intel, og den er basert på I²C seriebussprotokollen til Philips. Denne bussen fører data, CLK og instruksjoner der klokkefrekvensen varierer fra 10 kHz til 100 kHz. Hovedintensjonen til SMBus er å tillate en rimelig og kraftig metode for å kontrollere og hente data fra enheter på et hovedkort. SMBus brukes vanligvis i PC-er for temperaturkontroll, smarte batterier og annen systemadministrasjonskommunikasjon med lav båndbredde.


Denne bussen identifiserer kommunikasjonsforbindelsen mellom en lader, et intelligent batteri og en mikrokontroller som kommuniserer med resten av systemet. Men, SMBus brukes også til å koble til forskjellige enheter som systemsensorer, strømrelaterte enheter, kommunikasjonsenheter, inventar EEPROMs, etc. Denne artikkelen diskuterer en oversikt over en SMBus – arbeid med applikasjoner.



Hva er SMBus-protokollen?

SMBus (System Management Bus) er et 2-leder grensesnitt som ofte brukes mellom ulike enheter på et hovedkort for lavhastighets systemadministrasjonskommunikasjon. Denne typen buss ble designet av I2C-protokoll stiftelser. Så både I2C og SMBus kan ha noen likheter, og de kan også fungere sammen på den lignende bussen.

Denne bussen fungerer etter I2C-driftsprinsippene som gir en kontrollbuss, spesielt for systemet for å tillate meldinger til eller fra enhetene i stedet for å bruke separate kontrolllinjer for å redusere systemledninger og antall pinner.



En enhet med en SMBus kan gi informasjon om produksjon, informere systemet om dets del- eller modellnummer, rapportere forskjellige typer feil, tillate kontrollparametere og gå tilbake til posisjonen.

SMBus-spesifikasjon

Spesifikasjonen til SMBus refererer ganske enkelt til 3 typer enheter vert, master og slave.

  • En vert er en spesiell master og den gir hovedgrensesnittet til CPU-en til systemet.
  • En masterenhet som gir instruksjoner, genererer klokkene og avslutter overføringen.
  • En slaveenhet mottar ellers reagerer på en kommando.

Hvordan fungerer SMBus?

Det er 3 typer enheter som brukes innen SMBus-kommunikasjon som en vert, en master og en slaveenhet som er vist i følgende diagram. I denne bussen er vertsenheten et spesifikt hovedarbeidslignende grensesnitt til CPU-en til systemet; det er imidlertid ikke alltid nødvendig. Noen systemer som enkle batteriladesystemer kan være uten en vert.

En masterenhet starter kommunikasjonen, driver CLK og stopper overføringen. En enhet kan velges til å være bare en master eller en master-slave, der den kan fungere enten som en masterenhet ellers en slaveenhet.

  SMBus-diagram
SMBus-diagram

På SMBus er det også over én master, men kun én kan mestre bussen til enhver tid. For eksempel, når de to enhetene mestrer bussen samtidig, gir SMBus en voldgiftsmekanisme som ganske enkelt avhenger av den kablede OG-tilkoblingen av alle grensesnittene til SMBus-enheten til SMBus.

Slaveenheter reagerer på dens adresse så vel som kommandoer, og de kan overføre og motta data fra og til en masterenhet. En enhet kan velges helt som en slave ellers er det mulig for slaven å fungere som en mester i visse eksempler.

I likhet med I2C-protokollen tildeles hver slave på denne bussen ganske enkelt en syv-bits slaveadresse der lese- eller skrivebiten legges til denne adressen for å beskrive om enheten leser eller skriver meldingen som sendes på bussen.

Enheter er nødvendige for å gjenkjenne sin egen adresse, så når en enhet identifiserer adressen sin, vil den reagere på kommandoen.

Når slaveadressen til denne bussen er i konflikt, støtter den ARP eller Address Resolution Protocol. Når verten oppdager to enheter med en lignende slaveadresse, vil adresseoppløsningsprotokollprosedyren tildele en ny unik adresse dynamisk til slavene. Adresseoppløsningsprotokollen vil tillate at enhetene kan brukes umiddelbart uten krav om å starte systemet på nytt.

Denne bussen bruker 2-ledere for kommunikasjon som SMBDAT-ledningen og SMBCLK-ledningen, hvor SMBDAT-ledningen brukes til å overføre seriedata og SMBCLK-ledningen fungerer som den serielle klokken. I ovennevnte SMBus driver masteren ganske enkelt SMBCLK som varierer fra 10 til 100 kHz, men hvilken som helst linje kan drive SMBDAT.

Disse to ledningene er toveis som gir en mulighet til å inkludere et varselsignal som SMBALERT som lar enheter be om oppmerksomhet fra verten.

Datapakken til denne bussen inneholder en startbit, en ACK- eller NACK-bit, 8 databiter og en stoppbit. Dataoverføringen til SMBus bruker noen av funksjonene ellers protokoller til forskjellige SMBus mens de sender meldinger som Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Blokker skrive-blokk.

Denne bussen støtter også PEC (packet error checking) for å forbedre kommunikasjonspåliteligheten. Så dette kan utføres ved å inkludere en pakkefeilkode på slutten av hver melding.

Funksjoner

SMBus-funksjoner kalles også protokoller. Så hovedprotokollene til 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-meldingsformat

Etter tilstanden START, vil masteren finne slaveenhetens 7-bits adresse og den må adresseres på bussen. Så lengden på adressen er 7 biter lang etterfulgt av en 8-bit som angir dataoverføringsretningen (R/W); en ONE spesifiserer en forespørsel om READ (data) og en NULL spesifiserer en WRITE (overføring).

  Meldingsformat
Meldingsformat

Overføringen av data avsluttes alltid av en STOP-tilstand generert gjennom masteren.

Hver byte inkluderer 8 biter og hver byte overføres på SMBus og bør følges gjennom en bekreftelsesbit. Byte sendes gjennom MSB (mest signifikant bit) først.

En typisk SMBus-enhet inkluderer et sett med kommandoer der data enkelt kan leses og skrives. Lengden på alle disse kommandoene er 1 byte lang, mens deres argumenter, så vel som returverdier, kan endres innenfor lengden.

Å tillate en kommando eksisterer ikke, ellers støttes den ikke, så det kan forårsake en feiltilstand. I samsvar med SMBus-spesifikasjonen overføres MSB først.

Først setter alle kommandoene en startbetingelse over bussen, start deretter overføringen ved å sende dataene eller kommandoen, vent på en aksept fra slaveenheten gjennom data- eller kommandooverføringen, setter deretter en stopptilstand på bussen.

Start- og stoppbetingelser for SMBus-protokoll

START & STOPP-tilstand for en melding vil bli definert av to unike bussbetingelser høy til lav og lav til høy.

  Start- og stoppbetingelser
Start- og stoppbetingelser

I en HØY til LAV SMBDAT-linjeovergang, når SMBCLK er HØY, indikerer den en START-tilstand for en melding.

I en LAV til HØY SMBDAT-linjeovergang, når SMBCLK er HØY, definerer den en STOPP-tilstand for en melding. Så disse to forholdene genereres alltid av bussens sjef. Bussen blir opptatt etter tilstanden til en START. Bussen vil igjen bli inaktiv etter en viss tid etter en STOPP-tilstand.

SMBus maskinvarekrav

Maskinvarekravene til SMBus for å muliggjøre effektiv, så vel som sømløs kommunikasjon mellom en PC og noe av dens viktigste maskinvare, er to ledninger som SMBDAT og SMBCLK, PSU (Power Supply Unit), sett med IC-er, drivere og kjølevifter . I utgangspunktet lar denne SMBus-kontrolleren en datamaskin håndtere og utføre kommandoer med hell, for eksempel å slå PSU PSU og kontrollere kjøleviftene.

SMBus-dataoverføring bruker forskjellige protokoller eller funksjoner under overføring av meldinger som Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write, etc. Den støtter også PEC eller pakkefeilkontroll for forbedre kommunikasjonspåliteligheten ved ganske enkelt å inkludere en pakkefeilkode i hver meldingsende.

SMBus-maskinvaren gir ganske enkelt timing- og skiftekontroll som brukes til serieoverføringene. Så maskinvaren til SMBus utfører de forskjellige uavhengige applikasjonsoppgavene som tidskontroll, serielle dataoverføringer og gjenkjenning av slaveadresser.

SMBus vs I2C

De forskjellen mellom SMBus og I2C inkluderer følgende.

SMBus

2C

Begrepet SMBus står for 'System Management Bus'. Begrepet I2C står for 'Inter-Integrated Circuit'.
SMBus er en 2-leder kontrollbuss som brukes i energi- og systemadministrasjonsoppgaver. I2C er en innebygd kommunikasjonsprotokoll som brukes for lav båndbredde og korte avstander.
Et system kan bruke denne bussen til å rute meldinger fra og til enheter i stedet for å aktivere individuelle kontrolllinjer.

I2C brukes vanligvis for å koble lavhastighetsbaserte periferiutstyr som mikrokontrollere og sensorer til prosessorer over korte avstander i en IC.
Maksimal CLK-hastighet er 100 kHz. Maksimal CLK-hastighet er 400 kHz.
Minste CLK-hastighet er 10 kHz. Ingen minimum CLK-hastighet.
35ms lav CLK timeout. Det er ingen timeout.
Den har faste logiske nivåer. Dens logiske nivåer avhenger av VDD.
Den har forskjellige adressetyper som reservert, dynamisk, etc. Den har forskjellige adressetyper som generell anropsslaveadresse, 7-bit og 10-bit.
Den har forskjellige bussprotokoller som prosessanrop, hurtigkommandoer, etc. Den har ikke bussprotokoller.

SMBus vs Pmbus

Forskjellen mellom SMBus og Pmbus inkluderer følgende.

SMBus

Pmbus

SMBus er en 2-tråds, enkelt-ende buss som brukes for lett kommunikasjon. Utvidelsen av SMBus er Pmbus og det er en rimelig protokoll som hovedsakelig brukes for kommunikasjon mellom strømstyringsenheter.
Slavemodusen til denne bussen tillater datahastighetsverdier som 10 kbps, 50 kbps, 100 kbps og 400 kbps. Slavemodusen til denne bussen tillater ganske enkelt datahastighetsverdier som 100 kbps og 400 kbps.
Denne typen buss fungerer med I2C-maskinvare, men den inkluderer programvare på andre nivå ved å tillate enheter å byttes uten å starte systemet på nytt. Denne bussen utvider SMBus ved ganske enkelt å definere et sett med kommandoer til enheten, og den er spesielt designet for å håndtere strømomformere, eksponere enhetsattributter som målt strøm, spenning, temperatur, etc.
SMBus er et supersett av I2C PMBus er et supersett av SMBus
Denne bussen inkluderer både nettverks- og datalinklagene. Denne bussen inkluderer transportlaget og et sett med kommandoer.

Tidsdiagram

De SMBus tidsdiagram er vist nedenfor.

  Tidsdiagram for SMBus
Tidsdiagram for SMBus

TLOW.SEXT er slaveenheten som utvider CLK-syklusene innenfor en enkelt melding fra START til STOP. Så det er mulig at masteren eller en annen slaveenhet også vil forlenge CLK-syklusen for å få den lave utvidede tiden til kombinert CLK til å være høyere enn TLOW.SEXT. Dermed blir denne parameteren ganske enkelt målt gjennom slaveenheten som enkeltmålet til en fullhastighets master.

TLOW.MEXT er hovedenheten som utvider CLK-syklusene i hver byte i en melding. Så det er mulig at en annen master eller en slaveenhet også vil utvide CLK for å få den lave tiden til den kombinerte CLK til å være høyere sammenlignet med TLOW.MEXT på en spesifisert byte. Dermed blir parametrene ganske enkelt målt gjennom en fullhastighets slaveenhet som enkeltmålet til masteren.

applikasjoner

De applikasjoner fra SMBus Inkluder følgende.

  • SMBus brukes som en systemkomponentbrikke som brukes til å kommunisere innenfor et system. Mer spesielt tillater det batterier for å kommunisere med andre komponenter i systemet som strømrelaterte komponenter og CPU.
  • Dette brukes til lett kommunikasjon.
  • Denne bussen brukes til å overvåke kritiske parametere i innebygde systemer & på hovedkort på PC.
  • Dette er den vanligste typen kommunikasjon for avanserte drivstoffmålere fra Texas Instruments.
  • Dette brukes i mindre båndbreddebasert systemadministrasjonskommunikasjon.

Altså handler dette om en oversikt over en SMBus – jobbe med applikasjoner. Dette er en enkel og ensidig totrådsbuss som brukes til lett kommunikasjon. Denne bussen brukes på hovedkort til datamaskiner for kommunikasjon med strømkilden for PÅ eller AV-instruksjoner. Her er et spørsmål til deg, hva er I2C-protokollen?