4365: Chip Bussen: I2C, SPI en 1-Wire

Van veel elektronische apparaten bestaat het digitale deel uit een "microcontroller" met wat hulponderdelen. Zo'n controller heeft veel "pootjes" die elk een digitale in- of uitgang kunnen zijn. Dit is een eenvoudige wijze om allerlei functionaliteiten te realiseren door programma pootjes "uit te lezen" en andere "aan" of "uit" te zetten. Wordt het apparaat wat complexer dan worden natuurlijk ook gespecialiseerde chips ingezet: voor het uitlezen van IR-ontvangers, schakelpanelen, toetsenborden of voor het aansturen van servosystemen, displays en motoren. Het naar buiten brengen van de interne data-bus (8 lijnen of veel meer) is niet aantrekkelijk zodat seriecommunicatie voor de hand ligt. Veel microcontrollers hebben 1 of meer seriecommunicatie protocollen reeds op bepaalde pootjes ingebouwd.

Inter-IC-bus (I2C)

Philips gebruikt vanaf 1980 haar I2C-techniek in diverse producten. Hiermee wordt de centrale microcontroller verbonden met verschillende chip's (vaak sensoren) op dezelfde printkaart of in elk geval binnen dezelfde kast (tot maximaal 1m). De techniek gebruikt slechts 2 lijnen/pootjes van de controller, maar is relatief traag onder meer door het herhaaldelijk omprogrammeren van de datalijn "SDA" van ingang naar uitgang en het adresseringsprotocol.

Serial Peripheral Interface (SPI)

Motorola ontwikkelde de SPI-techniek in de jaren '80 voor seriƫle toepassingen die hogere snelheden vereisen. De "SD-kaartjes" worden bijvoorbeeld met een SPI-bus uitgelezen en beschreven en ook voor grafische displays is dit een groot voordeel. De hogere snelheid gaat ten koste van het aantal pootjes, terwijl bovendien voor de selectie (adressering) van elk onderdeel ook een pootje nodig is.

1-Wire-bus

Als communicatiesnelheid geen rol speelt, maar langere afstand juist wel, is een 1-draads verbinding natuurlijk beter (exclusief voeding van de chip). Daarom zijn er b.v. veel sensor-IC's in een "1-Wire" versie verkrijgbaar (temperatuur, vochtigheid). In veel gevallen is het mogelijk de data en de voeding van de sensor over een 2-draads kabel te leiden.