Reklama

Protokol I2C

Úvod

Pokud Vaše zařízení potřebuje komunikovat s obvodem, který je vybaven rozhraním I2C, tak v tomto příspěvku naleznete základní teoretický popis tohoto standardu.

 

Protokol I2C byl vytvořený pro obousměrnou sériovou komunikaci pomocí dvou vodičů a samozřejmě jednoho vodiče, který je použit pro společnou zem. Tento protokol byl vytvořen firmou Philips Semiconductors a někdy také bývá označována jako TWI. Jak bylo řečeno protokol I2C obsahuje dva vodiče, jeden je určen pro rozvod hodinového signálu označovaný jako CLK a druhý je určen pro datovou komunikaci a je označovaný jako SDA. Na obou těchto vodičích musí být umístěn „pull-up“ rezistor o velikosti několika kilo ohmů. Při komunikaci mezi zařízeními je vždy jedno zařízení, které řídí komunikaci a hodinový signál, označované jako MASTER a zbývající zařízení jsou označované jako SLAVE. Schéma komunikačního řetězce lze vidět na Obr. 1.

 
nazev

Obr. 1: Komunikační řetězec pomocí I2C protokolu, převzato z [1]

Komunikace mezi zařízeními začíná vysláním start bitu označovaným jako S, poté následuje osmice bitů, která obsahuje adresu obvodu, s kterým chceme komunikovat a také řídící bit D0, který určuje směr komunikace. Pokud obvod, s kterým chceme navázat komunikaci je přítomen, potvrdí příjem potvrzovacím bitem označovaným jako ACK. Po obdržení potvrzení komunikace je pokračováno dalšími osmi datovými bity a opět potvrzením ACK. To vše probíhá až do té doby než je komunikace uzavřena pomocí stop bitu označovaným jako P. Komunikační rámec zobrazuje Obr. 2.

 

nazev

Obr. 2: Komunikační rámec I2C, převzato z [1]

 

Start bit je vytvořen přechodem ze stavu log. 1 do log. 0 na datové lince SDA při vysoké úrovni hodinového signálu CLK. Naopak stop bit je vytvořen přechodem na datové lince SDA ze stavu log. 0 do stavu log. 1 při vysoké úrovni hodinového signálu CLK. Z definice start a stop bitu je jasné, že při komunikaci musí být na datové lince SDA vždy ustálená hodnota po celou dobu vysoké úrovně CLK, protože jinak by byl tento stav vyhodnocen jako některý řídící bit.

 

Adresa obvodu je pevně zabudovaná v zařízení většinou až na tři bity, které jsou volitelné pro možnost připojení více stejných obvodů do jednoho komunikačního řetězce. Směr přenosu určuje logický stav bitu D0. Pokud je tento bit v log. 1 MASTER, čte data ze SLAVE, tzn., obvod je vysílačem, v opačném případě při stavu log. 0 MASTER zapisuje do SLAVE data, tzn., obvod se chová jako přijímač.

 

Přenos jednoho datového bytu ukazuje následující obrázek Obr. 3. Z tohoto obrázku je patrné, že je první vyslán bit s nejvyšší váhou.

 

nazev

Obr. 3:Přenos jednoho bytu, převzato z [1]

 

Pro protokol I2C byly definovány dva standardy a to: FAST a STANDARD. Rozdíl v těchto standardech je především v komunikační rychlosti mezi zařízeními. V následující tabulce Tab. 1. jsou zobrazeny hlavní parametry pro oba standardy. [1]

 

Tab. 1: Základní parametry I2C standardů FAST a STANDARD, převzato z [1]

Parametr Standard Fast Jednotka
Min. Max. Min. Max.
Rozsah vstupních úrovní log. 0 -0,5 1,5 -0,5 1,5 V
Rozsah vstupních úrovní log. 1 3 3 V

Rozsah výstupních úrovní log. 0

0,4 0 0,4 V
Vstupní odběr -10 10 -10 10 µA
Kmitočet CLK 0 100 0 400 kHz
Doba trvání log. 0 CLK 4,7 1,3 µs
Doba trvání log. 1 CLK 4,0 0,6 µs
Doba náběhu 1000 300 ns
Doba poklesu 300 300 ns

 

[1] TAJČ, M. Univerzální logický analyzátor. Brno: Vysoké učení technické v Brně, Fakulta elektrotechniky a komunikačních technologií, 2013. 72 s. Vedoucí diplomové práce Ing. Michal Kubíček, Ph.D.

 

Následující a předchozí příspěvek v kategorii:

 
Následující: Ultrazvukový modul HC-SR04
Předchozí: Protokol DMX512
 
Tajned facebook
 

Za případné chyby v textu, ve zdrojovém kódě, nebo ve schématickém zapojení se omlouváme.
AUTOŘI NEBEROU ŽÁDNOU ODPOVĚDNOST ZA PŘÍPADNÉ ÚJMY NA ZDRAVÍ ČI MAJETKU.