Dalam peralatan rumah tangga modern, elektronik industri dan berbagai peralatan telekomunikasi, solusi serupa sering ditemukan, meskipun produknya mungkin secara praktis tidak berhubungan. Misalnya, hampir setiap sistem menyertakan yang berikut ini:
- unit kontrol "pintar" tertentu, yang dalam sebagian besar kasus adalah komputer mikro chip tunggal;
- komponen tujuan umum seperti buffer LCD, RAM, port I/O, EEPROM atau konverter data khusus;
- komponen khusus termasuk penyetelan digital dan sirkuit pemrosesan sinyal untuk sistem video dan radio.
Bagaimana mengoptimalkan aplikasi mereka?
Untuk memaksimalkan solusi umum ini demi keuntungan desainer dan produsen, serta untuk meningkatkan kinerja keseluruhan berbagai perangkat keras dan menyederhanakan komponen sirkuit yang diterapkan, Philips mulai mengembangkan dua kabel dua arah yang paling sederhana. bus yang menyediakan antar-chip yang paling produktifkontrol. Bus ini menyediakan transfer data melalui antarmuka I2C.
Saat ini, rangkaian produk pabrikan mencakup lebih dari 150 CMOS, serta perangkat bipolar yang kompatibel dengan I2C dan dirancang untuk bekerja di salah satu kategori yang terdaftar. Perlu dicatat bahwa antarmuka I2C pada awalnya dibangun ke semua perangkat yang kompatibel, karena itu mereka dapat dengan mudah berkomunikasi satu sama lain menggunakan bus khusus. Karena penggunaan solusi desain seperti itu, dimungkinkan untuk memecahkan sejumlah besar masalah antarmuka berbagai peralatan, yang cukup khas untuk pengembangan sistem digital.
Manfaat Utama
Bahkan jika Anda melihat deskripsi singkat tentang antarmuka UART, SPI, I2C, Anda dapat menyoroti keuntungan berikut dari yang terakhir:
- Untuk bekerja, Anda hanya perlu dua baris - sinkronisasi dan data. Perangkat apa pun yang terhubung ke bus semacam itu kemudian dapat dialamatkan secara terprogram ke alamat yang benar-benar unik. Pada waktu tertentu, ada relasi sederhana yang memungkinkan master untuk bertindak sebagai master-transmitter atau master-receiver.
- Bus ini menyediakan kemampuan untuk memiliki beberapa master sekaligus, menyediakan semua sarana yang diperlukan untuk menentukan tabrakan, serta arbitrase untuk mencegah kerusakan data jika dua atau lebih master mulai mengirimkan informasi secara bersamaan. Dalam mode standarhanya transmisi data serial 8-bit yang disediakan dengan kecepatan tidak lebih dari 100 kbps, dan dalam mode cepat ambang batas ini dapat ditingkatkan empat kali lipat.
- Chip menggunakan filter built-in khusus yang secara efektif menekan lonjakan dan memastikan integritas data maksimum.
- Jumlah maksimum chip yang dapat dihubungkan ke satu bus hanya dibatasi oleh kapasitas maksimum yang mungkin 400 pF.
Manfaat untuk Konstruktor
Antarmuka I2C, serta semua chip yang kompatibel, dapat mempercepat proses pengembangan secara signifikan, dari diagram fungsional hingga prototipe akhir. Pada saat yang sama, perlu dicatat bahwa karena kemungkinan menghubungkan sirkuit mikro semacam itu langsung ke bus tanpa menggunakan semua jenis sirkuit tambahan, ruang disediakan untuk modernisasi lebih lanjut dan modifikasi sistem prototipe dengan memutuskan dan menghubungkan berbagai perangkat dari bis.
Ada banyak manfaat yang membuat antarmuka I2C menonjol. Deskripsi, khususnya, memungkinkan Anda untuk melihat keuntungan berikut untuk konstruktor:
- Blok pada diagram fungsional sepenuhnya sesuai dengan sirkuit mikro, dan pada saat yang sama, transisi yang cukup cepat dari fungsional ke fundamental disediakan.
- Tidak perlu mengembangkan antarmuka bus karena bus sudah terintegrasi secara bawaan ke dalam chip khusus.
- Protokol komunikasi terintegrasi danpengalamatan perangkat memungkinkan sistem untuk sepenuhnya ditentukan oleh perangkat lunak.
- Jenis sirkuit mikro yang sama, jika perlu, dapat digunakan dalam aplikasi yang sama sekali berbeda.
- Total waktu pengembangan berkurang secara signifikan karena fakta bahwa desainer dapat dengan cepat menjadi akrab dengan blok fungsional yang paling umum digunakan, serta berbagai sirkuit mikro.
- Jika diinginkan, Anda dapat menambah atau menghapus chip dari sistem, dan pada saat yang sama tidak banyak berpengaruh pada peralatan lain yang terhubung ke bus yang sama.
- Total waktu pengembangan perangkat lunak dapat dikurangi secara signifikan dengan mengizinkan pustaka modul perangkat lunak yang dapat digunakan kembali.
Di antara hal-hal lain, perlu diperhatikan prosedur yang sangat sederhana untuk mendiagnosis kegagalan yang telah terjadi dan debugging lebih lanjut, yang membedakan antarmuka I2C. Deskripsi menunjukkan bahwa, jika perlu, bahkan penyimpangan kecil dalam pengoperasian peralatan tersebut dapat langsung dipantau tanpa kesulitan apa pun dan, oleh karena itu, tindakan yang tepat dapat diambil. Perlu juga dicatat bahwa desainer mendapatkan solusi khusus, yang, khususnya, cukup menarik untuk berbagai peralatan dan sistem portabel yang menyediakan daya baterai menggunakan antarmuka I2C. Deskripsi dalam bahasa Rusia juga menunjukkan bahwa penggunaannya memungkinkan Anda untuk memberikan keuntungan penting berikut:
- Tingkat resistensi yang cukup tinggi terhadap gangguan yang muncul.
- Pada akhirnyakonsumsi daya rendah.
- Rentang tegangan suplai terluas.
- Kisaran suhu yang lebar.
Manfaat bagi para teknolog
Perlu dicatat bahwa tidak hanya desainer, tetapi juga teknolog baru-baru ini mulai sering menggunakan antarmuka I2C khusus. Deskripsi dalam bahasa Rusia menunjukkan berbagai keunggulan yang disediakan oleh kategori spesialis ini:
- Sebuah bus serial dua kawat standar dengan antarmuka ini meminimalkan interkoneksi antar IC, yang berarti ada lebih sedikit pin dan lebih sedikit trek yang dibutuhkan, membuat PCB lebih murah dan jauh lebih kecil.
- Sebuah antarmuka I2C terintegrasi LCD1602 atau beberapa opsi lain benar-benar menghilangkan kebutuhan untuk decoder alamat dan logika kecil eksternal lainnya.
- Dimungkinkan untuk menggunakan beberapa master pada bus seperti itu secara bersamaan, yang secara signifikan mempercepat pengujian dan pengaturan peralatan selanjutnya, karena bus dapat dihubungkan ke komputer jalur perakitan.
- Ketersediaan IC yang kompatibel dengan antarmuka ini dalam paket VSO, SO, dan DIL khusus dapat secara signifikan mengurangi persyaratan ukuran perangkat.
Ini hanyalah daftar singkat keunggulan yang membedakan antarmuka I2C dari LCD1602 dan lainnya. Selain itu, chip yang kompatibel dapat secara signifikan meningkatkan fleksibilitas sistem yang digunakan, menyediakandesain yang sangat sederhana dari berbagai opsi peralatan, serta peningkatan yang relatif mudah untuk mendukung pengembangan lebih lanjut di tingkat saat ini. Dengan demikian, dimungkinkan untuk mengembangkan seluruh keluarga peralatan yang berbeda, menggunakan model dasar tertentu sebagai dasar.
Modernisasi peralatan lebih lanjut dan perluasan fungsinya dapat dilakukan melalui koneksi standar ke bus dari sirkuit mikro yang sesuai menggunakan antarmuka Arduino 2C atau lainnya dari daftar yang tersedia. Jika ROM yang lebih besar diperlukan, maka itu hanya akan cukup untuk memilih mikrokontroler lain dengan ROM yang ditingkatkan. Karena chip yang diperbarui dapat sepenuhnya menggantikan yang lama jika perlu, Anda dapat dengan mudah menambahkan fitur baru ke peralatan atau meningkatkan kinerjanya secara keseluruhan hanya dengan melepas chip usang dan kemudian menggantinya dengan peralatan yang lebih baru.
ACCESS.bus
Karena fakta bahwa bus memiliki sifat dua kabel, serta kemungkinan pengalamatan program, salah satu platform yang paling ideal untuk ACCESS.bus adalah antarmuka I2C. Spesifikasi (deskripsi dalam bahasa Rusia disajikan dalam artikel) perangkat ini menjadikannya alternatif yang jauh lebih murah daripada antarmuka RS-232C yang sebelumnya aktif digunakan untuk menghubungkan berbagai periferal ke komputer menggunakan konektor empat pin standar.
Pengenalan spesifikasi
Untuk aplikasi modernKontrol 8-bit, yang menggunakan mikrokontroler, dimungkinkan untuk menetapkan beberapa kriteria desain:
- sistem lengkap sebagian besar mencakup satu mikrokontroler dan periferal lainnya, termasuk memori dan berbagai port I/O;
- total biaya menggabungkan perangkat yang berbeda dalam satu sistem harus diminimalkan sebanyak mungkin;
- sistem yang mengontrol fungsi tidak menyediakan kebutuhan untuk menyediakan transfer informasi berkecepatan tinggi;
- efisiensi total secara langsung tergantung pada peralatan yang dipilih serta sifat bus penghubung.
Untuk merancang sistem yang sepenuhnya memenuhi kriteria yang tercantum, Anda perlu menggunakan bus yang akan menggunakan antarmuka serial I2C. Meskipun bus serial tidak memiliki bandwidth bus paralel, namun membutuhkan koneksi yang lebih sedikit dan pin chip yang lebih sedikit. Pada saat yang sama, jangan lupa bahwa bus tidak hanya mencakup kabel penghubung, tetapi juga berbagai prosedur dan format yang diperlukan untuk memastikan komunikasi di dalam sistem.
Perangkat yang berkomunikasi menggunakan emulasi perangkat lunak dari antarmuka I2C atau bus yang sesuai harus memiliki protokol khusus yang memungkinkan Anda untuk mencegah berbagai kemungkinan tabrakan, kehilangan, atau pemblokiran informasi. Perangkat cepat harus dapat berkomunikasi dengan perangkat lambat, dan sistem tidak boleh bergantung padadari peralatan yang terhubung dengannya, karena jika tidak, semua perbaikan dan modifikasi tidak akan dapat digunakan. Juga perlu untuk mengembangkan prosedur dengan bantuan yang realistis untuk menetapkan perangkat tertentu yang saat ini menyediakan kontrol bus dan pada titik waktu apa. Selain itu, jika perangkat yang berbeda dengan frekuensi clock yang berbeda terhubung ke bus yang sama, Anda perlu memutuskan sumber sinkronisasinya. Semua kriteria ini dipenuhi oleh antarmuka I2C untuk AVR dan lainnya dari daftar ini.
Konsep Utama
Bus I2C dapat mendukung teknologi chip apa pun yang digunakan. Antarmuka I2C LabVIEW dan lainnya yang serupa menyediakan penggunaan dua jalur untuk mentransfer informasi - data dan sinkronisasi. Setiap perangkat yang terhubung dengan cara ini dikenali melalui alamat uniknya, terlepas dari apakah itu buffer LCD, mikrokontroler, memori atau antarmuka keyboard, dan dapat bertindak sebagai penerima atau pemancar, tergantung pada apa yang dimaksudkan untuk peralatan ini.
Dalam sebagian besar kasus, buffer LCD adalah receiver standar, dan memori tidak hanya dapat menerima, tetapi juga mengirimkan berbagai data. Antara lain, menurut proses pemindahan informasi, perangkat dapat diklasifikasikan sebagai slave dan master.
Dalam hal ini, master adalah perangkat yang memulai transfer data, dan juga menghasilkansinyal sinkronisasi. Dalam hal ini, semua perangkat yang dapat dialamatkan akan dianggap sebagai budak terkait dengannya.
Antarmuka komunikasi I2C menyediakan kehadiran beberapa master sekaligus, yaitu, lebih dari satu perangkat yang mampu mengendalikan bus dapat terhubung dengannya. Kemampuan untuk menggunakan lebih dari satu mikrokontroler pada bus yang sama berarti bahwa lebih dari satu master dapat diteruskan pada waktu tertentu. Untuk menghilangkan potensi kekacauan yang berisiko muncul ketika situasi seperti itu muncul, prosedur arbitrase khusus telah dikembangkan yang menggunakan antarmuka I2C. Ekspander dan perangkat lain menyediakan untuk menghubungkan perangkat ke bus sesuai dengan apa yang disebut aturan pengkabelan.
Menghasilkan sinyal clock adalah tanggung jawab master, dan setiap master menghasilkan sinyalnya sendiri selama transfer data, dan itu hanya dapat berubah nanti jika "ditarik" oleh budak lambat atau master lain ketika tabrakan terjadi.
Parameter umum
Baik SCL dan SDA adalah jalur dua arah yang terhubung ke catu daya positif dengan resistor pull-up. Ketika ban benar-benar bebas, setiap baris berada pada posisi tinggi. Tahap keluaran perangkat yang terhubung ke bus harus open-drain atau open-collector sehingga fungsi AND berkabel dapat disediakan. Informasi melalui antarmuka I2C dapat ditransmisikan dengan kecepatan tidak lebih dari 400 kbpsmode cepat, sedangkan kecepatan standar tidak melebihi 100 kbps. Jumlah total perangkat yang dapat dihubungkan secara bersamaan ke bus hanya bergantung pada satu parameter. Ini adalah kapasitansi saluran, yang tidak lebih dari 400 pf.
Konfirmasi
Konfirmasi adalah prosedur wajib dalam proses transfer data. Master menghasilkan pulsa sinkronisasi yang sesuai saat pemancar melepaskan jalur SDA selama pulsa sinkronisasi ini sebagai pengakuan. Setelah itu, penerima harus memastikan bahwa saluran SDA tetap stabil selama keadaan jam tinggi dalam keadaan rendah yang stabil. Dalam hal ini, pastikan untuk memperhitungkan pengaturan dan waktu.
Dalam sebagian besar kasus, penerima yang dialamatkan wajib membuat pengakuan setelah setiap byte diterima, dengan satu-satunya pengecualian adalah ketika awal transmisi menyertakan alamat CBUS.
Jika penerima-budak tidak memiliki cara untuk mengirim konfirmasi alamatnya sendiri, jalur data harus dibiarkan tinggi, dan kemudian master akan dapat mengeluarkan sinyal "Stop", yang akan mengganggu pengiriman semua informasi. Jika alamat telah dikonfirmasi, tetapi budak tidak dapat menerima data lagi untuk waktu yang lama, master juga harus menghentikan pengiriman. Untuk melakukan ini, budak tidak mengakui byte berikutnya yang diterima dan hanya meninggalkan baristinggi, menyebabkan master menghasilkan sinyal berhenti.
Jika prosedur transfer menyediakan kehadiran master-receiver, maka dalam hal ini harus menginformasikan slave tentang akhir transmisi, dan ini dilakukan dengan tidak mengakui byte terakhir yang diterima. Dalam hal ini, slave-transmitter segera melepaskan jalur data sehingga master dapat mengeluarkan sinyal "Stop" atau mengulang sinyal "Start" lagi.
Untuk memeriksa apakah peralatan berfungsi, Anda dapat mencoba memasukkan contoh sketsa standar antarmuka I2C di Arduino, seperti pada foto di atas.
Arbitrase
Master dapat mulai mengirim informasi hanya setelah bus benar-benar gratis, tetapi dua atau lebih master dapat menghasilkan sinyal mulai pada waktu penahanan minimum. Ini akhirnya menghasilkan sinyal "Mulai" tertentu di bus.
Arbitrase bekerja di bus SDA saat bus SCL tinggi. Jika salah satu master mulai mentransmisikan level rendah pada jalur data, tetapi pada saat yang sama yang lain tinggi, maka yang terakhir benar-benar terputus darinya, karena status SDL tidak sesuai dengan status tinggi dari saluran internalnya..
Arbitrase dapat berlanjut selama beberapa bit. Karena kenyataan bahwa alamat ditransmisikan terlebih dahulu, dan kemudian data, arbitrase dapat berlangsung hingga akhir alamat, dan jika master akan menanganiperangkat yang sama, maka data yang berbeda juga akan berpartisipasi dalam arbitrase. Karena skema arbitrase ini, tidak ada data yang hilang jika terjadi tabrakan.
Jika master kehilangan arbitrase, maka master dapat mengeluarkan pulsa clock di SCL hingga akhir byte, di mana akses hilang.