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