Dikembangkan oleh Philips pada 1980-an, I2C (atau dieja I2C) telah menjadi salah satu protokol komunikasi serial yang paling umum digunakan dalam elektronik. I2C memfasilitasi komunikasi antar komponen elektronik atau sirkuit terpadu, baik komponen tersebut berada pada PCB yang sama atau terhubung dengan kabel.
Apakah Protokol I2C itu?
I2C adalah protokol komunikasi serial yang hanya membutuhkan dua jalur sinyal. Itu dirancang untuk komunikasi antara chip pada papan sirkuit tercetak (PCB). I2C awalnya dirancang untuk komunikasi 100 Kbps. Namun, mode transmisi data yang lebih cepat telah dikembangkan selama bertahun-tahun untuk mencapai kecepatan hingga 3.4 Mbit.
Fitur utama I2C adalah kemampuannya untuk memiliki banyak komponen pada bus komunikasi tunggal dengan hanya dua kabel, yang membuat I2C sempurna untuk aplikasi sederhana. Protokol I2C telah ditetapkan sebagai standar resmi, memungkinkan kompatibilitas mundur di antara implementasi I2C.
Sinyal I2C
Protokol I2C menggunakan dua jalur sinyal dua arah untuk berkomunikasi dengan perangkat di bus komunikasi. Dua sinyal yang digunakan adalah:
- Serial Data Line (SDL)
- Serial Data Clock (SDC)
Alasan mengapa I2C hanya dapat menggunakan dua sinyal untuk berkomunikasi dengan beberapa periferal adalah bagaimana komunikasi di sepanjang bus ditangani. Setiap komunikasi I2C dimulai dengan alamat 7-bit (atau 10-bit) yang memanggil alamat periferal.
Ini memungkinkan beberapa perangkat di bus I2C untuk memainkan peran perangkat utama sesuai kebutuhan sistem. Untuk mencegah tabrakan komunikasi, protokol I2C menyertakan kemampuan arbitrasi dan deteksi tabrakan, yang memungkinkan komunikasi lancar di sepanjang bus.
Manfaat I2C
Sebagai protokol komunikasi, I2C memiliki keunggulan sebagai berikut:
- Tingkat transmisi data yang fleksibel.
- Komunikasi jarak jauh dari SPI.
- Setiap perangkat di bus dapat dialamatkan secara independen.
- Perangkat memiliki hubungan primer/sekunder yang sederhana.
- Hanya membutuhkan dua jalur sinyal.
- Ini mampu menangani beberapa komunikasi utama dengan menyediakan arbitrase dan deteksi tabrakan komunikasi.
Keterbatasan I2C
Dengan semua kelebihan ini, I2C juga memiliki beberapa keterbatasan yang mungkin perlu dirancang. Batasan I2C yang paling penting meliputi:
- Karena hanya 7-bit (atau 10-bit) yang tersedia untuk pengalamatan perangkat, perangkat di bus yang sama dapat berbagi alamat yang sama. Beberapa perangkat dapat mengonfigurasi beberapa bit terakhir dari alamat, tetapi ini memberlakukan batasan perangkat pada bus yang sama.
- Hanya beberapa kecepatan komunikasi terbatas yang tersedia, dan banyak perangkat tidak mendukung transmisi pada kecepatan yang lebih tinggi. Dukungan parsial untuk setiap kecepatan pada bus diperlukan untuk mencegah perangkat yang lebih lambat menangkap transmisi parsial yang dapat mengakibatkan gangguan operasional.
- Sifat bersama dari bus I2C dapat mengakibatkan seluruh bus hang ketika satu perangkat di bus berhenti beroperasi. Bersepeda daya ke bus dapat memulihkan operasi yang benar.
- Karena perangkat mengatur kecepatan komunikasinya sendiri, perangkat yang beroperasi lebih lambat dapat menunda pengoperasian perangkat yang lebih cepat.
- I2C membutuhkan lebih banyak daya daripada bus komunikasi serial lainnya karena topologi saluran komunikasi saluran terbuka.
- Keterbatasan bus I2C biasanya membatasi jumlah perangkat di bus menjadi sekitar selusin.
Aplikasi I2C
I2C adalah pilihan yang bagus untuk aplikasi yang membutuhkan biaya rendah dan implementasi sederhana daripada kecepatan tinggi. Misalnya, penggunaan umum protokol komunikasi I2C meliputi:
- Membaca IC memori tertentu.
- Mengakses DAC dan ADC.
- Mengirim dan mengontrol tindakan yang diarahkan pengguna.
- Membaca sensor perangkat keras.
- Berkomunikasi dengan beberapa mikrokontroler.