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