Xem mẫu
- I. Lôøi môû ñaàu
I2C, vieát taét cuûa töø tieáng Anh "Inter-Intergrated Circuit", laø moät loaïi bus
noái tieáp ñöôïc phaùt trieån bôûi haõng saûn xuaát linh kieän ñieän töû Philips. Ban ñaàu,
loaïi bus naøy chæ ñöôïc duøng trong caùc linh kieän ñieän töû cuûa Philip. Sau ñoù, do
tính öu vieät vaø ñôn giaûn cuûa noù, I²C ñaõ ñöôïc chuaån hoùa vaø ñöôïc duøng roäng raõi
trong caùc moâ ñun truyeàn thoâng noái tieáp cuûa vi maïch tích hôïp ngaøy nay.
1. Phieân baûn 1.0 – 1992.
Ñaây laø phieân baûn ra ñôøi naêm 1992, bao goàm nhöõng ñaëc ñieåm kyõ thuaät
sau:
Phaàn meàm boû soùt phaàn laäp trình cuûa ñòa chæ Slave. Söï thaät veà
chi tieát naøy thì phöùc taïp hôn vaø khoâng ñöôïc söû duïng.
Kieåu toác ñoä chaäm ( low – speed ) ñöôïc boû qua.
Kieåu nhanh ( fast ) ñöôïc theâm vaøo. Noù cho pheùp taêng toác ñoä
bit leân ñeán 400 kbit/s. Thieát bò söû duïng kieåu naøy coù theå töông
thích vôùi kieåu toác ñoä thaáp hôn, coù theå söû duïng trong heä thoáng
bus I2C töø 0 – 100 kbit/s.
Ñòa chæ 10-bit ñöôïc theâm vaøo. Cho pheùp 1024 nuùt dòa chæ.
2. Phieân baûn 2.0 – 1998.
Bus I2C trôû thaønh chuaån thöïc teá, luùc naøy ñaõ thöïc hieän treân hôn 1000 Ics
vaø hôn 50 coâng ty ñaêng kyù. Tuy nhieân nhieàu öùng duïng ngaøy nay yeâu caàu toác
ñoä cao hôn vaø nguoàn cung caáp nhoû xuoáng. Nhöõng phieân baûn môùi cuûa I2C bus
caàn phaûi chuù yù ñeán nhöõng yeâu caàu kyõ thuaät naøy, phieân baûn naøy coù nhöõng thay
ñoåi nhö sau:
Kieåu toác ñoä cao (high-speed hay HS) ñöôïc theâm vaøo. Cho
pheùp taêng toác ñoä bit leân ñeán 3.4Mbit/s . Thieát bò hoã trôï kieåu
HS cuõng mang tính keá thöøa, töùc laø coù theå hoaït ñoäng ôû toác ñoä
bit töø 0 – 3.4Mbit/s.
Ngoõ ra vaø treã cuûa thieát bò vôùi nguoàn cung caáp 2V ñöôïc ñieàu
chænh cho phuø hôïp yeâu caàu veà nhieãu vaø duy trì söï töông thích
vôùi thieát bò coù nguoàn cung caáp cao hôn.
Yeâu caàu 0.6V taïi 6mA cuûa ngoõ ra thieát bò vôùi kieåu nhanh ñöôïc
boû qua.
Möùc ñieän aùp ngoõ ra coá ñònh cho thieát bò môùi ñöôïc thay theá
baèng möùc ñieän aùp cuûa Bus.
- Thoâng tin öùng duïng cho boä dòch hai chieàu ñöôïc theâm vaøo.
3. Phieân baûn 2.1 – 2000.
Phieân baûn 2.1 coù nhöõng thay ñoåi nhoû sau ñaây:
Sau “START condition” laëp laïi trong kieåu HS, noù coù theå keùo
daøi theâm SCLH tín hiệu xung nhịp(clock signal) .
II. Ích lợi cho người thiết kế I2C BUS vaø Saûn xuaát.
Trong việc thiết kế ñieän töû, vieãn thoâng vaø ñieän töû coâng nghieäp thöôøng coù
nhieàu söï töông töï giöõa caùc thieát keá döôøng nhö khoâng lieân quan.Ví duï nhö, haàu
nhö moãi heä thoáng bao goàm :
Trong vaøi heä thoáng ñieàu khieån thoâng minh, thoâng thöôøng vi
ñieàu khieån ñôn chip.
Caùc thieát bò nhö LCD , coång I/O, RAM, EEPROM hoaëc
chuyeån ñoåi döõ lieäu.
Khai thaùc söï gioáng nhau naøy thì coù lôïi cho caû ngöôøi thieát keá heä thoáng vaø
saûn xuaát thieát bò, cuõng nhö ñeå toái öu hieäu quaû phaàn cöùng vaø ñôn giaûn maïch
thieát keá. Philips phaùt trieån Bus 2 daây ñôn giaûn 2 chieàu ñieàu khieån nhieàu IC. Bus
naøy goïi laø Inter IC hay I2C-bus. Taát caû thieát bò töông thích I2C-bus keát hôïp chaët
cheõ giao tieáp treân chip maø noù cho pheùp chuùng thoâng tin tröïc tieáp vôùi moãi giao
tieáp khaùc theo I2C-bus. Khaùi nieäm thieát keá naøy giaûi quyeát nhieàu vaán ñeà giao
tieáp gaëp phaûi khi thieát keá maïch ñieàu khieån soá.
Sau ñaây laø moät soá chi tieát cuûa I2C-bus:
Chæ yeâu caàu 2 daây bus : moät ñöôøng xung nhòp ñoàng hoà ( SCL: a
serial data line) vaø moät ñöôøng döõ lieäu ( SDA: a serial data
line)
Moãi thieát bò keát noái ñeán Bus coù ñòa chæ meàm baèng ñòa chæ duy
nhaát vaø moái lieân heä ñôn giaûn chuû/tôù (Master/Slave) toàn taïi .
Masters coù theå hoaït ñoäng boä phaùt chuû (Master-Transmitters)
hoaëc boä thu chuû(Master-Receivers).
Trong Bus ña chuû ( multi-master bus) bao goàm phaùt hieän ra
xung ñoät vaø söï phaân xöû ñeå traùnh sai leäch döõ lieäu neáu hai hay
nhieàu Masters ñoàng thôøi khôûi ñoäng truyeàn döõ lieäu cuøng moät
luùc.
Döõ lieäu noái tieáp, 8-bit ñònh höôùng, 2 chieàu coù theå truyeàn ôû:
- Standard (Chuaån) 100 kb/s .
- Fast (Nhanh) 400 kb/s .
- - Fast mode plus (Nhanh hôn) 1 Mb/s .
- High speed mode (Toác ñoä cao) 3.4 Mb/s .
Boä loïc loaïi boû gai nhieãu treân daây Bus ñeå giöõ döõ lieäu nguyeân
goác.
Soá löôïng IC coù theå keát noái chung Bus bò giôùi haïn bôûi ñieän dung
toái ña cuûa Bus laø 400pF.
1 Lôïi ích cho ngöôøi thieát keá.
Moät soá chi tieát cuûa I2C-bus maø ñaëc bieät cuoán huùt ngöôøi duøng:
Khoái haøm trong bieåu ñoà khoái phuø hôïp vôùi caùc IC trong thöïc teá;
thieát keá thöïc hieän nhanh hôn töø sô ñoà khoái ñeán löôïc ñoà.
Khoâng caàn phaûi thieát keá giao dieän Bus bôûi vì giao tieáp Bus ñaõ
tích hôïp saün treân treân chip.
Nghi thöùc truyeàn döõ lieäu vaø ñòa chæ tích hôïp cho pheùp heä thoáng
ñeå phaàn meàm ñònh nghóa hoaøn toaøn.
Caùc IC cuøng loaïi thöôøng ñöôïc söû duïng nhieàu öùng duïng khaùc
nhau.
Thôøi gian thieát keá ñöôïc ruùt ngaén bôûi vì ngöôøi thieát keá nhanh
choùng thaân thieän vôùi vieäc thöôøng xuyeân söû duïng caùc khoái haøm
ñaïi dieän cho I2C-bus töông thích IC.
Caùc IC coù theå ñöôïc theâm vaøo hoaëc gôõ ra maø khoâng aûnh höôûng
ñeán caùc phaàn töû khaùc treân Bus.
Söï kieåm tra vaø chænh loãi thì ñôn giaûn. Söï truïc traëc nhanh choùng
ñöôïc chæ ra.
Thôøi gian phaùt trieån phaàn meàm coù theå ñöôïc ruùt ngaén nhôø caùc
thö vieän maø trong ñoù coù caùc moâ ñun phaàn meàm coù theå duøng laïi
ñöôïc.
Theâm vaøo nhöõng thuaän lôïi naøy, caùc CMOS IC coù tích hôïp I2C bus coù ñoä
töông thích cao, cung caáp cho ngöôøi thieát keá nhöõng ñaëc ñieåm kyõ thuaät ñaëc tröng
nhö thieát bò di ñoäng...
Taát caû bao goàm:
Naêng löông tieâu thuï raát thaáp.
Choáng nhieãu toát.
Taàm ñieän aùp nguoàn cung caáp roäng.
Hoaït ñoäng vôùi khoaûng nhieät ñoä lôùn.
- 2. Lôïi ích trong saûn suaát
I2C-Bus töông thích vôùi IC khoâng nhöõng trôï giuùp thieát keá, maø coøn cung
caáp nhieàu lôïi ích to lôùn cho vieäc saûn suaát thieát bò bôûi vì:
I2C-Bus vôùi thieát keá ñôn giaûn chæ caàn 2 daây toái thieåu hoùa ña
lieân keát cho neân IC seõ coù ít chaân hôn vaø khoâng coù quaù nhieàu
ñöôøng maïch in. Keát quaû laø baûng maïch in seõ nhoû hôn vaø reû hôn.
Phöông thöùc naøo tích hôïp toaøn boä I2C-Bus loaïi boû yeâu caàu veà
giaûi maõ ñòa chæ vaø caùc lieân keát logic (glue logic) khaùc.
Ña chuû ( multi Master) laø khaû naêng cuûa I2C-Bus cho pheùp
nhanh choùng kieåm tra vaø saép xeáp ñònh tuyeán vôùi thieát bò ngöôøi
duøng theo keát noái cuïc boä ñeán moät ñöôøng chung.
I2C-Bus coù saün söï töông thích vôùi vôùi IC trong SO(small
outline), VSO(very small outline) raát toát.
Ñoù chæ laø moät soá lôïi ích. Theâm vaøo ñoù, IC coù tích hôïp I2C-Bus laøm taêng
söï linh ñoäng thieát keá heä thoáng baèng caùch nhieàu thieát bò khaùc nhau vaø coù caáu
truùc ñôn giaûn vaø deã daøng naâng caáp ñeå caäp nhaät. Trong tröôøng hôïp naøy, moät
thieát bò thuoäc hoï naøo coù theå phaùt trieån leân töø thieát keá cô baûn cuûa hoï ñoù. Naâng
caáp cho thieát bò môùi hoaëc taêng cöôøng chöùc naêng cho thieát bò maãu (ví duï nhö môû
roäng boä nhôù, ñieàu khieån töø xa ... v.v) coù theå laøm ñôn giaûn baèng caùch taùch IC
töông thích treân Bus ra.
III. Giôùi thieäu ñaëc ñieåm kyõ thuaät cuûa I2C-Bus.
Veà öùng duïng ñieàu khieån soá ñònh höôùng 8-bit, nhö laø nhöõng öùng
duïng yeâu caàu vi ñieàu khieån, tieâu chuaån thieát keá coù theå ñöôïc thieát laäp:
Heä thoáng hoaøn chænh thöôøng bao goàm moät vi ñieàu khieån vaø
thieát bò ngoaïi vi khaùc nhö laø boä nhôù vaø môû roäng I/O.
Chi phí keát noái vôùi nhieàu thieát bò maø khoâng caàn heä thoáng phaûi
ñöôïc toái thieåu.
Moät heä thoáng maø thöïc hieän haøm ñieàu khieån thì khoâng yeâu caàu
truyeàn döõ lieäu toác ñoä cao.
Toaøn boä hieäu quaû phuï thuoäc vaøo thieát bò döôïc choïn vaø caáu
truùc töï nhieân cuûa Bus ña lieân keát.
Ñeå saûn suaát ñöôïc moät heä thoáng ñaït ñöôïc caùc tieâu chuaån naøy, moät caáu
truùc noái tieáp ñöôïc yeâu caàu. Duø caùc Bus noái tieáp khoâng coù khaû naêng veà löu
- löôïng cuûa caùc Bus song song, nhöng noù yeâu caàu ít daây noái hôn vaø chaân keát noái
IC hôn. Tuy nhieân, Bus khoâng chæ ñôn thaàn laø daây ña lieân keát, maø noù bieåu hieän
taát caû ñònh daïng vaø thuû tuïc veà giao tieáp veà giao tieáp beân trong heä thoáng.
Thieát bò giao tieáp vôùi caùc thieát bò khaùc treân Bus noái tieáp phaûi mang moät
soá phöông thöùc maø traùnh ñöôïc taát caû hoãn loaïn coù theå xaûy ra, maát döõ lieäu vaø taéc
ngheõn thoâng tin. Thieát bò toác ñoä cao phaûi coù khaû giao tieáp vôùi thieát bò coù toác ñoä
thaáp. Moät heä phaûi khoâng phuï thuoäc vaøo thieát bò keát noái vôùi noù, maët khaùc söï
ñieàu chænh vaø caûi tieán laø khoâng khaû thi. Moät thuû tuïc ñöa ra ñeå quyeát dònh laø
thieát bò seõ ôû trong söï dieàu khieån cuûa Bus khi ñoù. Vaø, neáu caùc thieát bò khaùc nhau
vôùi toác ñoä xung nhòp khaùc nhau ñöôïc keát noái ñeán Bus, xung nhòp nguoàn cuûa Bus
phaûi ñöôïc ñònh nghóa. Taát caû tieâu chuaån naøy ñieàu ñöôïc bao haøm trong I2C-Bus.
IV. Khaùi nieäm veà I2C-Bus
I2C-Bus cung caáp baát cöù caùch naøo cheá taïo IC( NMOS, CMOS, bipolar).
Goàm coù 2 daây, döõ lieäu noái tieáp( SDA: serial data) vaø xung nhòp noái tieáp (SCL:
serial clock), mang thoâng tin giöõa thieát bò vaø Bus noái vôùi thieát bò ñoù.
Moãi thieát bò ñöôïc ñònh nghóa baèng moät ñòa chæ duy nhaát ( duø thieát bò laø vi ñieàu
khieån, ñieàu khieån LCD, boä nhôù hay giao tieáp baøn phím) vaø coù theå söû duïng nhö
boä thu hoaëc boä phaùt, phuï thuoäc vaøo chöùc naêng cuûa thieát bò. Hieån nhieân ñieàu
khieån LCD chæ coù theå laø boä thu, trong khi ñoù boä nhôù coù theå thu vaø phaùt döõ lieäu.
theâm vaøo boä thu hoaëc boä phaùt, thieát bò coù theå ñöôïc xem nhö laøboä chuû(Master)
hoaëcboä tôù (Slave) khi thöïc hieän truyeàn döõ lieäu. Xem baûng 1. Boä chuû laø thieát bò
khôûi ñaàu truyeàn döõ lieäu treân Bus vaø khôûi taïo tín hieäu xung nhòp ñeå cho pheùp
truyeàn. Taïi thôøi ñieåm naøy, baát cöù thieát bò naøo ñöôïc ñònh ñòa chæ ñöôïc coi nhö boä
tôù.
- Thuaät ngöõ Moâ taû
Boä phaùt Thieát bò truyeàn döõ lieäu ñeán Bus.
Boä thu Thieát bò nhaän döõ lieäu töø Bus.
Boä chuû Thieát bò khôûi ñoäng truyeàn, khôûi taïo xung
nhòp vaø keát thuùc truyeàn ..
Boä tôù thieát bò ñöôïc ñònh ñòa chæ bôûi Boä chuû .
Ña chuû Hôn moät boä chuû coá gaéng ñeå ñieàu khieån
Bus taïi moät thôøi ñieåm maø khoâng sai laïc
thoâng ñieäp.
Söï phaân xöû Thuû tuïc ñaûm baûo raèng, neáu coù hôn moät
boä chuû cuøng moät luùc coá gaéng ñieàu khieån
Bus, chæ coù moät ñöôïc cho pheùp laøm vaäy
vaø vaø thoâng ñieäp thì khoâng sai .
Ñoàng boä Thuû tuïc ñoàng boä tín hieäu xung nhòp cuûa
hai hay nhieàu thieát bò.
Baûng 1 : Ñònh nghóa caùc thuaât ngöõ cuûa I2C Bus
I2C Bus laø Bus ña chuû. Ñieàu naøy coù nghóa laø nhieàu hôn moät thieát bò coù
khaû naêng ñieàu khieån Bus maø coù theå ñöôïc keát noái vôùi noù. Vì boä chuû thöôøng laø vi
ñieàu khieån, chuùng ta haõy xeùt ñeán tröôøng hôïp döõ lieäu truyeàn giöõa hai vi ñieàu
khieån keát noái vôùi I2C Bus. (Xem hình 2)
Hình 2: Ví duï söû duïng I2C coù 2 vi dieàu khieån keát noái.
- Ñieåm noåi baät laø moái quan heä chuû-tôù vaø thu-phaùt ñöôïc thieát laäp treân I2C
Bus. Chuù yù raèng nhöõng moái quan heä treân laø khoâng coá ñònh, nhöng chæ phuï thuoäc
vaøo höôùng truyeàn döõ lieäu taïi thôøi ñieåm ñoù. Söï truyeàn döõ lieäu ñöôïc tieán haønh
nhö sau:
1, Giaû thieát vi ñieàu khieån A muoán truyeàn thoâng tin cho vi ñieàu khieån B:
Vi ñieàu khieån A(chuû), vi ñieàu khieån B (tôù)ñöôïc ñònh ñòa chæ .
Vi ñieàu khieån A(boä phaùt chuû) truyeàn döõ lieäu cho vi ñieàu khieån
B(boä thu tôù).
Vi ñieàu khieån A keát thuùc truyeàn.
2, Neáu vi ñieàu khieån A muoán nhaän thoâng tin töø vi ñieàu khieån B:
Vi ñieàu khieån A(chuû), vi ñieàu khieån B ñöôïc ñònh ñòa chæ(tôù).
Vi ñieàu khieån A(boä thu chuû) nhaän döõ lieäu töø vi ñieàu khieån B
(boä phaùt tôù).
Vi ñieàu khieån A keát thuùc truyeàn.
Khaû naêng keát noái nhieàu hôn moät vi ñieàu khieån vôùi I2C Bus coù nghóa laø
nhieàu hôn moät master coù theå khôûi ñoäng truyeàn döõ lieäu taïi cuøng moät thôøi ñieåm.
Ñeå traùnh söï hoãn ñoän sinh ra töø söï vieäc naøy, ngöôøi ñaõ phaùt phieån moät thuû tuïc goïi
laø söï phaân xöû (Arbitration). Thuû tuïc naøy döïa treân keát noái And noái daây ñeán
ñöôøng SCL.
Vieäc khôûi taïo tín hieäu xung nhòp treân I2C Bus luoân luoân laø nhieäm vuï cuûa
caùc thieát bò chuû (master devices); moãi boä chuû khôûi taïo tín hieäu xung nhòp cuûa
chính noù khi ñang truyeàn döõ lieäu treân Bus. Tín hieäu xung nhòp treân I2C Bus töø
boä chuû chæ coù theå ñöôïc hieäu chænh khi noù ñöôïc keùo daøi bôûi thieát bò tôù coù toác ñoä
chaäm maø giöõ ñöôøng SCL, hoaëc bôûi boä chuû khaùc khi söï phaân xöû xaûy ra.
V. Tính chaát chung I2C Bus
Caû SDA vaø SCL ñeàu laø ñöôøng daây 2 chieàu, ñöôïc keát noái vôùi nguoàn
döông theo nguoàn doøng hoaëc dieän trôû keùo leân. (Xem hình 3). Khi Bus raûnh , caû
hai ñöôøng daây ñeàu ôû möùc cao. Taàn ngoõ ra cuûa thieát bò keát noái vôùi I2C Bus phaûi
coù cöïc maùng môû hay cöïc thu môû ñeå thöïc hieän haøm And noái daây. Döõ lieäu treân
I2C Bus coù theå ñöôïc truyeàn ñaït ñöôïc toác ñoä 100 kbit/s ôû cheá ñoä chuaån (stardard
mode), toác ñoä 400 kbit/s ôû cheá ñoä nhanh(fast mode), toác ñoä 3.4 Mbit/s ôû cheá ñoä
toác ñoä cao (high-speed mode). Soá löôïng thieát bò keát noái vôùi I2C Bus laø duy nhaát
phuï thuoäc vaøo ñieän dung cuûa Bus giôùi haïn ôû 400pF.
- Hình 3: Tính chaát I2C Bus
VI. Söï truyeàn bit.
Bôûi vì nhieàu thieát bò kyõ thuaät ña daïng khaùc nhau ( CMOS, NMOS,
bipolar) coù theå keát noái vôùi I2C Bus möùc logic “0” hoaëc “1” thì khoâng coá ñònh
vaø phuï thuoäc vaøo söï lieân hôïp möùc logic cuûa VDD. Moät xung nhòp khôûi taïo cho
moãi bit döõ lieäu ñöôïc truyeàn.
1. Söï hôïp leä döõ lieäu.
Döõ lieäu treân ñöôøng SDA phaûi oån ñònh suoát khoaûng thôøi gian ôû möùc cao
cuûa xung nhòp. Traïng thaùi cuûa SDA chæ coù theå thay ñoåi khi tín hieäu xung nhòp
treân ñöôøng SCL xuoáng möùc thaáp.(Xem hình 4)
Hình 4 : söï truyeàn bit treân I2C Bus.
- 2. Ñieàu kieän KHÔÛI ÑOÄNG vaø ñieàu kieän DÖØNG( START (S) vaø
STOP(P) conditions) .
Trong thuû tuïc cuûa I2C Bus, nhöõng traïng thaùi duy nhaát phaùt sinh döôïc
ñònh nghóa laø ñieàu kieän KHÔÛI ÑOÄNG vaø ñieàu kieän DÖØNG ( START (S) vaø
STOP(P) conditions).
Hình 5 : Ñieàu kieän KHÔÛI ÑOÄNG vaø ñieàu kieän DÖØNG.
Ñieàu kieän KHÔÛI ÑOÄNG(S) : laø söï chuyeån ñoåi traïng thaùi töø möùc CAO
xuoáng möùc THAÁP treân SDA trong khi ñoù SCL ôû möùc CAO.
Ñieàu kieän DÖØNG (P) : laø söï chuyeån ñoåi traïng thaùi töø möùc THAÁP xuoáng
möùc CAO treân SDA trong khi ñoù SCL ôû möùc CAO.
Ñieàu kieän KHÔÛI ÑOÄNG vaø ñieàu kieän DÖØNG thì luoân luoân ñöôïc khôûi
ñoäng bôûi boä chuû. Bus coi nhö laø baän sau ñieàu kieän KHÔÛI ÑOÄNG. Bus seõ trôû laïi
raûnh sau ñieàu kieän DÖØNG.
Bus ôû traïng thaùi baän neáu KHÔÛI ÑOÄNG laëp laïi ( Sr : repeated START)
ñöôïc kích khôûi thay vì ñieàu kieän DÖØNG. Veà ñieåm naøy, ñieàu kieän KHÔÛI
ÑOÄNG(S) vaø KHÔÛI ÑOÄNG laëp laïi (Sr) thì ñònh nghóa gioáng nhau ( Xem hình
10) . Do ñoù, ôû phaàn coøn laïi , ta seõ goïi taét S ñaïi dieän cho caû Ñieàu kieän KHÔÛI
ÑOÄNG vaø KHÔÛI ÑOÄNG laëp laïi. Vaø P ñaïi dieän cho ñieàu kieän DÖØNG.
Thieát bò keát noái vôùi Bus phaùt hieän ra S vaø P thì deã daøng neáu chuùng keát
hôïp chaët cheõ giao dieän phaàn cöùng caàn thieát. Tuy nhieân, vi ñieàu khieån maø khoâng
coù giao dieän nhö vaäy phaûi laáy maãu SDA ít nhaát 2 laàn treân 1 chu kyø xung nhòp
ñeå nhaän bieát ñöôïc söï truyeàn.
VII. Truyeàn döõ lieäu.
1. Ñònh daïng byte.
Moãi byte treân SDA phaûi daøi 8-bits. Soá löôïng byte coù theå truyeàn trong
truyeàn döõ lieäu laø khoâng giôùi haïn. Mỗi byte phải được kèm theo một bit xác nhận
( ACK). Dữ liệu truyền bit coù trọng số lớn nhất(MSB) trước ( Xem Hình 6). Nếu
- bộ tớ khoâng theå truyeàn hoaëc nhaän byte döõ lieäu khaùc cho ñeán khi noù thöïc hieän
moät soá haønh ñoäng khaùc, ví duï nhö phuïc vuï cho vieäc ngaét noäi boä, noù coù theå giöõ
SCL ôû möùc THAÁP ñeå eùp boä tôù vaøo traïng thaùi chôø.Söï truyeàn döõ lieäu sau ñoù seõ
tieáp tuïc khi boä tôù saün saøng cho byte döõ lieäu khaùc vaø giaûi phoùng SCL.
Hình 6: Truyeàn döõ lieäu treân I2C Bus
Trong moät soá tröôøng hôïp, I2C Bus cho pheùp ñònh daïng khaùc ñònh daïng
cuûa I2C Bus( ví duï cuûa CBUS). Moät thoâng ñieäp maø baét ñaàu vôùi moät ñòa chæ nhö
vaäy coù theå keát thuùc baèng caùch phaùt ra P , thaäm chí trong suoát quaù trình truyeàn
moät byte. Trong tröôøng hôïp naøy, khoâng coù ACK.
2. Söï xaùc nhaän (acknowledge : ACK).
Truyeàn döõ lieäu vôùi ACK laø baét buoäc. ACK coù lieân quan tôùi xung nhòp
ñöôïc phaùt ra bôûi boä chuû. Boä phaùt seõ ñeå cho SDA ôû möùc CAO trong suoát xung
nhòp cuûa ACK.
Boä phaûi keùo SDA xuoáng trong suoát xung nhòp cuûa ACK ñeå duy trì möùc
THAÁP trong suoát quaù trình ôû möùc cao cuûa xung nhòp naøy.(Xem hình 7). Taát
nhieân, söï thieát laäp vaø thôøi gian giöõ cuõng döôïc ñöa vaøo ñeå tính toaùn.
Hình 7 : ACK treân I2C Bus
- Thoâng thöôøng, moät boä thu maø ñaõ ñöôïc ñònh ñòa chæ thì baét buoäc phaûi khôûi
taïo moät bit ACK sau moãi byte maø noù nhaän ñöôïc, tröø phi thoâng ñieäp ñoù baét ñaàu
baèng ñòa chæ CBUS.
Khi boä tôù khoâng xaùc nhaän ñòa chæ tôù ( ví duï nhö: noù khoâng nhaän hoaëc thu
bôûi vì noù thöïc hieän moät soá chöùc naêng trong thôøi gian thöïc), SDA phaûi rôøi khoûi
möùc CAO bôûi vì boä tôù. Boä chuû sau ñoù coù theå khôûi taïo hoaëc laø P ñeå huûy boû söï
truyeàn, hoaëc Sr ñeå baét ñaàu truyeàn döõ lieäu môùi.
Neáu boä thu chuû xaùc nhaän ñòa chæ tôù, nhöng sau ñoù söï truyeàn khoâng
theå nhaän theâm byte döõ lieäu naøo nöõa, boä chuû phaûi moät laàn nöõa huûy boû söï truyeàn.
Ñieàu naøy chöùng toû raèng boä tôù khoâng khôûi taïo ACK theo byte ñaàu tieân. Boä tôù
ñöa SDA ra khoûi möùc CAO vaø boä chuû khôûi taïo P hoaëc Sr.
Neáu boä thu chuû gaëp raéc roái vôùi söï truyeàn, noù phaûi phaùt tín hieäu keát thuùc
döõ lieäu ñeán boä phaùt tôù baèng caùch khoâng khôûi taïo ACK treân byte cuoái cuøng
Boä phaùt tôù phaûi giaûi thoaùt SDA vaø cho pheùp boä chuû khôûi taïo P hoaëc Sr.
VIII. Söï phaân xöû vaø söï khôûi taïo xung nhòp.
1. Söï ñoàng boä
Taát caû caùc boä chuû khôûi taïo xung nhòp cuûa chuùng treân SCL ñeå chuyeån
thoâng ñieäp treân I2C Bus. Döõ lieäu chæ hôïp leä trong suoát khoaûng thôøi gian xung
nhòp ôû möùc CAO. Xung nhòp ñöôïc ñònh nghóa veà vieäc naøy thì caàn thieát cho thuû
tuïc phaân xöû theo töøng bit xaûy ra.
Ñoàng boä xung nhòp ñöôïc thöïc hieän baèng caùch söû duïng And noái daây cuûa
giao dieän I2C ñeán SCL. Ñieàu naøy coù nghóa laø söï chuyeån tieáp töø möùc CAO
xuoáng möùc THAÁP treân SCL gaây ra cho thieát bò lieân quan baét ñaàu giai ñoaïn ôû
möùc THAÁP ( LOW period) xung nhòp cuûa moät thieát bò seõ xuoáng möùc THAÁP, noù
seõ giöõ traïng thaùi naøy cho ñeán khi ñaït ñöôïc traïng thaùi CAO.( Xem hình 8). Tuy
nhieân , söï chuyeån tieáp töø möùc THAÁP xuoáng möùc CAO cuûa xung nhòp naøy coù
theå khoâng thay ñoåi traïng thaùi cuûa SCL neáu xung nhòp cuûa thieát bò khaùc vaãn ôû
trong giai ñoaïn ôû möùc THAÁP cuûa noù. SCL seõ ñöôïc giöõ ôû möùc THAÁP bôûi thieá bò
maø coù giai ñoaïn ôû möùc THAÁP cuûa noù daøi nhaát. Nhöõng thieát bò vôùi giai ñoaïn ôû
möùc THAÁP cuûa noù ngaén hôn traïng thaùi chôø ôû möùc CAO trong suoát thôøi gian
naøy.
- Hình 8 : Ñoàng boä xung nhòp trong thuû tuïc phaân söû.
Khi taát caû caùc thieát bò lieân quan khoâng ôû giai ñoaïn ôû möùc THAÁP cuûa
chuùng, SCL seõ ñöôïc giaûi phoùng vaø leân möùc CAO. Khoâng coù söï khaùc bieät giöõa
xung nhòp cuûa thieát bò . Vaø taát caû caùc thieát bò seõ khôûi ñoäng ñeán giai ñoaïn ôû möùc
CAO cuûa chuùng. Neáu thieát bò ñaàu tieân hoaøn thaønh giai ñoaïn ôû möùc CAO cuûa
chuùng vaø laïi keùo SCL xuoáng THAÁP.
Trong tröôøng hôïp naøy, xung nhòp cuûa SCL maø ñöôïc ñoàng boä ñöôïc khôûi
ñoäng vôùi giai ñoaïn ôû möùc THAÁP cuûa noù quyeát ñònh bôûi thieát bò coù giai ñoaïn ôû
möùc THAÁP daøi nhaát, giai ñoaïn ôû möùc CAO cuûa noù quyeát ñònh bôûi thieát bò coù
giai ñoaïn ôû möùc CAO ngaén nhaát.
2. Söï phaân xöû( Arbitration).
Boä chuû chæ coù theå baét ñaàu söï truyeàn neáu Bus raûnh. Hai hay nhieàu boä chuû
coù theå phaùt ñoäng S trong khoaûng thôøi gian duy trì nhoû nhaát ( the minimum hold
time : tHD,STA). cuûa S maø keát quaû trong ñònh nghóa S ñeán Bus.
Söï phaân xöû xaûy ra treân SDA, trong khi ñoù SCL ôû möùc cao , trong tröôøng
hôïp nhö vaäy boä chuû maø truyeàn ñi möùc CAO, trong khi ñoù moät boä chuû khaùc
truyeàn möùc THAÁP seõ ngaét ngoõ ra döõ lieäu cuûa noù bôûi vì möùc logic treân Bus
khoâng töông thích vôùi möùc logic cuûa chính noù.
Söï phaân xöû coù theå tieáp tuïc cho nhieàu bit. Giai ñoaïn ñaàu tieân laø so saùnh
caùc bit ñòa chæ. Neáu caùc boä chuû maø cuøng coá gaéng ñeå ñònh chæ cho cuøng moät thieát
bò, söï phaân xöû seõ tieáp tuïc so saùnh caùc bit döõ lieäu neáu chuùng laø boä phaùt chuû hoaëc
bit ACK neáu chuùng laø boä thu chuû. Bôûi vì thoâng tin veà ñòa chæ vaø döõ lieäu treân
I2C Bus bôûi boä chuû thaéng trong söï phaân xöû, khoâng coù thoâng tin bò maát trong
suoát quaù trình phaân xöû.
Boä chuû maø thua trong söï phaân xöû coù theå phaùt ñoäng xung nhòp cho ñeán
khi keát thuùc byte maø noù thua trong söï phaân xöû.
- Nhö boä chuû ôû kieåu HS coù maõ boä chuû 8 bit duy nhaát, noù luoân luoân keát
thuùc phaân xöû trong byte ñaàu tieân.
Neáu boä chuû keát hôïp chaët cheõ vôùi chöùc naêng cuûa boä tôù vaø noù thua trong
söï phaân xöû trong suoát giai ñoaïn ñònh ñòa chæ, coù khaû naêng boä chuû ñang coá gaéng
ñònh ñòa chæ noù. Boä chuû thua trong söï phaân xöû vì theá phaûi ngay laäp töùc chuyeån
thaønh cheá ñoä tôù.
Hình 9 cho ta thaáy thuû tuïc phaân xöû cho hai boä chuû. Dó nhieân, coù theå bao
goàm nhieàu hôn( phuï thuoäc vaøo bao nhieâu boä chuû keát noái vôùi Bus).
Hình 9 : Söï phaân xöû vôùi hai boä chuû.
Xöï phaân xöû seõ hoaøn taát treân SDA khi SCL ôû möùc cao. Khi ñoù boä chuû maø truyeàn
möùc CAO trong khi ñoù boä chuû khaùc truyeàn möùc THAÁP seõ thua trong phaân xöû.
3. Söû duïng cô cheá ñoàng boä xung nhòp nhö laø söï baét tay.
Ñöôïc theâm vaøo ñeå söû duïng trong suoát thuû tuïc phaân xöû, cô cheá ñoàng boä
xung nhòp coù theå ñöôïc söû duïng deå cho pheùp boä thu ñoái phoù vôùi truyeàn data toác
ñoä cao, treân 1 byte hoaëc 1 bit.
Xeùt veà byte, thieát bò coù khaû naêng nhaän caùc byte döõ lieäu ôû toác ñoä nhanh,
nhöng caàn nhieàu thôøi gian hôïn ñeå löu tröõ byte nhaän ñöôïc vaø chuaån bò byte khaùc
truyeàn tôùi. Boä tôù sau ñoù coù theå giöõ SCL ôû möùc thaáp sau ñoù thu nhaän byte vaø
ACK cuûa byte ñoù ñeå ñöa boä chuû veà traïng thaùi chôø cho ñeán khi boä tôù saün saøng
cho söï truyeàn cuûa byte keá tieáp trong moät kieåu baét tay.( Xem hình 10)
Xeùt veà bit, moät thieát bò nhö laø vi dieàu khieån keát noái vôùi I2C Bus, coù theå
laøm chaäm xung nhòp cuûa Bus môû roäng giai ñoaïn ôû möùc thaáp cuûa moãi chu kyø
- xung nhòp. Toác ñoä cuûa baát cöù boä chuû naøo baèng caùch naøy thích nghi vôùi toác ñoä
vaän haønh beân trong cuûa thieát bò naøy.
Trong kieåu HS, ñaëc ñieåm kyõ thuaät ôû kieåu naøy chæ coù theå ñöôïc söû duïng
treân byte.
Hình 10 : Truyeàn hoaøn chænh döõ lieäu.
IX. Ñònh daïng vôùi 7 bit ñòa chæ.
Truyeàn döõ lieäu vôùi ñònh daïng trong hình 10. Sau khi S, ñòa chæ tôù ñöôïc
göûi. Ñòa chæ naøy daøi 7 bit vôùi 1 bit thöù 8 theo sau laø bit höôùng döõ lieäu ( data
direction bit : R / W ) - R / W = 0 laø truyeàn döõ lieäu(ghi), R / W = 1 yeâu caàu döõ
lieäu(ñoïc). Söï truyeàn döõ lieäu luoân keát thuùc bôûi P ñöôïc phaùt bôûi boä chuû. Tuy
nhieân, neáu boä chuû vaãn coøn muoán giao tieáp vôùi Bus, noù coù theå phaùt ra Sr vaø ñònh
ñòa chæ cho boä tôù khaùc maø khoâng caàn phaûi phaùt S. Nhieàu söï keát hôïp ñònh daïng
R / W beân trong söï truyeàn.
Nhöõng ñònh daïng truyeàn döõ coù theå laø:
Boä truyeàn chuû truyeàn ñeán boä thu chuû. Höôùng truyeàn khoâng
thay ñoåi.
Boä chuû ñoïc boä tôù ngay sau byte ñaàu tieân(Xem hình 12). Ngay
taïi ACK ñaàu tieân, boä phaùt chuû trôû thaønh boä thu chuû vaø boä thu
tôù trôû thaønh boä phaùt tôù. ACK ñaàu tieân naøy vaãn coøn ñöôïc phaùt
bôûi boä tôù. S ñöôïc phaùt bôûi boä chuû maø tröôùc ñoù ñaõ göûi NACK.
Ñònh daïng keát hôïp (Xem hình 13). Trong suoát quaù trình chuyeån
ñoåi traïng thaùi beân trong söï truyeàn, S vaø ñòa chæ boä tôù caû hai
ñeàu ñöôïc laëp laïi, nhöng vôùi ñaûo bit R / W . Neáu boä thu chuû phaùt
Sr, noù ñaõ göûi NACK tröôùc ñoù.
- Chuù yù:
1,Ñònh daïng keát hôïp coù theå ñöôïc söû duïng, ví duï nhö, ñeå ñieàu
khieån moät boä nhôù noái tieáp. Trong suoát byte döõ lieäu ñaàu tieân, vò
trí boä nhôù trong phaûi ñöôïc ghi. Sau S vaø ñòa chæ boä tôù laëp laïi, döõ
lieäu coù theå ñöôïc truyeàn.
2,Taát caû caùc quyeát ñònh veà vieâc töï taêng leân hoaëc giaûm ñi cuûa vò trí
boä nhôù truy xuaát tröôùc ñoù ñöôïc laøm bôûi ngöôøi thieát keá thieát bò.
3,Moãi byte ñöôïc theo sau bôûi bit ACK nhö ñöôïc chæ dònh bôûi
khoái ACK tuaàn töï.
4,Thieát bò töông thích I2C Bus phaûi xoùa möùc logic Bus trong söï
nhaän cuûa S vaø Sr nhö laø chuùng bieát tröôùc taá caû ñòa chæ boä tôù göûi
ñi, duø laø S naøy khoâng ñöôïc ñònh vò theo ñònh daïng thích hôïp.
5, S theo ngay sau ñoù laø P laø ñònh daïng sai ( phaûi traùnh).
Hình 11 : Boä phaùt chuû ñònh ñòa chæ boä thu tôù vôùi 7 bit ñòa chæ.
Chieàu truyeàn khoâng thay ñoåi.
Hình 12 :Boä chuû ñoïc boä tôù ngay laäp töùc sau byte ñaàu tieân.
- Hình 13 : Ñònh daïng keát hôïp.
X. Ñònh ñòa chæ 7 bit.
Thuû tuïc ñònh ñòa chæ cho I2C Bus nhö laø byte ñaàu tieân sau S thöôøng laø
quyeát ñònh xem boä tôù naøo seõ ñöôïc choïn bôûi boä chuû. Ngoaïi leä laø ñòa chæ goïi
chung ( general address) maø coù theå ñònh ñòa taát caû caùc thieát bò. Khi ñòa chæ naøy
ñöôïc söû duïng, theo lyù thuyeát moïi thieát bò neân ñaùp öùng baèng ACK. Tuy nhieân,
thieát bò coù theå töø choái ñòa chæ naøy. Byte thöù hai cuûa ñòa chæ goïi chung sau ñoù
ñöôïc ñònh nghóa laø hoaït ñoäng ñöôïc ñöa ra.
1. Ñònh nghóa caùc bit cuûa byte ñaàu tieân.
7 bit ñaàu tieân cuûa byte ñaàu tieân hôïp thaønh ñòa boä tôù. Bit thöù 8(LSB)
quyeát ñònh höôùng cuûa söï truyeàn. Neáu noù ôû möùc THAÁP thì boä chuû seõ ghi thoâng
tin ñeán boä tôù döôïc choïn, neáu noù ôû möùc CAO thì boä chuû seõ ñoïc döõ lieäu töø boä tôù.
Khi ñòa chæ ñöôïc göûi, moãi thieát bò trong heä thoáng so saùnh 7 bit ñaàu tieân
vôùi ñòa chæ cuûa noù sau S. Neáu phuø hôïp, thieát bò coi nhö töï noù ñöôïc dònh ñòa chæ
bôøi boä chuû nhö laø boä thu tôù hoaëc boä phaùt tôù, phuï thuoäc vaøo bit R / W .
Hình 14 : Byte ñaàu tieân sau thuû tuïc START.
Ñòa chæ boä tôù coù theå laø coá ñònh hoaëc khaû laäp trình. Bôûi vì seõ coù nhieàu
thieát bò ñöôïc ñònh nghóa trong heä thoáng. Ñòa chæ boä tôù khaû laäp trình quyeát ñònh
soá löôïng thieát bò toái ña coù theå keát noái vôùi I2C Bus. Soá löôïng bit ñòa chæ khaû laäp
trình cuûa thieát bò phuï thuoäc vaøo soá löôïng chaân coù saün. Ví duï nhö neáu thieát bò coù
- coù soá bit ñòa chæ laø 4 coá ñònh vaø 3 khaû laäp trình thì seõ coù toái ña 8 thieát bò ñöôïc
ñònh nghóa nhö vaäy coù theå keát noái ñeán chung Bus ñoù.
Ñònh nghóa caùc bit trong byte ñaàu tieân. Goàm 2 nhoùm (0000XXX vaø
1111XXX) :
Ñòa chæ boä tôù R / W bit Moâ taû
0000 000 0 Ñòa chæ goïi chung
0000 000 1 Byte START (1)
0000 001 X Ñòa chæ CBUS (2)
0000 010 X Döï tröõ cho ñònh daïng Bus khaùc (3)
0000 011 X Döï tröõ cho muïc ñích töông lai
0000 1XX X Maõ boä chuû kieåu HS
1111 1XX X Döï tröõ cho muïc ñích töông lai
1111 0XX X Ñònh ñòa chæ 10 bit
Chuù yù :
(1) Khoâng thieát bò naøo ñöôïc pheùp ACK luùc nhaän byte START.
(2) Ñòa chæ CBUS ñöôïc chuaån bò cho thieát bò töông thích caû CBUS laãn
I2C trong cuøng moät heä thoáng. Thieát bò töông thích vôùi I2C Bus khoâng
döôïc pheùp ñaùp öùng luùc nhaän cuûa ñòa chæ naøy.
(3) Ñòa chæ naøy duøng döï tröõ cho ñònh daïng Bus khaùc coù nghóa laø coù theå
keát hôïp I2C Bus vôùi caùc giao thöùc khaùc. Chæ caùc thieát bò töông thích
I2C Bus coù theå laøm vieäc vôùi ñònh daïng nhö theá vaø nghi thöùc naøy
ñöôïc pheùp ñaùp öùng ñòa chæ naøy.
1.1, Ñòa chæ goïi chung(General Call Address).
Ñòa chæ goïi chung laø ñòa chæ cho moãi thieát bò keát noái ñeán Bus. Tuy nhieân
neáu moät thieát bò khoâng caàn baát cöù döõ lieäu naøo trong caáu truùc, noù coù theå ngaét ra
ñòa chæ naøy baèng caùch khoâng phaùt ra ACK. Neáu moät thieát bò yeâu caàu döõ lieäu töø
“Ñòa chæ goïi chung”, noù seõ ACK ñòa chæ naøy vaø hoaït ñoäng nhö boä thu tôù. Byte
thöù 2 vaø sau ñoù seõ ñöôïc ACK bôûi moãi boä thu tôù coù khaû naêng ñieàu khieån döõ lieäu.
Boä thu maø khoâng truy xuaát ñöôïc moät trong caùc byte naøy thì phaûi ñöôïc huûy baèng
caùch phaùt NACK. Coù nghóa laø ñòa chæ goïi chung ñöôïc chi tieát ôû byte thöù 2 (xem
hình 15).
- Hình 15 : Ñònh daïng ñòa chæ goïi chung.
Coù hai tröôøng hôïp ñöôïc xeùt ñeán:
Khi bit coù trong soá nhoû nhaát B = 0;
Khi bit coù trong soá nhoû nhaát B = 1;
Khi bit B = 0; byte thöù 2 coù nhöõng khai baùo nhö sau:
00000110 (H’06’). Xoùa vaø ghi phaàn laäp trình ñöôïc ñòa chæ cuûa
boä tôù bôûi phaàn cöùng. Trong vieäc nhaän 2-byte lieân tuïc naøy, taát
caû thieát bò thieát keá ñeå ñaùp öùng cho ñòa chæ goïi chung seõ xoùa vaø
laøm trong phaàn laäp trình ñöôïc cuûa ñòa chæ cuûa chuùng. Caûnh baùo
tröôùc tieân phaûi ñöôïc baûo ñaûm laø thieát bò khoâng keùo SDA hoaëc
SCL xuoáng sau khi coù nguoàn cung caáp bôûi vì möùc THAÁP naøy
seõ bò chaën bôûi Bus.
00000100 (H’04’). Ghi phaàn laäp trình ñöôïc ñòa chæ cuûa boä tôù
bôûi phaàn cöùng. Taát caû caùc thieát bò maø khai baùo phaàn laäp trình
ñöôïc ñòa chæ cuûa boä tôù bôûi phaàn cöùng ( vaø ñaùp öùng cho ñòa chæ
goïi chung) seõ choát phaàn laäp trình ñöôïctaïi luùc nhaän 2 byte tuaàn
töï naøy. Thieát bò seõ khoâng xoùa.
00000000 (H’00’). Maõ naøy khoâng cho pheùp döôïc söû duïng nhö
byte thöù 2.
Thuû tuïc laäp trình tuaàn töï ñöôïc khai baùo ôû datasheet töông öùng.
Maõ coøn laïi thì khoâng coá ñònh vaø caùc thieát bò phaûi huûy boû chuùng.
Khi bit B = 1; byte thöù 2 laø moät ‘phaàn cöùng goïi chung’(hardware
general call). Ñieàu naøy coù nghóa laø söï tuaàn töï ñöôïc truyeàn bôûi phaàn cöùng thieát
bò chuû, ví duï nhö boä queùt phím, maø khoâng theå ñöôïc laäp trình ñeå truyeàn ñòa chæ
boä tôù ñöôïc moâ taû. Bôûi vì phaàn cöùng cuûa boä chuû khoâng bieát thieát bò trong tröôøng
hôïp naøy maø thoâng ñieäp phaûi ñöôïc truyeàn, noù chæ coù theå phaùt phaàn cöùng goïi
chung naøy vaø ñòa chæ cuûa chính noù – xaùc ñònh chính noù trong heä thoáng( Xem
hình 16).
- Hình 16 : Truyeàn döõ lieäu töø phaàn cöùng boä phaùt chuû.
7 bit coøn laïi trong byte thöù 2 chöùa ñòa chæ cuûa phaàn cöùng boä chuû. Neáu
phaàn cöùng boä chuû coù theå cuõng hoaït ñoäng nhö boä tôù , ñòa chæ boä tôù ñöôïc nhaän
bieát nhö ñòa chæ boä chuû.
Trong moät soá heä thoáng, söï luaân phieân coù theå laø phaàn cöùng boä chuû coù theå
hoaït ñoäng trong kieåu boä thu tôù sau khi xoùa heä thoáng(system reset ). Trong
tröôøng hôïp naøy, moät heä thoáng ñöôïc caáu hình nhö boä chuû coù theå giao tieáp vôùi
phaàn cöùng boä phaùt chuû( luùc naøy ñang ôû kieåu boä thu tôù) vôùi ñòa chæ döõ lieäu phaûi
döôïc göûi ( Xem hình 17). Sau thuû tuïc khaû laäp trình, phaàn cöùng boä chuû duy trì ôû
kieåu boä phaùt chuû.
Hình 17 : Truyeàn döõ lieäu bôûi phaàn cöùng boä phaùt coù
khaû naêng truùt heát chính xaùc döõ lieäu ñeán thieát bò tôù.
a, Caáu hình boä chuû göûi ñòa chæ keát xuaát ñeán phaàn cöùng boä chuû.
b, Phaàn cöùng boä chuû keát xuaát döõ lieäu ñeå choïn boä tôù.
1.2. Byte khôûi ñoäng ( START byte).
Vi ñieàu khieån coù theå keát noái ñöôïc vôùi I2C Bus baèng 2 caùch. Moät vi ñieàu
khieån vôùi giao dieän phaàn cöùng I2C Bus tích hôïp treân chip coù theå ñöôïc laäp trình
chæ ñöôïc ngaét bôûi söï yeâu caàu töø Bus naøy. Khi thieát bò khoâng coù giao dieän nhö
vaäy, noù phaûi kieåm saùt Bus baèng phaàn meàm. Hieån nhieân, vi ñieàu khieån caøng
- kieåm saùt nhieàu laàn, caøng ít thôøi gian noù coù theå tieâu toán ñeå thöïc hieän haøm chuû
ñònh cuûa noù.
Coù söï khaùc bieät veà toác ñoäthieát bò coù phaàn cöùng toác ñoä nhanh vaø vi ñieàu
khieàn lieân quan coù toác ñoä chaäm maø noù döïa vaøo phaàn meàm kieåm saùt.
Trong tröôøng hôïp naøy, truyeàn döõ lieäu coù theå ñöôïc ñi tröôùc bôûi thuû tuïc baét ñaàu
maø noù coù theå daøi hôn bình thöôøng(Xem hình 18).
Hình 18 : Thuû tuïc byte baét ñaàu.
Thuû tuïc baét ñaàu bao goàm:
Moät ñieàu kieän khôûi ñoäng (S).
Moät byte khôûi ñoäng(00000001).
Moät xung nhòp xaùc nhaän (ACK).
Moät ñieàu kieän khôûi ñoäng laëp laïi(Sr).
Sau khi S ñöôïc truyeàn bôûi boä chuû maø noù yeâu caàu truy xuaát Bus, byte
khôûi ñoäng(00000001) ñöôïc truyeàn. Vi ñieàu khieån khaùc coù theå laáy maãu SDA,
vôùi toác ñoä laáy maãu chaäm cho ñeán khi moät trong 7 bit 0 cuûa byte khôûi ñoäng ñöôïc
phaùt hieän. Sau khi phaùt hieän möùc THAÁP treân SDA, vi ñieàu khieån chuyeån leân
toác ñoä laáy maãu cao hôn tìm Sr maø sau ñoù ñöôïc söû duïng cho vieäc ñoàng boä.
Phaàn cöùng boä thu seõ xoùa söï thu nhaän Sr vaø seõ ngaét byte khôûi ñoäng.
Xung nhòp maø coù lieân quan ACK ñöôïc kích khôûi sau byte khôûi ñoäng.
Ñieàu naøy baây giôø chæ phuø hôïp ñònh daïng xöû lyù byte söû duïng treân Bus. Khoâng
thieát bò ñöôïc cho pheùp ACK cho byte khôûi ñoäng.
1.3. Söï töông thích vôùi CBUS.
Caùc boä thu CBUS coù theå ñöôïc keát noái vôùi I2C Bus kieåu chuaån. Tuy
nhieân, ñöôøng Bus thöù ba ñöôïc goïi laø DLEN sau ñoù phaûi ñöôïc keát noái vaø boû qua
nguon tai.lieu . vn