I2C bussi ülevaade ja eelised
Philipsi poolt 1980. aastatel välja töötatud I2C (alternatiivselt kirjutatud I2C) on muutunud elektroonikas üheks enimkasutatavaks jadakommunikatsiooni protokolliks. I2C hõlbustab suhtlemist elektrooniliste komponentide või integreeritud vahel ahelad, kas komponendid on samal kohal PCB või ühendatud kaabliga.
Mis on I2C protokoll?
I2C on jadasideprotokoll, mis nõuab ainult kahte signaaliliini. See oli mõeldud suhtlemiseks trükkplaadil (PCB) olevate kiipide vahel. I2C oli algselt mõeldud 100 jaoks Kbps suhtlemine. Aastate jooksul on aga välja töötatud kiiremaid andmeedastusrežiime, et saavutada kiirus kuni 3,4 Mbit.
I2C põhiomadus on võime omada korraga palju komponente sidebuss ainult kahe juhtmega, mis muudab I2C ideaalseks lihtsate rakenduste jaoks. I2C protokoll on loodud ametliku standardina, mis võimaldab I2C rakenduste vahelist tagasiühilduvust.
I2C signaalid
I2C-protokoll kasutab sidesiinil olevate seadmetega suhtlemiseks kahte kahesuunalist signaaliliini. Kasutatakse kahte signaali:
- Serial Data Line (SDL)
- Serial Data Clock (SDC)
Põhjus, miks I2C saab mitme välisseadmega suhtlemiseks kasutada ainult kahte signaali, on siini kaudu toimuva side käsitlemine. Iga I2C suhtlus algab 7-natuke (või 10-bitine) aadress, mis kutsub välja välisseadme aadressi.
See võimaldab mitmel I2C siinil oleval seadmel täita esmase seadme rolli vastavalt süsteemi vajadustele. Sidekokkupõrgete vältimiseks sisaldab I2C protokoll arbitraaži ja kokkupõrke tuvastamise võimalusi, mis võimaldavad sujuvat sidet mööda siini.
I2C eelised
Sideprotokollina on I2C-l järgmised eelised:
- Paindlikud andmeedastuskiirused.
- Pikema vahemaaga side kui SPI.
- Iga siini seade on iseseisvalt adresseeritav.
- Seadmetel on lihtne esmane ja teisene suhe.
- See nõuab ainult kahte signaaliliini.
- See on võimeline käsitlema mitut esmast sidet, pakkudes arbitraaži ja side kokkupõrgete tuvastamist.
I2C piirangud
Kõigi nende eelistega on I2C-l ka mõned piirangud, mida võib olla vaja kavandada. Kõige olulisemad I2C piirangud on järgmised:
- Kuna seadme adresseerimiseks on saadaval ainult 7-bitine (või 10-bitine), võivad samas siinis olevad seadmed jagada sama aadressi. Mõned seadmed saavad konfigureerida aadressi viimaseid bitte, kuid see piirab seadmeid samas siinis.
- Saadaval on vaid mõned piiratud sidekiirused ja paljud seadmed ei toeta edastamist suurematel kiirustel. Siini iga kiiruse osaline tugi on vajalik, et aeglasemad seadmed ei saaks kinni osalisi ülekandeid, mis võivad põhjustada talitlushäireid.
- I2C siini jagatud olemus võib põhjustada kogu bussi rippumise, kui üksainus seade bussis lakkab töötamast. Bussi toite tsükliga ühendamine võib taastada õige töö.
- Kuna seadmed määravad ise oma sidekiiruse, võivad aeglasemalt töötavad seadmed kiiremate seadmete tööd edasi lükata.
- I2C võtab sideliinide avatud topoloogia tõttu rohkem energiat kui teised jadaside siinid.
- I2C siini piirangud piiravad tavaliselt siinis olevate seadmete arvu umbes kümneni.
I2C rakendused
I2C on suurepärane võimalus rakenduste jaoks, mis nõuavad pigem odavat ja lihtsat rakendamist kui suurt kiirust. Näiteks on I2C sideprotokolli levinud kasutusalad järgmised:
- Teatud mälu IC-de lugemine.
- Juurdepääs DAC-dele ja ADC-dele.
- Kasutaja suunatud toimingute edastamine ja juhtimine.
- Riistvaraandurite lugemine.
- Suhtlemine mitme mikrokontrolleriga.