Overzicht en voordelen van de I2C-bus

Inhoudsopgave:

Overzicht en voordelen van de I2C-bus
Overzicht en voordelen van de I2C-bus
Anonim

I2C (alternatief gespeld als I2C), ontwikkeld door Philips in de jaren tachtig, is een van de meest gebruikte seriële communicatieprotocollen in de elektronica geworden. I2C vergemakkelijkt de communicatie tussen elektronische componenten of geïntegreerde schakelingen, of de componenten nu op dezelfde PCB zitten of met een kabel verbonden zijn.

Image
Image

Wat is het I2C-protocol?

I2C is een serieel communicatieprotocol waarvoor slechts twee signaallijnen nodig zijn. Het is ontworpen voor communicatie tussen chips op een printplaat (PCB). I2C is oorspronkelijk ontworpen voor communicatie van 100 Kbps. In de loop der jaren zijn er echter snellere datatransmissiemodi ontwikkeld om snelheden tot 3 te bereiken.4 Mbit.

Het belangrijkste kenmerk van I2C is de mogelijkheid om veel componenten op een enkele communicatiebus te hebben met slechts twee draden, wat I2C perfect maakt voor eenvoudige toepassingen. Het I2C-protocol is vastgesteld als een officiële standaard, waardoor achterwaartse compatibiliteit tussen I2C-implementaties mogelijk is.

I2C-signalen

Het I2C-protocol gebruikt twee bidirectionele signaallijnen om te communiceren met de apparaten op de communicatiebus. De twee gebruikte signalen zijn:

  • Seriële datalijn (SDL)
  • Seriële dataklok (SDC)

De reden dat I2C slechts twee signalen kan gebruiken om met verschillende randapparatuur te communiceren, is de manier waarop communicatie langs de bus wordt afgehandeld. Elke I2C-communicatie begint met een 7-bits (of 10-bits) adres dat het adres van de randapparatuur oproept.

Hierdoor kunnen meerdere apparaten op de I2C-bus de rol van het primaire apparaat spelen, afhankelijk van de behoeften van het systeem. Om communicatiebotsingen te voorkomen, bevat het I2C-protocol arbitrage- en botsingsdetectiemogelijkheden, die een vlotte communicatie langs de bus mogelijk maken.

Voordelen van I2C

Als communicatieprotocol heeft I2C de volgende voordelen:

  • Flexibele datatransmissiesnelheden.
  • Communicatie op langere afstand dan SPI.
  • Elk apparaat op de bus is onafhankelijk adresseerbaar.
  • Apparaten hebben een eenvoudige primaire/secundaire relatie.
  • Er zijn slechts twee signaallijnen nodig.
  • Het is in staat om meerdere primaire communicaties af te handelen door arbitrage en detectie van communicatiebotsingen te bieden.

Beperkingen van I2C

Met al deze voordelen heeft I2C ook een paar beperkingen die mogelijk rond ontworpen moeten worden. De belangrijkste I2C-beperkingen zijn:

  • Aangezien alleen 7-bits (of 10-bits) beschikbaar zijn voor apparaatadressering, kunnen apparaten op dezelfde bus hetzelfde adres delen. Sommige apparaten kunnen de laatste paar bits van het adres configureren, maar dit legt een beperking op aan apparaten op dezelfde bus.
  • Er zijn slechts een paar beperkte communicatiesnelheden beschikbaar en veel apparaten ondersteunen de overdracht bij hogere snelheden niet. Gedeeltelijke ondersteuning voor elke snelheid op de bus is vereist om te voorkomen dat langzamere apparaten gedeeltelijke transmissies opvangen die kunnen leiden tot operationele storingen.
  • Het gedeelde karakter van de I2C-bus kan ertoe leiden dat de hele bus blijft hangen wanneer een enkel apparaat op de bus stopt met werken. Door de stroom naar de bus te schakelen, kan de juiste werking worden hersteld.
  • Aangezien apparaten hun eigen communicatiesnelheid instellen, kunnen langzamere operationele apparaten de werking van snellere apparaten vertragen.
  • I2C trekt meer stroom dan andere seriële communicatiebussen vanwege de open-drain-topologie van de communicatielijnen.
  • De beperkingen van de I2C-bus beperken doorgaans het aantal apparaten op een bus tot ongeveer een dozijn.

I2C-toepassingen

I2C is een geweldige optie voor toepassingen die lage kosten en eenvoudige implementatie vereisen in plaats van hoge snelheid. Veelvoorkomende toepassingen van het I2C-communicatieprotocol zijn bijvoorbeeld:

  • Bepaalde geheugen-IC's uitlezen.
  • Toegang tot DAC's en ADC's.
  • Verzenden en controleren van door de gebruiker gestuurde acties.
  • Hardwaresensoren uitlezen.
  • Communiceren met meerdere microcontrollers.

Aanbevolen: