I²C

I²C (Inter-Integrated Circuit) je synchronní sériová sběrnice, která používá pouze dva vodiče: SDA (Serial Data) a SCL (Serial Clock). Vyvinula ji Philips (nyní NXP) pro komunikaci mezi integrovanými obvody na jedné desce plošných spojů.

Elektrické vodiče

  • SDA – datová linka (obousměrná, half-duplex)
  • SCL – hodinová linka (řídí master)
  • Obě linky jsou open-drain (otevřený kolektor/drain) – vyžadují pull-up rezistory na napájecí napětí (obvykle 1,8–5 V). To umožňuje více zařízením sdílet stejnou sběrnici.

Logické hodnoty a napěťové úrovně

Protože linky jsou open-drain, logické úrovně jsou:

  • Logická 0 – zařízení aktivně stáhne linku k zemi (GND) (nízká úroveň).
  • Logická 1 – zařízení linku uvolní, pull-up rezistor vytáhne linku k napájecímu napětí (vysoká úroveň).

Komunikace tedy probíhá aktivním stahováním k zemi pro log. 0 a pasivním uvolněním pro log. 1. Tím je zajištěno, že žádné dva obvody nemohou zkratovat napájení.

Komunikační sekvence (protokol)

image

Komunikaci vždy zahajuje master (řídicí zařízení). Přenos probíhá v těchto krocích:

  1. START podmínka – master stáhne SDA z 1 na 0, zatímco SCL je v log. 1.
  2. Adresní bajt – master pošle 7bitovou adresu slave + 1 bit směru (R/W). Adresa 0x00 je rezervována pro broadcast, 0x7F pro speciální účely.
  3. ACK/NACK – každý přijímač potvrzuje přijetí bajtu stažením SDA k 0 během 9. hodinového pulzu. Nestažení = NACK (konec nebo chyba).
  4. Datové bajty – přenos dat po 8 bitech (MSB first), každý bajt následovaný ACK/NACK.
  5. STOP podmínka – master uvolní SDA z 0 na 1, zatímco SCL je v log. 1. Tím ukončí přenos.

Režimy přenosu

  • Zápis (Write) – master → slave (bit R/W = 0)
  • Čtení (Read) – slave → master (bit R/W = 1); master generuje hodinový signál, slave ovládá SDA
  • Opakovaný START (Repeated START) – změna směru bez STOP, umožňuje např. zápis adresy následovaný čtením

Topologie a adresace

  • Až 127 zařízení na jednu sběrnici (7bitové adresy, v praxi méně).
  • Multi-master – více masterů může sdílet sběrnici; kolize se řeší arbitráží (zařízení, které stáhne linku k 0, vyhrává – ztratí zařízení, které posílalo log. 1).
  • Clock stretching – slave může prodloužit hodinový pulz (držet SCL v log. 0), pokud potřebuje více času na zpracování.

Rychlosti

RežimRychlostPoznámka
Standard100 kbit/spůvodní specifikace
Fast400 kbit/sběžné moderní zařízení
Fast-mode Plus1 Mbit/s
High-speed3,4 Mbit/svyžaduje speciální timing

Vztahy

Zdroj

Poznámky vytvořené z výukových materiálů sběrnice.

Built with LogoFlowershow