Dikembangake dening Philips ing taun 1980-an, I2C dadi salah sawijining protokol komunikasi serial paling umum ing electronics. I2C mbisakake komunikasi antar komponen elektronik utawa IC kanggo IC, manawa komponen kasebut ing PCB padha utawa disambungake liwat kabel. Fitur utama I2C yaiku kemampuan kanggo duwe komponen sing akeh ing siji bus komunikasi kanthi mung loro kabel sing ndadekake I2C sampurna kanggo aplikasi sing nggunakake kesederhanaan lan biaya sing luwih murah tinimbang kacepetan.
Ringkesan Protokol I2C
I2C minangka protokol komunikasi serial sing mung mbutuhake loro garis sinyal sing dirancang kanggo komunikasi antarane chip ing PCB. I2C wiwitane dirancang kanggo komunikasi 100kbps nanging mode transmisi data sing luwih cepet wis dikembangake ing taun-taun iki kanggo entuk kecepatan nganti 3.4Mbit. Protokol I2C wis ditetepake minangka standar resmi, sing menehi kompatibilitas apik antarane implementasine I2C lan kompatibilitas sing apik.
Sinyal I2C
Protokol I2C migunakake mung loro garis sinyal bi-arah kanggo komunikasi karo kabeh piranti ing bus I2C. Sinyal loro sing digunakake yaiku:
- Serial Data Line (SDL)
- Jam Data Serial (SDC)
Alesan sing bisa digunakake dening I2C mung rong sinyal kanggo komunikasi karo sawetara periferal yaiku cara komunikasi bebarengan bis ditangani. Saben komunikasi I2C diwiwiti kanthi alamat 7-bit (utawa 10-bit) sing nyebataken alamat peripheral sisan komunikasi punika kagem nampi komunikasi kasebut. Iki ngidini sawetara piranti ing bus I2C kanggo muter peran piranti induk minangka kabutuhan sistem. Kanggo nyegah tabrakan komunikasi, protokol I2C kalebu arbitrase lan kemampuan deteksi tabrakan sing ngidini komunikasi alus ing sakderengipun bus.
Kaluwihan lan watesan
Minangka protokol komunikasi, I2C duweni akeh kaluwihan sing dadi pilihan sing apik kanggo akeh aplikasi desain sing ditempelake. I2C ndadekake kaluwihan kasebut:
- I2C mung mbutuhake loro garis sinyal
- Tarif transmisi data sing fleksibel
- Saben piranti ing bis bis gampang ditemokake
- Piranti duwe hubungan Master / Slave prasaja
- I2C saged nangani sawetara komunikasi master kanthi menehi arbitrase lan deteksi tabrakan komunikasi
- Komunikasi jarak luwih dawa tinimbang SPI
Kanthi kabeh kaluwihan kasebut, I2C uga nduweni watesan sawetara sing perlu dirancang ing sakubenge. Kawatesan I2C paling penting kalebu:
- Awit mung 7-bit (utawa 10-bit) sing kasedhiya kanggo alamat piranti, piranti ing bis sing padha bisa nuduhake alamat sing padha. Sawetara piranti bisa ngonfigurasi pungkasan sawetara bit alamat, nanging iki tetep ngugemi watesan piranti ing bus sing padha.
- Mung sawetara kecepatan komunikasi sing winates sing kasedhiya lan akeh piranti sing ora ndhukung kecepatan transmisi sing luwih dhuwur. Dhukungan parsial kanggo saben kacepetan ing bis perlu kanggo nyegah piranti sing luwih alon saka nangkep transmisi parsial sing bakal nyebabake kacepetan operasional.
- Umumé bis sing kasedhiya ing bus I2C bisa nyebabake bus sing nyimpang nalika piranti siji ing bis mandheg. Muter kertu kanggo bis bisa digunakake kanggo miwiti maneh bus lan ngolah operasi sing tepat.
- Wiwit piranti bisa nyetel kacepetan komunikasi, piranti operasional luwih alon bisa nolak operasi piranti cepet luwih cepet.
- I2C ndadekake luwih akeh tinimbang busses komunikasi serial liyane amarga topologi mbukak jalur komunikasi.
- Batasan saka bus I2C biasane mbatesi jumlah piranti ing bis kanggo ngubengi belasan piranti.
Aplikasi
Bus I2C minangka pilihan apik kanggo aplikasi sing mbutuhake biaya sing murah lan implementasine prasaja tinimbang kecepatan dhuwur. Contone, maca IC memori tartamtu, ngakses DACs lan ADCs, maca sensor , ngirim lan ngontrol aksi sing diarahake pengguna, maca sensor hardware, lan komunikasi karo mikrokontroler akeh migunakake protokol komunikasi I2C.