Kehalusan Protokol I2C – Bagian 1

Artikel ini adalah yang pertama dari seri yang menjelaskan aspek yang lebih ‘halus’ dari Protokol I2C, yang awalnya dikembangkan oleh Philips.

Karena Anda membaca seri ini, saya berasumsi Anda sudah tahu apa itu bus I2C, dan Anda ingin menghindari rasa sakit ketika Anda perlu menggunakannya dalam sebuah proyek. Jika demikian, Anda telah datang ke tempat yang tepat. Jika tidak, saya akan segera menambahkan beberapa informasi pengantar I2C di situs web saya.

Agar kami jelas, seri ini tidak akan mencakup cakupan mode kecepatan tinggi, karena ini secara substansial berbeda dari desain dan perilaku implementasi bus bersama 2-kawat normal, dan juga tidak umum digunakan. Ada banyak bahan referensi bagus yang tersedia di Web yang mencakup mode ini.

Berikut adalah daftar singkat dari apa yang akan dibahas dalam sisa seri:

Best software for Home Improvement free
  • hilang MULAI
  • hilang STOP
  • MULAI berulang
  • bit data yang hilang
  • hilang ACK/NAK
  • data setelah NAK
  • kesalahan back-to-back
  • resistor penarik
  • repeater bus
  • implementasi menggunakan periferal TWI atau I2C perangkat keras lengkap
  • implementasi menggunakan periferal USI
  • implementasi menggunakan periferal USART
  • Perbedaan SMBus dari I2C

Sekarang, ke hal-hal yang baik!

Best application for Insurance free

Untuk artikel ini, kami akan fokus pada 3 jenis implementasi yang akan Anda temukan dalam desain saat ini: perangkat keras lengkap, campuran perangkat keras/perangkat lunak, dan perangkat lunak lengkap (atau sering disebut ‘bit-bang’).

Banyak mikrokontroler saat ini, bahkan beberapa perangkat kelas bawah, menyertakan perangkat I2C yang sepenuhnya perangkat keras. Atmel menyebut milik mereka sebagai TWI, Microchip menyebut milik mereka I2C; vendor lain menggunakan penamaan yang sama. Saat menggunakan pendekatan perangkat keras penuh, sebenarnya sulit untuk menghasilkan kesalahan bus apa pun kecuali Anda salah memahami cara kerja periferal atau seperti apa urutan bus I2C yang benar. Namun, secara umum, pendekatan ini membutuhkan pemahaman yang paling tidak mendalam tentang protokol itu sendiri.

See also  Forensik Komputer, Pemulihan Data, dan E-Discovery Berbeda

Periferal USI yang ditemukan di beberapa perangkat Atmel adalah desain perangkat keras minimal yang bergantung pada interaksi perangkat lunak untuk menjadikannya implementasi yang lengkap. Periferal serbaguna ini sebenarnya dapat digunakan untuk konfigurasi I2C, SPI dan UART, dan sesuai untuk perangkat kelas bawah di mana menambahkan ketiga periferal akan memakan biaya yang mahal. Meskipun membutuhkan lebih banyak pengkodean daripada perangkat I2C TWI atau perangkat keras penuh, dalam beberapa hal lebih fleksibel. Pendekatan ini membutuhkan pemahaman yang lebih mendalam tentang protokol, karena Anda bertanggung jawab untuk berpindah dari satu keadaan ke keadaan berikutnya, dan dimungkinkan untuk pergi ke arah yang salah.

Terakhir, menerapkan pendekatan perangkat lunak 100% menuntut pemahaman penuh tentang protokol I2C. Hampir setiap vendor mikrokontroler menyediakan catatan aplikasi dan contoh kode untuk membuat perangkat Master I2C menggunakan solusi perangkat lunak murni. Tidak seperti UART, I2C adalah protokol clock (bukan waktunya), sehingga interupsi dalam pelaksanaan protokol ditoleransi dengan baik, memungkinkan interupsi untuk dilayani tanpa khawatir kehilangan data. Kecepatan maksimum solusi berbasis perangkat lunak pada akhirnya ditentukan oleh kecepatan clock CPU, dan biasanya implementasi Master dapat dengan mudah mencapai kecepatan 400KHz.

Implementasi perangkat Slave berbasis perangkat lunak jauh lebih menantang. Tanpa dukungan perangkat keras, perangkat lunak harus memantau jalur SDA dan SCL secara bersamaan untuk mendeteksi tepi jam dan mengetahui secara positif status jalur SDA sebelum naik atau turunnya SCL. Deteksi kondisi START atau STOP biasanya memerlukan penggunaan interupsi, jika tidak, perangkat lunak harus 100% dikonsumsi dengan pemantauan SCL dan SDA. Implementasi Slave berbasis perangkat lunak cenderung terikat pada CPU, membutuhkan beberapa MIPS untuk mencapai operasi 100KHz bahkan. Oleh karena itu, implementasi Slave khusus perangkat lunak yang sebenarnya bahkan mungkin tidak ada untuk beberapa keluarga mikrokontroler, dan yang lain mungkin tidak mampu mencapai kecepatan bus 100KHz penuh.

See also  Singkatan Warna Coach Purse

Dengan dasar perangkat keras dan perangkat lunak ini telah diletakkan, kami akan menyelam lebih dalam ke protokol itu sendiri di artikel kami berikutnya. Terima kasih sudah membaca!

(Hak Cipta 2010 Robert G. Fries)

Next Article Home and Family