I2C (Inter-Integrated Circuit) merupakan patokan bus serial dua-kawat multi-master sampai multi-slave yang memungkinkan komunikasi serial pada sejumlah bit rate (tergantung mode yang didukung) lewat beberapa meter kabel. I2C adalah patokan yang relatif lama, tapi masih sungguh terkenal yang hadir di tempat peristiwa pada tahun 1982.
Sejak itu, antarmuka budi 5V sudah berbincang jalan ke patokan tegangan yang jauh lebih rendah dan tata cara bus I2C perlu mengakomodasi untuk pemindahan level untuk memungkinkan komunikasi dengan perangkat tegangan antarmuka yang berlainan pada bus yang sama. Kecepatan data komunikasi juga meningkat dari kecepatan clock 100 kHz orisinil sampai 5MHz dalam mode ultra-cepat, dan level shifting mesti bisa mengakomodasi laju data yang lebih tinggi ini.
Sinyal I2C terdiri dari sinyal data tunggal yang menenteng level budi divalidasi oleh sinyal clock. Kedua sinyal dua arah, digerakkan oleh satu atau lebih master atau slave tergantung pada kondisi sistem. Untuk menghambat pertengkaran yang menghancurkan yang disebabkan oleh output yang mendorong satu sama lain, Drain terbuka atau output Collector terbuka dengan resistor pull up menggerakkan bus.
![]() | |
|
Oleh lantaran itu, kecepatan transisi antara rendah ke tinggi pada sinyal bus dibatasi oleh waktu yang diinginkan untuk muatan listrik yang disimpan pada kapasitansi benalu pada kawat 'C' untuk dikeluarkan lewat resistansi pull-up 'R', 3dB. titik yang didefinisikan oleh persamaan: f3dB = 1/(2π.RC)
Misalnya, jikalau pemuatan bus kapasitif adonan merupakan 100pF, dan resistansi pull-up adonan pada sinyal di bus menjadi 1.5kΩ, titik 3dB sekitar 1MHz. Ini menghambat kecepatan data maksimum yang mungkin di bus tapi memiliki fungsi yang terang lantaran tidak pernah mempunyai suasana di mana output impedansi rendah saling mendorong, membuat arus tinggi yang menghancurkan mengalir lewat gerbang. Sifat dua arah dari sinyal I2C , kombinasi level tegangan bus dan persyaratan output drain terbuka sungguh menyusahkan rangkaian terjemahan level.
Kompatibilitas Tingkat Logika
Level atau tingkat budi yang berlainan mempunyai tegangan ambang budi yang berlainan yang menyeleksi transisi budi tinggi/rendah. Standar tegangan yang berlainan juga membuat duduk kendala lantaran adanya sambungan Perangkat Semikonduktor. Level sinyal yang didorong lebih tinggi dari tegangan supply memaksa dioda ke konduksi dalam kondisi destruktif yang disebut "latch-up".I2C secara biasa sudah menyanggupi patokan budi 5V, tapi mempunyai potensi perlu melakukan pekerjaan dengan banyak patokan antarmuka tegangan rendah lainnya. Bahkan saat ambang antarmuka patokan dan tempat terlihat dalam rentang yang sanggup diterima, margin kegaduhan meminimalkan kinerja bus tanpa terjemahan tingkat budi yang tepat.
![]() | |
|
Penggunaan buffer dua arah mungkin tidak secara spesifik berbincang terjemahan tegangan yang berbeda, tapi sanggup menolong menjaga toleransi tegangan di mana level sinyal kompatibel di antara standar. I2C Repeater juga menawarkan cara untuk mengisolasi muatan kapasitif bus dengan membaginya menjadi dua, memperluas jalur kabel atau sejumlah perangkat yang sanggup disokong dalam sebuah sistem.
Antarmuka I2C sangat toleran kepada kabel yang panjang lantaran kecepatan data yang rendah, derma pensinyalan 5V dan sifat drain terbuka. Karakteristik ini menjadikannya dipakai dalam suasana di mana perangkat yang terpasang dan keluar dari bus serial memperbesar kompleksitas rangkaian terjemahan level dan koneksi yang terbuka memperbesar persyaratan untuk proteksi pelepasan muatan listrik statis (ESD).
Metode Tingkat Terjemahan MOSFET diskrit
Pergeseran tingkat dua arah mesti ditangani di kedua arah. Metode paling sederhana menggunakan MOSFET seperti yang digambarkan pada gambar 3, dan diterangkan secara lebih rinci dalam catatan aplikasi AN10441. Meskipun level pergantian MOSFET sanggup diterima untuk patokan komunikasi 100kHz sampai 400kHz, itu tak punya kinerja yang diinginkan untuk mode operasi yang lebih singkat lantaran kekurangan frekuensi yang disebutkan sebelumnya yang dipaksakan oleh konstanta waktu RC. Dalam problem di mana mode bandwidth yang lebih tinggi digunakan, perangkat penerjemah tingkat tujuan khusus diperlukan.![]() |
Gambar 3: Terjemahan Tingkat Berbasis MOSFET |
Sinyal yang berada di dalam rentang ini membuat apa yang disebut 'status meta-stabil' yang membuat gangguan sinyal. Input pemicu Schmitt merupakan antarmuka khusus dengan Histerisis tegangan yang disebabkan oleh umpan balik faktual dari output gerbang input. Ini mengembangkan margin noise dan meminimalkan potensi metastabilitas lantaran sinyal yang berganti dengan lambat.
Selain itu, sinyal noise, lambat atau non-monotonik, sanggup ada pada I2C serial bus juga diperbaiki menggunakan algoritma debounce. Algoritma debounce memperkenalkan waktu tunggu di mana sinyal input dipantau selama periode waktu untuk level sinyal kontinu sebelum berubah, menolak transisi kesalahan yang tergolong dalam periode ini. Ini merupakan teknik yang dipakai dengan FPGA dan implementasi perangkat lunak 'bit-banging' pada mikrokontroler.
Metode Terisolasi
Sistem menyerupai diterangkan pada gambar 4 merupakan tata cara non-terisolasi dengan koneksi listrik pribadi antara kedua perangkat, terlepas dari terjemahan level tegangan. Karena antarmuka I2C tidak sepadan dan sanggup mempunyai kabel interkoneksi yang panjang, perbedaan potensial ini sanggup membuat arus kegaduhan atau noise imitasi pada sinyal ground. Lahan yang tidak diisolasi sanggup membuat kondisi gangguan yang berbahaya saat mempunyai problem dengan rangkaian tegangan tinggi. I2C interface yang dipakai dalam aplikasi yang melintasi batas isolasi mesti menyanggupi patokan keamanan dan memerlukan isolasi galvanik.
![]() |
Gambar 4: Terjemahan Tingkat Non-Terisolasi |
Semua ini condong untuk menyebarkan karakteristik biasa dari pemisahan/rekombinasi sinyal dua arah menjadi dua jalur searah. Beberapa aplikasi memperpanjang panjang kabel yang disokong dan mengembangkan kekebalan kegaduhan dengan merubah sinyal ke patokan diferensial (seperti RS485). Mereka juga sanggup menggunakan tegangan pensinyalan yang lebih tinggi.
![]() |
Gambar 5: Multi-drop I2C Terisolasi dengan Level Tegangan Independen |
Penerjemah Tingkat Tegangan Dua Arah
Penerjemah tegangan dua arah sanggup melakukan pekerjaan pada bus I2C. Penting untuk menegaskan perangkat mempunyai orientasi bus yang benar - mencocokkan level tegangan bus ke segi penerjemah yang benar. Kebanyakan penerjemah akan menyeleksi satu segi lebih besar dari tegangan minimum (biasanya sekitar 1V) dibandingkan dengan segi lainnya. Kedua belah pihak masih akan memerlukan pull-up untuk operasi I2C yang benar menyerupai yang diterangkan dalam catatan aplikasi AN11127.
![]() |
Gambar 6: Penerjemah Tingkat Dua Arah di rangkaian I2C |
Mereka juga berfungsi untuk menawarkan isolasi antara komponen yang lebih lambat dan lebih singkat pada bus I2C, memungkinkan mereka untuk beroperasi dalam konsep yang sama. Mengontrol pin yang diaktifkan untuk menegaskan koneksi bus yang lebih lambat selama komunikasi mode cepat menawarkan koeksistensi.
Perangkat ini memperlihatkan penundaan propagasi kurang dari 1.5ns (tidak tergolong pemuatan bus) dan kinerja clock 33MHz dalam tata cara drain terbuka. Dukungan frekuensi tinggi memungkinkan penyelesaian untuk mode operasi ultra-cepat untuk memadukan pemindahan level dan mengembangkan kemungkinan patokan antarmuka I2C kecepatan yang lebih tinggi di masa depan.
Perangkat ini memperlihatkan penundaan propagasi kurang dari 1.5ns (tidak tergolong pemuatan bus) dan kinerja clock 33MHz dalam tata cara drain terbuka. Dukungan frekuensi tinggi memungkinkan penyelesaian untuk mode operasi ultra-cepat untuk memadukan pemindahan level dan mengembangkan kemungkinan patokan antarmuka I2C kecepatan yang lebih tinggi di masa depan.