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