GNU/Linux >> Belajar Linux >  >> Linux

Apa itu I2C (Inter-Integrated-Circuit)?

Pemirsa Target

Artikel ini mengasumsikan bahwa pembaca sudah familiar dengan sirkuit elektronik dasar dan terminologi.

Pengantar

Tujuan artikel ini adalah untuk membiasakan pembaca dengan dasar-dasar bus komunikasi I2C, termasuk cara pengaturannya, sifat fisiknya, dan di mana serta mengapa sering digunakan.


.

I2C

I2C biasanya diucapkan “I-two-C”, meskipun terkadang juga ditulis sebagai IIC (dan diucapkan “I-I-C”) atau IC (diucapkan “I-squared-C”). Singkatan singkatan dari Inter-Integrated-Circuit. Ini adalah jenis bus komputer serial dan protokol komunikasi yang pertama kali diperkenalkan ke pasar oleh Philips Semiconductor pada tahun 1982.

I2C adalah cara yang memungkinkan beberapa perangkat elektronik (paling sering sirkuit terintegrasi periferal berkecepatan rendah) untuk berkomunikasi satu sama lain melalui sepasang kabel. Kabel ini juga disebut jalur data, atau bus. Bus pertama ini adalah jalur data dan disebut SDA (S erial DA ta), dan bus lainnya adalah jam, atau SCL (S erial CL ok) baris. Karena semua perangkat di sirkuit I2C mana pun terhubung ke dua jalur ini untuk berkomunikasi, sebagian besar perangkat yang kompatibel dengan I2C memiliki pin berlabel SDA dan SCL, serta pin VIN dan GND untuk koneksi positif dan ground.
.

Skema I2C Khas / dilisensikan di bawah CC BY-SA 3.0

.
Baik bus jam maupun bus data adalah jalur saluran terbuka. Sebuah resistor harus dihubungkan antara setiap saluran dan suplai tegangan positif rangkaian (juga disebut sebagai Vcc) agar bus dapat bekerja dengan benar. Ukuran resistor ini dapat bervariasi, dari 1 kΩ hingga 47 kΩ, tetapi resistor harus ada di antara bus dan tegangan TINGGI sistem. Jika tidak ada, semua jalur akan ditarik rendah, dan bus I2C akan gagal bekerja. Untungnya, hanya satu pasang resistor (satu untuk setiap saluran) yang diperlukan untuk keseluruhan sistem, bukan sepasang untuk setiap perangkat–yang dapat dengan cepat menjadi berantakan dengan banyak perangkat.

Beberapa perangkat (juga disebut node) dapat dilampirkan ke bus ini. Faktanya, jumlah perangkat yang secara praktis dapat dihubungkan ke sirkuit I2C apa pun biasanya hanya dibatasi oleh ruang, kapasitansi yang melekat pada saluran, dan alamat perangkat yang terhubung. Sebagian besar ahli setuju bahwa batas ini turun sekitar 1.008 perangkat.

Ada dua jenis perangkat dalam komunikasi I2C:master dan slave. Dalam sebagian besar implementasi protokol ada satu perangkat master yang terhubung ke banyak budak. Dimungkinkan untuk memiliki lebih dari satu master yang berkomunikasi dengan berbagai perangkat slave serta master lainnya, tetapi bentuk ini kurang umum dan sedikit di luar cakupan pengantar ini. Banyak perangkat I2C dapat dikonfigurasi sebagai master atau slave, tergantung pada hasil sistem yang diinginkan. Node master adalah satu-satunya perangkat yang mengontrol jalur jam (SCL), dan merupakan satu-satunya perangkat yang dapat memulai transfer data. Node budak terbatas untuk mendengarkan dan menanggapi panggilan dari node master. Setiap node, termasuk master, memiliki alamat unik (biasanya 7-bit) yang mengidentifikasinya di jaringan I2C. Dalam beberapa kasus, panjang alamat bisa 10 bit, memungkinkan lebih dari 128 perangkat berbeda, tetapi ini bukan pengaturan normal.

Selama pengoperasian sistem I2C, node master mengirimkan perintah dan permintaan pada jalur data. Sinyal-sinyal ini panjangnya 8 bit, hanya dimulai ketika garis jam TINGGI, dan dimulai dengan urutan 'mulai' tertentu dan diakhiri dengan urutan 'berhenti' tertentu. Urutan awal memperingatkan semua node budak yang terhubung bahwa permintaan transfer data sudah dekat. Urutan berikutnya yang dikirimkan master adalah alamat dari slave yang ingin berkomunikasi. Node slave yang diberi nama kemudian merespons master, mulai dari sinyal clock HIGH berikutnya, dan slave lainnya kembali mendengarkan alamat mereka untuk dipanggil.

Bit kedelapan yang dikirim dengan perintah, setelah alamat perangkat 7-bit, adalah bit baca/tulis sederhana. Ini memberi tahu perangkat yang dialamatkan apakah perangkat master akan membaca dari atau menulis ke perangkat tersebut. Hal ini memungkinkan perangkat penerima untuk menyiapkan data untuk dikirim atau bersiap untuk menerima data di sepanjang jalur SDA pada sinyal TINGGI clock berikutnya.

Kecepatan clock (dan transfer sinyal terkait) di sebagian besar sirkuit I2C biasanya berada di antara komunikasi serial dan kecepatan SPI, antara 100kHz dan 400kHz. I2C umumnya digunakan dalam sistem di mana kesederhanaan, biaya rendah, dan daya rendah lebih penting daripada kecepatan. Beberapa dari aplikasi ini termasuk konverter analog-ke-digital, layar LCD, jam waktu nyata, dan banyak sensor berbeda seperti barometer, kompas, dan bahkan penerima GPS.

I2C adalah protokol komunikasi yang sangat berguna, meskipun mungkin hanya berlaku untuk sejumlah kecil aplikasi. Ini sangat ideal untuk pengaturan kecil, konsumsi daya rendah, dan sebagai hasilnya telah menemukan pengikut di antara banyak penggemar, yang menggunakannya untuk menghubungkan sensor dan kontrol dengan perangkat tertanam dan mikrokontroler seperti Arduino dan Raspberry Pi. Dua pin GPIO Pi telah disetel untuk antarmuka dengan perangkat yang menggunakan protokol, dan perpustakaan kawat Arduino memungkinkan komunikasi dengan perangkat I2C. Mempelajari dan menggunakan I2C dapat secara signifikan memperluas perangkat penghobi dalam hal membangun proyek.

Atlantic.Net

Atlantic.net menawarkan hosting VPS serta layanan hosting terkelola yang mencakup lapisan layanan terkelola penting bisnis untuk paket hosting Anda. Hubungi kami hari ini untuk informasi lebih lanjut.


Linux
  1. Apa yang Dilakukan "lc_all=c"?

  2. Apa yang Digema $? Mengerjakan??

  3. Apa itu RAID?

  1. Apa itu pengguna Linux?

  2. Apa itu Opsi +FollowSymLinks?

  3. Kaset Linux, apa l a dan m di akhir perangkat kaset di dev?

  1. Apa itu sysadmin?

  2. Apa?

  3. Apa itu Sertifikat SSL?