I2C是使主設(shè)備(例如處理器,微控制器(MCU)或?qū)S?a href="http://www.brongaenegriffin.com/v/tag/123/" target="_blank">集成電路(ASIC))能夠與同一雙線總線上的其它外圍設(shè)備通信的流行通信協(xié)議。一條線專用于數(shù)據(jù)傳輸,而另一條用于時(shí)鐘信號(hào)。想象它就像一個(gè)雙車道公路:每個(gè)車道都有汽車從一端流向另一端,就像數(shù)據(jù)包將從主設(shè)備(處理器、MCU、ASIC)傳輸?shù)酵鈬O(shè)備(溫度傳感器、濕度傳感器及其它設(shè)備)。
那I2C到底是什么呢……現(xiàn)在,為什么要使用它?I2C可以在同一總線上輕松實(shí)現(xiàn)多個(gè)外設(shè) - 例如,使用各種傳感器來(lái)監(jiān)視服務(wù)器的溫度。I2C協(xié)議實(shí)際上設(shè)計(jì)用于在單個(gè)總線上支持多個(gè)設(shè)備,而如串行外設(shè)接口(SPI)的其他協(xié)議的設(shè)計(jì)用于點(diǎn)對(duì)點(diǎn)單設(shè)備支持。雙線I2C接口還可以幫助簡(jiǎn)化對(duì)四線SPI接口的布線,并減少通用輸入/輸出(GPIO)。
TI的用于構(gòu)建I2C樹(shù)狀圖的產(chǎn)品組合可以分為三個(gè)功能,如圖1所示:緩沖轉(zhuǎn)換器、I / O擴(kuò)展器和I2C開(kāi)關(guān)。
圖1:具有各種I2C功能設(shè)備的電子系統(tǒng)
當(dāng)您的設(shè)計(jì)在集成電路(IC)之間的長(zhǎng)走線和/或電壓失配時(shí)遇到劣化信號(hào)時(shí),I2C緩沖轉(zhuǎn)換器可以幫助您。例如,如果您發(fā)現(xiàn)3.3V MCU I2C I / O和5V溫度傳感器之間存在電壓失配,則可以使用I2C電壓轉(zhuǎn)換器(如PCA9306)。此外,對(duì)于長(zhǎng)走線上的相同電壓失配,您可使用緩沖轉(zhuǎn)換器(如TCA9617B)來(lái)解決輸出刷新信號(hào)時(shí)的電壓差。
I2C I / O擴(kuò)展器顧名思義 - 當(dāng)選定的處理器無(wú)可用端口時(shí),它們會(huì)擴(kuò)展I / O數(shù)量,如圖2所示。這些設(shè)備與標(biāo)準(zhǔn)GPIO擴(kuò)展器不同,因?yàn)樗鼈冎苯优cI2C總線上的設(shè)備通信。該組合還提供了多種功能,具體取決于您的特定系統(tǒng)需求,例如通道數(shù)、復(fù)位引腳和電平轉(zhuǎn)換。
圖2:微控制器或處理器使用I / O擴(kuò)展器控制外設(shè)
I2C開(kāi)關(guān)可以解決兩個(gè)不同的問(wèn)題。第一個(gè)問(wèn)題與地址沖突有關(guān)。當(dāng)同一總線上的兩個(gè)設(shè)備具有相同地址時(shí)通常會(huì)發(fā)生沖突。如果系統(tǒng)在同一I2C總線上有兩個(gè)溫度傳感器和兩個(gè)濕度傳感器,所有地址為0xFF - 一個(gè)I2C開(kāi)關(guān)可以一次切換到單個(gè)傳感器;見(jiàn)圖3。第二個(gè)問(wèn)題與功耗有關(guān)。I2C開(kāi)關(guān)一次只為I2C總線的一部分供電,從而在不使用時(shí)保持總線的未使用部分掉電。
圖3:具有八個(gè)通道的I2C開(kāi)關(guān)示例
起初,互聯(lián)網(wǎng)搜索將會(huì)告訴您,I2C使系統(tǒng)設(shè)計(jì)人員能夠輕松實(shí)現(xiàn)魯棒的系統(tǒng)控制。這一協(xié)議不僅有用,而且還具有很多設(shè)備功能,可令您的系統(tǒng)受益。您可以使用緩沖中繼器、I / O擴(kuò)展器和I2C開(kāi)關(guān)來(lái)增強(qiáng),擴(kuò)展并修改I2C總線實(shí)現(xiàn),以滿足您的獨(dú)特設(shè)計(jì)目標(biāo)。
審核編輯:郭婷
-
處理器
+關(guān)注
關(guān)注
68文章
19863瀏覽量
234400 -
mcu
+關(guān)注
關(guān)注
146文章
17932瀏覽量
363170 -
asic
+關(guān)注
關(guān)注
34文章
1245瀏覽量
122225 -
I2C
+關(guān)注
關(guān)注
28文章
1539瀏覽量
127483
發(fā)布評(píng)論請(qǐng)先 登錄
I2C通信開(kāi)發(fā)障礙以及總結(jié)

Linux內(nèi)核中I2C系統(tǒng)的設(shè)計(jì)思路

i2c總線ppt(I2C總線器件應(yīng)用)
I2C總線應(yīng)用中的幾個(gè)問(wèn)題

I2C Guid I2C指南
I2C總線在Linux系統(tǒng)中的驅(qū)動(dòng)設(shè)計(jì)
I2C總線應(yīng)用系統(tǒng)設(shè)計(jì)運(yùn)用

I2C如何幫我解決系統(tǒng)中遇到的實(shí)際問(wèn)題

硬件I2C與模擬I2C

I2C子系統(tǒng)SW Architecture

如何解決I2C器件死鎖的問(wèn)題?
什么是I2C協(xié)議 I2C總線的控制邏輯

評(píng)論