Jaka jest różnica między I2C a TWI?

26

Jaka jest różnica między interfejsami I2C i TWI? Wikipedia mówi, że TWI jest wariantem I2C. Niektóre inne źródła podają, że tylko nazwa jest inna ...


źródło
13
AFAIK TWI jest tym, co producenci (kiedyś) nazywają interfejsem I2C, aby uniknąć problemów prawnych z Philips.
Wouter van Ooijen,
33
Jedna wersja jest dostarczana z prawnikami!
Connor Wolf,
1
Wouter van Ooijen: Jeśli tak, czy wystarczy zmienić nazwę? IANAL.

Odpowiedzi:

25

Zgadzam się ze wszystkim, co powiedział @Wouter ... Mianowicie, TWI jest używany przez producentów (takich jak Atmel) w odniesieniu do ich interfejsu I2C, aby uniknąć problemów prawnych z Philips, ponieważ I2C jest zastrzeżonym znakiem towarowym. Niektórzy producenci (jak Atmel) wdrożyli własnościowe funkcje na I2C, dzięki czemu ich TWI jest nadzbiorem I2C.

Aby odpowiedzieć na pytanie uzupełniające, tak. Wystarczy tylko zmienić nazwę. Znak towarowy chroni tylko nazwę. Gdyby zostało opatentowane, sytuacja wyglądałaby inaczej.

Trudno jest jednak bronić patentu na schemat modulacji / kodowania, ponieważ jest to w większości matematyka. Często używa się do tego praw autorskich, ale zwykle dość łatwo można je obejść, ponieważ prawa autorskie chronią tylko dokładnie określoną instancję (implementację) protokołu, a nie sam protokół w większości przypadków.

DrFriedParts
źródło
1
Sądzę, że niektóre aspekty uzgadniania I2C byłyby na tyle nowatorskie, aby zasługiwały na ochronę patentową, chociaż rzeczy takie jak pamięci EEPROM, które nie używają uzgadniania, mogą nie mieć żadnych wartych patentu funkcji. Jeśli chodzi o rozszerzenia I2C, chciałbym, aby urządzenia slave brały udział w arbitrażu w taki sam sposób, jak robią to mastery (slave, który próbuje wyprowadzić „1”, podczas gdy inny slave wyśle ​​„0” powinien zasygnalizować utratę arbitrażu i wypada na resztę tego bajtu) [protokół wysokiego poziomu zdecyduje, w którym momencie niewolnik może ponownie dołączyć].
supercat
1
Mając taką funkcję, dowolna liczba urządzeń z np. 64-bitowymi numerami ID miałaby łatwy odczyt ich tożsamości (łatwiej niż przy użyciu 1 drutu). Miej adres urządzenia „zacznij czytać identyfikatory”, a następnie każ każdemu urządzeniu wysyłać 8-bajtowy identyfikator (pomijanie, jeśli utraci arbitraż), a każde urządzenie, które nie wyszło z powodzeniem, dołącza ponownie co 8 bajtów. Master odczytałby zatem ID każdego urządzenia, w kolejności numerycznej, kończąc na wszystkich FF, gdy wszystkie urządzenia zostały wykonane.
supercat
1
@ supercat A gdyby został opatentowany, uniemożliwiłby innym producentom korzystanie z niego jako produktu o niskim koszcie. Byłby to kolejny koszmar dla użytkowników.
JB.
@JB .: Podejrzewam, że I2C nie zezwala na arbitraż podrzędny, ponieważ może to uniemożliwić nadawczo-odbiorcom autobusowym rzetelne ustalenie, co się dzieje, ale w przypadku autobusów, które nie używają takich nadajników, taki arbitraż z pewnością może sprawić, że wszystko będzie miłe.
supercat
9

Z i2c-bus.org :

TWI oznacza interfejs dwużyłowy, a ta magistrala jest identyczna z I²C. Nazwę TWI wprowadzili Atmel i inne firmy, aby uniknąć konfliktów z problemami związanymi ze znakami towarowymi związanymi z I²C. Opis możliwości interfejsów TWI można znaleźć w arkuszach danych odpowiednich urządzeń. Oczekuj, że urządzenia TWI będą kompatybilne z urządzeniami I²C, z wyjątkiem pewnych szczególnych cech, takich jak ogólna transmisja lub adresowanie 10-bitowe.

Ponadto na razie nie ma również trybu wysokiej prędkości TWI.

Jeśli masz analizator I²C, będzie on działał z konfiguracją TWI również bez modyfikacji.

AvadhanaSolutions
źródło
2

Urządzenia TWI zwykle nie są całkowicie zgodne ze specyfikacją I2C.

W szczególności rozciąganie zegara zwykle nie jest obsługiwane.

Dave Null
źródło
Na przykład, jeśli moja pamięć służy mi poprawnie, interfejs I²C Raspberry Pi zapewniany przez Broadcomm SoC w jego sercu ...
SlySven