Az I²C ( IIC , orosz ah-square-si vagy ah-tu-si , eng. Inter-Integrated Circuit ) egy soros aszimmetrikus busz az elektronikus eszközökön belüli integrált áramkörök közötti kommunikációhoz . Két kétirányú kommunikációs vonalat (SDA és SCL) használ, amelyek kis sebességű perifériás komponensek processzorokhoz és mikrokontrollerekhez való csatlakoztatására szolgálnak (például alaplapokon , beágyazott rendszereken , mobiltelefonokon ).
A Philips Semiconductors fejlesztette ki az 1980-as évek elején egyszerű 8 bites intercom buszként az épületvezérlő elektronikához. 100 kHz-es frekvenciára tervezték.
1992-ben szabványosították, az első verzióban egy 400 kbps-os nagysebességű módot ( Fast-mode , Fm ) adtak a szabványos 100 kbps -os módhoz ; a 10 bites címzésnek köszönhetően lehetővé válik több mint 1000 eszköz csatlakoztatása egy buszhoz, amelyek számát korlátozza a maximálisan megengedett buszkapacitás - 400 pF .
A 2.0-s verzió (1998) nagy sebességű, 3,4 Mbit/s ( Hs ) üzemmódot és alacsony energiaigényt vezet be. Kissé javítva a 2.1-es verzióban (2000).
A 3-as verzió (2007) hozzáadta az 1 Mbps-os módot ( Fast-mode plus , Fm+ ) és az eszközazonosító mechanizmust ( ID ).
A 4-es verzió (2012) bevezette az egyirányú 5 Mbps-os módot ( Ultra Fast-mode , UFm ) push-pull logikával, felhúzó ellenállások nélkül , és hozzáadásra került az előre beállított azonosítók táblázata.
Az 5-ös verzió (2012) javítja a hibákat.
A 6-os verzióban (2014) újraszámították azokat a grafikonokat, amelyek a busz kapacitásától és üzemi feszültségétől függően meghatározzák a felhúzó ellenállások értékét [1] .
Az I 2 C busz szinkron, és két vonalból áll: adat (SDA) és órajel (SCL). Van egy mester (mester) és rabszolgái (szolga). A csere kezdeményezője mindig a master, a csere két slave között lehetetlen. Összesen legfeljebb 127 eszköz lehet egy kétvezetékes buszon.
Az SCL vonalon az órákat a master generálja. Az SDA vonalat az átviteli iránytól függően a master vagy a slave vezérelheti. Az információcsere egysége egy egyedi buszfeltételek által keretezett csomag, amelyet start és stop feltételeknek neveznek. A master minden csomag elején küld egy bájtot, ahol jelzi a slave címét és a következő adatok továbbításának irányát. Az adatok továbbítása 8 bites szavakkal történik. Minden szó után egy nyugtázó bitet küld a fogadó oldal.
Az I²C két kétirányú vezetéket használ, amelyeket a tápfeszültségig húznak fel, és nyitott kollektoron vagy nyitott lefolyón keresztül vezérelnek - egy soros adatvonalat (SDA, eng. Serial DAta ) és egy soros órajelet ( SCL, eng. Serial CLock ). A szabványos feszültségek +5 V vagy +3,3 V, de más is megengedett.
A klasszikus címzés egy 7 bites címteret tartalmaz 16 fenntartott címmel. Ez azt jelenti, hogy akár 112 ingyenes cím is elérhető a fejlesztők számára, hogy perifériákat csatlakoztassanak egy buszhoz.
A fő működési mód 100 kbps; 10 kbps csökkentett sebességű módban. Az is fontos, hogy a szabvány lehetővé teszi az órajel felfüggesztését a lassú eszközökön.
A cserefolyamat azzal kezdődik, hogy a master START állapotot generál : amikor az SCL vonal HIGH, akkor az SDA vonal jelének HIGH-ról LOW-ra való átmenetét generálja. Ezt az átmenetet minden, a buszra csatlakoztatott eszköz a cserefolyamat kezdetének jeleként érzékeli. Az órakészítés mindig a mester feladata; minden master saját órajelet állít elő, amikor adatokat küld a buszon.
Amikor csomagokat továbbít az I²C buszon, minden master saját órajelet generál az SCL vonalon. A START feltétel kialakítása után a master az SCL vonal állapotát LOW állapotba csökkenti, és az üzenet első bájtjának legjelentősebb bitjét az SDA sorra állítja. Az üzenetben lévő bájtok száma nincs korlátozva. Az I²C busz specifikáció csak akkor engedélyezi a változtatásokat az SDA vonalon, ha az SCL vonal ALACSONY. Az adatok érvényesek, és csak az óra HIGH állapotában maradhatnak stabilak. Annak megerősítésére, hogy a szolga-vevő egy bájtot fogadott-e a master-adótól, egy speciális megerősítő bit kerül be az I²C buszcsere protokoll specifikációjába, amely 8 adatbit fogadása után kerül be az SDA-buszon.
A cserefolyamat azzal ér véget, hogy a master generálja a STOP állapotot - az SDA vonal állapotának átmenetét LOW állapotból HIGH állapotba, amikor az SCL vonal HIGH. A START és STOP állapotokat mindig a master generálja. A busz a START feltétel reteszelése után foglaltnak minősül. A busz a STOP feltétel rögzítése után egy ideig szabadnak tekinthető.
Így a 8 bites adat átvitele az adóról a vevőre egy további ciklussal (az SCL vonal 9. órajel impulzusának kialakulása) fejeződik be, amelyben a vevő az SDA vonalon alacsony jelszintet állít be. a bájt sikeres fogadásának jele.
Az adatátvitel során a nyugtázás kötelező, kivéve, ha az átvitelt a slave oldal fejezi be. A megfelelő szinkronizálási impulzust a master generálja. Az adó felengedi (HIGH-ra állítja) az SDA vonalat a nyugtázó óra időtartamára. A vevőnek stabil LOW állapotban kell tartania az SDA vonalat a nyugtázó óra HIGH állapotában.
Abban az esetben, ha a vevő slave nem tudja nyugtázni a címét (például amikor éppen valós idejű funkciót végez), az adatvonalat HIGH állapotban kell hagyni. A master ekkor STOP feltételt adhat ki az adatátvitel megszakításához. Ha egy mester-vevő részt vesz az átvitelben, akkor az átvitel végét jelentenie kell a slave-adónak az utolsó bájt nyugtázása nélkül. A szolga adónak el kell engednie az adatvonalat, hogy a master STOP feltételt bocsásson ki, vagy START feltételt ismételjen meg.
A szinkronizálás az SCL vonalhoz vezetékes ÉS kapcsolattal történik, ami azt jelenti, hogy a masternek nincs kizárólagos irányítása az SCL vonal LOW-ról HIGH-ra való átmenetére. Abban az esetben, ha a slave-nek további időre van szüksége a fogadott bit feldolgozásához, képes az SCL-vonalat alacsonyan tartani, amíg készen áll a következő bit fogadására. Így az SCL vonal LOW lesz a leghosszabb LOW órajel periódusban.
A rövidebb LOW periódusú eszközök egy ideig alvó állapotba kerülnek, amíg a hosszú időszak véget nem ér. Amikor az összes engedélyezett eszköz túljutott az LOW órajelen, az SCL vonal HIGH lesz. Minden eszköz MAGASAN fog működni az óráján. Az első eszköz, amely lejár ezen az időszakon, ismét LOW-ra vezeti az SCL-vonalat. Így az SCL órajelsor LOW periódusát az összes érintett eszköz leghosszabb órajele, a HIGH periódusát pedig az eszközök legrövidebb órajele határozza meg.
A szinkronizálási mechanizmust a vevők használhatják az adatátvitel vezérlésére bájt és bit szinten.
Bájt szinten, ha egy eszköz nagy sebességgel tud adatbájtokat fogadni, de bizonyos ideig tart a fogadott bájt tárolása vagy a következő fogadására való felkészülés, akkor a fogadás és nyugtázás után képes az SCL sort ALACSONYAN tartani. bájt, így az adó tétlen állapotba kerül.
Bitszinten a beépített I²C hardveráramkörök nélküli vagy korlátozott áramkörökkel rendelkező mikrovezérlők lelassíthatják az órajelet a LOW periódus meghosszabbításával. Ily módon bármely master adatátviteli sebessége a lassú eszköz sebességéhez igazodik.
Minden, a buszra csatlakoztatott eszköz programozottan egyedi címre címezhető. Az üzenet címzettjének kiválasztásához a mester egy egyedi címkomponenst használ a csomag formátumában. Azonos típusú eszközök használatakor az IC-k gyakran rendelkeznek kiegészítő címválasztóval, amely a címválasztó kiegészítő digitális bemeneteiként és analóg bemenetként is megvalósítható. Ebben az esetben a buszra kapcsolt eszközök címterében az azonos típusú készülékek címei elkülönülnek.
A normál mód 7 bites címzést használ.
Az I²C buszon a címzési eljárás az, hogy a START jel utáni első bájt határozza meg, hogy melyik slave-et címzi meg a master a csereciklushoz. A kivétel az "Általános hívás" cím, amely a buszon lévő összes eszközt megcímzi. Ha ezt a címet használják, elméletileg minden eszköznek nyugtázó jelet kell küldenie. Az „általános hívást” kezelni képes eszközök azonban a gyakorlatban ritkák.
Az első két bájt első hét bitje alkotja a slave címet. A nyolcadik, legkisebb jelentőségű bit határozza meg az adatátvitel irányát. A "nulla" azt jelenti, hogy a master információkat küld a kiválasztott slave-nek. Az "Egy" azt jelenti, hogy a master információt kap a slave-től.
A cím elküldése után a rendszer minden eszköze összehasonlítja a START jel utáni első hét bitet a címével. Ha van egyezés, az eszköz az iránybittől függően vevő-szolgaként vagy adó-slaveként választja ki magát.
A slave cím egy rögzített részből és egy programozható részből állhat. Gyakran előfordul, hogy több azonos típusú eszköz van a rendszerben (például memória IC-k, vagy LED - es jelzőmeghajtók ), ezért a cím programozható részének segítségével a lehető legtöbb ilyen eszköz csatlakoztatható. a buszhoz. A programozható bitek száma a címben a szabad chipek számától függ. Néha egyetlen kimenetet használnak a programozható címtartomány analóg beállításával [2] . Ebben az esetben az IC ezen a címtűjén lévő potenciáltól függően lehetőség van a meghajtó címterének eltolására úgy, hogy az azonos típusú IC-k ne ütközzenek egymással egy közös buszon.
Minden speciális IC, amely támogatja az I²C busz szabvány szerinti működést, fix címekkel rendelkezik, amelyek listáját a gyártó feltünteti a vezérlők leírásában.
A cím 11110XX bitkombinációja 10 bites címzésre van fenntartva.
A buszspecifikációból következik, hogy mind az egyszerű, mind a kombinált csereformátumok megengedettek, amikor a START állapottól a STOP állapotig terjedő intervallumban a master és a slave vevőként és adatadóként is működhet. Kombinált formátumok használhatók például a szekvenciális memória kezelésére.
Az adat első bájtja alatt egy memóriacímet lehet továbbítani, amely egy belső reteszbe van írva . A START jel és a slave címének megismétlése után az adatok a memóriából kerülnek kiadásra. A korábban elért cím automatikus növelésére vagy csökkentésére vonatkozó döntéseket az eszközspecifikus konstruktor hozza meg. Ezért mindenesetre a legjobb módja annak, hogy egy új (vagy korábban nem használt) IC használata előtt elkerülje az ellenőrizetlen helyzetet a buszon, ha gondosan tanulmányozza a termék adatlapját vagy a kézikönyvet.
Mindenesetre a buszspecifikáció szerint minden fejlesztés alatt álló eszköznek vissza kell állítania a buszlogikát START vagy újraSTART jel vételekor, és fel kell készülnie a cím fogadására.
Az I²C busz használatának fő problémái azonban éppen abból adódnak, hogy az I²C busszal "kezdő" fejlesztők nem veszik figyelembe azt a tényt, hogy a master (gyakran mikroprocesszor) nem rendelkezik kizárólagos jogokkal a buszjáratok..
Az I²C-t olyan eszközökben használják, amelyek egyszerű fejlesztést és alacsony gyártási költséget biztosítanak viszonylag jó sebesség mellett.
A lehetséges alkalmazások listája:
A képen:
(a) Erősen integrált TV
(b) DECT rádiótelefon bázisállomás
Minden elektronikus rendszer 3 különböző típusú csomópontot tartalmaz:
Az olcsó eszközökön az I²C-t gyakran Bit-banging technológiát használó szoftverek emulálják .
Az I²C alapján számítógép-perifériák csatlakoztatására szolgáló buszokat fejlesztettek ki ACCESS.bus , adatcsere buszokat számítógép és DDC monitor között, SMBus rendszerfunkció vezérlő buszokat és egyebeket. Ezekben a technológiákban lehetőség van különböző feszültségek, árfolyamok és külön megszakító vezetékek használatára .
Az Intel által 1995-ben javasolt SMBus az I²C egy részhalmaza, amely szigorúbb használatot határoz meg. Az SMBus egyik célja a megbízhatóság és az interoperabilitás javítása. Ennek megfelelően a modern I²C rendszerek tartalmaznak néhány SMBus házirendet és szabályt, amelyek néha támogatják az I²C-t és az SMBus-t is, és minimális újrakonfigurálást igényelnek akár paranccsal, akár tűvel.
Az IPMB busz , amely két I²C redundanciára épül, és az IPMI interfész alapja, az AdvancedTCA és MicroTCA szabványok rendkívül megbízható rendszereiben használatos .
A TWI (Two Wire Interface) vagy TWSI (Two Wire Serial Interface) lényegében ugyanaz az I²C busz, de licencelési okokból más nevet használ (az I²C szabadalmakat már törölték, 2006. október 1-jén az I²C protokoll használatáért járó jogdíjakat törölve. A levonások azonban megmaradnak, hogy kizárólagos slave címet rendeljenek hozzá az I²C buszon.)
Az I²C-kompatibilis protokoll az OmniVision Serial Camera Control Bus ( SCCB ) kamerabuszt használja.
Számítógépes buszok és interfészek | |
---|---|
Alapfogalmak | |
Processzorok | |
Belső | |
laptopok | |
Meghajtók | |
Periféria | |
Berendezés menedzsment | |
Egyetemes | |
Videó interfészek | |
Beágyazott rendszerek |
Mikrokontrollerek | ||||||||
---|---|---|---|---|---|---|---|---|
Építészet |
| |||||||
Gyártók |
| |||||||
Alkatrészek | ||||||||
Periféria | ||||||||
Interfészek | ||||||||
OS | ||||||||
Programozás |
|