V moderních domácích spotřebičích, průmyslové elektronice a různých telekomunikačních zařízeních lze často nalézt podobná řešení, i když produkty spolu mohou prakticky nesouviset. Například téměř každý systém obsahuje následující:
- určitá „chytrá“řídicí jednotka, kterou je v naprosté většině případů jednočipový mikropočítač;
- komponenty pro všeobecné použití, jako jsou vyrovnávací paměti LCD, RAM, I/O porty, EEPROM nebo vyhrazené datové převodníky;
- specifické komponenty včetně digitálního ladění a obvodů pro zpracování signálu pro video a rádiové systémy.
Jak optimalizovat jejich aplikaci?
Aby co nejvíce využili tato běžná řešení ku prospěchu návrhářů a výrobců a také zlepšili celkový výkon různého hardwaru a zjednodušili aplikované obvodové komponenty, rozhodla se společnost Philips vyvinout nejjednodušší dvouvodičové obousměrné sběrnice, která poskytuje nejproduktivnější mezičipřízení. Tato sběrnice zajišťuje přenos dat přes rozhraní I2C.
Sortiment tohoto výrobce dnes zahrnuje více než 150 CMOS a také bipolární zařízení kompatibilní s I2C a navržená pro práci v kterékoli z uvedených kategorií. Je třeba poznamenat, že rozhraní I2C je zpočátku zabudováno do všech kompatibilních zařízení, díky čemuž mohou mezi sebou snadno komunikovat pomocí speciální sběrnice. Díky použití takového konstrukčního řešení bylo možné vyřešit poměrně velké množství problémů s propojením různých zařízení, což je zcela typické pro vývoj digitálních systémů.
Klíčové výhody
I když se podíváte na stručný popis rozhraní UART, SPI, I2C, můžete zdůraznit následující výhody těchto rozhraní:
- K práci potřebujete pouze dvě linky – synchronizační a datovou. Každé zařízení, které se na takovou sběrnici připojí, pak může být programově adresováno na zcela unikátní adresu. V každém okamžiku existuje jednoduchý vztah, který umožňuje masterům jednat jako master-vysílač nebo master-přijímač.
- Tato sběrnice poskytuje možnost mít několik masterů najednou, poskytuje všechny potřebné prostředky pro určování kolizí, stejně jako arbitráž, aby se zabránilo poškození dat v případě, že dva nebo více masterů začnou přenášet informace současně. Ve standardním režimuje poskytován pouze sériový 8bitový přenos dat rychlostí maximálně 100 kb/s a v rychlém režimu lze tento práh zvýšit čtyřikrát.
- Čipy používají speciální vestavěný filtr, který účinně potlačuje přepětí a zajišťuje maximální integritu dat.
- Maximální možný počet čipů, které lze připojit k jedné sběrnici, je omezen pouze její maximální možnou kapacitou 400 pF.
Výhody pro konstruktéry
Rozhraní I2C, stejně jako všechny kompatibilní čipy, může výrazně urychlit proces vývoje, od funkčního schématu až po jeho finální prototyp. Zároveň je třeba poznamenat, že díky možnosti připojení takových mikroobvodů přímo na sběrnici bez použití všemožných přídavných obvodů je poskytován prostor pro další modernizaci a úpravu prototypového systému odpojováním a připojováním různých zařízení od sběrnice. autobus.
Rozhraní I2C vyniká mnoha výhodami. Zejména popis vám umožňuje vidět následující výhody pro konstruktéry:
- Bloky na funkčním schématu plně odpovídají mikroobvodům a zároveň je zajištěn poměrně rychlý přechod od funkčního k základnímu.
- Není potřeba vyvíjet rozhraní sběrnice, protože sběrnice je již nativně integrována do vyhrazených čipů.
- Integrované komunikační protokoly aadresování zařízení umožňuje úplné softwarové definování systému.
- Stejné typy mikroobvodů lze v případě potřeby použít ve zcela odlišných aplikacích.
- Celková doba vývoje je výrazně zkrácena díky tomu, že se konstruktéři mohou rychle seznámit s nejběžněji používanými funkčními bloky a také různými mikroobvody.
- Pokud chcete, můžete přidat nebo odebrat čipy ze systému a zároveň to nebude mít velký vliv na ostatní zařízení připojená ke stejné sběrnici.
- Celkovou dobu vývoje softwaru lze výrazně snížit tím, že povolíme knihovnu opakovaně použitelných softwarových modulů.
Mimo jiné stojí za zmínku extrémně jednoduchý postup pro diagnostiku vzniklých poruch a další ladění, který odlišuje rozhraní I2C. Z popisu vyplývá, že v případě potřeby mohou být i drobné odchylky v provozu takového zařízení okamžitě bez jakýchkoli potíží monitorovány a podle toho mohou být přijata příslušná opatření. Za zmínku také stojí, že designéři dostávají speciální řešení, která jsou zvláště atraktivní pro různá přenosná zařízení a systémy, které poskytují bateriové napájení pomocí rozhraní I2C. Popis v ruštině také naznačuje, že jeho použití vám umožňuje poskytnout následující důležité výhody:
- Dostatečně vysoký stupeň odolnosti vůči jakémukoli vznikajícímu rušení.
- Nakonecnízká spotřeba energie.
- Nejširší rozsah napájecího napětí.
- Široký rozsah teplot.
Výhody pro technology
Za zmínku stojí, že nejen designéři, ale i technologové začali v poslední době poměrně často používat specializované I2C rozhraní. Popis v ruštině naznačuje poměrně širokou škálu výhod, které tato kategorie specialistů poskytuje:
- Standardní dvouvodičová sériová sběrnice s tímto rozhraním minimalizuje propojení mezi integrovanými obvody, což znamená, že je potřeba méně pinů a méně stop, takže PCB jsou levnější a mnohem menší.
- Plně integrované rozhraní I2C LCD1602 nebo jiná možnost zcela eliminuje potřebu dekodérů adres a další externí malé logiky.
- Na takové sběrnici je možné používat několik masterů současně, což výrazně urychluje testování a následné nastavení zařízení, protože sběrnici lze připojit k počítači montážní linky.
- Dostupnost integrovaných obvodů kompatibilních s tímto rozhraním v balíčcích VSO, SO a vlastních DIL může výrazně snížit požadavky na velikost zařízení.
Toto je jen krátký seznam výhod, které odlišují I2C rozhraní LCD1602 a dalších. Kromě toho mohou kompatibilní čipy výrazně zvýšit flexibilitu použitého systému, poskytovatextrémně jednoduchý design různých možností vybavení a také relativně snadné upgrady pro další podporu vývoje na současné úrovni. Je tedy možné vyvinout celou rodinu různých zařízení na základě určitého základního modelu.
Další modernizaci zařízení a rozšiřování jeho funkcí lze provést pomocí standardního připojení ke sběrnici odpovídajícího mikroobvodu pomocí rozhraní Arduino 2C nebo libovolného jiného z dostupného seznamu. Pokud je požadována větší ROM, pak bude stačit vybrat jiný mikrokontrolér s navýšenou ROM. Vzhledem k tomu, že aktualizované čipy mohou v případě potřeby zcela nahradit staré, můžete do zařízení snadno přidat nové funkce nebo zvýšit jeho celkový výkon pouhým odpojením zastaralých čipů a jejich nahrazením novějším zařízením.
ACCESS.bus
Vzhledem k tomu, že sběrnice má dvouvodičový charakter a také možnost programového adresování, je jednou z nejideálnějších platforem pro ACCESS.bus rozhraní I2C. Specifikace (popis v ruštině je uveden v článku) z tohoto zařízení dělá mnohem levnější alternativu k dříve aktivně používanému rozhraní RS-232C pro připojení různých periferií k počítačům pomocí standardního čtyřpinového konektoru.
Úvod specifikace
Pro moderní aplikace8bitové řízení, které využívá mikrokontroléry, je možné nastavit některá kritéria návrhu:
- kompletní systém většinou obsahuje jeden mikrokontrolér a další periferie, včetně paměti a různých I/O portů;
- celkové náklady na kombinování různých zařízení v rámci jednoho systému by měly být co nejvíce minimalizovány;
- systém, který řídí funkce, nepočítá s potřebou poskytovat vysokorychlostní přenos informací;
- celková účinnost je přímo závislá na zvoleném zařízení a také na povaze spojovací sběrnice.
Abyste mohli navrhnout systém, který plně splňuje uvedená kritéria, musíte použít sběrnici, která bude používat sériové rozhraní I2C. Přestože sériová sběrnice nemá šířku pásma paralelní sběrnice, vyžaduje méně připojení a méně čipových pinů. Zároveň nezapomeňte, že součástí sběrnice jsou nejen propojovací vodiče, ale také různé postupy a formáty nutné k zajištění komunikace v rámci systému.
Zařízení, která komunikují pomocí softwarové emulace rozhraní I2C nebo odpovídající sběrnice, musí mít specifický protokol, který umožňuje zabránit různým možnostem kolizí, ztrátě nebo zablokování informací. Rychlá zařízení by měla být schopna komunikovat s pomalými a systém by na nich neměl být závislýze zařízení k němu připojeného, protože jinak nebude možné použít všechna vylepšení a úpravy. Je také nutné vyvinout postup, s jehož pomocí je reálné zjistit, které konkrétní zařízení aktuálně zajišťuje řízení sběrnice a v jakém časovém okamžiku. Navíc, pokud jsou na stejnou sběrnici připojena různá zařízení s různými hodinovými frekvencemi, musíte se rozhodnout o zdroji její synchronizace. Všechna tato kritéria splňuje rozhraní I2C pro AVR a další z tohoto seznamu.
Hlavní koncept
Sběrnice I2C může podporovat jakoukoli použitou technologii čipu. Rozhraní I2C LabVIEW a další jemu podobné umožňují použití dvou linek pro přenos informací - datové a synchronizační. Každé takto připojené zařízení je rozpoznáno podle své jedinečné adresy, bez ohledu na to, zda se jedná o vyrovnávací paměť LCD, mikrokontrolér, paměť nebo rozhraní klávesnice, a může fungovat jako přijímač nebo vysílač v závislosti na tom, k čemu je určeno pro toto zařízení.
V drtivé většině případů je vyrovnávací paměť LCD standardním přijímačem a paměť dokáže různá data nejen přijímat, ale i vysílat. Mimo jiné, podle procesu přesouvání informací mohou být zařízení klasifikována jako slave a master.
V tomto případě je master zařízení, které zahajuje přenos dat a také generujesynchronizační signály. V tomto případě budou všechna adresovatelná zařízení ve vztahu k nim považována za podřízená.
Komunikační rozhraní I2C zajišťuje přítomnost několika masterů najednou, to znamená, že se k němu může připojit více než jedno zařízení schopné ovládat sběrnici. Schopnost používat více než jeden mikrokontrolér na stejné sběrnici znamená, že v daný čas může být předáno více než jeden master. Aby se eliminoval potenciální chaos, který hrozí, když taková situace nastane, byla vyvinuta specializovaná arbitrážní procedura využívající rozhraní I2C. Expandéry a další zařízení umožňují připojení zařízení ke sběrnici podle tzv. pravidla zapojení.
Generování hodinového signálu je odpovědností mastera a každý master generuje svůj vlastní signál během přenosu dat a ten se může později změnit, pouze pokud je „tažen“pomalým slave nebo jiným masterem, když dojde ke kolizi
Obecné parametry
SCL i SDA jsou obousměrné linky, které se připojují ke kladnému napájecímu zdroji s pull-up rezistorem. Když je pneumatika zcela volná, každá čára je ve vysoké poloze. Výstupní stupně zařízení, která jsou připojena ke sběrnici, musí být typu open-drain nebo open-collector, aby mohla být zajištěna funkce drátového AND. Informace přes rozhraní I2C lze přenášet rychlostí maximálně 400 kbpsrychlý režim, přičemž standardní rychlost nepřesahuje 100 kbps. Celkový počet zařízení, která lze současně připojit ke sběrnici, závisí pouze na jednom parametru. Toto je kapacita linky, která není větší než 400 pf.
Potvrzení
Potvrzení je povinný postup v procesu přenosu dat. Master generuje příslušný synchronizační impuls, zatímco vysílač během tohoto synchronizačního impulsu uvolní SDA linku jako potvrzení. Poté musí přijímač zajistit, aby byla linka SDA udržována stabilní během stavu vysokých hodin ve stabilním nízkém stavu. V tomto případě nezapomeňte vzít v úvahu doby nastavení a zdržení.
V naprosté většině případů je pro adresáta povinné generovat potvrzení po každém přijatém bajtu, s jedinou výjimkou, kdy začátek přenosu zahrnuje adresu CBUS.
Pokud přijímač-slave nemá žádný způsob, jak poslat potvrzení své vlastní adresy, datová linka by měla být ponechána vysoko a potom bude master schopen vydat signál "Stop", který přeruší odesílání všechny informace. Pokud byla adresa potvrzena, ale slave nemůže delší dobu přijímat žádná další data, musí master také přerušit odesílání. K tomu slave nepotvrdí další přijatý bajt a jednoduše opustí linkuvysoká, což způsobí, že master vygeneruje signál zastavení.
Pokud postup přenosu předpokládá přítomnost master-přijímače, pak v tomto případě musí informovat slave o ukončení přenosu, a to tak, že nepotvrdí poslední přijatý bajt. V tomto případě podřízený vysílač okamžitě uvolní datovou linku, takže master může vydat signál "Stop" nebo znovu zopakovat signál "Start".
Chcete-li zkontrolovat, zda zařízení funguje, můžete zkusit zadat standardní příklady náčrtů pro rozhraní I2C v Arduinu, jako na obrázku výše.
Rozhodčí řízení
Master může začít posílat informace až poté, co je sběrnice zcela volná, ale dva nebo více masterů mohou generovat spouštěcí signál při minimální době zadržení. To nakonec vede ke specifickému signálu "Start" na sběrnici.
Rozhodčí řízení funguje na sběrnici SDA, když je sběrnice SCL vysoká. Pokud jeden z masterů začne vysílat na datové lince nízkou úroveň, ale zároveň je druhý na vysoké úrovni, pak je tento od ní zcela odpojen, protože stav SDL neodpovídá vysokému stavu jeho vnitřní linky..
Arbitráž může pokračovat přes několik bitů. Vzhledem k tomu, že se nejprve přenáší adresa a poté data, může arbitráž trvat až do konce adresy, a pokud budou mastery oslovovatstejné zařízení, pak se arbitráže zúčastní i jiná data. Díky tomuto arbitrážnímu systému nedojde ke ztrátě dat, pokud dojde ke kolizi.
Pokud master ztratí arbitráž, může vydávat hodinové impulsy v SCL až do konce bajtu, během kterého byl ztracen přístup.