Lý thuyết I2C

Chia sẻ: Nguyen Van Dau | Ngày: | Loại File: PDF | Số trang:31

0
270
lượt xem
147
download

Lý thuyết I2C

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

I2C viết tắt từ tiếng Anh "Inter-Intergrated Circuit", là một loại bus nối tiếp được phát triển bởi hãng sản xuất linh kiện điện tử Philips. Ban đầu, loại bus này chỉ được dùng trong các linh kiện điện tử Philips. Sau đó. do tính ưu việt, và đơn giản của nó, I2C đã được chuẩn hóa và được dùng rộng rãi trong các modum truyền thông nối tiếp của vi mạch tích hợp ngày nay.

Chủ đề:
Lưu

Nội dung Text: Lý thuyết I2C

  1. 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.
  2.  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 .
  3. - 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.
  4. 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
  5. 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ôù.
  6. 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.
  7. Ñ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.
  8. 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.
  9. 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
  10. 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
  11. 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.
  12. 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öû.
  13. 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ø
  14. 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ù.
  15. 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.
  16. 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ù
  17. 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).
  18. 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).
  19. 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
  20. 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
Đồng bộ tài khoản