I²C
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)
Komunikaci vždy zahajuje master (řídicí zařízení). Přenos probíhá v těchto krocích:
- START podmínka – master stáhne SDA z 1 na 0, zatímco SCL je v log. 1.
- 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.
- 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).
- Datové bajty – přenos dat po 8 bitech (MSB first), každý bajt následovaný ACK/NACK.
- 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žim | Rychlost | Poznámka |
|---|---|---|
| Standard | 100 kbit/s | původní specifikace |
| Fast | 400 kbit/s | běžné moderní zařízení |
| Fast-mode Plus | 1 Mbit/s | |
| High-speed | 3,4 Mbit/s | vyžaduje speciální timing |
Vztahy
- Sériová komunikace – I²C je sériová sběrnice
- Co je sběrnice – obecná definice
- USB – jiná sériová sběrnice (diferenciální, point-to-point)
- Druhy přenosu a implementace – synchronní, half-duplex, master-slave
Zdroj
Poznámky vytvořené z výukových materiálů sběrnice.