Dibangunkan oleh Philips pada tahun 1980-an, I2C telah menjadi salah satu protokol komunikasi siri yang paling biasa dalam elektronik. I2C membolehkan komunikasi antara komponen elektronik atau IC ke IC, sama ada komponen berada pada PCB yang sama atau disambungkan melalui kabel. Ciri utama I2C adalah keupayaan untuk mempunyai sejumlah besar komponen pada satu bas komunikasi tunggal dengan hanya dua wayar yang membuat I2C sempurna untuk aplikasi yang menuntut kesederhanaan dan kos rendah ke atas kelajuan.
Protokol I2C
I2C adalah protokol komunikasi siri yang hanya memerlukan dua baris isyarat. Ia direka untuk komunikasi antara cip pada PCB. I2C pada asalnya direka untuk komunikasi 100kbps tetapi mod penghantaran data yang lebih cepat telah dibangunkan selama bertahun-tahun untuk mencapai kelajuan sehingga 3.4Mbit. Protokol I2C telah ditubuhkan sebagai standard rasmi, yang menyediakan keserasian yang baik di kalangan pelaksanaan I2C dan keserasian ke belakang yang baik.
Isyarat I2C
Protokol I2C menggunakan hanya dua garisan isyarat dua arah untuk berkomunikasi dengan semua peranti pada bas I2C. Kedua-dua isyarat yang digunakan adalah:
- Talian Data Serial (SDL)
- Jam Data Serial (SDC)
Alasan bahawa I2C hanya boleh menggunakan dua isyarat untuk berkomunikasi dengan beberapa peralatan adalah bagaimana komunikasi sepanjang bas dikendalikan. Setiap komunikasi I2C bermula dengan alamat 7-bit (atau 10-bit) yang memanggil alamat periferi selebihnya komunikasi dimaksudkan untuk menerima komunikasi. Ini membolehkan beberapa peranti di bas I2C untuk memainkan peranan peranti induk sebagai keperluan sistem yang dikehendaki. Untuk mengelakkan pertembungan komunikasi, protokol I2C termasuk keupayaan pengesanan timbang tara dan perlanggaran yang membolehkan komunikasi lancar sepanjang bas.
Kelebihan dan batasan
Sebagai protokol komunikasi, I2C mempunyai banyak kelebihan yang dibuat adalah pilihan yang baik untuk banyak aplikasi reka bentuk terbenam. I2C membawa kelebihan berikut:
- I2C hanya memerlukan dua baris isyarat
- Kadar penghantaran data yang fleksibel
- Setiap peranti di dalam bas boleh dihubungi secara bebas
- Peranti mempunyai hubungan Master / Hamba yang mudah
- I2C mampu menangani pelbagai komunikasi induk dengan menyediakan pengesanan arbitrase dan perhubungan perlanggaran
- Komunikasi jarak jauh dari SPI
Dengan semua kelebihan ini, I2C juga mempunyai beberapa batasan yang mungkin perlu dirancang sekitar. Keterbatasan I2C yang paling penting termasuk:
- Oleh kerana hanya 7-bit (atau 10-bit) tersedia untuk menangani peranti, peranti pada bas yang sama boleh berkongsi alamat yang sama. Sesetengah peranti mampu mengkonfigurasi beberapa bit terakhir alamat, tetapi ini masih mengenakan batasan peranti pada bas yang sama.
- Hanya beberapa kelajuan komunikasi terhad yang tersedia dan banyak peranti tidak menyokong penghantaran pada kelajuan yang lebih tinggi. Sokongan separa bagi setiap kelajuan di dalam bas diperlukan untuk mencegah peranti perlahan daripada menangkap penghantaran separa yang akan mengakibatkan gangguan operasi.
- Sifat shared bus I2C boleh mengakibatkan seluruh bas yang tergantung apabila satu peranti di bas berhenti beroperasi. Berbasikal kuasa ke bas boleh digunakan untuk memulakan semula bas dan memulihkan operasi yang betul.
- Oleh kerana peranti boleh menetapkan kelajuan komunikasi mereka, peranti operasi yang perlahan boleh melambatkan operasi peranti kelajuan lebih cepat.
- I2C menarik lebih banyak kuasa daripada bas komunikasi bersiri lain kerana topologi saluran terbuka saluran komunikasi.
- Keterbatasan bas I2C biasanya mengehadkan bilangan peranti pada bas ke sekitar selusin peranti.
Permohonan
Bas I2C adalah pilihan yang hebat untuk aplikasi yang memerlukan kos rendah dan pelaksanaan yang mudah dan bukannya kelajuan tinggi. Sebagai contoh, membaca IC memori tertentu, mengakses DAC dan ADC, membaca sensor, menghantar dan mengawal tindakan yang diarahkan pengguna, membaca sensor perkakasan, dan berkomunikasi dengan pelbagai mikrokontroler adalah kegunaan umum protokol komunikasi I2C.