I2C (alternativt stavat I2C) som utvecklades av Philips på 1980-talet har blivit ett av de mest använda seriella kommunikationsprotokollen inom elektronik. I2C underlättar kommunikationen mellan elektroniska komponenter eller integrerade kretsar, oavsett om komponenterna är på samma PCB eller anslutna med en kabel.
Vad är I2C-protokollet?
I2C är ett seriellt kommunikationsprotokoll som bara kräver två signallinjer. Den var designad för kommunikation mellan chips på ett kretskort (PCB). I2C designades ursprungligen för 100 Kbps kommunikation. Men snabbare dataöverföringslägen har utvecklats under åren för att uppnå hastigheter på upp till 3.4 Mbit.
Nyckelfunktionen hos I2C är möjligheten att ha många komponenter på en enda kommunikationsbuss med bara två ledningar, vilket gör I2C perfekt för enkla applikationer. I2C-protokollet har etablerats som en officiell standard, vilket möjliggör bakåtkompatibilitet mellan I2C-implementeringar.
I2C-signaler
I2C-protokollet använder två dubbelriktade signallinjer för att kommunicera med enheterna på kommunikationsbussen. De två signalerna som används är:
- Serial Data Line (SDL)
- Serial Data Clock (SDC)
Anledningen till att I2C bara kan använda två signaler för att kommunicera med flera kringutrustning är hur kommunikationen längs bussen hanteras. Varje I2C-kommunikation börjar med en 7-bitars (eller 10-bitars) adress som ropar ut adressen till kringutrustningen.
Detta tillåter flera enheter på I2C-bussen att spela rollen som den primära enheten enligt systemets behov. För att förhindra kommunikationskollisioner inkluderar I2C-protokollet arbitration och kollisionsdetektionsfunktioner, som möjliggör smidig kommunikation längs bussen.
Fördelar med I2C
Som kommunikationsprotokoll har I2C följande fördelar:
- Flexibla dataöverföringshastigheter.
- Längre distanskommunikation än SPI.
- Varje enhet på bussen är oberoende adresserbar.
- Enheter har en enkel primär/sekundär relation.
- Det kräver bara två signallinjer.
- Den kan hantera flera primära kommunikationer genom att tillhandahålla skiljedoms- och kommunikationskollisionsdetektering.
Begränsningar för I2C
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 bitarna i adressen, men detta innebär en begränsning av enheter på samma buss.
- Endast ett fåtal begränsade kommunikationshastigheter är tillgängliga, och många enheter stöder inte överföring vid högre hastigheter. Partiellt stöd för varje hastighet på bussen krävs för att förhindra att långsammare enheter fångar upp partiella sändningar som kan resultera i funktionsfel.
- I2C-bussens delade karaktär kan resultera i att hela bussen hänger sig när en enda enhet på bussen slutar fungera. Att slå på strömmen till bussen kan återställa korrekt funktion.
- Eftersom enheter ställer in sin egen kommunikationshastighet kan långsammare driftenheter försena driften av snabbare enheter.
- I2C drar mer ström än andra seriella kommunikationsbussar på grund av kommunikationslinjernas open-drain-topologi.
- Begränsningarna för I2C-bussen begränsar vanligtvis antalet enheter på en buss till ett dussintal.
I2C Applications
I2C är ett utmärkt alternativ för applikationer som kräver låg kostnad och enkel implementering snarare än hög hastighet. Till exempel, vanliga användningsområden för I2C-kommunikationsprotokollet inkluderar:
- Läser vissa minneskretsar.
- Åtkomst till DAC och ADC.
- Sändning och kontroll av användarriktade åtgärder.
- Läs av hårdvarusensorer.
- Kommunikerar med flera mikrokontroller.