I²C

Jednoduchá schéma s jedním řídícim (mikrokontrolér) a třemi řízenými zařízeními (ADC, DAC a jiný mikrokontroler) s pull-up rezistory Rp

I²C (anglicky Inter-Integrated Circuit, čteme I-squared-C, nesprávně I-two-C) je multi-masterová počítačová sériová sběrnice vyvinutá firmou Philips, která je používána k připojování nízkorychlostních periferií k základní desce, vestavěnému systému nebo mobilnímu telefonu.

Prakticky identická sběrnice se skrývá i pod zkratkou TWI (Two Wire Interface – dvoudrátové rozhraní), kterou používá firma Atmel a další výrobci namísto chráněné značky I2C.

Charakteristika

Sběrnice rozděluje připojená zařízení na řídicí (master – zahajuje a ukončuje komunikaci; generuje hodinový signál SCL) a řízené (slave – zařízení adresované masterem). Podle stavu k 1. říjnu 2006 nejsou vyžadovány žádné licenční poplatky pro implementaci, avšak zpoplatněné je přidělování adres pro slave zařízení.[1]

Sběrnice I²C se hojně používá v různých zařízeních včetně IBM PC kompatibilních počítačů:

Fyzická vrstva

Umožňuje propojení až 128 různých zařízení s pouze dvěma obousměrnými vodiči. Jeden tvoří hodinový signál SCL (Synchronous Clock) a druhý datový kanál SDA (Synchronous Data). Z elektrického hlediska jsou oba kanály zapojeny jako otevřený kolektor. Maximální délka vodičů je dána jejich nejvyšší přípustnou kapacitou 400 pF. Každý vodič musí být připojen jedním pull-up rezistorem ke kladnému napětí, což zajistí vysokou úroveň v klidovém stavu. Při probíhajícím přenosu jsou na SDA vysílány jednotlivé datové bity přičemž platí pravidlo, že logická úroveň na SDA se smí měnit pouze je-li SCL v úrovni L. Toto pravidlo je porušeno ve dvou speciálních případech. A to při vysílání podmínek START a STOP, které se používají k zahájení komunikace a k ukončení přenosu.

Maximální frekvence signálu SCL je podle verze I2C 100 kHz nebo 400 kHz. Pro obě frekvence je dána minimální povolená doba setrvání SCL v úrovni L a H. Při komunikaci i při přenosu dat si jednotlivé stanice synchronizují generátory hodin tak, že trvání úrovně H na SCL je odměřováno vnitřním časovačem každé stanice až od okamžiku, kdy SCL skutečně úrovně H dosáhne (protože je SCL typu otevřený kolektor, může být v úrovni L držen i v situaci kdy se daná stanice snaží nastavit úroveň H). Podobně je doba trvání úrovně L na SCL odměřována od sestupné hrany. Tento mechanismus umožňuje některé ze stanic zpomalit přenos: pomalá stanice může podržet po určitou dobu signál SCL v úrovni L a tím zabránit vysílající stanici ve vyslání dalšího bitu. Sběrnice I2C neumožňuje duplexní přenos, v jednom okamžiku vysílá jen jedno zařízení. Všechna zařízení připojená na sběrnici musí mít individuální adresu o délce 7 nebo 10 bitů a implementovaný mechanizmus komunikace pomocí I²C sběrnice.

Časový diagram

Sekvence přenosu dat

Přenos dat se zahajuje START bitem (S), tj. sestupnou hranou na signálu SDA když je SCL nahoře (zvýrazněno oranžově). Poté následuje sestupná hrana SCL, následně se do SDA nastaví přenášený bit. Během přenosu smí vysílač měnit hodnotu SDA když je SCL dole (zvýrazněno modře). Hodnotu SDA lze z linky přečíst, když je SCL nahoře (zvýrazněno zeleně). Kvůli zpoždění linky bývá úroveň SDA měněna na sestupné hraně SCL a vzorkována na vzestupné hraně SCL. Když je přenos dokončen, uvolní vysílač linku vysláním STOP bitu (P). Stop bit je realizován vzestupnou hranou SDA když je SCL nahoře (zvýrazněno oranžově).

Linková vrstva

Každému přenosu předchází vyslání podmínky START. Potom je vysílána 7bitová adresa příjemce a jeden bit R/W, který indikuje požadovanou operaci (čtení/zápis). Další bit ACK je vysílán s úrovní H a je určen k potvrzení přijímací stanice o připravenosti přijímat. Dále jsou přenášena data ve směru určeném předchozím bitem R/W. Každý byte je následován jedním bitem ACK. Po ukončení přenosu je vyslána podmínka STOP.

Řízení komunikace

Pro řízení komunikace se na I2C používá metoda s detekcí kolize. Každá ze stanic může zahájit vysílání, je-li předtím sběrnice v klidovém stavu. Během vysílání musí neustále porovnávat vysílané bity se skutečným stavem SDA. Je-li zjištěn rozdíl mezi očekávaným a skutečným stavem linky SDA, je to indikace kolize mezi několika stanicemi. Vzhledem k charakteru sběrnice (otevřené kolektory) může k této situaci dojít, pokud určitá stanice vysílá úroveň H, zatímco jiná stanice vysílá úroveň L. Stanice, která na lince zjistí úroveň L zatímco sama vysílá H musí vysílání okamžitě ukončit . K řízení komunikace většinou dochází během vyslání několika prvních bitů, kdy je vysílána adresa přijímací stanice. Pokud by se např. dvě stanice současně pokusily o zápis do stejného obvodu, nastane kolize až při přenosu vlastních zapisovaných dat. V krajním případě, kdy několik stanic současně zapisuje stejná data na stejnou adresu, nemusí být kolize vůbec detekována.

Adresování

Každá stanice připojená na I2C má přidělenou 7bitovou adresu. Po zachycení podmínky START, porovnávají všechny obvody svou adresu s adresou, která je vysílána na sběrnici. Zjistí-li některý z obvodů shodu, je vysílání určeno právě jemu a musí přijetí adresy potvrdit bitem ACK. Potom přijímá nebo vysílá další data. Několik adres je na I2C vyhrazeno pro speciální účely. Například adresa 0000000 je určena pro vysílání broadcast, adresy 0000011, 00001XX a 11111XX jsou rezervovány pro další účely.

Potvrzování

Každý vysílaný byte a vyslaná adresa je následována vysláním jednoho bitu ACK. Vysílající stanice jej vysílá v úrovni H. Přijímající stanice potvrzuje přijetí tím, že v době vysílání ACK připojí SDA na úroveň L. Pokud vysílající stanice nedostane potvrzení příjmu, ukončí vysílání podmínkou STOP.

Reference

  1. www.nxp.com [online]. [cit. 2007-10-24]. Dostupné v archivu pořízeném dne 2011-09-29. 

Externí odkazy

Pahýl
Tento článek je příliš stručný nebo postrádá důležité informace.
Pomozte Wikipedii tím, že jej vhodně rozšíříte. Nevkládejte však bez oprávnění cizí texty.

Zdroj datcs.wikipedia.org
Originálcs.wikipedia.org/wiki/I²C
Zobrazit sloupec 

Kalkulačka - Výpočet

Výpočet čisté mzdy

Důchodová kalkulačka

Přídavky na dítě

Příspěvek na bydlení

Rodičovský příspěvek

Životní minimum

Hypoteční kalkulačka

Povinné ručení

Banky a Bankomaty

Úrokové sazby, Hypotéky

Směnárny - Euro, Dolar

Práce - Volná místa

Úřad práce, Mzda, Platy

Dávky a příspěvky

Nemocenská, Porodné

Podpora v nezaměstnanosti

Důchody

Investice

Burza - ČEZ

Dluhopisy, Podílové fondy

Ekonomika - HDP, Mzdy

Kryptoměny - Bitcoin, Ethereum

Drahé kovy

Zlato, Investiční zlato, Stříbro

Ropa - PHM, Benzín, Nafta, Nafta v Evropě

Podnikání

Města a obce, PSČ

Katastr nemovitostí

Katastrální úřady

Ochranné známky

Občanský zákoník

Zákoník práce

Stavební zákon

Daně, formuláře

Další odkazy

Auto - Cena, Spolehlivost

Registr vozidel - Technický průkaz, eTechničák

Finanční katalog

Volby, Mapa webu

English version

Czech currency

Prague stock exchange


Ochrana dat, Cookies

 

Copyright © 2000 - 2024

Kurzy.cz, spol. s r.o., AliaWeb, spol. s r.o.