I2C

Disse sidene er en del av dokumentasjonen som Ola Lie utarbeidet da han foreleste faget IP- og webteknologi ved Høgskolen i Østfold i 2005.Websidene ble revidert i 2007.

I2C

i2cInter-IC (I2C) er en toveis seriell buss for kommunikasjon mellom integrerte kretser (IC). I2Cer en enkel buss som trenger kun to ledninger eller baner på kretskort. Den ble utviklet av Philips på 1980 tallet med tanke på masseproduksjon for fjernsyn, videospillere, lyd utstyr, o.l. I dag er I2C en de facto standard. Med det menes at den er akseptert som en generell standard fordi den er blitt så utbredt og alminnelig etter som tiden har gått – i motsetning til å bli utviklet og godkjent av en standardiseringsorganisasjon.

 

i2c Philips mener at bussen har overlevd såpass lenge fordi de stadig har forbedret den. I dag finnes det tre overføringshastigheter: inntil 100 kbps i Standard mode, inntil 400 kpbs i Fast mode og inntil 3,4 Mbps i High-Speed mode.

Andre egenskaper ved bussen er

  • Kun to signaler/ledninger: seriell data linje (SDA) og seriell klokke linje (SCL)
  • Overføringen er basert på 8 bits ord.
  • Hver enhet har en unik adresse som er på 7 eller 10 bit
  • Bussen baserer seg på master/slave prinsippet og kan ha flere master enheter.
  • Antall enheter som kan tilkobles er begrenset av bussen kapasitans, som ikke kan overstige 400pF.

En typisk I2C har 4 faste adresse bit, og 3 programmerbare adresse bit. Dermed kan vi ha inntil 8 enheter av samme type på bussen. Når en master skal skrive til en slave, skjer følgende:

  1. Master signalerer START tilstand (SCL er høy og SDA går fra høy til lav)
  2. Master sender 7 bits adressen til bussen
  3. Master skriver R/W (lese/skrive bit – 0 for skriv)
  4. Slaven sender et Acknowledge bit (logisk 1)
  5. Master sender et 8 bits ord, hvert etterfulgt av et et Acknowledge bit fra slaven
  6. Master signaler STOP tilstand (SCL er høy og SDA går fra lav til høy)

i2c

Lesing er nesten tilsvarende bortsett fra at Master signaliserer R (0 for les), slaven sender Ack, men etterpå et det Master som sender Ack.


i2c
START og STOP tilstander


i2c
Overføring av data

Data på SDA må være stabil mens SCL er høy. SDA kan bare endre seg når SCL er lav (for å ikke forveksles med START og STOP).

Mer informasjon om I2C finnes på Web-siden Philips Semiconductors I²C-bus Information hvor det blant annet er lenke til The I²C-bus specification.