fbpx
维基百科

I²C

I²CInter-Integrated Circuit)字面上的意思是積體電路之間,它其實是I²C Bus簡稱,所以中文應該叫集成电路总线,它是一種串列通訊匯流排,使用多主從架構,由飛利浦公司在1980年代為了讓主機板嵌入式系統手機用以連接低速週邊裝置而發展。I²C的正確讀法為“I平方C”("I-squared-C"),而“I二C”("I-two-C")則是另一種錯誤但被廣泛使用的讀法。自2006年10月1日起,使用I²C協定已經不需要支付專利費,但製造商仍然需要付費以取得I²C從屬裝置位址[1]

I2C总线
類別 串列 总线
設計者 飞利浦半导体,现为恩智浦半导体
設計时间 1982年,​41年前​(1982
数据信号 集电极开路
宽度 1-bit (SDA) with separate clock (SCL)
比特率 在不同模式下 0.1, 0.4, 1.0, 3.4 or 5.0Mbit/s
协议 串列, 半双工
I2C bus

設計概說 编辑

  • 一般 I²C 晶片常用的傳輸格式有下列二種:

(啟始)-[控制]-[指令]-[資料]-(結束)
(啟始)-[控制0]-[指令]-(r啟始)-[控制1]-[資料]-(結束)

 
I²C-Bus
 
一個由單一主控端(一個微控制器)及三個從屬節點(一個類比數位轉換器)、一個數位類比轉換器以及一另一個微控制器)所構成,並使用了上拉電阻Rp

I²C只使用兩條雙向漏极开路(Open Drain)线,其中一条线为传输数据的串列資料线(SDA, Serial DAta line),另一条线是启动或停止传输以及发送时钟序列的串列時脈(SCL, Serial CLock line)线,这两条线上都有上拉電阻[2]。I²C允許相當大的工作電壓範圍,但典型的電壓準位為+3.3V或+5v。

I²C的參考設計使用一個7位元長度的位址空間但保留了16個位址,所以在一組匯流排最多可和112個節點通訊[a]。常見的I²C匯流排依傳輸速率的不同而有不同的模式:標準模式(100 kbit/s)、低速模式(10 kbit/s),但時脈頻率可被允許下降至零,這代表可以暫停通訊。而新一代的I²C匯流排可以和更多的節點(支援10位元長度的位址空間)以更快的速率通訊:快速模式(400 kbit/s)、快速+模式(1 Mbit/s)高速模式(3.4 Mbit/s)超高速模式(5 Mbit/s)。

雖然最大的節點數目是被位址空間所限制住,但實際上也會被匯流排上的總電容所限制住,一般而言為400 pF。

 
Data transfer sequence

参考设计 编辑

I²C仅使用两个双向开漏线,串列数据线(SDA)和串列时钟线(SCL),以及上拉电阻。使用的典型电压是+5 V或+3.3 V(虽然其他电压系统也是允许的)。

在I²C参考设计中,使用7或10位(取决于所使用的设备)地址空间。普通I²C总线速度为100 kbit / s的标准模式和10 kbit / s的低速模式,但任意低时钟频率也是允许的。 I²C的最新修订可以承载更多的节点,并以更快的速度运行[b]。这些速度被更广泛地使用在嵌入式系统中而不是PC上。I²C也有其他的特性,例如16位寻址。

请注意,这里引用的比特率为主节点和从节点之间没有时钟延长或其他硬件开销的传输比特率。协议开销包括一个字节从地址(或许还有从设备内部寄存器地址)以及每个字节的ACK / NACK比特。因此这意味着,用户数据的实际传输速率要低于峰值比特率。例如,如果与从设备以低效的每次仅一个字节数据进行传输,数据率将比峰值比特率少于一半(因为其余的时钟需要发送一个字节地址和ACK比特)。

节点的最大数量受限于地址空间以及400 pF的总总线电容。400 pF总电容也限制了实际通訊距离只有几米。


如上所述,参考设计为使用串列数据线(SDA)和串列时钟线(SCL)、拥有7位元寻址空间的总线。 总线上有两种类型角色的节点:

  • 主节点 - 产生时钟并发起与从节点的通訊
  • 从节点 - 接收时钟并响应主节点的寻址

该总线是一种多主控总线,即可以在总线上放置任意多主节点。此外,在停止位元(STOP)发出后,一个主节点也可以成为从节点,反之亦然。

总线上有四种不同的操作模式,虽然大部分设备只作为一种角色和使用其中两种操作模式:

  • 主节点发送 - 主节点发送数据给从节点
  • 主节点接收 - 主节点接收从节点数据
  • 从节点发送 - 从节点发送数据给主节点
  • 从节点接收 - 从节点接收主节点数据

一开始,主节点处于主节点发送模式,发送起始位元(START),跟着发送希望与之通訊的从节点的7位元地址,最后再发送1位读写位元,该位元表示主节点想要与从节点进行读(1)还是写(0)操作。

如果从节点在总线上,它将以ACK字元应答(低態觸發)该地址。主节点收到应答后,根据它发送的读写位元,处于发送模式或者接收模式,从节点则处于对应的相反模式(接收或发送)。

地址和数据首先发送最高有效位。 起始位元在SCL为高时,由SDA上準位从高变低表示;停止位元在SCL为高时,由SDA上準位从低变高表示。其他SDA上的準位变化在SCL为低时发生。

如果主节点想要向从节点写数据,它将发送一个字节,然后从节点以ACK位元应答,如此重复。此时,主节点处于主节点发送模式,从节点处于从节点接收模式。

如果主节点想要读取从节点数据,它将不断接收从节点发送的一个个字节,在收到每个字节后发送ACK进行应答,除了接收到的最后一个字节。此时,主节点处于主节点接收模式,从节点处于从节点发送模式。

此后,主节点不是发送停止位元终止传输,就是发送另一个起始位元以发起另一次传输(即“组合消息”)。

修訂 编辑

I2C规范的历次修订
年份 版本 最高速度 注解 PDF
1982 Original 100 kbit/s 当时的I²C系統是一種簡單的內部匯流排系統,當時主要的用途在於控制由飛利浦所生產的晶片。 n/a
1992 1 400 kbit/s 新增了傳輸速率為400 kbit/s的快速模式及長度為10位元的定址模式,该模式下可容納最多1008個節點。这是最初的標準版本。 n/a
1998 2 3.4 Mbit/s 新增了傳輸速率為3.4Mbit/s的高速模式,並減小总线需要的電壓及電流以節省能源。 n/a
2000 2.1 3.4 Mbit/s 仅對2.0版做一些小修正,功能并无变化。 [3]
2007 3 3.4 Mbit/s 新增了高速+模式,这一模式需要20 mA的电流来驱动。添加设备ID机制。 [4]
2012 4 5 Mbit/s 增加5 MHz的超快速模式(UFM),这种模式是单工模式。使用带有推挽输出的新型USDA和USCS线,这两条线上不再有上拉电阻。增加了制造商指定的ID表。 [5]
2012 5 5 Mbit/s 修正错误。 [6]
2014 6 5 Mbit/s 修正两幅图。这是目前最新的标准。 [2]

應用 编辑

 
STMicroelectronics 24C08: Serial EEPROM with I2C bus[7]
 
A 16-bit ADC board with I2C interface

I²C被應用在构造簡單且可以牺牲傳輸速度来降低製造成本的週邊上。一些常見的應用如下:

I²C的一個优势在於其接腳数少。通过两个接腳以及相应的软件,微控制器就可以控制某一个网络内的设备,而使用其他技术则需要更多的接腳。而且,较少的接腳数可以减小封装尺寸,进而減少重量及電源的消耗,這對於行動電話及手持式電腦而言格外重要。由于電腦工程師發現到對於整合電路設計而言,許多的製造成本源自於封裝尺寸及接腳數量,因而像I²C這樣的匯流排受到了广泛应用。

週邊可以在系統仍然在運作的同時加入或移出匯流排,這代表對於有熱插拔需求的裝置而言是個理想的匯流排。

  • arduino mega上的pin腳
  • raspberry pi 4 上的pin腳

可參考arduino mega 轉 raspberry pi 4 i2c 3v轉5v的轉換電路

操作系統的支援 编辑

Linux中,I²C已經列入了核心模組的支援了,更進一步的說明可以參考核心相關的文件及位於/usr/include/linux/i2c.h 的這個標頭檔OpenBSD則在最近的更新中加入了I²C的架構(framework)以支援一些常見的主控端控制器及感應器。

工具开发 编辑

I²C主机适配器 编辑

I²C协议分析仪 编辑

逻辑分析仪 编辑

限制 编辑

i2c在容易線長導致訊號品質不佳,速度越快能用的距離越短(一般約在10公分上下),上拉電阻用小一點可能有幫助

i2c阻抗50,usb阻抗100在做訊號轉換時阻抗不匹配會造成訊號極差

  • 上升電阻計算:

衍生技术 编辑

參見 编辑

參考資料 编辑

  1. ^ I2C Licensing Information (PDF). nxp.com. [2018-04-29]. (原始内容 (PDF)于2017-01-10). 
  2. ^ 2.0 2.1 I2C-bus specification (PDF). Rev 6. NXP Semiconductors. April 4, 2014 [2015-11-02]. (原始内容 (PDF)于2014-07-25). 
  3. ^ I2C-bus specification Rev 2.1; Philips Semiconductors; January 2000; Archived. (PDF). [2007-02-12]. (原始内容 (PDF)于2007-02-12). 
  4. ^ I2C-bus specification Rev 3; NXP Semiconductors; June 19, 2007; Archived. (PDF). [2012-02-07]. (原始内容 (PDF)于2012-02-07). 
  5. ^ I2C-bus specification Rev 4; NXP Semiconductors; February 13, 2012; Archived. (PDF). [2012-05-02]. (原始内容 (PDF)于2012-05-02). 
  6. ^ I2C-bus specification Rev 5; NXP Semiconductors; October 9, 2012; Archived. (PDF). [2012-10-17]. (原始内容 (PDF)于2012-10-17). 
  7. ^ 8-Kbit serial I2C bus EEPROM (PDF) (PDF). STMicroelectronics. October 2017 [19 November 2019]. (原始内容 (PDF)于2019-10-18).  |url-status=|dead-url=只需其一 (帮助)
  8. ^ Benefits of Power Supplies Equipped with I2C Ethernet Communications. Aegis Power Systems, Inc. Aegis Power Systems, Inc. [2015-12-21]. (原始内容于2015-12-22). 

註釋 编辑

  1. ^ 應該為27=128個,但是其中16個指令具有特殊定義,所以剩下112。
  2. ^ 400 kbit / s的快速模式,1 Mbit / s的快速模式加上或FM +和3.4 Mbit / s的高速模式

外部連結 编辑

  • Philips I2C specifications(页面存档备份,存于互联网档案馆
  • Detailed introduction, Primer (页面存档备份,存于互联网档案馆
  • I2C Bus / Access Bus (页面存档备份,存于互联网档案馆
  • Using the I2C Bus with Linux (页面存档备份,存于互联网档案馆
  • OpenBSD iic(4) manual page[永久失效連結]
  • Linux package support I2C bus among others.
  • massmind i2c page (页面存档备份,存于互联网档案馆) Source code, samples and technical information for using i2c with PC, PIC and SX microcontrollers.
  • Serial buses information page(页面存档备份,存于互联网档案馆
  • I2C Bus Technical Overview and Frequently Asked Questions (页面存档备份,存于互联网档案馆

本條目存在以下問題, 請協助改善本條目或在討論頁針對議題發表看法, 此條目可参照英語維基百科相應條目来扩充, 2023年3月17日, 若您熟悉来源语言和主题, 请协助参考外语维基百科扩充条目, 请勿直接提交机械翻译, 也不要翻译不可靠, 低品质内容, 依版权协议, 译文需在编辑摘要注明来源, 或于讨论页顶部标记, href, template, translated, page, html, title, template, translated, page, translated, page, 标签, 此條目需要. 本條目存在以下問題 請協助改善本條目或在討論頁針對議題發表看法 此條目可参照英語維基百科相應條目来扩充 2023年3月17日 若您熟悉来源语言和主题 请协助参考外语维基百科扩充条目 请勿直接提交机械翻译 也不要翻译不可靠 低品质内容 依版权协议 译文需在编辑摘要注明来源 或于讨论页顶部标记 a href Template Translated page html title Template Translated page Translated page a 标签 此條目需要精通或熟悉电子学的编者参与及协助编辑 請邀請適合的人士改善本条目 更多的細節與詳情請參见討論頁 另見其他需要电子学專家關注的頁面 I C Inter Integrated Circuit 字面上的意思是積體電路之間 它其實是I C Bus簡稱 所以中文應該叫集成电路总线 它是一種串列通訊匯流排 使用多主從架構 由飛利浦公司在1980年代為了讓主機板 嵌入式系統或手機用以連接低速週邊裝置而發展 I C的正確讀法為 I平方C I squared C 而 I二C I two C 則是另一種錯誤但被廣泛使用的讀法 自2006年10月1日起 使用I C協定已經不需要支付專利費 但製造商仍然需要付費以取得I C從屬裝置位址 1 I2C总线類別串列 总线產品歷史設計者飞利浦半导体 现为恩智浦半导体設計时间1982年 41年前 1982 数据数据信号集电极开路宽度1 bit SDA with separate clock SCL 比特率在不同模式下 0 1 0 4 1 0 3 4 or 5 0Mbit s协议串列 半双工I2C bus 目录 1 設計概說 1 1 参考设计 2 修訂 3 應用 4 操作系統的支援 5 工具开发 5 1 I C主机适配器 5 2 I C协议分析仪 5 3 逻辑分析仪 6 限制 7 衍生技术 8 參見 9 參考資料 10 註釋 11 外部連結設計概說 编辑一般 I C 晶片常用的傳輸格式有下列二種 啟始 控制 指令 資料 結束 啟始 控制0 指令 r啟始 控制1 資料 結束 nbsp I C Bus nbsp 一個由單一主控端 一個微控制器 及三個從屬節點 一個類比數位轉換器 一個數位類比轉換器以及一另一個微控制器 所構成 並使用了上拉電阻Rp I C只使用兩條雙向漏极开路 Open Drain 线 其中一条线为传输数据的串列資料线 SDA Serial DAta line 另一条线是启动或停止传输以及发送时钟序列的串列時脈 SCL Serial CLock line 线 这两条线上都有上拉電阻 2 I C允許相當大的工作電壓範圍 但典型的電壓準位為 3 3V或 5v I C的參考設計使用一個7位元長度的位址空間但保留了16個位址 所以在一組匯流排最多可和112個節點通訊 a 常見的I C匯流排依傳輸速率的不同而有不同的模式 標準模式 100 kbit s 低速模式 10 kbit s 但時脈頻率可被允許下降至零 這代表可以暫停通訊 而新一代的I C匯流排可以和更多的節點 支援10位元長度的位址空間 以更快的速率通訊 快速模式 400 kbit s 快速 模式 1 Mbit s 高速模式 3 4 Mbit s 超高速模式 5 Mbit s 雖然最大的節點數目是被位址空間所限制住 但實際上也會被匯流排上的總電容所限制住 一般而言為400 pF nbsp Data transfer sequence参考设计 编辑 I C仅使用两个双向开漏线 串列数据线 SDA 和串列时钟线 SCL 以及上拉电阻 使用的典型电压是 5 V或 3 3 V 虽然其他电压系统也是允许的 在I C参考设计中 使用7或10位 取决于所使用的设备 地址空间 普通I C总线速度为100 kbit s的标准模式和10 kbit s的低速模式 但任意低时钟频率也是允许的 I C的最新修订可以承载更多的节点 并以更快的速度运行 b 这些速度被更广泛地使用在嵌入式系统中而不是PC上 I C也有其他的特性 例如16位寻址 请注意 这里引用的比特率为主节点和从节点之间没有时钟延长或其他硬件开销的传输比特率 协议开销包括一个字节从地址 或许还有从设备内部寄存器地址 以及每个字节的ACK NACK比特 因此这意味着 用户数据的实际传输速率要低于峰值比特率 例如 如果与从设备以低效的每次仅一个字节数据进行传输 数据率将比峰值比特率少于一半 因为其余的时钟需要发送一个字节地址和ACK比特 节点的最大数量受限于地址空间以及400 pF的总总线电容 400 pF总电容也限制了实际通訊距离只有几米 如上所述 参考设计为使用串列数据线 SDA 和串列时钟线 SCL 拥有7位元寻址空间的总线 总线上有两种类型角色的节点 主节点 产生时钟并发起与从节点的通訊 从节点 接收时钟并响应主节点的寻址该总线是一种多主控总线 即可以在总线上放置任意多主节点 此外 在停止位元 STOP 发出后 一个主节点也可以成为从节点 反之亦然 总线上有四种不同的操作模式 虽然大部分设备只作为一种角色和使用其中两种操作模式 主节点发送 主节点发送数据给从节点 主节点接收 主节点接收从节点数据 从节点发送 从节点发送数据给主节点 从节点接收 从节点接收主节点数据一开始 主节点处于主节点发送模式 发送起始位元 START 跟着发送希望与之通訊的从节点的7位元地址 最后再发送1位读写位元 该位元表示主节点想要与从节点进行读 1 还是写 0 操作 如果从节点在总线上 它将以ACK字元应答 低態觸發 该地址 主节点收到应答后 根据它发送的读写位元 处于发送模式或者接收模式 从节点则处于对应的相反模式 接收或发送 地址和数据首先发送最高有效位 起始位元在SCL为高时 由SDA上準位从高变低表示 停止位元在SCL为高时 由SDA上準位从低变高表示 其他SDA上的準位变化在SCL为低时发生 如果主节点想要向从节点写数据 它将发送一个字节 然后从节点以ACK位元应答 如此重复 此时 主节点处于主节点发送模式 从节点处于从节点接收模式 如果主节点想要读取从节点数据 它将不断接收从节点发送的一个个字节 在收到每个字节后发送ACK进行应答 除了接收到的最后一个字节 此时 主节点处于主节点接收模式 从节点处于从节点发送模式 此后 主节点不是发送停止位元终止传输 就是发送另一个起始位元以发起另一次传输 即 组合消息 修訂 编辑I2C规范的历次修订 年份 版本 最高速度 注解 PDF1982 Original 100 kbit s 当时的I C系統是一種簡單的內部匯流排系統 當時主要的用途在於控制由飛利浦所生產的晶片 n a1992 1 400 kbit s 新增了傳輸速率為400 kbit s的快速模式及長度為10位元的定址模式 该模式下可容納最多1008個節點 这是最初的標準版本 n a1998 2 3 4 Mbit s 新增了傳輸速率為3 4Mbit s的高速模式 並減小总线需要的電壓及電流以節省能源 n a2000 2 1 3 4 Mbit s 仅對2 0版做一些小修正 功能并无变化 3 2007 3 3 4 Mbit s 新增了高速 模式 这一模式需要20 mA的电流来驱动 添加设备ID机制 4 2012 4 5 Mbit s 增加5 MHz的超快速模式 UFM 这种模式是单工模式 使用带有推挽输出的新型USDA和USCS线 这两条线上不再有上拉电阻 增加了制造商指定的ID表 5 2012 5 5 Mbit s 修正错误 6 2014 6 5 Mbit s 修正两幅图 这是目前最新的标准 2 應用 编辑 nbsp STMicroelectronics 24C08 Serial EEPROM with I2C bus 7 nbsp A 16 bit ADC board with I2C interfaceI C被應用在构造簡單且可以牺牲傳輸速度来降低製造成本的週邊上 一些常見的應用如下 為了保存使用者的設定而存取NVRAM晶片 存取低速的數位類比轉換器 DAC 和類比數位轉換器 ADC 改變監視器的對比度 色調及色彩平衡設定 VESA显示数据频道 控制小型液晶或OLED屏幕 改變音量大小 取得硬體監視及診斷資料 例如中央處理器的溫度及風扇轉速 讀取实时时钟 Real time clock 在系統設備中用來開啟或關閉電源供應 8 I C的一個优势在於其接腳数少 通过两个接腳以及相应的软件 微控制器就可以控制某一个网络内的设备 而使用其他技术则需要更多的接腳 而且 较少的接腳数可以减小封装尺寸 进而減少重量及電源的消耗 這對於行動電話及手持式電腦而言格外重要 由于電腦工程師發現到對於整合電路設計而言 許多的製造成本源自於封裝尺寸及接腳數量 因而像I C這樣的匯流排受到了广泛应用 週邊可以在系統仍然在運作的同時加入或移出匯流排 這代表對於有熱插拔需求的裝置而言是個理想的匯流排 arduino mega上的pin腳 raspberry pi 4 上的pin腳可參考arduino mega 轉 raspberry pi 4 i2c 3v轉5v的轉換電路操作系統的支援 编辑在Linux中 I C已經列入了核心模組的支援了 更進一步的說明可以參考核心相關的文件及位於 usr include linux i2c h 的這個標頭檔 OpenBSD則在最近的更新中加入了I C的架構 framework 以支援一些常見的主控端控制器及感應器 工具开发 编辑I C主机适配器 编辑 I C协议分析仪 编辑 逻辑分析仪 编辑限制 编辑i2c在容易線長導致訊號品質不佳 速度越快能用的距離越短 一般約在10公分上下 上拉電阻用小一點可能有幫助i2c阻抗50 usb阻抗100在做訊號轉換時阻抗不匹配會造成訊號極差 上升電阻計算 衍生技术 编辑參見 编辑 nbsp 电子学主题 序列周邊介面 I S 1 Wire Bus Serial Peripheral Interface Bus SMBus參考資料 编辑 I2C Licensing Information PDF nxp com 2018 04 29 原始内容存档 PDF 于2017 01 10 2 0 2 1 I2C bus specification PDF Rev 6 NXP Semiconductors April 4 2014 2015 11 02 原始内容存档 PDF 于2014 07 25 I2C bus specification Rev 2 1 Philips Semiconductors January 2000 Archived PDF 2007 02 12 原始内容存档 PDF 于2007 02 12 I2C bus specification Rev 3 NXP Semiconductors June 19 2007 Archived PDF 2012 02 07 原始内容存档 PDF 于2012 02 07 I2C bus specification Rev 4 NXP Semiconductors February 13 2012 Archived PDF 2012 05 02 原始内容存档 PDF 于2012 05 02 I2C bus specification Rev 5 NXP Semiconductors October 9 2012 Archived PDF 2012 10 17 原始内容存档 PDF 于2012 10 17 8 Kbit serial I2C bus EEPROM PDF PDF STMicroelectronics October 2017 19 November 2019 原始内容存档 PDF 于2019 10 18 url status 和 dead url 只需其一 帮助 Benefits of Power Supplies Equipped with I2C Ethernet Communications Aegis Power Systems Inc Aegis Power Systems Inc 2015 12 21 原始内容存档于2015 12 22 註釋 编辑 應該為27 128個 但是其中16個指令具有特殊定義 所以剩下112 400 kbit s的快速模式 1 Mbit s的快速模式加上或FM 和3 4 Mbit s的高速模式外部連結 编辑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 lm sensors 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 2 0 The Bus Buffer Resource For 2 wire buses such as I2C SMBus PMBus IPMB amp IPMI I2C Licensing Information 取自 https zh wikipedia org w index php title I C amp oldid 79223005, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。