Apa perbedaan antara I2C dan TWI?

26

Apa perbedaan antara antarmuka I2C dan TWI? Wikipedia mengatakan, bahwa TWI adalah varian dari I2C. Beberapa sumber lain mengatakan bahwa hanya nama yang berbeda ...


sumber
13
AFAIK TWI adalah apa yang oleh pabrikan (dulu) memanggil antarmuka I2C mereka untuk menghindari masalah hukum dengan Philips.
Wouter van Ooijen
33
Satu versi hadir dengan pengacara!
Connor Wolf
1
Wouter van Ooijen: Jika demikian, apakah cukup dengan hanya mengubah nama? IANAL.

Jawaban:

25

Saya setuju dengan semua yang dikatakan @Wouter ... Yaitu, TWI digunakan oleh produsen (seperti Atmel) untuk merujuk ke antarmuka I2C mereka untuk menghindari masalah hukum dengan Philips karena I2C adalah merek dagang terdaftar. Beberapa produsen (seperti Atmel) telah menerapkan fitur-fitur eksklusif di atas I2C sehingga TWI mereka adalah superset I2C.

Untuk menjawab pertanyaan tindak lanjut Anda, ya. Cukup mengganti namanya saja. Merek dagang hanya melindungi nama. Jika dipatenkan, situasinya akan berbeda.

Namun, sulit untuk mempertahankan paten pada skema modulasi / penyandian karena sebagian besar hanya matematika. Seringkali, hak cipta digunakan untuk ini, tetapi biasanya cukup mudah untuk mengelak, karena hak cipta hanya melindungi instantiasi spesifik yang spesifik (implementasi) dari protokol, bukan protokol itu sendiri dalam banyak kasus.

DrFriedParts
sumber
1
Saya akan berpikir bahwa beberapa aspek handshaking I2C akan cukup baru untuk mendapatkan perlindungan paten, meskipun hal-hal seperti EEPROM yang tidak menggunakan handshaking mungkin tidak menggunakan fitur yang layak paten. Sedangkan untuk ekstensi I2C, yang saya harapkan adalah kemampuan bagi perangkat slave untuk terlibat dalam arbitrasi dalam sesuatu seperti cara yang sama dilakukan oleh master (seorang budak yang mencoba untuk menghasilkan "1" sementara budak lain mengeluarkan "0" harus memberi sinyal arbitrase yang hilang dan keluar untuk sisa byte tersebut) [protokol tingkat tinggi akan memutuskan pada titik mana budak dapat bergabung kembali].
supercat
1
Dengan adanya fitur seperti itu, akan mudah bagi sejumlah perangkat yang sewenang-wenang dengan misalnya nomor ID 64-bit untuk membacakan identitas mereka (lebih mudah daripada dengan 1wire). Memiliki alamat perangkat "mulai membaca ID", dan kemudian minta setiap perangkat mengeluarkan ID 8-byte (keluar jika kehilangan arbitrasi), dan minta setiap perangkat yang belum berhasil mengeluarkan ID-nya bergabung kembali setiap 8 byte. Dengan demikian master akan membacakan ID setiap perangkat, dalam urutan numerik, berakhir dengan semua FF begitu semua perangkat selesai.
supercat
1
@supercat Dan jika dipatenkan, itu akan mencegah produsen lain menggunakannya untuk produk murah. Ini akan menjadi mimpi buruk bagi pengguna.
JB.
@ JP: Saya menduga bahwa I2C melarang arbitrase budak karena mungkin membuat trans satelit tidak dapat diandalkan untuk mengetahui apa yang sedang terjadi, tetapi untuk bus yang tidak menggunakan transetiver seperti itu, arbitrase semacam itu pasti bisa membuat semuanya menyenangkan.
supercat
9

Dari i2c-bus.org :

TWI adalah singkatan dari Two Wire Interface dan bus ini identik dengan I²C. Nama TWI diperkenalkan oleh Atmel dan perusahaan lain untuk menghindari konflik dengan masalah merek dagang terkait dengan I²C. Deskripsi kemampuan antarmuka TWI dapat ditemukan di lembar data perangkat terkait. Harapkan perangkat TWI kompatibel dengan perangkat I²C kecuali untuk beberapa kekhasan seperti siaran umum atau pengalamatan 10 bit.

Selain itu, untuk saat ini, tidak ada mode kecepatan tinggi TWI.

Jika Anda memiliki penganalisa I²C, itu akan bekerja dengan pengaturan TWI juga tanpa modifikasi.

Solusinya Avadhana
sumber
2

Perangkat TWI biasanya tidak sepenuhnya sesuai dengan spesifikasi I2C.

Khususnya, peregangan jam biasanya tidak didukung.

Dave Null
sumber
Seperti, jika ingatanku benar, antarmuka I²C Raspberry Pi disediakan oleh Broadcomm SoC dengan sepenuh hati ...
SlySven