Skip to main content

Mi az I2C protokoll?

Beágyazott tech - I2C (Április 2025)

Beágyazott tech - I2C (Április 2025)
Anonim

A Philips által az 1980-as években kifejlesztett I2C az elektronika egyik legelterjedtebb soros kommunikációs protokolljává vált. Az I2C lehetővé teszi az elektronikai alkatrészek vagy az IC-IC közötti kommunikációt, függetlenül attól, hogy az összetevők ugyanazon a nyomtatott áramköri lapon vannak-e vagy kábelen keresztül vannak-e csatlakoztatva. Az I2C legfontosabb jellemzője az, hogy egyetlen kommunikációs buszon nagyszámú komponens létezik, csak két vezetékkel, ami az I2C-t olyan alkalmazások számára teszi tökéletessé, amelyek egyszerűséget és alacsony sebességet igényelnek.

Az I2C protokoll

Az I2C egy soros kommunikációs protokoll, amely csak két jelvezetéket igényel. Úgy tervezték, hogy a chipek között kommunikáljon a nyomtatott áramkörön. Az I2C-t eredetileg 100kbps-os kommunikációra tervezték, de az évek során gyorsabb adatátviteli módokat fejlesztettek ki, hogy elérjék a legfeljebb 3,4 Mbit sebességet. Az I2C protokoll hivatalos szabványként jött létre, amely jó kompatibilitást biztosít az I2C implementációk és a jó visszafelé kompatibilitás között.

I2C jelek

Az I2C protokoll csak két kétirányú jelvezetéket használ az I2C buszon lévő összes eszközzel történő kommunikációhoz. Az alkalmazott két jel:

  • Soros adatvonal (SDL)
  • Serial Data Clock (SDC)

Az az oka, hogy az I2C csak két jelet használhat több perifériával való kommunikációra, a kommunikáció a buszon keresztül történik. Minden I2C kommunikáció egy 7 bites (vagy 10 bites) címmel kezdődik, amely felhívja a periféria címét, a kommunikáció többi része a kommunikáció fogadására szolgál. Ez lehetővé teszi, hogy az I2C buszon több eszköz játsszon a mester eszköz szerepét, ahogy a rendszer igényei diktálják. A kommunikációs ütközés elkerülése érdekében az I2C protokoll olyan választott és ütközéses felismerési lehetőségeket tartalmaz, amelyek lehetővé teszik a sínes kommunikációt a buszon.

Előnyök és korlátok

A kommunikációs protokollnak köszönhetően az I2C-nek sok előnye van, ami jó választás számos beágyazott tervezési alkalmazáshoz. Az I2C a következő előnyökkel jár:

  • Az I2C csak két jelvezetéket igényel
  • Rugalmas adatátviteli sebesség
  • A busz minden eszköze egymástól függetlenül címezhető
  • Az eszközöknek egyszerű Master / Slave kapcsolatuk van
  • Az I2C képes több master kommunikáció kezelésére választott és kommunikációs ütközés észlelésével
  • Hosszabb távú kommunikáció, mint az SPI

Ezen előnyök mindegyikének köszönhetően az I2C-nek is van néhány korlátozása, amelyet körül kell terveznie. A legfontosabb I2C korlátozások a következők:

  • Mivel csak 7 bit (vagy 10 bit) áll rendelkezésre az eszköz címzésére, ugyanazon a buszon lévő eszközök ugyanazt a címet használhatják. Néhány eszköz képes beállítani a cím utolsó néhány bitjét, de ez még mindig korlátozza az eszközöket ugyanazon a buszon.
  • Csak néhány korlátozott kommunikációs sebesség áll rendelkezésre, és sok eszköz nem támogatja a továbbítást nagyobb sebességgel. A busz minden egyes sebességének részleges támogatására van szükség, hogy megakadályozza a lassabb eszközök részleges átvitelét, ami működési hibákat eredményez.
  • Az I2C busz megosztott jellege az egész busz lógását eredményezheti, ha egy buszon lévő eszköz leáll. A busz áramellátását a busz újraindításához és helyes működésének visszaállításához lehet használni.
  • Mivel az eszközök képesek kommunikációs sebességüket beállítani, a lassabb működtető eszközök késleltethetik a gyorsabb sebességű eszközök működését.
  • Az I2C nagyobb teljesítményt vonz, mint a többi soros kommunikációs busz, a kommunikációs vonalak nyílt lefolyó topológiája miatt.
  • Az I2C busz korlátozásai általában a buszon lévő eszközök számát mintegy tucat eszközre korlátozzák.

Alkalmazások

Az I2C busz nagyszerű lehetőség olyan alkalmazásokhoz, amelyek alacsony költség mellett egyszerű végrehajtást igényelnek, nem pedig nagy sebességűek. Például az I2C kommunikációs protokoll gyakori használata az egyes memóriakártyák olvasása, DAC és ADC elérése, érzékelők olvasása, felhasználó által irányított műveletek továbbítása és vezérlése, hardveres érzékelők olvasása és több mikrokontrollerrel való kommunikáció.