I2C, som står för Inter-Integrated Circuit, är ett allmänt använt seriellt kommunikationsprotokoll som tillåter flera enheter att kommunicera med varandra via ett tvåtrådsgränssnitt. Det används vanligtvis för att ansluta låghastighets perifera enheter till ett moderkort, inbyggda system eller mikrokontroller.
I2C använder en master-slave-arkitektur, där en enhet fungerar som master och initierar kommunikationen, medan de andra enheterna fungerar som slavar och svarar på masterens förfrågningar. Protokollet stöder multi-master-konfigurationer, vilket innebär att flera enheter kan anslutas till samma buss, vilket möjliggör kommunikation dem emellan.
De två väsentliga kablarna i I2C-bussen är:
I2C-kommunikation kan ske vid olika hastigheter, vanligtvis kallade I2C-busshastigheter. De vanligaste busshastigheterna är Standard Mode (upp till 100 kbit/s), Fast Mode (upp till 400 kbit/s) och High-Speed Mode (upp till 3,4 Mbit/s).
I2C-protokollet använder en start-stopp-mekanism för att etablera kommunikation mellan master- och slave-enheter. Startvillkoret indikerar början på datatransfern, medan stoppvillkoret markerar slutet. Kommunikationsprocessen involverar följande steg:
Startvillkor: Master-enheten initierar kommunikation genom att skicka ett startposition. Det drar ner SDA-linjen medan SCL-linjen förblir hög.
Adressering: Efter startvillkoret skickar mastern slave-enhetens 7-bitsadress som den vill kommunicera med, följt av en läs- eller skrivbit. Läsbiten indikerar att mastern vill läsa data från slaven, medan skrivbiten indikerar att mastern vill skriva data till slaven. Varje slave-enhet på bussen har en unik adress.
Ackreditering: När slaven med den specificerade adressen mottar adressbitarna, svarar den med en godkännandebit (ACK). ACK är en pull-down på SDA-linjen av slav-enheten.
Datatransfer: Efter adresseringsprocessen kan mastern och slaven överföra data till varandra. Data sänds i 8-bitars segment, och varje segment följs av en ACK från mottagande enhet. Denna process fortsätter tills mastern beslutar att stoppa kommunikationen.
Stoppvillkor: Master-enheten genererar ett stoppvillkor genom att dra SDA-linjen hög medan SCL-linjen förblir hög. Stoppvillkoret informerar slavarna att kommunikationen har avslutats.
Det är viktigt att notera att under datatransfern kan SDA-linjen endast ändras när SCL-linjen är låg. Detta säkerställer synkroniserad kommunikation mellan master- och slav-enheterna.
I2C används flitigt i olika elektroniska system för kommunikation mellan integrerade kretsar. Några av de vanliga tillämpningarna av I2C inkluderar:
I2C används ofta för kommunikation med en rad olika sensorer såsom temperatursensorer, fuktighetssensorer och accelerometrar. Dessa sensorer kan ge data om sina respektive parametrar, vilket gör det möjligt för de anslutna enheterna att fatta välgrundade beslut baserat på den mottagna informationen.
Många displaymoduler, såsom LCD och OLED-displayer, kan anslutas med I2C. Detta förenklar integreringen av displayer i olika system, eftersom I2C-protokollet tillåter enkel kommunikation mellan displaymodulen och styrande enhet.
I2C används ofta för programmering och läsning av Elektriskt Raderbar Programmerbar Läsminne (EEPROM) chips. EEPROM är icke-flyktiga minnesenheter som kan lagra data även när strömmen är avlägsnad. I2C-protokollet underlättar den effektiva dataöverföringen mellan styrande enhet och EEPROM.
I2C används i realtidsklockor för att tillhandahålla noggranna tidsfunktioner i olika enheter. Dessa klockor kan bibehålla noggrann tid och datuminformation och används ofta i tillämpningar som datalogging, schemaläggning och tidskritiska operationer.
I2C (Inter-Integrated Circuit) är ett allmänt använt seriellt kommunikationsprotokoll som möjliggör att enheter kommunicerar med varandra med hjälp av ett tvåtrådsgränssnitt. Det har en tydlig arkitektur och stöder multi-master-konfigurationer, vilket ger flexibilitet i att ansluta flera enheter till en enda buss. I2C används ofta i applikationer såsom sensorgränssnitt, displaymoduler, EEPROM-programmering och realtidsklockor. Även om I2C har sina begränsningar, förblir det ett populärt val för låghastighetskommunikation i olika elektroniska system.