I²C
soros kommunikációs busz, amely kis sebességű beágyazott perifériás eszközöket köt össze From Wikipedia, the free encyclopedia
Remove ads
Az I²C (Inter-Integrated Circuit) egy multi-master, multi-slave, csomagkapcsolt soros busz, melyet a Philips Semiconductor (ma NXP Semiconductors) fejlesztett ki.
Az I²C jellemzően kis távolságú, viszonylag alacsony sebességű IC és fedélzeti rendszerek közötti kommunikációra szokás alkalmazni.
2006. október 10 óta az I²C protokoll alkalmazásához már nem szükséges engedélyezési díjat fizetni, ez a felmentés azonban nem vonatkozik az NXP által kiosztott I²C slave címekre, azokért továbbra is fizetni kell.
Több versenytárs, mint például a Siemens AG (később Infineon Technologies AG, jelenleg Intel mobilkommunikáció), az NEC, a Texas Instruments, az STMicroelectronics (korábban SGS-Thomson), a Motorola (később Freescale, most az NXP), a Nordic Semiconductor és az Intersil, az 1990-es évek közepe óta I²C kompatibilis termékeket dobott a piacra.
Az 1995-ben az Intel által definiált SMBus az I²C részhalmaza, amely azonban kötöttebb szabályokat alkalmaz. Az SMBus egyik célja a robusztusság és az interoperabilitás előmozdítása volt, ennek megfelelően a modern I²C rendszerek jó pár eljárást átemeltek az SMBus-ból, néha támogatva mind az I²C, mind az SMBus-t.
A busz maximális távolsága elvileg 7,6 m, de jellemzően 2–3 m-en szokás alkalmazni.
Remove ads
Az I²C verziói
- 1982-ben az eredeti 100 kHz-es I²C rendszert egyszerű belső buszrendszerként hozták létre az épületvezérlő elektronika számára, különböző Philips chipekkel.
- 1992-ben az 1. verzió 400 kHz gyors módot (FM) és 10 bites címzési módot adott hozzá az 1008 csomópontos kapacitás növeléséhez. Ez volt az első szabványosított változat.
- 1998-ban a 2. verzió hozzáadta a 3,4 MHz -es nagysebességű módot (HS) és kibővítette az energiatakarékossági követelményekkel.
- 2000-ben a 2.1-es változat tisztázta a 2. verziót, jelentős funkcionális változások nélkül.
- 2007-ben a 3-as verzió 1 MHz-es Fast-mode plus (FM+) (20 mA-es meghajtók használatával) és egy eszközazonosító mechanizmust adott a szabványhoz.
- 2012-ben a 4-es verzió az új USDA (adat) és az USCL (óra) vonalakhoz 5 MHz - es ultragyors módot (UFM) adott a szabványhoz, és egy pull-up ellenállás nélküli push-pull logikával hozzárendelt egy gyártói azonosító táblát. Ez csak egy egyirányú busz.
- 2012-ben az 5. változat kijavította a hibákat.
- 2014-ben a 6. verzió két grafikont korrigált. Ez az aktuális szabvány.
Remove ads
I²C technikai jellemzők

Az I²C az adatátvitelhez egy nyitott végű vezetékpárt használ, a soros adatvonalat (SDA) és a soros órajelet (SCL). A két vezetéket ellenállásokkal kell üzemi feszültségre húzni, a vezetékek jellemzően 5V, vagy 3,3V feszültséggel üzemelnek, de ettől eltérő feszültség-specifikáció sem kizárt.
A busz jellemzően 7 vagy 10 bites címzést alkalmaz, de esetenként a 16 bites megoldás is előfordul. Az átvitel jellemző sebességei:
Alacsony sebességű üzemmód | 10 kbit / sec |
szabványos üzemmód | 100 kbit / sec |
gyors mód (FM) | 400 kbit / sec |
gyors mód plusz (FM+) | 1 Mbit / sec |
nagysebességű mód (HS) | 3,4 Mbit / sec |
Remove ads
I²C a hardveres szinten
Minden I²C busz két jelből áll: SCL és SDA. Az SCL az órajel, az SDA az adatjel. Az órajelet mindig az aktuális busz-master generálja; egyes slave eszközök időnként alacsonyabb sebességre kényszeríthetik az órát. Ez az úgynevezett clock stretching, és a protokoll is tartalmazza ezt a funkciót.
Ellentétben az UART vagy SPI kapcsolatokkal, az I²C buszvezérlők "nyitott lefolyásúak", vagyis a jelvezetéket alacsonyra húzhatják, de magasra nem. Minden jelvezetéknek kell, hogy legyen egy felhúzó ellenállása arra az esetre, ha egyetlen eszköz sem használja azt, akkor a jelszint magas állapotba kerüljön "magától".
Az ökölszabály szerint a felhúzóellenállások mindig 4.7k-ok, de ez nem minden esetben válik be. Az I²C egy meglehetősen robusztus protokoll, de jellemzően csak rövid vezetékekkel (2-3m) használható. Hosszabb vezetékek esetén az alkalmazott ellenállások értékét érdemes csökkenteni.
Jelszintek
Az I²C jelszintjei jellemzően 5V, vagy 3,3V, amik, ha a TTL logikai szintjeik még összeegyeztethetőek, lehetővé teszik, hogy különböző jelszintű eszközöket is közvetlenül egy I²C hálózatba illesszünk. Ha a jelszintkülönbségek túl nagynak bizonyulnának, a kritikus részek közé jelszintváltót kell beiktatni.
I²C forgalmazás
Normál, 7 bites címzésű telegramváltás
- Lépések
10 bites címzésű telegramváltás
- Lépések
Remove ads
Speciális funkciókra fenntartott címek
Ismétlődő indulási feltételek
Néha fontos, hogy egy master sorozatban egyszerre több üzenetet is cserélhessen, anélkül, hogy a buszon lévő többi master belezavarna ebbe a forgalmazásba. Ilyenkor a kell a master-nek az "ismétlődő indulási feltételek"-et alkalmaznia.
A megismételt indítás érdekében az SDA-nak magasnak kell lennie, míg az SCL alacsony. Ezután az SCL-nek magasba vált, majd az SDA újra alacsonyra kerül, miközben az SCL magas.
Remove ads
Fordítás
- Ez a szócikk részben vagy egészben az I²C című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Források
- ↑ Ob121.com: Vámos Sándor: I²C (magyar nyelven). ob121.com. [2019. február 20-i dátummal az eredetiből archiválva]. (Hozzáférés: 2018. október 23.)
- Official I2C specification (free) (angol nyelven) (PDF). NXP. [2013. május 11-i dátummal az eredetiből archiválva]. (Hozzáférés: 2019. február 19.)
- Detailed Introduction, Primer (angol nyelven)
- I²C Bus Technical Overview and Frequently Asked Questions (angol nyelven)
- Introduction to SPI and I2C protocols (angol nyelven). [2012. augusztus 28-i dátummal az eredetiből archiválva]. (Hozzáférés: 2019. február 19.)
- Using the I²C Bus with Linux (angol nyelven)
- OpenBSD iic(4) manual page (angol nyelven)
Remove ads
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads