I²C（InterIntegrated Circuit）字面上的意思是積體電路之間，它其實是 I²C Bus 簡稱，所以中文應該叫 zhhant 積體匯流排電路；zhhans 積體電路匯流排，它是一種 zh 串列；zhhant 串列；zhhans 序列 通訊匯流排，使用多主從架構，由飛利浦公司在 1980 年代為了讓主機板、嵌入式系統或手機用以連線低速週邊裝置而發展。I²C 的正確讀法為 I 平方 C（IsquaredC），而 I 二 C（ItwoC）則是另一種錯誤但被廣泛使用的讀法。自 2006 年 10 月 1 日起，使用 I²C 協定已經不需要支付專利費，但製造商仍然需要付費以取得 I²C 從屬裝置位址。 設計概說 一般 I²C 晶片常用的傳輸格式有下列二種 啟始控制指令資料結束 啟始控制 0指令r 啟始控制 1資料結束 I²C 只使用兩條雙向漏極開路（Open Drain）線，其中一條線為傳輸資料的 zh 串列；zhhant 串列；zhhans 序列 資料線（SDA Serial DAta line），另一條線是啟動或停止傳輸以及傳送時鐘序列的 zh 串列；zhhant 串列；zhhans 序列 時脈（SCL Serial CLock line）線，這兩條線上都有上拉電阻。I²C 允許相當大的工作電壓範圍，但典型的電壓準位為 33V 或 5v。 I²C 的參考設計使用一個 7 位元長度的位址空間但保留了 16 個位址，所以在一組匯流排最多可和 112 個節點通訊。常見的 I²C 匯流排依傳輸速率的不同而有不同的模式：標準模式（100 kbits）、低速模式（10 kbits），但時脈頻率可被允許下降至零，這代表可以暫停通訊。而新一代的 I²C 匯流排可以和更多的節點（支援 10 位元長度的位址空間）以更快的速率通訊：快速模式（400 kbits）、快速 模式（1 Mbits）高速模式（34 Mbits）超高速模式（5 Mbits）。 雖然最大的節點數目是被位址空間所限制住，但實際上也會被匯流排上的總電容所限制住，一般而言為 400 pF。 參考設計 I²C 僅使用兩個雙向開漏線，zh 串列；zhhant 串列；zhhans 序列 資料線（SDA）和 zh 串列；zhhant 串列；zhhans 序列 時鐘線（SCL），以及上拉電阻。使用的典型電壓是 5 V 或 33 V（雖然其他電壓系統也是允許的）。 在 I²C 參考設計中，使用 7 或 10 位（取決於所使用的裝置）地址空間。普通 I²C 匯流排速度為 100 kbit s 的標準模式和 10 kbit s 的低速模式，但任意低時鐘頻率也是允許的。 I²C 的最新修訂可以承載更多的節點，並以更快的速度執行。這些速度被更廣泛地使用在嵌入式系統中而不是 PC 上。I²C 也有其他的特性，例如 16 位定址。 請注意，這裡引用的位元率為主節點和從節點之間沒有時鐘延長或其他硬體開銷的傳輸位元率。協議開銷包括一個位元組從地址（或許還有從裝置內部暫存器地址）以及每個位元組的 ACK NACK 位元。因此這意味著，使用者資料的實際傳輸速率要低於峰值位元率。例如，如果與從裝置以低效的每次僅一個位元組資料進行傳輸，資料率將比峰值位元率少於一半（因為其餘的時鐘需要傳送一個位元組地址和 ACK 位元）。 節點的最大數量受限於地址空間以及 400 pF 的總匯流排電容。400 pF 總電容也限制了實際通訊距離只有幾米。 如上所述，參考設計為使用 zh 串列；zhhant 串列；zhhans 序列 資料線（SDA）和 zh 串列；zhhant 串列；zhhans 序列 時鐘線（SCL）、擁有 7 位元定址空間的匯流排。 總線上有兩種型別角色的節點： 主節點 產生時鐘併發起與從節點的通訊 從節點 接收時鐘並響應主節點的定址 該匯流排是一種多主控匯流排，即可以在總線上放置任意多主節點。此外，在停止位元（STOP）發出後，一個主節點也可以成為從節點，反之亦然。 總線上有四種不同的操作模式，雖然大部分裝置只作為一種角色和使用其中兩種操作模式： 主節點發送 主節點發送資料給從節點 主節點接收 主節點接收從節點資料 從節點發送 從節點發送資料給主節點 從節點接收 從節點接收主節點資料 一開始，主節點處於主節點發送模式，傳送起始位元（START），跟著傳送希望與之通訊的從節點的 7 位元地址，最後再發送 1 位讀寫位元，該位元表示主節點想要與從節點進行讀（1）還是寫（0）操作。 如果從節點在總線上，它將以 ACK 字元應答（低態觸發）該地址。主節點收到應答後，根據它傳送的讀寫位元，處於傳送模式或者接收模式，從節點則處於對應的相反模式（接收或傳送）。 地址和資料首先發送最高有效位。 起始位元在 SCL 為高時，由 SDA 上準位從高變低表示；停止位元在 SCL 為高時，由 SDA 上準位從低變高表示。其他 SDA 上的準位變化在 SCL 為低時發生。 如果主節點想要向從節點寫資料，它將傳送一個位元組，然後從節點以 ACK 位元應答，如此重複。此時，主節點處於主節點發送模式，從節點處於從節點接收模式。 如果主節點想要讀取從節點資料，它將不斷接收從節點發送的一個個位元組，在收到每個位元組後傳送 ACK 進行應答，除了接收到的最後一個位元組。此時，主節點處於主節點接收模式，從節點處於從節點發送模式。 此後，主節點不是傳送停止位元終止傳輸，就是傳送另一個起始位元以發起另一次傳輸（即 組合訊息）。 修訂 I2C 規範的歷次修訂 年份 版本 最高速度 註解 PDF 1982 Original 100 kbits 當時的 I²C 系統是一種簡單的內部匯流排系統，當時主要的用途在於控制由飛利浦所生產的晶片。 na 1992 1 400 kbits 新增了傳輸速率為 400 kbits 的快速模式及長度為 10 位元的 zh 定址；zhhant 定址；zhhans 地址 模式，該模式下可容納最多 1008 個節點。這是最初的標準版本。 na 1998 2 34 Mbits 新增了傳輸速率為 34Mbits 的高速模式，並減小匯流排需要的電壓及電流以節省能源。 na 2000 21 34 Mbits 僅對 20 版做一些小修正，功能並無變化。 2007 3 34 Mbits 新增了高速 模式，這一模式需要 20 mA 的電流來驅動。新增裝置 ID 機制。 2012 4 5 Mbits 增加 5 MHz 的超快速模式（UFM），這種模式是單工模式。使用帶有推輓輸出的新型 USDA 和 USCS 線，這兩條線上不再有上拉電阻。增加了製造商指定的 ID 表。 2012 5 5 Mbits 修正錯誤。 2014 6 5 Mbits 修正兩幅圖。這是目前最新的標準。 應用 I²C 被應用在構造簡單且可以犧牲傳輸速度來降低製造成本的 zh 週邊；zhhant 週邊；zhhans 外設 上。一些常見的應用如下： 為了儲存使用者的設定而存取 NVRAM 晶片。 存取低速的數位類比轉換器（DAC）和類比數位轉換器（ADC）。 改變監視器的對比度、色調及色彩平衡設定（VESA 顯示資料頻道）。 控制小型液晶或 OLED 螢幕。 改變音量大小。 取得硬體監視及診斷資料，例如中央處理器的溫度及風扇轉速。 讀取即時時鐘（Realtime clock）。 在系統裝置中用來開啟或關閉電源供應。 I²C 的一個優勢在於其接腳數少。透過兩個接腳以及相應的軟體，微控制器就可以控制某一個網路內的裝置，而使用其他技術則需要更多的接腳。而且，較少的接腳數可以減小封裝尺寸，進而減少重量及電源的消耗，這對於行動電話及手持式電腦而言格外重要。由於電腦工程師發現到對於整合電路設計而言，許多的製造成本源自於封裝尺寸及接腳數量，因而像 I²C 這樣的匯流排受到了廣泛應用。 zh 週邊；zhhant 週邊；zhhans 外設 可以在系統仍然在運作的同時加入或移出匯流排，這代表對於有熱插拔需求的裝置而言是個理想的匯流排。 arduino mega 上的 pin 腳 raspberry pi 4 上的 pin 腳 可參考 arduino mega 轉 raspberry pi 4 i2c 3v 轉 5v 的轉換電路 作業系統的支援 在 Linux 中，I²C 已經列入了 zh 核心模組；zhhant 核心模組；zhhans 核心模組 的支援了，更進一步的說明可以參考 zh 核心；zhhant 核心；zhhans 核心 相關的檔案及位於 usrincludelinuxi2ch 的這個標頭檔。OpenBSD 則在最近的更新中加入了 I²C 的架構（framework）以支援一些常見的主控端控制器及 zh 感應器；zhhant 感應器；zhhans 感測器。 工具開發 I²C 主機介面卡 I²C 協議分析儀 邏輯分析儀 限制 i2c 在容易線長導致訊號品質不佳，速度越快能用的距離越短 一般約在 10 公分上下，上拉電阻用小一點可能有幫助 i2c 阻抗 50usb 阻抗 100 在做訊號轉換時阻抗不匹配會造成訊號極差 上升電阻計算 衍生技術 參見 序列周邊介面 I²S 1Wire Bus Serial Peripheral Interface Bus SMBus 參考資料 註釋 外部連結 Philips I2C specifications Detailed introduction Primer Introduction to I2C I2C Bus Access Bus Using the I2C Bus with Linux OpenBSD iic 4 manual page Linux package lmsensors support I2C bus among others massmind i2c page Source code samples and technical information for using i2c with PC PIC and SX microcontrollers I2C bus Serial buses information page I2C Bus Technical Overview and Frequently Asked Questions The I2C Faq Version 20 The Bus Buffer Resource For 2wire buses such as I2C SMBus PMBus IPMB IPMI I2C Licensing Information Category 序列匯流排