I²C
I²C (Inter-Integrated Circuit) ir vairāku vedēju, single-ended, virknes datorsistēmu kopne. Tās pamata pielietojums ir zema ātruma perifērijas integrālo shēmu pievienošana procesoriem, un mikrokontrolieriem nelielā attālumā. Kopni 1980. gadu sākumā izstrādāja Philips Semiconductor (tagad NXP Semiconductors).
Datu pārraide I²C kopnē ir divvirziena, ātrums standarta režīmā ir 100 kbit/s. Pēdējās protokola versijas ļauj pievienot vairāk mezglu un darboties lielākā ātrumā (400 kbit/s Fast mode, 1 Mbit/s Fast mode plus jeb Fm+ un 3.4 Mbit/s High Speed mode), kā arī 16 bitu adresāciju. Ultra fast mode ir vienvirziena, ar pārraides ātrumu līdz 5 Mbit/s.[1]
Tehnoloģija
[labot šo sadaļu | labot pirmkodu]I²C izmanto divas divvirziena open-drain līnijas: virknes datu līnija (Serial Data Line, SDA) un virknes takts līnija (Serial Clock Line, SCL). Tās tiek pievilktas (pull up) ar rezistoriem. Kopnē parasti izmanto +5 V vai +3,3 V spriegumu, lai gan ir pieļaujami arī citi sprieguma līmeņi.
I²C adrešu telpa ir 7 bitu (etalonmodelim) vai 10 bitu (atkarībā no izmantotās ierīces). Datu pārraides ātrums kopnē ir 100 kbit/s standarta režīmā un 10 kbit/s zema ātruma režīmā, bet arī ir atļautas zemas takts frekvences.
Maksimālo mezglu skaitu ierobežo adrešu telpa, kā arī kopējā kopnes kapacitāte 400 pF, kas praktiski iespējamo sakaru attālumu samazina līdz dažiem metriem. Relatīvi augstajai impedancei un zemajai trokšņu imunitātei nepieciešams kopējs zemējuma potenciāls, kas arī ierobežo pielietojumu sakaros praktiski ar izvietojumu vienā platē vai nelielā plašu sistēmā.
Etalonmodelis
[labot šo sadaļu | labot pirmkodu]Etalonmodelis (reference design) ir 7 bitu adresācijas kopne ar takts (SCL) un datu (SDA) līnijām. Kopnes mezgliem var būt divas lomas: vedējs un sekotājs:
- vedējmezgls — ģenerē takts signālu un uzsāk sakarus ar sekotājiem;
- sekotājmezgls — uztver takts signālu un atbild, ja vedējs ziņojumu adresējis tam.
Vedēja un sekotāja lomas var mainīt starp ziņojumiem (pēc STOP
nosūtīšanas).
Ierīcei ir iespējami četri darbības režīmi:
- vedējs raida — vedējmezgls sūta datus sekotājam;
- vedējs uztver — vedējmezgls saņem datus no sekotāja;
- sekotājs raida — sekotājmezgls sūta datus vedējam;
- sekotājs uztver — sekotājmezgls saņem datus no vedēja.
Sākumā vedējmezgls vedēja raidīšanas režīmā nosūta starta bitu, kam seko sekotājmezgla 7 bitu adrese un viens bits ar norādījumu: rakstīt (0) vai lasīt (1) no sekotāja.
Ja sekotājmazgls eksistē kopnē, tam jāatbild ar ACK bitu šai adresei. Tad vedējs turpina raidīšanas vai uztveršanas režīmā (atkarībā no nosūtītā rakstīšanas / lasīšanas bita), un sekotājs turpina atbilstošajā režīmā.
Adreses un datu baiti tiek sūtīti ar visnozīmīgāko bitu pirmo. Startbitu norāda ar SDA pāreju no augsta līmeņa uz zemu pie SCL augsta līmeņa. Stopbitu norāda ar SDA pāreju no zema līmeņa uz augstu pie SCL augsta līmeņa. Visas citas SDA pārejas notiek pie SCL zema līmeņa.
Licencēšana
[labot šo sadaļu | labot pirmkodu]I²C standarta patenti pieder NXP Semiconductors (sākotnēji Philips Semiconductor). 2000. gadā Philips saka agresīvi pielietot patenta tiesības, ierosinot tiesvedību pret sešiem pusvadītāju ražotājiem. Kopš 2006. gada 10. oktobra vairs netiek pieprasīta patentmaksa, lai īstenotu I²C protokolu. Izņēmums irI²C sekotājmezglu adrešu piešķiršana, par kuru NXP Semiconductors pieprasa maksu.[2]
Mantotās sistēmas
[labot šo sadaļu | labot pirmkodu]Vairākas sistēmas veidotas uz I²C pamata.
SMBus kopne, kuru Intel izveidoja 1995. gadā, ir definēta ar stingrāku lietojumu nekā I²C. SMBus ļauj uzlabot robustumu un sadarbspēju. Mūsdienu I²C sistēmas iekļauj dažus SMBus principus un noteikumus, kuru realizācijai nepieciešama tikai minimāla rekonfigurācija.
Atsauces
[labot šo sadaļu | labot pirmkodu]- ↑ UM10204 I²C-bus specification and user manual NXP
- ↑ Firmware Emulation of an I2C Slave Device Steve Kolokowsky, Cypress Semiconductor
Ārējās saites
[labot šo sadaļu | labot pirmkodu]Vikikrātuvē par šo tēmu ir pieejami multivides faili. Skatīt: I2C |
- Official I2C specification (free) Arhivēts 2013. gada 11. maijā, Wayback Machine vietnē., NXP
- Detailed Introduction, Primer