*   I2C STANDARD

I2C ("Inter-Integrated Circuit"), omogućuje dobru podršku za komunikaciju sa različitim sporijim periferijskim jedinicama u sistemima gde se potreba za njihovom upotrebom javlja povremeno. Razvila ga je evropska firma Philips a zatim su ga i drugi proizvođači integrisanih kola podržali, a dana se vrlo često sreće naručito kod mikrokontrolerskih sistema.

Glavne osobine ovog standarda su sledeće:

1.     Za komunikacija su potrebne dve linije

2.     Brzina prenosa do 100 kbita i više

3.     Mogućnost adresiranja do 128 uređaja u sistemu

4.     Relativno prosta podrška u programiranju "Master" uređaja

5.     Vreme predaje je vremenski neovisno

Fizički I2C bas sadrži samo dve linije signala i to: SLC(Serial CLock) koja se koristi za prenos taktnog signala i liniju SDA (Serial DAta) za prenos podataka. Za upravljanje ovim linijama najčešće se koriste kola sa otvorenim kolektorom pa se ove linije napaju sa naponom od +5V preko otpornika reda od 1 - 10 kW, zavisno od dužine linije i brzine prenosa. U standardnom režimu rada dužina ovih linija je do 2 m uz brzine prenosa do 100 kbita.

Uređaji priključeni na I2C bas dele su u dve grupe: "Master" i "Slave". "Master" uređaji generiše taktni signal SLC i on je upravljački. On može adresirati bilo koji priključeni "Slave" uređaj u cilju predaje ili prijema informacija. Svi "Slave" uređaji su zavisni od I2C basa i njegovih zahteva postavljenih od strane "Master" uređaja što je prikazano na donjoj slici.

Na početku u režimu čekanja obe linije: SLC i SDA nalaze se na logičkoj jedinici. Za sinhronizaciju paketa koriste se dva uslova "Start" i "Stop"  koji određuju početak i kraj. "Start" (S) uslov prikazan je na donjoj slici i njime se vrši inicijalizacija I2C basa a nastaje silaskom SDA linije na niski nivo dok je SCL linija na visokom nivou. Ovaj signal upozori sve "Slave" jedinice da će slediti zahtevi od master-a.

"Stop" (P) uslov nastaje kada je SCL na visokom nivou a linija SDA prelazi sa niskog na visoki nivo što je dato na donjoj slici, i on oslobađa I2C bus.

U I2C sistemima koji sadrže više "Master" uređaja postoji i stanje "Reset" (R), koje reinicijalizira I2C bus koje je dato na donjoj slici:

"Reset" (R) stanje nastaja kada je linija SDA na visokom nivou a linija SCL se na momenat dovede u stanje niskog nivoa. 

     Izgled prenosa podataka na I2C basu dat je na donjoj slici.

Nakon slanja 8-bitnog podatka(Adresa + R/W) i u toku trajanja 9 taktnog impulsa nastaje stanje potvrde ACK (A) od strane "Slave" uređaja da je podataka primljen silaskom linije SDA na niski nivo. Nakon adrese sledi slanja podataka a transfer se završava sa "Stop" uslovom. ACK stanje dato je na donjoj slici.

Iz prikazane slike vidi se da "Master" šalje 7-bitnu adresu "Slave" uređaja na I2C basu kao i R/W kod. R/W kod može biti 0 kada master zahteva upisavanje podataka u "Slave" uređaj i 1 kada "Master" čita podatke iz "Slave" uređaja. Sedmobitna adresa je različita za pojedine vrste "Slave" uređaja.  Tako na primer, ako uređaj sadrži u adresi 4 fiksna bita i 3 programibilna bita onda je moguće maksimalno priključiti na I2C magistralu ukupno 8 takvih uređaja.

I2C komitet koordinira dodeljivanje I2C adresa. Dve grupe 0000XXX i 1111xxx su rezervisane, što je i prikazano u tabeli.

 

Slave adresa

r/w BIT

OPIS

0000 000

0

"Generall call" adresa

0000 000

1

START bajt

0000 001

X

CBUS adresa

0000 010

X

Rezervisana za različite formate magistrala

0000 011

X

Rezervisana za buduće primene

0000 1XX

X

Hs-mod "Master" koda

1111 1XX

X

Rezervisano za buduće primene

1111 0XX

X

10-bitna "Slave" adresa

CBUS adresa je rezervisana da omogući povezivanje CBUS kompatibilnih i I2C kompatibilnih uređaja u istom sistemu. I2C kompatibilnim uređajima nije dozvoljen odgovor nakon prijema te adrese.

http://vojo.milanovic.org
© Copyright, 2006 Milanović Vojo 
All right reserved