I²C
I²C(Inter-Integrated Circuit)是內部整合電路的稱呼,是一種串列通訊匯流排,使用多主從架構,由飛利浦公司在1980年代為了讓主機板、嵌入式系統或手機用以連接低速週邊裝置而發展。I²C的正確讀法為"I-squared-C" ,而"I-two-C"則是另一種錯誤但被廣泛使用的讀法,在中國則多以"I方C"稱之。截至2006年11月1日為止,使用I²C協定不需要為其專利付費,但製造商仍然需要付費以獲得I²C從屬裝置位址。
目录 |
設計概說 [编辑]
I²C只使用兩條雙向開放集極(Open Drain)(串列資料(SDA)及串列時脈(SCL))並利用電阻將電位上拉。I²C允許相當大的工作電壓範圍,但典型的電壓準位為+3.3V或+5v。
I²C的參考設計使用一個7位元長度的位址空間但保留了16個位址,所以在一組匯流排最多可和112個節點通訊。常見的I²C匯流排依傳輸速率的不同而有不同的模式:標準模式(100 Kbit/s)、低速模式(10 Kbit/s),但時脈頻率可被允許下降至零,這代表可以暫停通訊。而新一代的I²C匯流排可以和更多的節點(支援10位元長度的位址空間)以更快的速率通訊:快速模式(400 Kbit/s)、高速模式(3.4 Mbit/s)。
雖然最大的節點數目是被位址空間所限制住,但實際上也會被匯流排上的總電容所限制住,一般而言為400 pF。
修訂 [编辑]
原始的I²C系統是在1980年代所建立的一種簡單的內部匯流排系統,當時主要的用途在於控制由飛利浦所生產的晶片。
1992年完成了最初的標準版本釋出,新增了傳輸速率為400 kbit/s的快速模式及長度為10位元的定址模式可容納最多1008個節點。1998年釋出了2.0版,新增了傳輸速率為3.4Mbit/s的高速模式並為了節省能源而減少了電壓及電流的需求。2.1版則在2001年完成,這是一個對2.0版做一些小修正,version 3.0, 於2007年釋出。
2012年2月13日釋出Specification Rev. 新增 5-MHz的超快速模式(UFM)。
應用 [编辑]
I²C被應用在簡單的週邊且其製造成本較傳輸速度更為要求。一些常見的應用如下:
- 為了保存使用者的設定而存取NVRAM晶片。
- 存取低速的數位轉換類比(DAC)。
- 存取低速的類比轉換數位(ADC)。
- 改變監視器的對比度、色調及色彩平衡設定(視訊資料通道)。
- 改變音量大小。
- 取得硬體監視及診斷資料,例如中央處理器的溫度及風扇轉速。
- 讀取实时的時鐘(Real-time clock)。
- 在系統設備中用來開啟或關閉電源供應。
I²C的另一個強大用途在於微控制器的應用,利用兩根通用的輸入輸出接腳及軟體的規劃,可以讓微控制器控制一個小型網路。
週邊可以在系統仍然在運作的同時加入或移出匯流排,這代表對於有熱插拔需求的裝置而言是個理想的匯流排。
像I²C這樣的匯流排之所以流行起來,是因為電腦工程師發現到對於整合電路設計而言,許多的製造成本源自於封裝尺寸及接腳數量。更小的包裝通常能夠減少重量及電源的消耗,這對於行動電話及手持式電腦而言格外重要。
操作系統的支援 [编辑]
在Linux中,I²C已經列入了核心模組的支援了,更進一步的說明可以參考核心相關的文件及位於/usr/include/linux/i2c.h 的這個標頭檔。OpenBSD則在最近的更新中加入了I²C的架構(framework)以支援一些常見的主控端控制器及感應器。
參見 [编辑]
外部鏈結 [编辑]
- 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 & IPMI
- I2C Licensing Information
|
|||||||||||||||||||||||