I
2C 總線是控制器與一系列外設(shè)之間的通信鏈路。該鏈路是使用一條雙線總線建立的,這條總線包含串行時(shí)鐘信號(hào) (SCL) 和串行數(shù)據(jù)信號(hào) (SDA)。在串行數(shù)據(jù)線路用于控制器與外設(shè)終端之間雙向數(shù)據(jù)通信的所有情況下,串行時(shí)鐘均來源于控制器。每個(gè)器件都有一個(gè)開漏輸出可用于在串行數(shù)據(jù)線路 (SDA) 上傳輸數(shù)據(jù)。為了在數(shù)據(jù)傳輸期間將漏極輸出拉至高電平,必須在串行數(shù)據(jù)線路上放置一個(gè)外部上拉電阻器。該器件上配有一個(gè)外設(shè) I
2C 接口,這個(gè)接口支持以標(biāo)準(zhǔn)模式、快速模式和快速+ 模式運(yùn)行,數(shù)據(jù)速率分別高達(dá) 100kbit/s、400kbit/s 和 1000kbit/s,并可實(shí)現(xiàn)與 I
2C 標(biāo)準(zhǔn) 3.0 兼容的自動(dòng)遞增尋址。如下圖所示,數(shù)據(jù)傳輸由一個(gè)來自控制器的起始位啟動(dòng)。在 SCL 信號(hào)的高電平期間,當(dāng) SDA 線路從高電平轉(zhuǎn)換為低電平時(shí),會(huì)識(shí)別到啟動(dòng)條件。接收到起始位后,該器件將在 SDA 輸入端接收串行數(shù)據(jù),并檢查是否存在有效地址和控制信息。如果為器件設(shè)置了外設(shè)地址位,則器件會(huì)發(fā)出確認(rèn)脈沖并準(zhǔn)備接收寄存器地址和數(shù)據(jù)。在接收到停止條件或接收到發(fā)送給器件的數(shù)據(jù)字時(shí),數(shù)據(jù)傳輸即完成。停止條件是指在 SCL 信號(hào)的高電平期間,SDA 輸入從低電平轉(zhuǎn)換到高電平。SDA 線路的所有其他轉(zhuǎn)換必須在 SCL 信號(hào)的低電平期間完成。在接收到有效地址、子地址和數(shù)據(jù)字后,會(huì)發(fā)出確認(rèn)。I
2C 接口通過寄存器地址實(shí)現(xiàn)自動(dòng)定序,以便在一次給定的 I
2C 傳輸中可以發(fā)送多個(gè)數(shù)據(jù)字。