Documente Academic
Documente Profesional
Documente Cultură
Descrierea interfeei
Interfaa I2C (Inter Integrated Circuits) este o interfa serie, aprut din necesitatea de a realiza
sisteme ieftine cu microcontrolere, destinate n principal conducerii proceselor industriale. Acest tip
de comunicare a fost definit de Philips n 1970 . Popular aceast interfa este cunoscut i sub numele
de comunicare pe doua fire sau two wire interface. Un astfel de sistem este constituit, de regul,
dintr-unul sau mai multe microcontrolere i o serie de echipamente periferice (de intrare/ieire,
memorie etc.). Conectarea acestora printr-o interfa serie satisface cerinele enunate. Viteza mic de
transfer, caracteristic interfeelor serie, nu constituie un neajuns pentru aplicaiile principale avute n
vedere (conducerea proceselor).
Realizarea unui sistem I2C presupune interconectarea unor circuite integrate (specializate) prin
numai trei linii: dou de semnal i una de mas. Cele dou linii de semnal sunt denumite "serial data"
(SDA) i "serial clock" (SCL). Fiecare circuit integrat are o adres unic i poate funciona fie ca
transmitor, fie ca receptor, n funcie de tipul circuitului. De exemplu, un circuit pentru comanda
unui afiaj cu cristale lichide poate fi numai receptor, n timp ce un circuit de memorie RAM poate fi
att transmitor ct i receptor (evident, nu simultan). Dintr-un alt punct de vedere, un circuit integrat
din sistem poate fi coordonator sau executant. Circuitul integrat coordonator este circuitul care iniiaz
un transfer de date i tot el genereaz semnalele de tact pentru a permite realizarea unui transfer. Orice
alt circuit integrat adresat de coordonator este subordonat. Structura I2C este o structur multi-
coordonator, adic se pot interconecta mai multe circuite care pot avea rolul de coordonator. Termenii
implicai n descrierea funcionrii interfeei I2C, precum i semnificaia acestora sunt prezentate n
tabelul 1.
Protocolul de transfer al datelor pe magistrala I2C presupune iniierea transferului prin aducerea
magistralei ntr-o condiie de START, transferul propriu-zis i ncheierea transferului prin aducerea
magistralei ntr-o condiie de STOP. Condiia de START (S) este definit prin trecerea liniei SDA din
1 n 0, n timp ce linia SCL este meninut la nivel ridicat. Condiia de STOP (P) este definit prin
trecerea liniei SDA din 0 n 1, n timp ce linia SCL este meninut la nivel ridicat. Ambele condiii
sunt ilustrate n figura 3. Ele sunt generate ntotdeauna de ctre coordonator.
n I2C se impune ca primul octet dup condiia de start s fie adresat subordonatului cu care
coordonatorul dorete s fac transfer. Adresa trebuie s urmeze dup condiia S. Excepie de la
aceast regul este situaia de adresare general la care toate elementele din sistem trebuie s
rspund i care se codific prin doi octei. Totui, exist elemente care nu rspund (nu este util s
rspund) la adresarea general. Ele vor ignora codul adresrii generale. La adresarea obinuit,
octetul ce urmeaz dup condiia S codific pe primii 7 bii mai semnificativi adresa subordonatului,
iar bitul mai puin semnificativ este bitul R/W i arat sensul transferului. Atunci cnd se transmite
adresa, fiecare dispozitiv din sistem compar adresa recepionat cu propria adres; dac constat
egalitatea, dispozitivul devine subordonat receptor sau subordonat transmitor, funcie de valoarea
bitului R/W.
Adresa unui subordonat poate avea o parte fix i o parte programabil. Partea fix definete clasa
dispozitivului (spre exemplu: memorii, dispozitive de afiare, microprocesoare, etc.) iar partea
programabil identific dispozitivul din clasa respectiv. Mrimea prii programabile depinde de
numrul de pini pentru adres pe care circuitul i are. Spre exemplu, un circuit are 4 bii de adresa fix
i 3 bii programabili; aceasta nseamn c se pot conecta la magistrala I2C 8 dispozitive de acest fel.
Comitetul de coordonare al magistralei I2C a recomandat o alocare a celor 127 de adrese prezentat n
tabelul 8.6. Exist dou grupe de cte 8 adrese: 0000xxx i 1111xxx rezervate pentru scopurile artate
n tabel. Adresele 11110xx sunt rezervate pentru adresarea cu 10 bii, folosit n sisteme I2C de mare
ntindere. Adresarea general Este o adresare pentru toate dispozitivele din sitemul I2C care au fost
prevzute s recunoasc adresarea general. Adresarea general se face pe doi octei (figura 13):
primul este 0000.0000, iar al doi-lea octet specific aciunea pe care trebuie s o relizeze subordonaii.