Dalam perkakas rumah moden, elektronik perindustrian dan pelbagai peralatan telekomunikasi, penyelesaian yang serupa selalunya boleh ditemui, walaupun produk tersebut mungkin tidak berkaitan. Contohnya, hampir setiap sistem termasuk yang berikut:
- unit kawalan "pintar" tertentu, yang dalam kebanyakan kes ialah mikrokomputer cip tunggal;
- komponen tujuan am seperti penimbal LCD, RAM, port I/O, EEPROM atau penukar data khusus;
- komponen khusus termasuk penalaan digital dan litar pemprosesan isyarat untuk sistem video dan radio.
Bagaimana untuk mengoptimumkan aplikasi mereka?
Untuk memanfaatkan sepenuhnya penyelesaian biasa ini untuk manfaat pereka dan pengilang, serta meningkatkan prestasi keseluruhan pelbagai perkakasan dan memudahkan komponen litar yang digunakan, Philips menetapkan untuk membangunkan dua arah dua wayar yang paling mudah bas yang menyediakan antara cip yang paling produktifkawalan. Bas ini menyediakan pemindahan data melalui antara muka I2C.
Hari ini, rangkaian produk pengeluar termasuk lebih daripada 150 CMOS, serta peranti bipolar yang serasi dengan I2C dan direka bentuk untuk berfungsi dalam mana-mana kategori yang disenaraikan. Perlu diingatkan bahawa antara muka I2C pada mulanya dibina ke dalam semua peranti yang serasi, yang mana mereka boleh berkomunikasi dengan mudah antara satu sama lain menggunakan bas khas. Oleh kerana penggunaan penyelesaian reka bentuk sedemikian, adalah mungkin untuk menyelesaikan sejumlah besar masalah antara muka pelbagai peralatan, yang agak tipikal untuk pembangunan sistem digital.
Faedah Utama
Walaupun jika anda melihat penerangan ringkas antara muka UART, SPI, I2C, anda boleh menyerlahkan kelebihan berikut:
- Untuk bekerja, anda hanya memerlukan dua baris - penyegerakan dan data. Mana-mana peranti yang bersambung ke bas sedemikian kemudiannya boleh dialamatkan secara pemrograman ke alamat yang benar-benar unik. Pada bila-bila masa, terdapat perhubungan mudah yang membolehkan tuan bertindak sebagai pemancar-induk atau penerima-induk.
- Bas ini menyediakan keupayaan untuk mempunyai beberapa tuan sekaligus, menyediakan semua cara yang diperlukan untuk menentukan perlanggaran, serta timbang tara untuk mengelakkan rasuah data sekiranya dua atau lebih tuan mula menghantar maklumat secara serentak. Dalam mod standardhanya penghantaran data 8-bit bersiri disediakan pada kelajuan tidak lebih daripada 100 kbps, dan dalam mod pantas ambang ini boleh ditingkatkan empat kali ganda.
- Cip menggunakan penapis terbina dalam khas yang berkesan menyekat lonjakan dan memastikan integriti data maksimum.
- Bilangan maksimum cip yang boleh disambungkan kepada satu bas hanya dihadkan oleh kapasiti maksimum yang mungkin sebanyak 400 pF.
Faedah untuk Pembina
Antara muka I2C, serta semua cip yang serasi, boleh mempercepatkan proses pembangunan dengan ketara, daripada gambar rajah berfungsi hingga prototaip terakhirnya. Pada masa yang sama, perlu diperhatikan bahawa disebabkan kemungkinan menyambungkan litar mikro tersebut terus ke bas tanpa menggunakan semua jenis litar tambahan, ruang disediakan untuk pemodenan dan pengubahsuaian sistem prototaip selanjutnya dengan memutuskan sambungan dan menyambungkan pelbagai peranti dari bas.
Terdapat banyak faedah yang menjadikan antara muka I2C menonjol. Penerangan, khususnya, membolehkan anda melihat kelebihan berikut untuk pembina:
- Blok pada rajah berfungsi sepenuhnya sepadan dengan litar mikro, dan pada masa yang sama, peralihan yang agak cepat daripada berfungsi kepada asas disediakan.
- Tidak perlu membangunkan antara muka bas kerana bas telah disepadukan secara asli ke dalam cip khusus.
- Protokol komunikasi bersepadu danpengalamatan peranti membolehkan sistem ditakrifkan sepenuhnya oleh perisian.
- Jenis litar mikro yang sama, jika perlu, boleh digunakan dalam aplikasi yang sama sekali berbeza.
- Jumlah masa pembangunan dikurangkan dengan ketara disebabkan oleh fakta bahawa pereka boleh dengan cepat membiasakan diri dengan blok berfungsi yang paling biasa digunakan, serta pelbagai litar mikro.
- Jika mahu, anda boleh menambah atau mengalih keluar cip daripada sistem, dan pada masa yang sama tidak memberi banyak kesan pada peralatan lain yang disambungkan ke bas yang sama.
- Jumlah masa pembangunan perisian boleh dikurangkan dengan ketara dengan membenarkan perpustakaan modul perisian boleh guna semula.
Antara lain, perlu diperhatikan prosedur yang sangat mudah untuk mendiagnosis kegagalan yang telah berlaku dan penyahpepijatan selanjutnya, yang membezakan antara muka I2C. Penerangan menunjukkan bahawa, jika perlu, penyimpangan kecil dalam pengendalian peralatan tersebut boleh dipantau serta-merta tanpa sebarang kesulitan dan, oleh itu, langkah yang sesuai boleh diambil. Perlu juga diperhatikan bahawa pereka mendapat penyelesaian khas, yang, khususnya, agak menarik untuk pelbagai peralatan dan sistem mudah alih yang menyediakan kuasa bateri menggunakan antara muka I2C. Penerangan dalam bahasa Rusia juga menunjukkan bahawa penggunaannya membolehkan anda memberikan kelebihan penting berikut:
- Tahap rintangan yang cukup tinggi terhadap sebarang gangguan yang timbul.
- Akhirnyapenggunaan kuasa yang rendah.
- Julat voltan bekalan terluas.
- Julat suhu yang luas.
Faedah untuk ahli teknologi
Perlu diingat bahawa bukan sahaja pereka, tetapi juga ahli teknologi baru-baru ini mula menggunakan antara muka I2C khusus dengan agak kerap. Penerangan dalam bahasa Rusia menunjukkan rangkaian kelebihan yang agak luas yang disediakan oleh kategori pakar ini:
- Bas bersiri dua wayar standard dengan antara muka ini meminimumkan sambungan antara IC, bermakna terdapat lebih sedikit pin dan lebih sedikit trek yang diperlukan, menjadikan PCB lebih murah dan lebih kecil.
- Antara muka I2C bersepadu sepenuhnya LCD1602 atau beberapa pilihan lain menghapuskan sepenuhnya keperluan untuk penyahkod alamat dan logik kecil luaran yang lain.
- Anda boleh menggunakan beberapa induk pada bas sedemikian pada masa yang sama, yang mempercepatkan ujian dan persediaan peralatan seterusnya dengan ketara, memandangkan bas boleh disambungkan ke komputer barisan pemasangan.
- Ketersediaan IC yang serasi dengan antara muka ini dalam pakej VSO, SO dan DIL tersuai boleh mengurangkan keperluan saiz peranti dengan ketara.
Ini hanyalah senarai pendek kelebihan yang membezakan antara muka I2C LCD1602 dan lain-lain. Di samping itu, cip yang serasi boleh meningkatkan fleksibiliti sistem yang digunakan dengan ketara, menyediakanreka bentuk yang sangat mudah untuk pelbagai pilihan peralatan, serta peningkatan yang agak mudah untuk menyokong pembangunan selanjutnya pada tahap semasa. Oleh itu, adalah mungkin untuk membangunkan seluruh keluarga peralatan yang berbeza, menggunakan model asas tertentu sebagai asas.
Pemodenan selanjutnya peralatan dan pengembangan fungsinya boleh dilakukan melalui sambungan standard ke bas litar mikro yang sepadan menggunakan antara muka Arduino 2C atau mana-mana yang lain daripada senarai yang tersedia. Jika ROM yang lebih besar diperlukan, maka ia hanya mencukupi untuk memilih mikropengawal lain dengan ROM yang meningkat. Memandangkan cip yang dikemas kini boleh menggantikan cip lama sepenuhnya jika perlu, anda boleh dengan mudah menambah ciri baharu pada peralatan atau meningkatkan prestasi keseluruhannya dengan hanya mencabut sambungan cip usang dan kemudian menggantikannya dengan peralatan yang lebih baharu.
ACCESS.bas
Oleh kerana bas mempunyai sifat dua wayar, serta kemungkinan menangani program, salah satu platform yang paling sesuai untuk ACCESS.bus ialah antara muka I2C. Spesifikasi (penerangan dalam bahasa Rusia dibentangkan dalam artikel) peranti ini menjadikannya alternatif yang jauh lebih murah kepada antara muka RS-232C yang digunakan secara aktif sebelum ini untuk menyambungkan pelbagai persisian ke komputer menggunakan penyambung empat pin standard.
Pengenalan spesifikasi
Untuk aplikasi modenKawalan 8-bit, yang menggunakan mikropengawal, adalah mungkin untuk menetapkan beberapa kriteria reka bentuk:
- sistem lengkap kebanyakannya merangkumi satu mikropengawal dan peranti lain, termasuk memori dan pelbagai port I/O;
- jumlah kos untuk menggabungkan peranti yang berbeza dalam satu sistem hendaklah diminimumkan sebanyak mungkin;
- sistem yang mengawal fungsi tidak menyediakan keperluan untuk menyediakan pemindahan maklumat berkelajuan tinggi;
- jumlah kecekapan bergantung secara langsung pada peralatan yang dipilih serta sifat bas penghubung.
Untuk mereka bentuk sistem yang memenuhi kriteria yang disenaraikan sepenuhnya, anda perlu menggunakan bas yang akan menggunakan antara muka bersiri I2C. Walaupun bas bersiri tidak mempunyai lebar jalur bas selari, ia memerlukan lebih sedikit sambungan dan lebih sedikit pin cip. Pada masa yang sama, jangan lupa bahawa bas termasuk bukan sahaja wayar penyambung, tetapi juga pelbagai prosedur dan format yang diperlukan untuk memastikan komunikasi dalam sistem.
Peranti yang berkomunikasi menggunakan emulasi perisian antara muka I2C atau bas yang sepadan mesti mempunyai protokol khusus yang membolehkan anda menghalang pelbagai kemungkinan perlanggaran, kehilangan atau penyekatan maklumat. Peranti pantas sepatutnya boleh berkomunikasi dengan peranti perlahan, dan sistem tidak boleh bergantung kepadadaripada peralatan yang disambungkan kepadanya, kerana jika tidak semua penambahbaikan dan pengubahsuaian tidak akan dapat digunakan. Ia juga perlu untuk membangunkan prosedur dengan bantuan yang realistik untuk menentukan peranti tertentu yang sedang menyediakan kawalan bas dan pada masa yang mana. Di samping itu, jika peranti berbeza dengan frekuensi jam berbeza disambungkan ke bas yang sama, anda perlu memutuskan sumber penyegerakannya. Semua kriteria ini dipenuhi oleh antara muka I2C untuk AVR dan mana-mana yang lain daripada senarai ini.
Konsep Utama
Bas I2C boleh menyokong sebarang teknologi cip yang digunakan. Antara muka I2C LabVIEW dan lain-lain yang serupa dengannya menyediakan penggunaan dua baris untuk memindahkan maklumat - data dan penyegerakan. Mana-mana peranti yang disambungkan dengan cara ini dikenali melalui alamat uniknya, tidak kira sama ada ia adalah penimbal LCD, mikropengawal, memori atau antara muka papan kekunci, dan boleh bertindak sebagai penerima atau pemancar, bergantung pada kegunaan peranti ini untuk peralatan ini.
Dalam kebanyakan kes, penimbal LCD ialah penerima standard, dan memori bukan sahaja boleh menerima, tetapi juga menghantar pelbagai data. Antara lain, mengikut proses memindahkan maklumat, peranti boleh diklasifikasikan sebagai hamba dan tuan.
Dalam kes ini, induk ialah peranti yang memulakan pemindahan data dan juga menjanaisyarat penyegerakan. Dalam kes ini, mana-mana peranti yang boleh dialamatkan akan dianggap sebagai hamba yang berkaitan dengannya.
Antara muka komunikasi I2C menyediakan kehadiran beberapa induk sekaligus, iaitu, lebih daripada satu peranti yang mampu mengawal bas dapat menyambung kepadanya. Keupayaan untuk menggunakan lebih daripada satu mikropengawal pada bas yang sama bermakna lebih daripada satu induk boleh dimajukan pada bila-bila masa. Untuk menghapuskan potensi huru-hara yang berisiko muncul apabila situasi sedemikian timbul, prosedur timbang tara khusus telah dibangunkan yang menggunakan antara muka I2C. Pengembang dan peranti lain menyediakan peranti untuk menyambung ke bas mengikut peraturan pendawaian yang dipanggil.
Menjana isyarat jam adalah tanggungjawab tuan, dan setiap tuan menjana isyarat sendiri semasa pemindahan data, dan ia hanya boleh berubah kemudian jika ia "ditarik" oleh hamba yang perlahan atau tuan lain apabila perlanggaran berlaku.
Parameter umum
Kedua-dua SCL dan SDA ialah talian dwiarah yang bersambung kepada bekalan kuasa positif dengan perintang tarik naik. Apabila tayar benar-benar bebas, setiap baris berada dalam kedudukan tinggi. Peringkat keluaran peranti yang disambungkan ke bas mestilah longkang terbuka atau pengumpul terbuka supaya fungsi berwayar DAN boleh disediakan. Maklumat melalui antara muka I2C boleh dihantar pada kelajuan tidak lebih daripada 400 kbpsmod pantas, manakala kelajuan standard tidak melebihi 100 kbps. Jumlah bilangan peranti yang boleh disambungkan secara serentak ke bas bergantung pada satu parameter sahaja. Ini ialah kapasiti talian, yang tidak melebihi 400 pf.
Pengesahan
Pengesahan ialah prosedur wajib dalam proses pemindahan data. Induk menjana nadi penyegerakan yang sesuai manakala pemancar melepaskan talian SDA semasa nadi penyegerakan ini sebagai pengakuan. Selepas itu, penerima mesti memastikan bahawa talian SDA dipegang stabil semasa keadaan jam tinggi dalam keadaan rendah stabil. Dalam kes ini, pastikan anda mengambil kira masa persediaan dan tahan.
Dalam kebanyakan kes, penerima beralamat adalah wajib untuk menjana pengakuan selepas setiap bait diterima, dengan satu-satunya pengecualian ialah apabila permulaan penghantaran termasuk alamat CBUS.
Jika hamba penerima tidak mempunyai cara untuk menghantar pengesahan alamatnya sendiri, talian data harus dibiarkan tinggi, dan kemudian tuan akan dapat mengeluarkan isyarat "Berhenti", yang akan mengganggu penghantaran semua maklumat. Jika alamat telah disahkan, tetapi hamba tidak dapat menerima data lagi untuk masa yang lama, tuan juga mesti mengganggu penghantaran. Untuk melakukan ini, hamba tidak mengakui bait seterusnya yang diterima dan hanya meninggalkan baristinggi, menyebabkan induk menjana isyarat berhenti.
Jika prosedur pemindahan memperuntukkan kehadiran penerima induk, maka dalam kes ini ia mesti memaklumkan hamba tentang akhir penghantaran, dan ini dilakukan dengan tidak mengakui bait terakhir yang diterima. Dalam kes ini, penghantar hamba segera melepaskan talian data supaya tuan boleh mengeluarkan isyarat "Berhenti" atau mengulangi isyarat "Mula" sekali lagi.
Untuk menyemak sama ada peralatan berfungsi, anda boleh cuba memasukkan contoh lakaran standard untuk antara muka I2C dalam Arduino, seperti dalam foto di atas.
Timbangtara
Master boleh mula menghantar maklumat hanya selepas bas benar-benar percuma, tetapi dua atau lebih master boleh menjana isyarat mula pada masa penahanan minimum. Ini akhirnya menghasilkan isyarat "Mula" khusus pada bas.
Timbangtara berfungsi pada bas SDA manakala bas SCL tinggi. Jika salah satu tuan mula menghantar tahap rendah pada talian data, tetapi pada masa yang sama yang lain tinggi, maka yang terakhir terputus sepenuhnya daripadanya, kerana keadaan SDL tidak sepadan dengan keadaan tinggi talian dalamannya..
Arbitraj mungkin berterusan selama beberapa bit. Disebabkan fakta bahawa alamat dihantar terlebih dahulu, dan kemudian data, timbang tara boleh bertahan sehingga akhir alamat, dan jika tuan akan menanganiperanti yang sama, maka data yang berbeza juga akan mengambil bahagian dalam timbang tara. Disebabkan oleh skim timbang tara ini, tiada data akan hilang jika sebarang perlanggaran berlaku.
Jika induk kehilangan timbang tara, maka ia boleh mengeluarkan denyutan jam dalam SCL sehingga penghujung bait, semasa akses telah hilang.