I2C 總線(xiàn)是一種串行數(shù)據(jù)總線(xiàn),只有二根信號(hào)線(xiàn),一根是雙向的數(shù)據(jù)線(xiàn)SDA,另一根是時(shí)鐘線(xiàn)SCL。在I2C 總線(xiàn)上傳送的一個(gè)數(shù)據(jù)字節(jié)由八位組成??偩€(xiàn)對(duì)每次傳送的字節(jié)數(shù)沒(méi)有限制,但每個(gè)字節(jié)后必須跟一位應(yīng)答位。數(shù)據(jù)傳送首先傳送最高位(MSB)。首先由主機(jī)發(fā)出啟動(dòng)信號(hào)“S”(SDA在SCL 高電平期間由高電平跳變?yōu)榈碗娖?,然后由主機(jī)發(fā)送一個(gè)字節(jié)的數(shù)據(jù)。啟動(dòng)信號(hào)后的第一個(gè)字節(jié)數(shù)據(jù)具有特殊含義:高七位是從機(jī)的地址,第八位是傳送方向位,0 表示主機(jī)發(fā)送數(shù)據(jù)(寫(xiě)),1表示主機(jī)接收數(shù)據(jù)(讀)。被尋址到的從機(jī)設(shè)備按傳送方向位設(shè)置為對(duì)應(yīng)工作方式。標(biāo)準(zhǔn)I2C 總線(xiàn)的設(shè)備都有一個(gè)七位地址,所有連接在I2C 總線(xiàn)上的設(shè)備都接收啟動(dòng)信號(hào)后的第一個(gè)字節(jié),并將接收到的地址與自己的地址進(jìn)行比較,如果地 址相符則為主機(jī)要尋訪(fǎng)的從機(jī),應(yīng)答在第九位時(shí)鐘脈沖時(shí)向SDA 線(xiàn)送出低電平作為應(yīng)答。除了第一字節(jié)是通用呼叫地址之外第二字節(jié)開(kāi)始即數(shù)據(jù)字節(jié)。數(shù)據(jù)傳送完畢,由主機(jī)發(fā)出停止信號(hào)“P”(SDA在SCL 高電平期間由低電平跳變?yōu)楦唠娖?。
|