V moderných domácich spotrebičoch, priemyselnej elektronike a rôznych telekomunikačných zariadeniach možno často nájsť podobné riešenia, aj keď produkty nemusia byť prakticky spojené. Napríklad takmer každý systém obsahuje nasledovné:
- istú „inteligentnú“riadiacu jednotku, ktorou je v drvivej väčšine prípadov jednočipový mikropočítač;
- komponenty na všeobecné použitie, ako sú vyrovnávacie pamäte LCD, RAM, I/O porty, EEPROM alebo špeciálne dátové prevodníky;
- špecifické komponenty vrátane obvodov digitálneho ladenia a spracovania signálu pre video a rádiové systémy.
Ako optimalizovať ich aplikáciu?
S cieľom čo najlepšie využiť tieto bežné riešenia v prospech dizajnérov a výrobcov, ako aj zlepšiť celkový výkon rôzneho hardvéru a zjednodušiť použité komponenty obvodov, spoločnosť Philips sa rozhodla vyvinúť najjednoduchšie dvojvodičové obojsmerné autobus, ktorý poskytuje najproduktívnejší medzičipovládanie. Táto zbernica zabezpečuje prenos dát cez rozhranie I2C.
Sortiment produktov výrobcu dnes zahŕňa viac ako 150 CMOS, ako aj bipolárne zariadenia kompatibilné s I2C a navrhnuté tak, aby fungovali v ktorejkoľvek z uvedených kategórií. Je potrebné poznamenať, že rozhranie I2C je pôvodne zabudované do všetkých kompatibilných zariadení, vďaka čomu môžu navzájom ľahko komunikovať pomocou špeciálnej zbernice. Vďaka použitiu takéhoto konštrukčného riešenia bolo možné vyriešiť pomerne veľké množstvo problémov s prepojením rôznych zariadení, čo je celkom typické pre vývoj digitálnych systémov.
Kľúčové výhody
Aj keď sa pozriete na krátky popis rozhraní UART, SPI, I2C, môžete zdôrazniť nasledujúce výhody týchto rozhraní:
- Na fungovanie potrebujete iba dve linky – synchronizáciu a dáta. Každé zariadenie, ktoré sa k takejto zbernici pripojí, môže byť potom programovo adresované na úplne jedinečnú adresu. V každom danom čase existuje jednoduchý vzťah, ktorý umožňuje nadriadeným konať ako hlavný vysielač alebo hlavný prijímateľ.
- Táto zbernica poskytuje možnosť mať niekoľko masterov naraz, čím poskytuje všetky potrebné prostriedky na určovanie kolízií, ako aj arbitráž, aby sa zabránilo poškodeniu dát v prípade, že dva alebo viac masterov začne prenášať informácie súčasne. V štandardnom režimeposkytuje sa iba sériový 8-bitový prenos dát rýchlosťou maximálne 100 kb/s a v rýchlom režime možno túto hranicu zvýšiť štyrikrát.
- Čipy používajú špeciálny vstavaný filter, ktorý efektívne potláča prepätia a zaisťuje maximálnu integritu dát.
- Maximálny možný počet čipov, ktoré je možné pripojiť k jednej zbernici, je obmedzený iba jej maximálnou možnou kapacitou 400 pF.
Výhody pre konštruktérov
Rozhranie I2C, ako aj všetky kompatibilné čipy, môžu výrazne urýchliť proces vývoja, od funkčného diagramu až po jeho finálny prototyp. Zároveň je potrebné poznamenať, že vzhľadom na možnosť pripojenia takýchto mikroobvodov priamo na zbernicu bez použitia všetkých druhov prídavných obvodov je zabezpečený priestor pre ďalšiu modernizáciu a úpravu prototypového systému odpájaním a pripájaním rôznych zariadení od zbernice. autobus.
Rozhranie I2C vyniká mnohými výhodami. Najmä popis vám umožňuje vidieť nasledujúce výhody pre konštruktérov:
- Bloky na funkčnom diagrame plne zodpovedajú mikroobvodom a zároveň je zabezpečený pomerne rýchly prechod od funkčného k základnému.
- Nie je potrebné vyvíjať rozhrania zbernice, pretože zbernica je už natívne integrovaná do vyhradených čipov.
- Integrované komunikačné protokoly aadresovanie zariadení umožňuje, aby bol systém úplne softvérovo definovaný.
- Rovnaké typy mikroobvodov, ak je to potrebné, možno použiť v úplne odlišných aplikáciách.
- Celkový čas vývoja je výrazne skrátený vďaka tomu, že dizajnéri sa môžu rýchlo zoznámiť s najbežnejšie používanými funkčnými blokmi, ako aj rôznymi mikroobvodmi.
- Ak chcete, môžete pridávať alebo odoberať čipy zo systému a zároveň to nemá veľký vplyv na ostatné zariadenia pripojené k rovnakej zbernici.
- Celkový čas vývoja softvéru možno výrazne skrátiť povolením knižnice opakovane použiteľných softvérových modulov.
Okrem iného stojí za zmienku mimoriadne jednoduchý postup diagnostiky vzniknutých porúch a ďalšieho ladenia, ktorý odlišuje rozhranie I2C. Z opisu vyplýva, že v prípade potreby možno aj malé odchýlky v prevádzke takéhoto zariadenia okamžite bez problémov monitorovať a podľa toho možno prijať vhodné opatrenia. Za zmienku tiež stojí, že dizajnéri dostávajú špeciálne riešenia, ktoré sú obzvlášť atraktívne pre rôzne prenosné zariadenia a systémy, ktoré napájajú batériu pomocou rozhrania I2C. Popis v ruštine tiež naznačuje, že jeho použitie vám umožňuje poskytnúť nasledujúce dôležité výhody:
- Dostatočne vysoký stupeň odolnosti voči akejkoľvek vznikajúcej interferencii.
- Nakoniecnízka spotreba energie.
- Najširší rozsah napájacieho napätia.
- Široký rozsah teplôt.
Výhody pre technológov
Za zmienku stojí, že nielen dizajnéri, ale aj technológovia začali v poslednej dobe pomerne často využívať špecializované I2C rozhranie. Popis v ruštine naznačuje pomerne širokú škálu výhod, ktoré táto kategória špecialistov poskytuje:
- Štandardná dvojvodičová sériová zbernica s týmto rozhraním minimalizuje vzájomné prepojenia medzi integrovanými obvodmi, čo znamená, že je potrebných menej kolíkov a menej stôp, čím sú dosky plošných spojov lacnejšie a oveľa menšie.
- Plne integrované I2C rozhranie LCD1602 alebo iná možnosť úplne eliminuje potrebu dekodérov adries a inej externej malej logiky.
- Na takejto zbernici je možné použiť niekoľko masterov súčasne, čo výrazne urýchľuje testovanie a následné nastavenie zariadenia, keďže zbernicu je možné pripojiť k počítaču montážnej linky.
- Dostupnosť integrovaných obvodov kompatibilných s týmto rozhraním v balíkoch VSO, SO a vlastných DIL môže výrazne znížiť požiadavky na veľkosť zariadenia.
Toto je len krátky zoznam výhod, ktoré odlišujú I2C rozhranie LCD1602 a ďalších. Okrem toho môžu kompatibilné čipy výrazne zvýšiť flexibilitu použitého systému, ktorý poskytujeextrémne jednoduchý dizajn rôznych možností vybavenia, ako aj relatívne ľahké upgrady na ďalšiu podporu vývoja na súčasnej úrovni. Takto je možné vyvinúť celú rodinu rôznych zariadení na základe určitého základného modelu.
Ďalšiu modernizáciu zariadenia a rozšírenie jeho funkcií je možné realizovať pomocou štandardného pripojenia na zbernicu príslušného mikroobvodu pomocou rozhrania Arduino 2C alebo akéhokoľvek iného z dostupného zoznamu. Ak je potrebná väčšia ROM, potom bude stačiť vybrať iný mikrokontrolér s zväčšenou ROM. Keďže aktualizované čipy môžu v prípade potreby úplne nahradiť staré, môžete do zariadenia jednoducho pridať nové funkcie alebo zvýšiť jeho celkový výkon jednoduchým odpojením zastaraných čipov a ich nahradením novším zariadením.
ACCESS.bus
Vzhľadom na to, že zbernica má dvojvodičový charakter, ako aj možnosť programového adresovania, je jednou z najideálnejších platforiem pre ACCESS.bus rozhranie I2C. Špecifikácia (popis v ruštine je uvedený v článku) z tohto zariadenia robí oveľa lacnejšiu alternatívu k predtým aktívne používanému rozhraniu RS-232C na pripojenie rôznych periférií k počítačom pomocou štandardného štvorpinového konektora.
Úvod špecifikácií
Pre moderné aplikácie8-bitové ovládanie, ktoré využíva mikrokontroléry, je možné nastaviť niektoré kritériá návrhu:
- kompletný systém väčšinou obsahuje jeden mikrokontrolér a ďalšie periférie vrátane pamäte a rôznych I/O portov;
- celkové náklady na kombináciu rôznych zariadení v rámci jedného systému by sa mali čo najviac minimalizovať;
- systém, ktorý riadi funkcie, nezabezpečuje potrebu poskytovať vysokorýchlostný prenos informácií;
- celková účinnosť je priamo závislá od zvoleného zariadenia, ako aj od charakteru spojovacej zbernice.
Ak chcete navrhnúť systém, ktorý plne spĺňa uvedené kritériá, musíte použiť zbernicu, ktorá bude používať sériové rozhranie I2C. Hoci sériová zbernica nemá šírku pásma paralelnej zbernice, vyžaduje menej pripojení a menej čipových pinov. Zároveň nezabúdajte, že súčasťou zbernice sú nielen prepojovacie vodiče, ale aj rôzne postupy a formáty potrebné na zabezpečenie komunikácie v rámci systému.
Zariadenia, ktoré komunikujú pomocou softvérovej emulácie rozhrania I2C alebo príslušnej zbernice, musia mať špecifický protokol, ktorý umožňuje predchádzať rôznym možnostiam kolízií, straty alebo zablokovania informácií. Rýchle zariadenia by mali byť schopné komunikovať s pomalými a systém by na nich nemal byť závislýzo zariadení, ktoré sú k nemu pripojené, pretože inak nebude možné použiť všetky vylepšenia a úpravy. Je tiež potrebné vypracovať postup, pomocou ktorého je reálne zistiť, ktoré konkrétne zariadenie práve zabezpečuje riadenie zbernice a v akom časovom bode. Okrem toho, ak sú na rovnakú zbernicu pripojené rôzne zariadenia s rôznymi hodinovými frekvenciami, musíte sa rozhodnúť o zdroji jej synchronizácie. Všetky tieto kritériá spĺňa rozhranie I2C pre AVR a všetky ostatné z tohto zoznamu.
Hlavný koncept
Zbernica I2C môže podporovať akúkoľvek použitú technológiu čipu. Rozhranie I2C LabVIEW a ďalšie jemu podobné umožňujú použitie dvoch liniek na prenos informácií - dátovej a synchronizačnej. Každé takto pripojené zariadenie je rozpoznané podľa svojej jedinečnej adresy, bez ohľadu na to, či ide o vyrovnávaciu pamäť LCD, mikrokontrolér, pamäťové alebo klávesnicové rozhranie a môže fungovať ako prijímač alebo vysielač podľa toho, na čo je určené pre toto zariadenie.
V drvivej väčšine prípadov je vyrovnávacia pamäť LCD štandardným prijímačom a pamäť dokáže nielen prijímať, ale aj prenášať rôzne dáta. Okrem iného, podľa procesu presúvania informácií môžu byť zariadenia klasifikované ako slave a master.
V tomto prípade je master zariadenie, ktoré iniciuje prenos dát a tiež generujesynchronizačné signály. V tomto prípade budú všetky adresovateľné zariadenia vo vzťahu k nim považované za podriadené.
Komunikačné rozhranie I2C zabezpečuje prítomnosť niekoľkých masterov naraz, to znamená, že sa k nemu môže pripojiť viac ako jedno zariadenie schopné ovládať zbernicu. Schopnosť používať viac ako jeden mikrokontrolér na rovnakej zbernici znamená, že v ľubovoľnom čase môže byť odovzdaných viac ako jeden master. Aby sa eliminoval možný chaos, ktorý hrozí, keď takáto situácia nastane, bol vyvinutý špecializovaný arbitrážny postup, ktorý využíva rozhranie I2C. Expandéry a ďalšie zariadenia umožňujú pripojenie zariadení na zbernicu podľa takzvaného pravidla zapojenia.
Generovanie hodinového signálu je zodpovednosťou mastera a každý master generuje svoj vlastný signál počas prenosu dát a ten sa môže neskôr zmeniť, len ak ho pri kolízii „zatiahne“pomalý slave alebo iný master.
Všeobecné parametre
SCL aj SDA sú obojsmerné vedenia, ktoré sa pripájajú ku kladnému napájaciemu zdroju s pull-up odporom. Keď je pneumatika úplne voľná, každá čiara je vo vysokej polohe. Výstupné stupne zariadení, ktoré sú pripojené na zbernicu, musia byť typu open-drain alebo open-collector, aby mohla byť zabezpečená funkcia káblového AND. Informácie cez rozhranie I2C môžu byť prenášané rýchlosťou maximálne 400 kbpsrýchly režim, pričom štandardná rýchlosť nepresahuje 100 kbps. Celkový počet zariadení, ktoré je možné súčasne pripojiť na zbernicu, závisí len od jedného parametra. Toto je kapacita linky, ktorá nie je väčšia ako 400 pf.
Potvrdenie
Potvrdenie je povinný postup v procese prenosu údajov. Master generuje príslušný synchronizačný impulz, zatiaľ čo vysielač uvoľní linku SDA počas tohto synchronizačného impulzu ako potvrdenie. Potom musí prijímač zabezpečiť, aby bola linka SDA udržiavaná stabilne počas stavu vysokých hodín v stabilnom nízkom stave. V tomto prípade nezabudnite vziať do úvahy časy nastavenia a podržania.
V drvivej väčšine prípadov je pre adresáta povinné generovať potvrdenie po každom prijatom byte, s jedinou výnimkou, keď začiatok prenosu obsahuje CBUS adresu.
Ak prijímač-podriadený nemá žiadny spôsob, ako poslať potvrdenie o svojej vlastnej adrese, dátová linka by mala zostať vysoko a potom bude môcť master vydať signál „Stop“, ktorý preruší odosielanie všetky informácie. Ak je adresa potvrdená, ale podriadená jednotka nemôže dlhší čas prijímať žiadne ďalšie dáta, musí master prerušiť aj odosielanie. Aby to urobil, slave nepotvrdí ďalší prijatý bajt a jednoducho opustí riadokvysoká, čo spôsobí, že master vygeneruje signál zastavenia.
Ak procedúra prenosu predpokladá prítomnosť master-prijímača, potom v tomto prípade musí informovať slave o ukončení prenosu, a to tak, že nepotvrdí posledný prijatý bajt. V tomto prípade podriadený vysielač okamžite uvoľní dátovú linku, takže nadriadený môže vydať signál "Stop" alebo znova zopakovať signál "Štart".
Ak chcete skontrolovať, či zariadenie funguje, môžete skúsiť zadať štandardné príklady náčrtov pre rozhranie I2C v Arduine, ako na obrázku vyššie.
Arbitráž
Master môže začať odosielať informácie až po úplnom uvoľnení zbernice, ale dvaja alebo viacerí master môžu generovať štartovací signál pri minimálnom čase zdržania. To nakoniec vedie k špecifickému signálu „Štart“na autobuse.
Arbitráž funguje na zbernici SDA, kým je zbernica SCL vysoká. Ak jeden z masterov začne na dátovej linke vysielať nízku úroveň, no druhý je zároveň na vysokej úrovni, potom je od nej úplne odpojený, pretože stav SDL nezodpovedá vysokému stavu jeho vnútornej linky..
Arbitráž môže pokračovať cez niekoľko bitov. Vzhľadom na to, že najskôr sa prenáša adresa a až potom údaje, arbitráž môže trvať až do konca adresy, a ak budú majstri oslovovaťrovnaké zariadenie, potom sa arbitráže zúčastnia aj iné údaje. Vďaka tejto arbitrážnej schéme sa v prípade kolízie nestratia žiadne údaje.
Ak master stratí arbitráž, potom môže vydávať hodinové impulzy v SCL až do konca bajtu, počas ktorého sa stratil prístup.