Skip to main content

Ano ang I2C Protocol?

How I2C Communication Works and How To Use It with Arduino (Abril 2025)

How I2C Communication Works and How To Use It with Arduino (Abril 2025)
Anonim

Na binuo ni Philips noong dekada ng 1980, ang I2C ay naging isa sa mga pinaka-karaniwang serial protocol ng komunikasyon sa electronics. Pinapayagan ng I2C ang komunikasyon sa pagitan ng mga elektronikong sangkap o IC sa IC, kung ang mga sangkap ay nasa parehong PCB o konektado sa pamamagitan ng isang cable. Ang pangunahing tampok ng I2C ay ang kakayahan na magkaroon ng isang malawak na bilang ng mga bahagi sa isang solong komunikasyon bus na may lamang dalawang mga wire na gumagawa ng perpektong I2C para sa mga application na hinihiling na simple at mababang gastos sa paglipas ng bilis.

Ang I2C Protocol

Ang I2C ay serial communication protocol na nangangailangan lamang ng dalawang linya ng signal. Ito ay dinisenyo para sa komunikasyon sa pagitan ng mga chips sa isang PCB. Ang orihinal na idinisenyo ng I2C para sa 100kbps komunikasyon ngunit mas mabilis ang mga mode ng paghahatid ng data na binuo sa paglipas ng mga taon upang makamit ang mga bilis ng hanggang sa 3.4Mbit. Ang I2C protocol ay itinatag bilang isang opisyal na pamantayan, na nagbibigay ng mahusay na pagiging tugma sa mga pagpapatupad ng I2C at mahusay na pabalik na pagkakatugma.

I2C Signals

Ang I2C Protocol ay gumagamit lamang ng dalawang bi-directional signal lines upang makipag-ugnayan sa lahat ng mga aparato sa bus ng I2C. Ang dalawang senyas na ginamit ay:

  • Serial Data Line (SDL)
  • Serial Data Clock (SDC)

Ang dahilan kung bakit maaaring gamitin ng I2C ang dalawang senyas upang makipag-usap sa isang bilang ng mga peripheral ay kung paano ang komunikasyon sa kahabaan ng bus ay hinahawakan. Ang bawat komunikasyon ng I2C ay nagsisimula sa isang 7-bit (o 10-bit) na address na tumatawag sa address ng paligid ang natitirang bahagi ng komunikasyon ay sinadya upang matanggap ang komunikasyon. Pinapayagan nito ang maramihang mga aparato sa bus ng I2C upang i-play ang papel ng master device bilang mga pangangailangan ng sistema na magdikta. Upang maiwasan ang mga pag-crash ng komunikasyon, kabilang ang protocol ng I2C ang mga arbitrasyon at mga kakayahan sa pagkakita ng banggaan na nagpapahintulot sa makinis na komunikasyon sa kahabaan ng bus.

Mga kalamangan at limitasyon

Bilang isang komunikasyon protocol, ang I2C ay may maraming mga pakinabang na gumawa ay isang mahusay na pagpipilian para sa maraming mga naka-embed na mga aplikasyon ng disenyo. Pinagsasama ng I2C ang mga sumusunod na pakinabang:

  • Ang I2C ay nangangailangan lamang ng dalawang linya ng signal
  • Flexible data transmission rate
  • Ang bawat aparato sa bus ay nakapag-iisa nang direksiyon
  • Ang mga aparato ay may simpleng kaugnayan sa Master / Alipin
  • Ang I2C ay may kakayahang pangasiwaan ang maramihang mga komunikasyon sa pamamagitan ng pagbibigay ng pagtukoy ng arbitrasyon at komunikasyon ng banggaan
  • Ang mas matagal na komunikasyon sa distansya kaysa sa SPI

Sa lahat ng mga pakinabang na ito, ang I2C ay mayroon ding ilang mga limitasyon na maaaring kailanganin upang maging dinisenyo sa paligid. Ang pinakamahalagang mga limitasyon ng I2C ay kinabibilangan ng:

  • Dahil tanging 7-bits (o 10-bit) ang magagamit para sa pag-address ng aparato, ang mga device sa parehong bus ay maaaring magbahagi ng parehong address. Ang ilang mga aparato ay may kakayahang i-configure ang huling ilang mga piraso ng address, ngunit ito pa rin ang nagpapataw ng isang limitasyon ng mga aparato sa parehong bus.
  • Lamang ng ilang mga limitadong mga bilis ng komunikasyon ay magagamit at maraming mga aparato ay hindi sumusuporta sa paghahatid sa mas mataas na bilis. Ang bahagyang suporta para sa bawat bilis sa bus ay kinakailangan upang maiwasan ang mas mabagal na mga aparato mula sa pagkuha ng mga bahagyang pagpapadala na magreresulta sa pagpapatakbo glitches.
  • Ang nakabahaging katangian ng bus ng I2C ay maaaring magresulta sa buong bus na nakabitin kapag ang isang solong aparato sa bus ay tumatakbo. Ang pagbibisikleta ng kapangyarihan sa bus ay maaaring magamit upang muling simulan ang bus at ibalik ang tamang operasyon.
  • Dahil ang mga aparato ay maaaring magtakda ng kanilang bilis ng komunikasyon, ang mas mabagal na mga aparato sa pagpapatakbo ay maaaring makapagpagpaliban sa pagpapatakbo ng mas mabilis na mga aparato ng bilis
  • Ang I2C ay nakakakuha ng higit na lakas kaysa sa iba pang mga serial bus ng komunikasyon dahil sa bukas na pagpapatakbo ng topology ng mga linya ng komunikasyon.
  • Ang mga limitasyon ng bus ng I2C ay kadalasang nililimitahan ang bilang ng mga aparato sa isang bus sa paligid ng isang dosenang mga aparato.

Mga Application

Ang bus ng I2C ay isang mahusay na pagpipilian para sa mga application na nangangailangan ng mababang gastos at simpleng pagpapatupad kaysa sa mataas na bilis. Halimbawa, ang pagbabasa ng ilang memory ICs, pag-access sa DACs at ADCs, pagbabasa ng mga sensors, pagpapadala at pagkontrol sa mga pagkilos na nakadirekta sa gumagamit, pagbabasa ng sensor ng hardware, at pakikipag-usap sa maraming microcontrollers ay karaniwang ginagamit ng protocol ng komunikasyon ng I2C.