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