IIC總線有兩根信號線,一根是雙向的數(shù)據(jù)線SDA,一根是時(shí)鐘總線SCL。硬件上,所有接到IIC總線設(shè)備上的串行數(shù)據(jù)線SDA都接到總線的SDA上,各設(shè)備的時(shí)鐘線SCL都連接到總線的SCL線上。各設(shè)備連接到總線的輸出端都必須是漏極開路輸出或集電極開路輸出。各設(shè)備的SDA之間是與關(guān)系,SCL之間也是與關(guān)系。IIC總線上允許連接多個(gè)微處理器以及多種外圍設(shè)備,如存儲(chǔ)器、顯示屏等。任一時(shí)刻,總線只能由某一臺(tái)主機(jī)控制,各微處理器應(yīng)該在總線空閑時(shí)發(fā)送啟動(dòng)數(shù)據(jù) 。IIC總線允許連接不同傳送速率的設(shè)備,多臺(tái)設(shè)備之間時(shí)鐘信號的同步過程稱之為同步化。
IIC總線傳輸過程中,
開始的條件:當(dāng)SCL保持高電平時(shí),SDA由高變低;
停止的條件:當(dāng)SCL保持高電平時(shí),SDA由低變高;
傳送:SCL保持低電平,SDA線的高低電平的變化。
傳送的限制:輸出到SDA線上的每一個(gè)字節(jié)必須是8位的,每次傳輸?shù)淖止?jié)不受限制,但每個(gè)字節(jié)必須有一個(gè)應(yīng)答信號ACK。
與應(yīng)答信號ACK對應(yīng)的時(shí)鐘脈沖由主控制器產(chǎn)生,發(fā)送器在應(yīng)答期間必須下拉SDA線。當(dāng)尋址的被控器件不能應(yīng)答時(shí),數(shù)據(jù)保持為高并使主控器產(chǎn)生停止條件而終止傳輸。在傳輸?shù)倪^程中,在用到主控接收器的情況下,主控接收器必須發(fā)出一數(shù)據(jù)結(jié)束信號給被控發(fā)送器,從而使被控發(fā)送器釋放數(shù)據(jù)線,以允許主控器產(chǎn)生停止條件。
IIC總線在開始條件后的首字節(jié)決定哪個(gè)被控器被主機(jī)選擇,即開始信號之后的是地址信號
評論