Dibangunkan oleh Philips pada tahun 1980-an, I2C (secara alternatif dieja I2C) telah menjadi salah satu protokol komunikasi bersiri yang paling biasa digunakan dalam elektronik. I2C memudahkan komunikasi antara komponen elektronik atau litar bersepadu, sama ada komponen berada pada PCB yang sama atau disambungkan dengan kabel.
Apakah itu Protokol I2C?
I2C ialah protokol komunikasi bersiri yang hanya memerlukan dua talian isyarat. Ia direka untuk komunikasi antara cip pada papan litar bercetak (PCB). I2C pada asalnya direka untuk komunikasi 100 Kbps. Walau bagaimanapun, mod penghantaran data yang lebih pantas telah dibangunkan selama ini untuk mencapai kelajuan sehingga 3.4 Mbit.
Ciri utama I2C ialah keupayaan untuk mempunyai banyak komponen pada bas komunikasi tunggal dengan hanya dua wayar, yang menjadikan I2C sempurna untuk aplikasi mudah. Protokol I2C telah ditetapkan sebagai standard rasmi, membenarkan keserasian ke belakang antara pelaksanaan I2C.
Isyarat I2C
Protokol I2C menggunakan dua talian isyarat dua arah untuk berkomunikasi dengan peranti pada bas komunikasi. Dua isyarat yang digunakan ialah:
- Barisan Data Bersiri (SDL)
- Jam Data Bersiri (SDC)
Sebab I2C boleh menggunakan hanya dua isyarat untuk berkomunikasi dengan beberapa peranti adalah dalam cara komunikasi sepanjang bas dikendalikan. Setiap komunikasi I2C bermula dengan alamat 7-bit (atau 10-bit) yang memanggil alamat persisian.
Ini membolehkan berbilang peranti pada bas I2C memainkan peranan peranti utama mengikut keperluan sistem. Untuk mengelakkan perlanggaran komunikasi, protokol I2C termasuk keupayaan timbang tara dan pengesanan perlanggaran, yang membolehkan komunikasi lancar di sepanjang bas.
Manfaat I2C
Sebagai protokol komunikasi, I2C mempunyai kelebihan berikut:
- Kadar penghantaran data yang fleksibel.
- Komunikasi jarak jauh lebih jauh daripada SPI.
- Setiap peranti di dalam bas boleh dialamatkan secara berasingan.
- Peranti mempunyai hubungan primer/sekunder yang mudah.
- Ia hanya memerlukan dua talian isyarat.
- Ia mampu mengendalikan berbilang komunikasi utama dengan menyediakan timbang tara dan pengesanan perlanggaran komunikasi.
Had I2C
Dengan semua kelebihan ini, I2C juga mempunyai beberapa batasan yang mungkin perlu direka bentuk. Had I2C yang paling penting termasuk:
- Memandangkan hanya 7-bit (atau 10-bit) tersedia untuk pengalamatan peranti, peranti pada bas yang sama boleh berkongsi alamat yang sama. Sesetengah peranti boleh mengkonfigurasi beberapa bit terakhir alamat, tetapi ini mengenakan pengehadan peranti pada bas yang sama.
- Hanya beberapa kelajuan komunikasi terhad tersedia dan banyak peranti tidak menyokong penghantaran pada kelajuan yang lebih tinggi. Sokongan separa untuk setiap kelajuan di dalam bas diperlukan untuk menghalang peranti yang lebih perlahan daripada menangkap penghantaran separa yang boleh mengakibatkan gangguan operasi.
- Sifat perkongsian bas I2C boleh mengakibatkan keseluruhan bas tergantung apabila satu peranti pada bas berhenti beroperasi. Berbasikal kuasa ke bas boleh memulihkan operasi yang betul.
- Memandangkan peranti menetapkan kelajuan komunikasinya sendiri, peranti operasi yang lebih perlahan boleh melambatkan operasi peranti yang lebih pantas.
- I2C menarik lebih kuasa daripada bas komunikasi bersiri lain disebabkan topologi saluran komunikasi terbuka.
- Keterbatasan bas I2C biasanya mengehadkan bilangan peranti pada bas kepada sekitar sedozen.
Aplikasi I2C
I2C ialah pilihan hebat untuk aplikasi yang memerlukan kos rendah dan pelaksanaan mudah berbanding kelajuan tinggi. Contohnya, penggunaan biasa protokol komunikasi I2C termasuk:
- Membaca IC memori tertentu.
- Mengakses DAC dan ADC.
- Menghantar dan mengawal tindakan terarah pengguna.
- Membaca penderia perkakasan.
- Berkomunikasi dengan berbilang pengawal mikro.