Philips Semiconductors
Az I2C-bus és használata (pontos leírással) 1995-ös javított verzió 1.0 AZ I2C-BUS ELŐNYEI A TERVEZŐK ÉS A GYÁRTÓK SZÁMÁRA Az elektromos fogyasztókban, távközlési és ipari áram-körökben vannak olyan részegységek, melyek látszólag hasonlóak, de tervezésben merőben eltérnek. Például, majdnem minden rendszer tartalmaz: • Néhány inteligens vezérlést, ez általában egy egyszerű microcontroller chip • Általános célú áramkörök, mint pl. LCD meghajtók, távoli I/O portok, RAM, EEPROM, vagy adat konverterek • Alkalmazás-orientált áramkörök, mint pl. digitális hangolók és jelfeldolgozó áramkörök rádió és televízió rendszerek számára, vagy DTMF generátorok digitális rendszerű telefonok számára. A rendszertervezők és a berendezésgyártók kihasználva ezen előnyöket, valamint a hardware elemek és az áramkörök egyszerűségét, a PHILIPS kifejlesztett egy egyszerű kétirányú, kétvezetékes bus rendszeret a hatékony inter-IC control számára. Ezen bus áramkör neve Inter IC vagy I2C-bus. Napjainkban a Philips gyártmányú IC-k választéka több mint 150 CMOS és bipoláris I2C-bus -al kompatíbilis típust tartalmaz, melyek a korábban megemlített három főbb kategória funkcióit teljesen kielégítik. Minden I2C-bus -al kompatíbilis eszközök egyesítve vannak ún. on-chip inteface -ekbe, melyek engedélyezik az egymással való közvetlen kommunikációt más I2C-bus -okon keresztül. E tervezési koncepció számos illesztési broplémát old meg digitális vezérőáramkörök tervezésekor. Az I2C-bus néhány fontos jellemzője: • Csak két bus-vonal szükséges a működéséhez, egy soros adatvonal (SDA) és egy soros órajel (SCL) • Mindegyik csatlakoztatott eszköz programból címezhető egyetlen cím és a köztük fennáló egyszerű master/slave kapcsolat segítségével, a master képes üzemelni, mint adó vagy mint vevő • Ez egy valódi multi-master bus, mely tartalmaz ütközésdetektort és egy felügyelő szervet, amely megakadályozza az adatütközést, ha két vagy több master egyidejüleg akar adatforgalmat lebonyolítani • Soros, 8-bit –es, kétirányú adatforgalom sebessége normál üzemmódban 100 kbit/s, gyors üzemmódban 400 kbit/s • Az ON-CHIP szűrő megszűri az adatvonalon lévő zavarokat, megvédve ezzel az adatok integritását • Egyszerre több IC-t is csatlakoztathatunk ugyanazon bus rendszerhez. A csatlakoztatott IC-k számát a bus rendszer 400 pF -os kapacitása korlátozza.
1.1 Tervező számára előnyös jellemzők Az I2C-bus -al kompatíbilis IC -k segítségével az rendszeretervezés gyorsan, közvetlernül haladhat a funkcióblokk-diagrammtól a prototipusig. Most következik néhány az I2C-bus -al kompatíbilis integrált áramkör, melyek különösen fontosak a tervezők számára: • • • • •
A funkcionális blokkok a blokk-diagrammban megeggyeznek a valódi integrált áramkörökkel; Nem szükséges megtervezni a bus interface -t , mert az I2C-bus interface -t már tartalmazza a chip A belefoglalt címzés és adatátviteli protokol lehetővé teszi a teljesen software -es kezelést Ugyanazon IC tipusokat több különböző alkalmazásokban is használhatjuk A tervezési idő lecsökken a tervezés hétköznapivá egyszerüsödése miatt, mivel gyakran funkcionális blokkokkal reprezentáljuk az I2C-bus -al kompatíbilis integrált áramköröket • Integrált áramköröket adhatunk, ill vehetünk el a rendszerből anélkül, hogy az kihasson a többi egyéb áramkörre • A hibadiagnózis és a hibakeresés egyszerű; a zavarok azonnal felderíthetőek • A software fejlesztési idő jelentősen lecsökkenthető a software-modul könyvtárak segítségével. Ezen előnyökön kívül az I2C-bus -ban levő CMOS áramkörök széles tartományú kompatibilitása speciális jellemzőket nyújt, melyek különösen fontosak a hordozható berendezések és telepek számára. Mindegyikük rendelkezik: • Rendkívül alacsony áramfelvételel • Magas zajszíntek elleni immunitással • Széles üzemi feszültség tartománnyal • Széles üzemi hőmérséklet tartomá
1.ábra:kettő példa az I²C-busz alkalmazásra (a) nagy teljesítményű,magas integráltságú TV-készülék (b) DECT vezetékes telefon-bázisállomás
1.2 A gyártó számára előnyös jellemzők Az I2C-bus kompatíbilis integrált áramkörei nem csak a tervezőket segítik, hanem számos hasznos készülékkel látják el a gyártót is, mert: • Az egyszerű kétvezetékes soros I2C-bus minimalizálja az összeköttetéseket, nevezetesen az integrált áramköröknek kevesebb csatlakozója és PCB csatlakozója van; mindezek eredménye — kisebb és olcsóbb PCB-k • A teljesen integrált I2C-bus protokol kiiktatja a szükséges címdekódereket és az egyéb “ragadós” logikai áramköröket • Az I2C-bus multi-master képessége lehetővé teszi a gyors tesztelést és a végfelhasználó műszerek külső csatlakoztatását • A rendelkezésre álló I2C-bus –al kompatíbilis IC-ben SO (small outline) VSO (very small outline) valmint DIL csomagok további csökkentése szükséges. Ezen néhány előny mellett, ráadásul az I2C-bus -al kompatíbilis IC-k növelik a tervezői rendszer flexibilitását az egyszerű berendezések konstrukciójával, melyek változatosak, könnyen változtathatóak, és időtállóak. Ily módon egy teljes berendezéscsalád hozható létre az alapmodell körül. Így könnyen lehet újításokat és továbbfejlesztett tulajdonságú modelleket (pl. XMS, távvezérlő stb.) bevezetni a megfelelő IC-k bus-ra csatlakoztatásával. Ha nagyobb csak olvasható memória szükséges, akkor is elég egy mikrokontrollert választani nagyobb ROM-mal. Mivel az új IC-k feleslegessé teszik a régieket, könnyű új tulajdonságokkal ellátni a készülékeket vagy fejleszteni a hatékonyságukat, egyszerűen az elavult IC-k kihagyásával és az újak beépítésével.
1.3 Az ACCESS.bus Újabb vonzó tulajdonsága az I2C-bus -nak a tervezők és gyártók számára, hogy egyszerű 2 vezetékes természete és szoftveres címezhetősége ideális alappá teszi az ACCESS.bus számára (2. ábra). Ez egy olcsó megoldása az RS-232C interface-nek, perifériák és a számítógép egyszerű 4 eres csatlakoztatásához. (lásd 19.0-s rész).
2.ábra:az ACCESS.busz
2.0 Bevezetés az I2C busz leírásába A 8 bites digitális vezérlésű alkalmazásokhoz és ezt megkövetelő mikrokontrollerekhez, biztos kivitelezési kritériumok megállapíthatók: • A teljes rendszer gyakran áll egy kisebb mikrokontrollerből és más külső eszközökből, mint a memória és az I/O bővítők. • A különböző eszközök rendszerre csatlakoztatásának költség legyen minimalizált. • A vezérlési funkciókat adó rendszer ne követeljen nagy sebességű adatátvitelt. • A teljes hatékonyság függ az eszköz választáson és az összecsatolt buszstrukturák természetétől Azért, hogy előállítsuk a rendszert, ami kielégíti a követelményeket, egy soros buszrendszerre van szükségünk. Ámbár a soros buszok nem érik el a párhuzamos buszok képességeit, kevesebb villamos összekötést és IC csatlakozólábat igényelnek. Azonban a busz nem csupán huzalozás, magába foglal minden formátumot és eljárást a rendszerrel való kommunikáláshoz. Az eszközök egymással kommunikálásához a soros buszon kell néhány protokoll, amelyek elkerülnek minden lehetőséget a zűrzavarra, adat vesztésre és információ elakadásra. Gyors eszközöknek képesnek kell lennie kommunikálni a lassú eszközökkel. A rendszer nem szabad, hogy függjön a hozzá csatolt eszközöktől, különben a kihasználás lehetetlen lenne. Az eljárának azt is ki kell gondolnia, melyik eszköz vana busz vezérlése alatt és mikor. És ha különböző órajelsebességű eszközök vannak csatlakoztatva a buszra az órajelkibocsátást definiálni kell. Ezeket a követelményeket magába foglalja az I²C busz leírás.
3.0 Az I²C busz fogalma Az I²C busz támogat néhány IC gyártási folymatot (CMOS, NMOS, bipoláris). Két vezetékes soros adat és soros órajelet az eszközök és a busz között. Egyes eszközök felismerhetők különleges címmel — (vagy egy mikrokontroller, LCD driver, billentyűzet, interfész memória) — vevőként és adóként is tud működni az eszköz funkciójától függően. Nyilvánvalóan az LCD meghajtó csak vevő míg egy IC memória fogadhat és küldhet is adatot. Azontúl hogy küldők és vevők is lehetnek az eszközök figyelembevehetők mint Master és Slave mikor az adatátvitelt elvégzik. A Master az az eszköz, amelyek elkezdi az adatátvitelt a buszon és előállítja az órajelet amely az átvitelt engedélyezi. Ebben az időben címzett eszköz csak Slave-ként vehető figyelembe. I²C busz egy több masteres busz. Ez azt jelenti, hogy több mint egy eszközt képes vezérelni a busz a hozzá kapcsolódik. Minthogy a masterek többnyire mikorokontrollerek vegyük figyelembe az I²C buszhoz csatlakozó 2 MC közti adatátvitelt. Ez a jellemvonása az I²C buszon található M-S vagy felhaszáló-kiszolgáló kapcsolatnak. Meg kell jegyeznünk, hogy ez a kapcsolat nem állandó, csak az abban az időben fennálló adatátvitel írányától függ. Az adatátvitel következőképpen hajtódik végre: 1. tegyük fel, hogy az A MC akar infót küldeni a B MC-nek. - A MC (Master) címzi a B MC-t (Slave) - A MC (master transmitter) adatot küld B MC-nek (Slave receiver) - Az A MC befejezi az átvitelt 2. Ha A MC akar infót B MC-től: - A MC (Master) megcímzi B MC-t (Slave) - A MC (Master receiver) adatot fogad B MC-től - Az A MC befejezi az átvitelt Ebben az esetben a Master (A MC) generálja az időzítést és befejezi az átvitelt az I²C buszhoz több mint egy MC csatlakoztatása lehetősége azt jelenti, hogy több, mint egy Master tudja megpróbálni az átvitel elkezdést egy időben. Hogy elkerüljük a káoszt, amely ilyen eseményekből származhat egy eljárást kell kiválasztani. Ez a procedura az összes I²C interfecek I²C buszokhoz való huzalozott ÉS kapcsolatán alakul. Ha kettő vagy több Master próbál infót küldeni a buszra, akkor az első előállít egy 1-es jelet és a többi előállít egy 0 jelet, ami el fogja veszíteni a lehetőségét, hogy Master legyen. Az órajel az arbitráció a Master által előállított órajelek szinkronizált kombinációja. Felhasználva a huzalozott ÉS kapcsolatot az SCL vonalhoz. (Az arbitrációra vonatkozó további részletes információkért nézd meg a 7. fejezetet) Az órajelek előállítása az I²C buszon a Master eszközök elérhetőségét jelenti, minden egyes Master generálja a saját órajelét, amikor adatot küld a buszra. A Mastertől érkező buszórajel csak akkor változhat amikor az órajelet, órajelvezetéket lehuzó lassú slave eszköz megjelenik vagy egy másik eszköz jelenik meg amikor újra ismétlődik az arbitráció.
4.0 Általános jellemzők Az SDA és SCL közvetlen vonalon csatlakoznak a pozitív feszültség lábra felhúzóellenálláson keresztül. Ha a busz szabad, mindkét vonal magas állapotban van. Az eszközök buszhoz csatlakozó kimeneteinek nyitott drainűnek vagy nyitott kollektorúnak kell lennie, hogy létrehozza a huzalozott ÉS logikát. Az adatáramlás felső határa a standard üzemmódban 100 Kbit/s vagy 400 Kbit/s a gyors üzemmódban. Az interfész csatlakozások száma kizárólag a busz kapacitáshatárától függ (400pF).
3.ábra:példa kettő mikrokontrollert használó I²C-busz felépítésre
3.ábra:az I²C-buszos eszközök kapcsolódása az I²C-buszra
5.ábra:bit-átvitel I²C-buszon
6.ábra:START és STOP körülmények
5.0 BIT ÁTVITEL A különböző technológiai eszközök választékának köszönhetően (CMOS,NMOS,bipoláris), amely kapcsolható az I2 C bus-hoz, a logikai ‘0’(low) és az ‘1’ high szintjei nem rögzítettek, és függ a Vdd összekapcsolt szintjéről.(lásd a 15.0 szekciót az elektronikus specifikációkért). Egy órajel generálódik minden egyes átvitt adatbithez.
5.1 ADAT ÉRVÉNYESSÉG Az adatnak az SDA-vonalon állandónak kell lennie az óra HIGH vagy LOW állapota csak akkor változhat, amikor az órajel az SCL-vonalon LOW (lásd az 5-ös ábrát).
5.2 START ÉS STOP ÁLLAPOT Az I2 C bus folyamat közben, egyedülálló helyzetek merülhetnek fel, amelyeket START vagy STOP állapotokkal határoznak meg (lásd a 6-os ábrát). A HIGH-tól a LOW-ig átmenet az SDA vonalon mialatt az SCL HIGH, egy egyedülálló eset. ez a helyzet jelzi a START állapotot. A LOW-tól a HIGH-ig átmenet az SDA vonalon, mialatt az SCL HIGH, meghatározza a STOP állapotot. A START és STOP helyzetet mindig a mester generálja. A bus foglaltnak tekinthető a START állapot után. A bus ismét szabadnak tekinthető egy bizonyos idő után a STOP állapot után. Ez a bus mentes helyzet a 15.0 szekcióban van részletezve. Észrevenni a START és STOP állapotot a bus-hoz kapcsolt készülékekkel könnyű, ha azok egyesülnek a szükséges interface hardvare-rel. A mikrocontroller ilyen adatvonalat a szolgának high-on kell hagynia. Azután a mester generálhatja a STOP állapotot, hogy megszüntesse az átvitelt. Ha a szolga-vevö visszajelzi a szolga címet de egy kicsit az átvitelben nem kap több adatbytot a mesternek ismét meg kell szakítania az átvitelt. Ezt a szolga jelzi úgy ,hogy nem generál visszajelzést az elsö byte-on, hogy kövesse. A szolga, az adatvonalat high-on hagyja és a mester generálja a STOP állapotot. Ha a mester vevőt bevonják az átvitelbe, jeleznie kell az adat végét a szolgálatvivőnek, úgy , hogy nem generál visszajelzést az utolsó bite-on, amely a szolga órajel vége. A szolga átvivőnek oldania kell az adatvonalat, hogy engedje a mestert generálni a STOP-ot, vagy ismételni a START állapotot.
6.0 ADATÁTVITEL 6.1 BYTE FORMA Minden byte, amit az SDA vonalra rakunk 8 bit hosszúnak kell lennie . A byte-ok száma, amik átvitelenként átvihetők, korlátlanok. Minden byte-ot egy visszajelző bitnek kell követnie. Az adatot először a legjelentősebb bit-nek visszük át. (MSB- es ábra). Amennyiben a vevő nem kap egy másik teljes adat byte-ot, amíg elő nem adott más funkciókat is, például szolgálni egy közbenső megszakítást, SCL LOW tarthatja az óravonalat azért, hogy kényszerítse az átvivőt váróstátuszba. Azután az adatátvitel folytatódik, amikor a vevő készen áll egy másik adatbytera és feloldja az SCL- óravonalat. Néhány esetben megengedett egy másik formát használni az I2C formából (például a CBUS kompatíbilis eszközök részére). Egy üzenet, amely egy ilyen címmel kezdődik, azt meg lehet szűntetni a stop-állapot generálásával, még a byte átvitele alatt is. Ebben az esetben visszajelzés nem generálódik ( ld. a 9,1,3,-os szekciót).
6,2, VISSZAJELZÉS Az adatátvitel visszajelzése kötelező. A visszajelző-kapcsolatos órajelét a mester generálja. Az átvivő oldja az SDA-vonalat (HIGH) a visszajelző órajelzés alatt. A vevőnek le kell húznia az SDA-vonalat a visszajelző órajelzés alatt, azért hogy a LOW stabil maradjon. Ennek az órajelnek a HIGH periódusa alatt (8-as ábra). Természetesen a felállításokat és a tartási periódusokat (részletezve a 15,0 szekcióban) szintén figyelembe kell venni. Rendszerint a vevő, amely meg van címezve, köteles, hogy visszajelzést generáljon minden egyes kapott byte után, kivéve ha az üzenet CBUS címmel kezdődik (ld. a 9,1,3, szekciót). Amikor a szolga-vevő nem jelzi vissza a szolga címet (pl. amikor nem lehetséges megkapni, mert éppen a valós-idő funkció játszódik), az interface nélkül kell kipróbálni az SDA vonalat legalább egy órajel alatt, azért hogy érzékelje az átmenetet.
7.ábra:adatátvitel I²C-buszon
8.ábra:nyugtázás I²C-buszon
9.ábra:óraszinkronizáció a döntési folyamat alatt
10.ábra:két master döntési folyamata
7.0 Arbitráció és órajelelőállítás 7.1 Szinkronicáió Minden Masternek generálnia kell az SCL vezetéken a saját órajelét, hogy elküldje az üzenetét az I²C buszon. Az adatok az órajel magas periódusainál érvényesek. Azért van szükség egy definiált órajelre, hogy lezajlodjon a bitről-bitre való arbitrációs procedura. Az órajel szinkronizáció az I²C busz interfacek huzalozott ÉS kapcsolat felhasználásával hajtódik végre az SCL vezetéken. Ez azt jelenti, hogy az SCL vezetéken egy Magas-Alacsony átmenet elő fogja idézni az eszközök érdekeltségét az alacsony periódusuk kiszámolásának elkezdésében, és ha egyszer egy eszköz órajele alacsonyra váltott, akkor az SCL vezetéket abban az állapotban tartja, amig az órajel eléri a magas állapotot (9-es ábra). Az SCL vezetéket az eszköz ennek következtében alacsonyan fogja tartani a leghosszabb alacsony periodussal. A rövidebb alacsony periódusú eszközök ezidő alatt belép egy magas várakozási állapotba. Amikor minden eszköz végszámolta a saját alacsony periódusát, az órajelvezeték el lesz eresztve és visszamegy magasba. És aztán nem, lesz különbség az eszközök órajele és az SCL vezeték állapota között, és minden eszköz elkezdi számolni a saját magas periódusát. Az első eszköz, amelyik befejezte a magas periódusát, alacsonyra huzza az SCL vezetéket. Így egy szinkronizált SCL órajel generálodik, amelynek az alacsony periódusát a lehosszabb alacsony periódusú órajellel rendelkező eszköz határozza meg, és a magas periódusát az egyik legrövidebb magas órajelperiodussú eszköz határozza meg.
7.2 Arbitráció Csak akkor indíthat egy master átvitelt, ha a busz szabad. Kettő vagy több master generálhat egy START körülményt a START feltételek minimális tartási idején belül (tHD;STA), amelyek egy definiált START körülményt eredményeznek a buszon. Az arbitráció helyet foglal az SDA vezetéken, amig az SCL vezeték magas szinten van, olyanféleképpen,hogy a master, amelyik közöl egy magas jelet, amig egy másik master átvisz egy alacsony jelet, ki akarja kapcsolni az adatkimeneti fokozatát, mert a busz jelszintje nem felel meg a saját jelszintjének.
Az arbitráció folytatodhat több biten is. Az első fokozat a cimbitek összehasonlítása (a címzési információk a 9.0 és a 13.0 bekezdésekben vannak). Ha minden egyes master ugyanazt az eszközt probálja meg címezni, az arbitráció folytatódik az adatok egyeztetésével. Mivel a cím és adat információk vannak az I²C buszon az arbitrációhoz felhasználva, nincs információvesztés ezen folyamat alatt. A master, amelyik elveszti az arbitrációt, generálhat órajel pulzusokat a byte végéig, amelyben elvesztette az arbitrációt. Ha egy master magában foglal slave funkciókat is és elveszti az arbitrációt a cimzési fázisban, előfordulhat, hogy a győztes master megpróbálja megcímezni. Emiatt a vesztes masternek ezután azonnal a slave-receiver módjába kell kapcsolnia. A 10-es ábra mutatja az arbitrációs eljárást két masterre. Természetesen több is belebonyolodhat (a buszra kötött masterek számától függően). Abban a pillanatban, amikor a DATA 1-et generáló master belső adatának jelszintje és az SDA vezeték aktuális jelszinje között különbség van, ez az adatkimenet kikapcsol, ami azt jelenti, hogy magas jelszint lesz kapcsolva a buszra. Ez nem befolyásolja a győztes master által megkezdett adatátvitelt. Miután az I²C busz vezérlése kizárólag a versenyző masterek által küldött címtől és adattól van eldöntve, nincs központi master, vagy bármilyen prioritási sorrend sem a buszon. Különleges figyelemmel kell lennünk, ha - egy soros átvitel alatt - az adott pillanatban az arbitrációs eljárás még folyamatban, amikor egy ismételt START körülmény vagy egy STOP körülmény lett elküldve az I²C buszon. Ha lehetséges egy ilyen szituáció bekövetkezése, a mastereknek involved küldeniük kell ezt az ismételt START feltételt vagy STOP feltételt a formátum keretben. In other words, az arbitráció nem megengedett a következők között: - egy ismételt START feltétel és egy adatbit - egy STOP feltétel és egy adatbit - egy ismételt START feltétel és egy STOP feltétel.
7.3 Az órajelszinkronizáció felhasználása kézfogásként (hansdshake) Továbbá az arbitrációs eljárás folyamán való használaton kívül az órajelszinkroniációs mechanizmus felhasználható a vevők engedélyezésére, hogy megbírkozzon a gyors adatátvitellel mind byte, mind bit szinten. Byte szinten egy eszköz képes lehet a byte-ok gyors fogadására, de több időre van szüksége, hogy letároljon egy vett byte-ot, vagy előkészítsen egy másik byte-ot az elküldésre. Majd a fogadás és egy nyugtázó byte után a slave-ek az SCL vezetéket alacsonyan tarthatják, hogy a master-t várakozási állapotba kényszerítsék, amig a slave készen nem lesz a következő byte átvitelére egy handshake tipusú eljárásban. Bit szinten egy eszköz mint pl. egy mikrokontroller I²C nélkül, vagy a chipbe épített korlátozott hardware I²C interfésszel minden egyes órajel alacsony szintjének meghosszabításával lelasíthatja a buszórajelet. Minden master sebessége ezáltal ennek az eszköznek a belső sebességéhez igazított.
8.0 Formák 7 bites címekkel Az adatátvitelek a 11. ábrán mutatott formát követik. A Start feltétel után (S) egy slave cím van. Ezt a 7 bitet egy nyolcadik követi, amely egy adatírány jelző bit (R/W) — a nulla jelenti az adatküldést (WRITE — írás), és az egy az adatkérést (READ — olvasás). Az adatátvitelt mindig a master generálta STOP feltétel (P) szakítja meg. Azonban ha egy master még mindig kommunikálni kíván a buszon, generálhat egy ismételt START feltételt (Sr) és megcímezhet egy másik slave-et anélkül, hogy először generálna egy STOP feltételt. Az írási/olvasási formáknak aztán különböző kombinációi lehetségesek hasonló átvitelekben. A lehetséges adatátviteli formák: — A küldő master küld a fogadó slave-nek. Az átviteli írány nem változik (12. ábra) — A Master olvassa a slave-et rögtön az első byte után (13. ábra) Az első visszajelzés pillanatában a küldő master fogadó masterré válik és a fogadó slave küldővé válik. Ezt a választ még a slave generálja. A STOP feltételt a master generálja. — Kombinált forma (14. ábra). Az átvitelben egy irányváltás folyamán a START feltétel és a slave címek ismételtek, de fordított R/W bittel. Ha egy fogadó master egy ismételt START feltételt küld, előzőleg nem küld választ.
14.ábra:komplett adatátvitel
12.ábra:a master-adó címzi a slave-vevőt 7-bites címmel.Az átvitel iránya nem változik.
13.ábra:a master olvassa a slave-et rögtön az első byte után
14.ábra:kombinált forma
Megjegyzések: 1. Kombinált formákat is lehet használni, peéldául soros memória vezérlésére. Az első adat byte küldésekor a belső memóriát írjuk. A START állapot és a slave-cím megismétlése után lehet küldeni az adatokat. 2. Minden döntés a memóriarekesz címének automatikus növelésére vagy csökkentésére az eszköz tervezőjére van bízva. 3. Minden byte-ot egy nyugtázó bit követ, mintahogy az jelezve van a folyamat blokkban. 4. Az I²C busz kompatíbilis eszközöknek resetelni kell a busz-logikájukat START vagy ismételt-START állapot nyugtázásakor,elébe vágva a slave-cím küldésének.
9.0. 7 bites címzés (Lásd: 13.0-s bekezdés: 10 bites címzés) Az I²C busz címzési eljárása olyan, hogy a START állapot utáni első byte meghatározza, melyik ’slave’-et választja ki a ’master’. Kivétel ezalól az ’általános hívás’ cím, ami az összes eszközt címzi. Amikor ezt a címet használjuk, elméletben minden eszköznek válaszolni kell egy nyugtázással. Bár az eszközöket be lehet úgy állítani, hogy figyelmen kívül hagyják ezt a címet. Az ’általános hívás’ 2. byte-ja definiálja az elvégzendő műveletet. Ez az eljárás részletesebben a 9.1.1-es bekezdésben van tárgyalva.
9.1. Az első byte bitjeinek definíciója Az első byte első 7 bitje alkotja a ’slave’ címét. A 8. bit a legkisebb helyiértékű bit. Ez meghatározza az üzenet irányát: 0 esetén a ’master’ küld információt a kiválasztott ’slave’-nek (ír), 1 esetén a ’master’ információt fogad (olvas) a ’slave’-től.
15.ábra:az első byte a START-eljárás után.
Amikor egy címet elküldünk, a rendszer minden egyes eszköze összehasonlítja a START állapot utáni első 7 bitet a saját címével. Ha egyezik, az eszköz megcímzettnek tekinti magát (a ’master’ által), mint ’slave’-vevő vagy ’slave’-adó, függően a Read/Write bittől. Egy ’slave’ cím állhat egy fix és egy programozható részből. Mivel valószínű, hogy egy rendszerben számos ugyanolyan eszköz lesz, a ’slave’ cím programozható része engedélyezi az I²C buszra köthető ugyanolyan eszközök maximális számát. Egy eszköz címében a programozható bitek száma függ az elérhető tűk számától. Például, ha egy eszköznek 4 fix és 3 programozható címbitje van, akkor 8 db ugyanolyan eszköz köthető ugyanarra a buszra. Az I²C busz bizottság koordinálja az I²C címek kiosztását. További információ elérhető a hátsó borítón listázott Philips képviseletektől. A 8 bites címek 2 csoportja fenn van tartva a 2. táblában leírt célokra. A ’slave’ cím 1111XXX-es kombinációja a 10-bites címzés számára van fenntartva.
Megjegyzések: 1. Egy eszköznek sincs megengedve, hogy a START byte vételekor nyugtázzon. 2. A CBUS cím fenn van tartva a CBUS kompatibilis és I²C busz kompatibilis eszközök azonos rendszerben való együttes használatának engedélyezésére. Az I²C busz kompatíbilis eszközöknek nincs megengedve, hogy válaszoljanak erre a címre. 3. Az a cím, amely az eltérő busz formátum számára van fenntartva, engedélyezi az I²C és az egyéb protokollok együttes használatát. Azon I²C busz kompatíbilis eszközöknek, amelyek működnek azzokkal a formátumokkal és protokollokkal , engedélyezve van, hogy válaszoljanak erre a címre. 9.1.1. ’Általános hívás’ cím Az ’általános hívás’ cím az összes I²C buszra kötött eszközt címzi. Bár ha egy eszköznek nincs szüksége egyetlen adatra sem az ’általános hívás’ struktúrából, figyelmen kívül hagyhatja ezt a címet úgy, hogy nem nyugtáz. Ha egy ezköznek szüksége van adatokra az ’általános hívás’ címből, akkor nyugtáz, és ’slave’-vevőként viselkedik. A 2. és az azt követő byte-okat nyugtázza az összes ’slave’-vevő ami képes kezelni ezt az adatot. Anak a ’slave’-nek, amely nem tudja feldolgozni e byte-ok valamelyikét, figyelmen kívül kell hagynia úgy, hogy nem nyugtáz. A jelentése az ’általános hívás’ címnek mindig a 2. byte-ban van specifikálva. 2 esetet kell figyelembe venni: - amikor a legkisebb helyiértékű bit, a B ’0’ - amikor a legkisebb helyiértékű bit, a B ’1’ Amikor a B bit ’0’, a 2. Byte definíciója: - 00000110 (H06) Reset és slave cím programozható részének hardveres írása. E 2 byte-os szekvencia vételekor minden eszköz, ami úgy lett tervezve, hogy válaszoljon az ’általános hívás’ címre, resetelni fog és beviszi a saját címének programozható részét. Elővigyázatosnak kell lenni, hogy biztosítsuk, hogy az eszköz nem húzza le az SDA vagy SCL vonalat, miután feszültséget kap, mivelhogy ezek az alacsony szintek blokkolják a buszt. - 00000100 (H24) Hardveres írás a ’slave’-cím programozható részébe. Minden eszköz, amely a programozható részét hardveresen definiálja (és amelyik válaszol az általános hívás címre), csatlakoztatni fogja ezt a programozható részt a 2 byte-os szekvencia vételekor. - 00000000 (H00) E kód használata 2. byte-ként nincs megengedve. A programozási eljárás szekvenciái az adott eszköz adatlapján vannak publikálva. A maradék többi kód nincs rögzítve, és az eszközöknek figyelmen kívül kell azokat hagyni.
Amikor a B bit ‘1’: a második byte sorozat általános hardware hívás. Az eszközök sorozata továbbít a hardware master eszköznek, olyan mint a billentyűzet scanner, amelyet nem tud továbbítani a programozott szolga címre. Mert a hardware master nem tud fejlődni mely az üzenetet átküldi, egyedül tud általános hardware hivást és saját címet létrehozni.(17. ábra) A hetedik megmaradó bit a második byte kapcsolata a hardware master címmel. A felismert címek az intelligens eszköz (lásd mikrokontroller) a buszon keresztül tart kapcsolatot amely információt szolgáltat a hardware master számára. Ha hardware master szintén működik, mint szolga akkor a szolga cím ugyanaz mint a hardware master. Néhány rendszer kétféle hardware master átadót használ, ez a szolga-vevő mód utána rendszer reset. Az eljárásnál a rendszer konfigurálja a mestert, felhívja a hardware master-átadót ( mely most szolga-vevő mód) amely címre adatot kell küldeni (18. ábra). Utána a programozott eljárás a hardware master-nél marad a hardware master-átadó mód.
16.ábra:általános hívócím forma
17.ábra:adat áthelyezés hardware-es master-adóról
18.ábra: Data transfer by a hardware-transmitter capable of dumping data directly to slave devices (a) Configuring master sends dump address to hardware master (b) Hardware master dumps data to selected slave
9.1.2. START byte A mikrokontrollerek az I²C-bus-val két vezetéken tartják a kapcsolatot. A mikrokontroller a kész chip hardware I²C-busz interface-en keresztül lehet programozni, bármilyen megszakítás kérés a buszon keresztül történik. Amikor az eszköz nem talál ilyen interface-t, akkor buszon keresztül kapja a monitor szoftvert. Nyilvánvaló több idő a mikrokontroller monitor, vagy kap a busz, kevesebb időt tölt szállítással kifelé ez a szánt működése. Ennek következtében a sebesség külömbség között a gyors hardware eszközök és a viszonylag lassú mikrokontroller amely megbizható szoftvert kap. Ez állapotban, az adat átvitel szemben a Start folyamat elsőbbséget élvez amely sokkal hosszabb a normálnál (19, ábra). A Start folyamat van: - A START állapot (S) - A START byte (00000001) - Elismert óra inpulzus (ACK) - Ismételt START állapot (Sr) Azután a START állapot S továbbít a mesternek amelyik követeli a busz hozzáférhetőségét, a START byte (00000001) átad. Másik mikrokontroller ennek következtében próbál az SDA az útvonalnál az alacsony mintavétel szint amíg egynek a hetedik nulla a START byte felfedez. Azután kinyomozza az alacsony szint az SDA útvonalon a mikrokontroller kapcsoló magas mintavétel szint megállapít visszatér a START állapot Sr amely akkor szinkronban van. A hardware vevőkészülék reset után átveszi ismét a START állapotot az Sr és ennek következtében nem vesz tudomást a START byte-ról. Egy elismert-összekapcsolt óra inpulzust utólag generálja a START byte. Ez azt jelenti hogy alkalmazkodik a byte-hoz, irányított alakját használja a buszon. Nem megengedet eszközt is elismeri a START byte.
9.1.3 CBUS összeegyeztethetősége CBUS vevőkészüléke kapcsolata az I²C-busszal. Bármennyire harmadik buszvonalat hívnak DLEN-nek kapcsolatot tart és az elismert bitet mellőzi. Normális I²C-buszon a továbbítások következtében 8 bit a byte; CBUS összeegyeztethető eszközök kölönbözö alakja. A kevert busz strukturájában az I²C-bus eszközök nem reagálnak a CBUS üzenetére. Következtet a speciális CBUS cím (0000001X) amely nem válaszol, feltartja a kompatíbilis a I²C-buseszköz. Utána továbítás a CBUS címre, a DLEN vonal aktív lesz és a CBUS-alakot továbbítva (20. ábra) elküldi. Utána a STOP feltétel az összes eszköz újra kész adatot tud fogadni. Mester-átadó küldi a CBUS alakot utána küldi a CBUS címre. A továbbítás befejeződik a STOP feltétel, elismeri az összes eszköz. Megjegyzés: Ha a CBUS alakja nem ismert, és fejlesztés alatt a CBUS kompatíbilis eszközt nem tudjuk megjósolni az elgondolást engedélyezi alkalmassá teszi a hold idő egyéni követelményt használ az eszköz.
19.ábra:START-byte eljárás
20.ábra:adat formátum továbbítás CBUS adóval / vevővel
10.0 Az I²C eszköz elektronikus karakterisztikája Az I²C-busz eszköz I/O-iaira vonatkozó elektromos előírások és hozzájuk kapcsolódó buszvonalak karakterisztikája a 3. és 4. táblázatban van megadva a 15.0. fejezetben. Az 1.5 V-on és 3 V-on rögzített bemeneti szintű I²C-busz eszközöknek megvan a saját megfelelô feszültségforrásuk. A hirtelen-megállító ellenállásokat 5 V+- 10% feszültségre kell csatlakoztatni (21. ábra). Az olyan I²C-busz eszközöknek, amelyeknek a bemeneti szintjei a V(DD1)-hez vannak kapcsolva kell lennie egy általános ellátó vonalának, amelyhez a hirtelen-megállító ellenállás szintén csatlakoztatva van (22. ábra). Amikor a rögzített bemeneti szintekkel rendelkezô eszközöket keverjük a V(DD1)-re csatlakoztatott bemeneti szintekkel rendelkezô szerkezetekkel, akkor az utóbbi szerkezeteket csatlakoztatni kell egy 5 V+-10% általános ellátó vonalhoz és hozzá kell kapcsolni hirtelen-megállító ellenállásokat amelyek az SDA és SCL tűihez vannak kapcsolva amint a 23. ábra mutatja. A bemeneti szinteket a következô módon definiáljuk : - Az alacsony szinten a zajszint 0,1 V(DD) - A magas szinten a zajszint 0,2 V(DD) - Amint a 24. ábra mutatja, az ellenállássorozatokat (az R(s) pl. 300 Ohm) arra lehet használni, hogy megvédje az SDA és SCL vonalakat a nagy feszültségű tűimpulzusoktól (amelyet például TV képcsôn létrejövô felvillanás okozhat).
21.ábra:állandó bemeneti szintű eszközök kapcsolódása az I²C-boszhoz
22.ábra:széles tápfeszültség-tartományú eszközök kapcsolódása az I²C-buszhoz
23.ábra:Vdd-hez (táp Vdd1) kapcsolódó bemeneti szintű eszközök keverve állandó bemeneti szintű eszközökkel (táp Vdd2,3),ésezek kapcsolódása az I²C-buszhoz.
24.ábra:soros ellenállások ( Rs ) a magas feszültség-tüskék elleni védelemért
10.1 / Az Rp és Rs ellenállások max.és min.értékei: Standard I²C-buszoknál a 24-es ábrán mutatott Rp és Rs ellenállások értékei a következő paraméterektől függnek: -tápfeszültség -busz kapacitás –hozzákapcsolt eszközök száma (bemenő áram+szivárgó áram) A feszültségforrás behatárolja az Rp ellenállás min. értékét az előirt 3mA-es áramra 0.4V esetén. A kívánt Vdd zajszint 0 vagy 1 estén alacsony szint,és ez,az Rs max.értékét limitálja. Rsmax és Rp kapcsolata 26-ábrán látható. A busz kapacitása a vezeték,a kapcsolatok és a lábak nak a teljes kapacitása. Ez a kapacitás limitálja az Rp max. értékét egy előírt időre. 27-es ábra mutatja az Rpmax és a buszkapacitás kapcsolatát. Minden egyes I/O kapcsolat max.bemenő áramának van egy előírt 10µA-es max.értéke. A 0.3V-os kívánt zajhatár miatt a bemenő áram limitálja az Rp max. értékét. Ez a határ a Vdd-től függ. A teljes magas szintű bemenő áram és az Rpmax kapcsolatát a 28-as ábra mutatja.
25.ábra
26.ábra
27.ábra
28.ábra
11.0. Kiegészítés az I²C-bus elôírásaihoz Az I²C-bus a maximum 100 kbit/sec-os adatátvitellel és a 7 bites címzéssel több mint 10 éve létezik változatlan elôírásokkal. Ez a koncepció világszerte elfogadott mint alapvetô szabvány és a kompatibilis IC-vel rendelkezô I²C-buszok sok különbözô fajtája hozzáférhetô a Philpisnél és más forgalmazóknál. Az I²C-bus előírásai most a következô két tulajdonsággal bővültek : - Egy gyors-mód amely megengedi a négyszeres sebességnövekedést 0-tól 400 kbit/s-ig. - A 10 bites címzés, amely megenged további 1024 címet. Két oka van az I²C bus elôírás bôvítésének : - Az új felhasználásokhoz szükség lesz nagyobb mennyiségű soros adatot továbbítani és ezért követel 100 kbit/s-nél nagyobb sebességet. A fejlesztett IC gyártástechnológiája most megengedi a négyszeres sebességnövekedést az interface áramkör elôállítási költségének növekedése nélkül. - A 112 címnek nagy részét több mint egyszer kiadták felhasználva a 7 bites címzési rendet. Az új eszközöknek kiosztandó szolga címek okozta problémák elkerülése érdekében kívánatos a több címkombináció. A hozzáférhetô címek számának kb. 10-szeres növekedése nyerhetô új 10 bites címzéssel. Minden I²C csatolóegységes új eszköz el van látva a gyors-móddal. Inkább, képesnek kellene hogy legyenek venni és küldeni 400 kbit/s-al. A minimális követelmény az, hogy tudjanak szinkronizálni a 400 kbit/s-os átvitellel; meghosszabbíthatják az ALACSONY periódusát az SCL jelnek hogy lassabb legyen az átvitel. A gyors-módú eszközöknek lefele kompatibiliseknek kell lenniük, ami azt jelenti, hogy még arra is képesnek kell lenniük, hogy kapcsolatba tudjanak lépni a 0-tól 100k bit/s-os eszközökkel egy 0-tól 100 kbit/s-os I²C buszos rendszerben. Nyilvánvalóan a 0-tól 100 kbit/s-os busz interface szerkezeteket nem lehet egyesíteni egy gyors-módu I²C buszrendszerrel, mert, mivel azok nem tudják követni a magasabb átviteli sebességet, megjósolhatatlan állapotba kerülnének ezek az eszközök. A szolga eszközöknek a gyors-módú I²C busz csatlakozókkal lehet 7 vagy 10 bites szolga címük. Mégis a 7 bites cím a jobb, mert ez a legolcsóbb megoldás hardware szinten és az eredmény egy rövidebb üzenethossz. Az eszközök a 7 és 10 bites címekkel keveredhetnek ugyanazon I²C rendszeren belül, tekintet nélkül arra, hogy az egy 0-tól 100 kbit/s-os standard-mód rendszer vagy egy 0-tól 400kbit/s-os gyors-módú rendszer. Mindkettô létezik és az elkövetkezendô master-eszközök képesek a 7 és a 10 bites címet is generálni.
12.0 Gyors-mód Az I²C-bus gyors módjában a protokoll, az alak, a logikai szintek és az SDA és az SCL vomnalak maximális kapacitív terhelése, amit a megelôzô I²C-busz leírásában közöltünk, változatlanok. A változások az elôzô I²C elôírásokhoz képest : - a maximális bitsebesség 400 kbit/s-re nôtt - A soros adat (SDA) és a soros óra (SCL) jelek idôzítését átdolgoztuk. Nincs szükség kompatibilitásra más buszrendszerekkel mint a CBUS, mert azok nem tudnak működni a megnövelt bitsebességgen. - A gyors-mód eszközök bemeneteinek kapcsolódniuk kell a tüskékhez és a Schmitt trigger-hez az SDA és az SCL bemeneteknél. - A gyors módú eszközök kimeneti buffereinek kapcsolódniuk kell az SDA és SCL jelek esôszéleinek lejtéskontrolljához. - Ha az energiaellátása a gyors-mód eszköznek le van kapcsolva, az SDA és az SCL I/O tűinek lebegniük kell, hogy ne akadályozza a buszvonalakat. - A külsô hirtelen megállító eszközöket, amelyek a külsö buszvonalakhoz kapacsolódnak meg kellett változtatni, azért hogy a rövidebb maximum megengedhetô növekedési idô alkalmazkodjon a gyors-módu I²C-busz-hoz. A 200 pF-ig terjedô buszterheléseknek a hirtelen-megállító szerkezet minden egyes buszvonal számára lehet egy ellenállás; a 200 pF és 400 pF közé esô buszterheléseknek a hirtelen megállító szerkezet lehet áramforrás (max 3 mA.) vagy egy bekapcsolt ellenállás hálózat, amint a 37. ábra mutatja.
13.0 10-bites címzés A 10 bites címzés nem változtatja meg a formáját az I²C eddigi elôírásinak. 10 bitet használva a címzéshez kihasználjuk a fenntartott kombinációt az 1111XXX-nek az elsô byte elsô hét bitéhez, amely s START (S) vagy az ismételt START (Sr) állapotot követi mint ahogy magyarázzuk a 9.1. részben. A 10 bites címzés nem befolyásolja a létezô 7 bites címzést. A 7 és 10 bites címzésű eszközöket csatlakoztatni lehet ugyanahhoz az I2C buszhoz és mind a 7 bit, mind a 10 bit címzésűt lehet használni standard módú rendszerben (100 kbit/s-ig) vagy a gyors módú rendszerekben (400 kbit/s-ig). Habár 8 lehetséges variációja van a fenntartott címbiteknek : 1111XXX, csak négy kombinációja : 11110XX használható a 10 bites címzésre. A fennmaradó 4 kombinációját az 1111XX-nek fenntartjuk a jövőbeni I2C-busz lehetôségeknek.
13.1. A bitek definíciói az elsô két bájtban A 10 bites szolga címeket abból az elsô két bájtból formálták, amely a START állapotot (S) vagy az ismételt START (Sr) állapotot követi. Az elsô hét bit az elsô bájtban az 11110XX-nek kombinációi, amelynek az utolsó két bite (XX) a két legfontosabb jelentésű (MSBs) a 10 bites címben; az elsô byte-ban a nyolcadik bit az R/W, amely meghatározza az üzenet irányát. A 'nulla' az elsô byte legkevésbé jelentôs pozíciójában azt jelenti, hogy a master a kijelölt szolgára fogja írni az információt. Az 'egy' ebben a pozícióban azt jelenti, hogy a master a szolgáról információt fog olvasni. Ha az R/W bit 'nulla', akkor a második bájt tartalmazza a hátralevô 8 bitet (XXXXXXXX) a 10 bites címbôl. Ha az R/W bit 'egy', akkor a következô bájt tartalmazza az átvitt adatot a szolgától a masternek.
13.2/ 10-bites formátumú címzések Különböző konbinációi az olvasás/írás formáknak lehetségesek az átvitelben melyek tartalmaznak 10-bites címzést. Lehetséges adatátviteli formák: -A master-transmitter továbbítja az adatot a slave-receivernek 10-bites slave-címzéssel. Az átviteli irány nem változik (29.ábra).Mikor 10-bites címzés követi a START-állapotot,minden slave összehasonlítja a slave-cím első byte-jának első hét bitjét (11110xx) A saját címével,és vizsgálja,hogy a nyolcadik bit (R/W irányító bit) nulla. Lehetséges,hogy egynél több slave fog párt találni és nyugtázást generálni. (A1) Minden slave,aki talált párt,össze fogja hasonlítani a slave-címzés második byte-jának nyolc bitjét(XXXXXXXX) az ő saját címével,de csak egy slave fog párt találni és nyugtázást generálni. (A2) A hozzáillő slave addig marad a master által címezve,még ez nem kap egy STOPállapotot (P) vagy egy ismételt START-állapotot (Sr) és azt követően egy másik slave-címet. –Master-receiver a slave transmittert egy 10-bites slave-címmel olvassa le. Az átvitel irányát a második R/W bit után megváltoztatjuk (30.ábra). R/W-pontig, beleértve a nyugtázott A2-es bitet,a folyamat ugyanaz mint az előzőben. A megismételt START-állapot után (Sr) a hozzá illő slave emlékezik,hogy ez már meg volt címezve egyszer.Ez a slave ezután ellenőrzi,hogy a slave-cím első byte-jának első hét bitje,ami az Sr-t követte,megegyezik-e a START-állapottal (S) és ellenőrzi a nyolcadikat. R/W bit = 1. Ha a 8.-ik is megegyezik,akkor a slave nyugtázza,hogy ez már meg volt címezve korábban,mint továbbító és nyugtázza az A3-at. A slave küldő addig meg van címezve,amíg a STOP-állapotot (P) meg nem kapja,vagy egy újabb STARTállapotot (Sr),melyet egy más slave-cím követ. A megismételt START-állapot után (Sr) az összes többi slaveeszköz szintén össze fogja hasonlítani a slave-cím elsö byte-jának első hét bitjét a saját címükkel és ellenőrzik a nyolcadikat. Bár egyikük sem lesz megcímezve,mert az R/W (10-bites eszközöknél) vagy a 11110XX slave-cím (7-bites eszközöknél) nem fog egyezni. –Kombinált forma: A master adatokat küld a slave-nek,azután leolvassa az adatokat ugyanarról a slave-ről (31.ábra). Mindig ugyanaz a master birtokolja a buszt. Az átvitel irányát megváltoztatjuk a második R/W bit után. –Kombinált forma: a master adatot küld egy slave-nek,azután egy másiknak (32.ábra). Mindig ugyanaz a master birtokolja a buszt. –Kombinált forma: 10-,és 7-bites címzések kombinálása egy sorozatátvitelben (33.ábra). Minden START-éllapot (S) és minden START-állapot (Sr) után a 10-bites vagy 7-bites slave-cím átvihető. A 33-as ábra azt mutatja,hogy a master hogyan közvetít adatot a slave-nek egy 7-bites címmel,aztán egy 10-bites címmel a második slave-nek. Mindig ugyanaz a master birtokolja a buszt.
29.ábra:az adó master címzi a vevő slave-et 10-bites címmel
30.ábra:a vevő master címzi az adó slave-et 10-bites címmel
31.ábra:kombinált forma.A master megcímez egy slave-et 10-bites címmel,majd küldi az adatot ennek a slavenek és olvassa is az adatolat tőle.
32. ábra:kombinált forma.A master továbbítja az adatot két slave-nek,mindkettőt 10-bites címmel.
33.ábra:kombinált forma.A master továbbítja az adatot két slave-nek,egyiknek 7-bites,a másiknak 10-bites címmel
Észrevételek: 1. Kombinált formátumokat arra használnak, hogy ellenőrizzék a sorba kapcsolt memóriákat . Az első adatbevitel folyamán a belső memóriának a területét már megírja . A start és a szolga cím megismétlése után az adat átvitelre kerül. 2. A készülék megtervezője által az összes döntés az döntés az előzőleg bevitt memória területeken automatikus növekedést vagy csökkentést eredményez . 3. Minden egyes byte-t egy ismert bit követ , amit a következőkben tömbökben tüntet fel . 4. Az I2C-busz összeegyeztethető készülékeinek újra kell frissíteni a busz logikai értelmezését a start átvételekor vagy megismételni a start feltételt úgy , hogy mind előrébb szerepeljen a szolga cím küldésénél.
14.0 Az általános hivatkozási cím és start byte. A 10 bites címzési művelet az I2C busznak olyan , hogy az első 2 byte mindig meghatározó a start feltétel után , melyik szolga legyen megosztva . A kivétel a „az általános hivatkozási „ cím 00000000(h’00’). A szolga készülékek 10-bit címzéssel visszahat egy általános hivatkozásra ugyanúgy mint a szolga készülékek 7 bit címzéssel (lsd.9.1.1) A főhardver átad 10 bit címzést egy „általános hivatkozás” után . Ez esetben az „általános hivatkozás” című byte-t két egymásután byte követi belefoglalva a főátadó 10 bit címzését . A formátumot a 17-es számú ábra mutatja , ahol az első adat byte magába foglalja a főátadó 10 bit címzését. A start byte 00000001 (H’01’) megelőzi a 10 bites címzést ugyanúgy mint a 7 bites címzést (lsd.9.1.2)
15.0 Villamos leírások és időzítések input output szakaszokhoz valamint buszokhoz. Az I/O szintek , I/O megszakítok , kimeneti irányítok és kis kapacitás az I2C buszhoz a 3. Táblában találhatok. Az I2C busz időzítése a 4-es táblázatban található . A 34-es § megmutatja az időzítéseket az I2C buszhoz. A magas és az alacsony szintű készülékek zajhatára a buszvonalakon ugyanaz a gyors eljárású készülékeknél mint a meghatározott általános készülékeknél.(lsd.10.§) Az SLC idő által meghatározott minimumának magas és alacsony periódusa a 4-es számú táblázatban van, meghatározza a maximum bit átviteli sebességét a 100kbit/s általános módú készülékeknél és a 400kbit/s gyors módú készülékek bizonyára képesek. Természetesen az útibbi esetben a bit átviteli sebesség csökkentett.
3-táblázat:az I²C-busz eszközök SDA és SCL fokozatainak karakterisztikái
n/a = not applicable 1. Maximum V IH = V DDmax + 0.5 V 2. C b = capacitance of one bus line in pF. 3. The maximum t f for the SDA and SCL bus lines quoted in Table 4 (300 ns) is longer than the specified maximum t of for the output stages (250 ns). This allows series protection resistors (R s )to be connected between the SDA/SCL pins and the SDA/SCL bus lines as shown in Figure 37 without exceeding the maximum specified t f . 4. I/O pins of fast-mode devices must not obstruct the SDA and SCL lines if V DD is switched off.
4.táblázat:az I²C-busz eszközök SDA és SCL vonaljainak karakterisztikái
–
GYORSÜZEMŰ I2C-BUSZ Min. Max. 0 400 0.6
– µs
4.0
–
0.6
– µs
tLOW
4.7
–
1.3
– µs
tHIGH
4.0
–
0.6
– µs
tSU;STA
4.7
–
0.6
– µs
tHD;DAT
5.0
– –
01)
– 01) 0.92) 1003)
tBUF
ALAPÜZEMŰ I2C-BUSZ Min. Max. 0 100 4.7
tHD;STA
PARAMÉTEREK
JELÖLÉS
SCL órajelfrekvencia Stop és start közötti idő Hold idő startállapotban Az SCL órajel alacsony periódusa Az SCL órajel magas periódusa Set-up idő az ismételt startállapotig Adat hold idő: CBUS kompatibilis masterekhez
fSCL
Adat set-up idő
tSU;DAT
Felfutási idő SDA és SCL jeleknél Lefutási idő SDA és SCL jeleknél Set-up idő stop állapot Kapacitív terhelés minden busz vezetékre
tr tf tSU;STO Cb
250 – – 1000 – 300 4.0 – – 400
20+0.1 Cb4) 300 20+0.1 Cb4) 300 0.6 – – 400
MÉRTÉKEGYSÉ G kHz
– µs µs – ns ns ns µs pF
Minden érték a VIHmin és VILmax szintekre vonatkozik (lásd 3. táblázat) 1. Egy egységnek legkevesebb 300 ns-os hold időt kell tartalmaznia az SDL jel miatt azért, hogy áthidalják az SCL lefutó jelének a definiálatlan részét. 2. A maximális tHD;DAT csak akkor lesz meg, ha az egység az SCL jel alacsony periódusát (tLOW) nem tolja ki. 3. Egy gyors üzemű I2C-busz használható egy alapüzemű I2C-busz rendszerben, de szükséges tSU;DAT > 250 nsnak meg kell lennie. 5. Cb=egy busz vezeték teljes kapacitása pF-ban.
34.ábra: az I²C-busz időzítésének definiciója
16.0. Használati tájékoztatás 16.1. Meredekség korlátozott kimeneti szintek a gyorsüzemű I2C-busz egységeknél Az elektromos feltételek az I2C-busz I/O egységekhez és a buszvezetékek csatlakoztatásának karakterisztikája ezekhez a 3. és 4. táblázatban vannak megadva a 15. részben. A 35-ös és 36-os ábra kimeneti szintekre mutat példát meredekségkorlátozóval CMOS és bipoláris technológiában. A lefutó él meredekségét egy Miller-kondenzátorral (C1) és egy ellenállással (R1) definiálták. C1 és R1 értékét a diagramok mutatják. A kimenet lefutási idejének széles a toleranciája, amely azt jelenti, hogy a tervezés nem kritikus (az adatok a 3. táblázatban van megadva). A lefutási időt csak némileg befolyásolja a külső busz terhelés és a külső felhúzó ellenállás (Rp). Bár a felfutási időt (tr) a 4. táblázat mutatja, ezt főleg a busz terhelő kapacitása és a felhúzó ellenállás értéke határozza meg.
35.ábra: élvezérelt kimenet CMOS technollogiánál
39.ábra: élvezérelt kimenet bipoláris technollogiánál
16.2. Kapcsolt felhúzó áramkör a gyors üzemű I2C-busz egységekhez A VDD és a kimenet alacsony szintjének maximuma meghatározza a felhúzó ellenállás legkisebb értékét (Rp). Lásd a 10.1-es fejezetben. Például VDD=5 V ±10%-os tápfeszültséggel és VOLmax = 0.4 V 3 mA-nél Rpmin (5.50.4)/0.003 = 1.7 kω. Amint a 38-as ábra mutatja Rp-nek ez az értéke meghatározza a maximális busz kapacitást körülbelül 200 pF-nál, hogy megfeleljen a maximális 300 ns-os tr követelménynek. Ha a busznak ennél nagyobb kapacitása van egy kapcsolt felhúzó áramkört használhatnak, amint azt a 37-es ábrán látjuk. A kapcsolt felhúzó áramkör a 37. ábrán VDD=5 V ±10% és 400 pF maximális terhelő kapacitással. Amióta a t-t szabályozták a busz szintekkel, nincs szükség újabb kapcsolás vezérlő jelekre. A felfutó/lefutó él közben a kétoldali kapcsoló HCT4066-ban kapcsolja a felhúzó ellenállást Rp2 on/off állásba 0.8 V és 2.0 V közötti busz szinteknél. Kombinált ellenállások Rp1 és Rp2 felhúzhatja a busz szintet a maximálisan előírt 300 ns-os felfutási időn (tr) belülre. A maximális áram a terhelt I2C-busz egységnél nem haladhatja meg a 6 mA-t VOL2=0.6 V-nál vagy a 3 mA-t VOL1=0.4 V-nál. A soros ellenállások szabadon választhatók. Ezek védik a I2C-busz I/O szintjeit a magasfeszültségtől. Rs maximális értékét úgy határozzák meg, hogy a maximális feszültséggel terhelik, mikor a busz vezetéket alacsony szintre kapcsolják, azért, hogy Rp2-t kiküszöböljék.
37.ábra
38.ábra
16.3 A buszvezetékek huzalozási mintája Általában a huzalozásnak olyannak kell lennie, hogy az áthallás és az interferencia a busz felől és felé minimális legyen. A buszvezetékek a magas jelszintnél a legérzékenyebbek az áthallásra és az interferenciára a felhúzó eszközök relatív magas impedanciája miatt. Ha a buszvezetékek hossza meghaladja a 10 cm-t a NYÁK-on vagy a szalagkábelnél, illetve tartalmazza a VDD és VSS vezetékeket, akkor a huzalozásnak a következőképpen kell kinéznie:
Ha csak a VSS vezetéket tartalmazza:
These wiring patterns also result in identical capacitive loads for the SDA and SCL lines. A VSS és VDD vezetékek elhagyhatóak ha a NYÁK-on külön VSS és/vagy VDD rétegek vannak kialakítva. Ha a buszvezeték csavart érpár, minden buszvezetéket egy visszatérő Vss vezetékkel kell összesodorni. Vagy pedig az SCL-t sodorjuk össze a VSS visszatérővel és a SDA-t a VDD visszatérővel. Ezekután kondenzátorokkal kell leválasztani a csavart érpár mindkét végénél a VDD vezetéket a VSS-től. Ha a buszvezetékek árnyékoltak (az árnyékolás a VSS-re van kötve), az interferencia minimális lesz. Azonban az árnyékolt vezetéknek alacsony kapacitásúnak kell lennie az SDA és SCL vezetékek között, hogy minimális legyen az áthallás.
16.4 A maximális és minimális Rp és Rs ellenállásértékek a fast-mode I2C eszközöknél A fast-mode I2C buszhoz kötött maximális és minimális Rp és Rs ellenállásértékek meghatározhatóak a 10.1. szakasz 25, 26 és 28-as ábrája alapján. Mivel egy fast-mode I2C busznak rövidebb a felfutó éle (tr) az Rp ellenállás maximális értéke a busz kapacitásának függvényeként kevesebb, mint amit a 27-es ábra mutat. The replacement graph for Figure 27 showing the maximum value of Rp as a function of bus capacitance (Cb) for a fast mode I2C-bus is given in Figure 38.
17.0 Fejlesztőeszközök 17.1 Fejlesztőeszközök a 8048 és 8051 alapú rendszerekhez Termék
Leírás
OM1016
Mikrokontrolleres I2C-busz bemutató kártya, LCD, LED, Par. I/O, SRAM, EEPROM, Clock, DTMF generátor, AD/DA átalakitó, infravörös kapcsolat Használati útmutató az OM1016-hoz LCD és driver bemutató kártya I2C-busz evalution kártya (hasonló, mint a fent emlitett OM1016, de infravörös kapcsolat nélkül). I2C-busz evaluation kártya alacsony feszültséghez, kis fogyasztású ic-k és szoftver
OM1018 OM1020 OM4151 OM5027
17.2 Fejlesztőeszközök a 68000 alapú rendszerekhez Termék OM4160 OM4160/3 OM4160/3QFP
Leírás Microcore-1 bemutató/evaluation kártya: SCC68070, 128K EPROM, 512K DRAM, I2C, RS-232C, VSC SCC66470, resident monitor Microcore-3 bemutató/evaluation kártya: 128K EPROM, 64K SRAM, I2C, RS-232C, 40 I/O (benne 8051 kompatibilis busz), resident monitor Microcore-3 bemutató/evaluation kártya a 9XC101-hez (QFP80 tokozás)
17.3 Fejlesztőeszközök bármely rendszerhez Termék OM1022
Leírás I2C-busz elemző. Hardver és szoftver (IBM vagy vele kompatibilis PC-hez) az I2C busszal való kisérletezéshez és viselkedésének elemzéséhez (dokumentációval együtt)
18.0 Kisegítő irodalom
19.0 Az I2C busz alkalmazása az ACCESS.bus rendszerben Az ACCESS.bus (busz az ACCESSory eszközök egy host rendszer kapcsolásához) egy I2C alapú nyílt szabvaányú soros összekötettési rendszer a Philips és a Digital Equipment Corporation közös fejlesztésében és definiálásában. Ez egy kisebb költségű alternativa egy RS-232C interfészhez képest ahhoz, hogy egy asztali számítógéphez vagy egy workstation-hőz 14 ki/be-menetet kössünk hozzá a perifériakészülékekről akár 8 méteres távolságig is. A perifériakészülék lehet viszonylag alacsony sebességű, mint pl. billentyűzetek, kézi scannerek, cursor poziciónálók (egerek?), vonalkód leolvasók, digitalizáló táblák, kártyaolvasók vagy modemek. Minden, ami szükséges egy ACCESS.bus megvalósításához, egy 8051-es családba tartozó mikrokontroller egy I2C-busz illesztővel, és egy 4 eres kábel soros adatvezetékkel (SDA) , soros órajelvezetékkel (SCL), egy földvezetékkel és egy 12V-os tápvezetékkel (500mA max.) a periféria tápfeszültségének biztosításához. Az ACCESS.bus lényeges sajátosságai, hogy a bitsebesség csak közel 20%-kal kevesebb, mint az I2C maximális bitsebessége és a perifériáknak nincs szükségük eszközvezérlőkre. Valamint a protokol megengedi, hogy az eszközöket menet közben kicseréljük (‘hot-plugging’) rebootolás nélkül. Mint ahogy a 39-es ábrán látható, az ACCESS.bus protokol 3 szintet foglal magába: Az I2C protokolt, a bázis protokolt és az alkalmazási protokolt. Az bázis protokol általános minden ACCES.bus eszköz számára és definiálja az ACCES.bus üzenetek formáját. Az I2C-busz protokoltól eltérően megköveteli a masterektől, hogy küldjék és a slave-ektől, hogy fogadják az adatokat. A csatolt információ egyik része egy összeg a megbizhatóság ellenőrzésére. A bázis protokol ezenkívül még a vezérlő és állapotüzenetek hét fajtáját specifikálja, amelyeket a rendszerkonfigurációban használ, amelyeket jumperek vagy kapcsolók állítanak be az eszközön. Az applikációs protokol definiálja az üzenetek jelentéstanát, ami a perifériaeszközök 3 kategóriáját specifikálja (billentyüzetek, cursor poziciónálók, és szöveges eszközök, amelyek karakterfolyamot állítanak elő, mint például a kártyaolvasók), amelyek … A Philips a számítógép perifériakészülék gyrátóknak technikai támógatást ajánl, széles skáláját az I2C-buszos eszközöknek és fejlesztőkészleteket az ACCESS.bus-hoz. Hardware, software és marketing támogatást kínál még a DEC is.
39.ábra