Oversikt og fordeler med I2C-bussen
Utviklet av Philips på 1980-tallet, I2C (alternativt stavet I2C) har blitt en av de mest brukte seriekommunikasjonsprotokollene innen elektronikk. I2C forenkler kommunikasjon mellom elektroniske komponenter eller integrert kretser, om komponentene er på samme PCB eller koblet til med en kabel.

Hva er I2C-protokollen?
I2C er en seriell kommunikasjonsprotokoll som bare krever to signallinjer. Den ble designet for kommunikasjon mellom brikker på et kretskort (PCB). I2C ble opprinnelig designet for 100 Kbps kommunikasjon. Imidlertid har raskere dataoverføringsmoduser blitt utviklet gjennom årene for å oppnå hastigheter på opptil 3,4 Mbit.
Nøkkelfunksjonen til I2C er muligheten til å ha mange komponenter på en enkelt kommunikasjonsbuss med kun to ledninger, noe som gjør I2C perfekt for enkle bruksområder. I2C-protokollen er etablert som en offisiell standard, noe som muliggjør bakoverkompatibilitet mellom I2C-implementeringer.
I2C-signaler
I2C-protokollen bruker to toveis signallinjer for å kommunisere med enhetene på kommunikasjonsbussen. De to signalene som brukes er:
- Seriell datalinje (SDL)
- Seriell dataklokke (SDC)
Grunnen til at I2C kan bruke kun to signaler til å kommunisere med flere perifere enheter er hvordan kommunikasjon langs bussen håndteres. Hver I2C-kommunikasjon starter med en 7-bit (eller 10-biters) adresse som kaller opp adressen til det eksterne enheten.
Dette gjør at flere enheter på I2C-bussen kan spille rollen som den primære enheten som systemets behov tilsier. For å forhindre kommunikasjonskollisjoner inkluderer I2C-protokollen arbitrering og kollisjonsdeteksjonsfunksjoner, som tillater jevn kommunikasjon langs bussen.
Fordeler med I2C
Som kommunikasjonsprotokoll har I2C følgende fordeler:
- Fleksible dataoverføringshastigheter.
- Lengre avstandskommunikasjon enn SPI.
- Hver enhet på bussen er uavhengig adresserbar.
- Enheter har et enkelt primært/sekundært forhold.
- Det krever kun to signallinjer.
- Den er i stand til å håndtere flere primærkommunikasjoner ved å gi voldgift og kommunikasjonskollisjonsdeteksjon.
Begrensninger for I2C
Med alle disse fordelene har I2C også noen få begrensninger som kanskje må utformes rundt. De viktigste I2C-begrensningene inkluderer:
- Siden bare 7-bits (eller 10-bits) er tilgjengelig for enhetsadressering, kan enheter på samme buss dele samme adresse. Noen enheter kan konfigurere de siste bitene av adressen, men dette pålegger en begrensning av enheter på samme buss.
- Bare noen få begrensede kommunikasjonshastigheter er tilgjengelige, og mange enheter støtter ikke overføring ved høyere hastigheter. Delvis støtte for hver hastighet på bussen er nødvendig for å forhindre at tregere enheter fanger opp delvise overføringer som kan føre til driftsfeil.
- Den delte naturen til I2C-bussen kan føre til at hele bussen henger når en enkelt enhet på bussen slutter å fungere. Å slå på strømmen til bussen kan gjenopprette riktig drift.
- Siden enheter angir sin egen kommunikasjonshastighet, kan tregere driftsenheter forsinke driften av raskere enheter.
- I2C trekker mer strøm enn andre serielle kommunikasjonsbusser på grunn av åpen-drain-topologien til kommunikasjonslinjene.
- Begrensningene til I2C-bussen begrenser vanligvis antall enheter på en buss til rundt et dusin.
I2C-applikasjoner
I2C er et flott alternativ for applikasjoner som krever lave kostnader og enkel implementering i stedet for høy hastighet. Vanlige bruksområder for I2C-kommunikasjonsprotokollen inkluderer for eksempel:
- Leser visse minne-ICer.
- Tilgang til DAC-er og ADC-er.
- Overføre og kontrollere brukerstyrte handlinger.
- Leser maskinvaresensorer.
- Kommuniserer med flere mikrokontrollere.