Skip to main content

Vad är I2C-protokollet?

I2C Protocol Tutorial | How I2C Protocol works (Maj 2025)

I2C Protocol Tutorial | How I2C Protocol works (Maj 2025)
Anonim

I2C har utvecklats av Philips på 1980-talet och har blivit ett av de vanligaste seriella kommunikationsprotokollen i elektronik. I2C möjliggör kommunikation mellan elektroniska komponenter eller IC till IC, oavsett om komponenterna är på samma PCB eller ansluten via en kabel. Nyckelfunktionen i I2C är möjligheten att ha ett stort antal komponenter på en enda kommunikationsbuss med endast två ledningar vilket gör I2C perfekt för applikationer som kräver enkelhet och låg kostnad över hastighet.

I2C-protokollet

I2C är ett seriellt kommunikationsprotokoll som endast kräver två signallinjer. Den var avsedd för kommunikation mellan chips på en PCB. I2C var ursprungligen konstruerad för kommunikation med 100kbps men snabbare dataöverföringslägen har utvecklats under åren för att uppnå hastigheter upp till 3,4 Mbit. I2C-protokollet har upprättats som en officiell standard, vilket ger bra kompatibilitet bland I2C-implementeringar och god bakåtkompatibilitet.

I2C-signaler

I2C-protokollet använder endast två tvåriktade signallinjer för att kommunicera med alla enheter på I2C-bussen. De två signalerna som används är:

  • Seriell datalinje (SDL)
  • Serial Data Clock (SDC)

Anledningen till att I2C endast kan använda två signaler för att kommunicera med ett antal kringutrustning är hur kommunikationen längs bussen hanteras. Varje I2C-kommunikation börjar med en 7-bitars (eller 10-bitars) adress som kallar adressens adress, resten av kommunikationen är avsedd att ta emot kommunikationen. Detta gör det möjligt för flera enheter på I2C-bussen att spela rollen för huvudenheten som systemets behov dikterar. För att förhindra kommunikationskollisioner innehåller I2C-protokollet skiljevapen och kollisionsdetektering som möjliggör en smidig kommunikation längs bussen.

Fördelar och begränsningar

Som ett kommunikationsprotokoll har I2C många fördelar att göra är ett bra val för många inbyggda designapplikationer. I2C ger följande fördelar:

  • I2C kräver bara två signallinjer
  • Flexibla dataöverföringshastigheter
  • Varje enhet på bussen är självständigt adresserbar
  • Enheter har ett enkelt Master / Slave-förhållande
  • I2C kan hantera flera masterkommunikation genom att tillhandahålla skiljedoms- och kommunikationskollisionsdetektering
  • Längre distanskommunikation än SPI

Med alla dessa fördelar har I2C också några begränsningar som kan behöva utformas runt. De viktigaste I2C-begränsningarna inkluderar:

  • Eftersom endast 7 bitar (eller 10 bitar) är tillgängliga för enhetsadressering kan enheter på samma buss dela samma adress. Vissa enheter kan konfigurera de sista få bitarna i adressen, men det innebär fortfarande en begränsning av enheter på samma buss.
  • Endast några begränsade kommunikationshastigheter är tillgängliga och många enheter stöder inte överföringen vid högre hastigheter. Delvis stöd för varje hastighet på bussen är nödvändig för att förhindra långsammare enheter att fånga partiella överföringar som leder till operativa störningar.
  • Den delade karaktären hos I2C-bussen kan leda till att hela bussen hänger när en enda enhet på bussen slutar fungera. Att cykla strömmen till bussen kan användas för att starta om bussen och återställa korrekt drift.
  • Eftersom enheter kan ställa in sin kommunikationshastighet kan långsammare driftsenheter fördröja driften av snabbare hastighetsenheter.
  • I2C drar mer ström än andra seriella kommunikationsbussar på grund av kommunikationslinjens öppna dräneringstopologi.
  • Begränsningarna för I2C-bussen begränsar vanligtvis antalet enheter på en buss till omkring ett dussin enheter.

tillämpningar

I2C-bussen är ett bra alternativ för applikationer som kräver låg kostnad och enkel implementering snarare än hög hastighet. Till exempel, läsning av vissa minneskretsar, åtkomst av DAC och ADC, läsgivare, överföring och styrning av användardirektiva åtgärder, läsning av maskinvarosensorer och kommunikation med flera mikrokontroller är vanliga användningar av I2C-kommunikationsprotokollet.