小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

I2C很簡(jiǎn)單,但很多人卻不了解其通信原理和協(xié)議

 西北望msm66g9f 2020-08-03
I2C是目前使用較多的一種總線,一般用于連接各種從設(shè)備,比如:EEPROM存儲(chǔ)器、溫濕度傳感器、角速度計(jì)等。
掌握I2C算是最基本的技能,初入職場(chǎng)的人有必要系統(tǒng)學(xué)習(xí)一下。

一、I2C簡(jiǎn)史

1980年,飛利浦公司為了讓各種低速設(shè)備(飛利浦芯片)連接起來(lái),就開(kāi)始著手研發(fā)通信的總線。

1982年,原始版本,使用了100KHz通信速率,提供7位地址,將總線上的器件數(shù)量限制為112(有幾個(gè)保留地址)。

1992年,發(fā)布第一個(gè)規(guī)范,增加了400kHz的快速模式以及擴(kuò)展的10位地址空間。

1998年,隨著技術(shù)的進(jìn)步,通信速率要求越來(lái)越高,達(dá)到了高速3.4 MHz,再到后面升級(jí)至5MHz,同時(shí)使用差分信號(hào)以改進(jìn)抗噪聲能力等。

I2C版本歷史:

額外說(shuō)一下SMBus:

1995年,英特爾在I2C基礎(chǔ)上推出了一種變體稱為“系統(tǒng)管理總線”(SMBus)。SMBus是一種更嚴(yán)格控制的格式,旨在最大限度地提高PC主板上支持IC之間通信的可預(yù)測(cè)性。

SMBus之間最顯著的區(qū)別在于它將速度限制在10kHz至100kHz之間,而I2C則可以支持0kHz至5MHz的器件。

二、I2C基礎(chǔ)內(nèi)容

I2C:Inter-Integrated Circuit,字面意思是集成電路之間,是I2C Bus簡(jiǎn)稱。

I2C只需要兩根電線,這兩根線最多可支持1008個(gè)從設(shè)備,實(shí)現(xiàn)同步串行通信。

與SPI不同的是,I2C可以支持多主機(jī),多從機(jī)的總線。

1.I2C兩線信號(hào)

每個(gè)I2C總線由兩個(gè)信號(hào)組成:SCL時(shí)鐘信號(hào),SDA數(shù)據(jù)信號(hào)。時(shí)鐘信號(hào)總是由當(dāng)前總線主機(jī)產(chǎn)生。

與UART、SPI不同,I 2 C總線驅(qū)動(dòng)器是開(kāi)漏(不了解開(kāi)漏的請(qǐng)自行百度),意思是它們可以將相應(yīng)的信號(hào)線拉低,但不能將其驅(qū)動(dòng)為高電平。

每條信號(hào)線上都有一個(gè)上拉電阻,當(dāng)沒(méi)有器件將其置為低電平時(shí),將信號(hào)恢復(fù)為高電平。

2.信號(hào)電平

通常,I2C總線信號(hào)電平5V、3.3V居多,如果總線上器件兼容這兩種電平,可以直接使用。

如果信號(hào)電壓相差很大(比如5V和2.5V),或者電平不兼容,就需要進(jìn)行電平轉(zhuǎn)換才行。


三、I2C協(xié)議

I2C對(duì)初學(xué)者來(lái)說(shuō),難點(diǎn)就在于理解其中協(xié)議,下面從幾個(gè)簡(jiǎn)單角度說(shuō)一下。

1.收發(fā)基本原理

I2C的兩個(gè)總線:SCL時(shí)鐘信號(hào),SDA數(shù)據(jù)信號(hào)。SCL由主機(jī)產(chǎn)生,SDA由主機(jī)或者從機(jī)產(chǎn)生。

I2C是同步串行通信,同時(shí)它屬于半雙工,也就是說(shuō)同一時(shí)間SDA只能由一個(gè)設(shè)備發(fā)送信號(hào)。

這樣,你就會(huì)發(fā)現(xiàn),SDA上的信號(hào)(數(shù)據(jù)),有時(shí)候是主機(jī)的,有時(shí)候是從機(jī)的。

2.基本協(xié)議:7/10位地址

I2C支持7位地址和10位地址,消息主要分為兩種:地址和數(shù)據(jù)。

7位地址:

10位地址:

除了地址和數(shù)據(jù),還有開(kāi)始條件、停止條件、讀寫(xiě),以及應(yīng)答信息(上圖小字描述)。

3.開(kāi)始和停止

SDA數(shù)據(jù)線由高 -> 低 為總線開(kāi)始條件;

SDA數(shù)據(jù)線由低 -> 高 為總線結(jié)束條件;

4.應(yīng)答(ACK)和非應(yīng)答(ACK)

應(yīng)答和非應(yīng)答發(fā)生在每個(gè)字節(jié)之后,是由接收方向發(fā)送方發(fā)出確認(rèn)信號(hào),表明“數(shù)據(jù)”已成功接收,并且可以繼續(xù)發(fā)送下一字節(jié)數(shù)據(jù)。

應(yīng)答有很多種情況,初學(xué)者可以參考協(xié)議手冊(cè),里面有詳細(xì)講述。

5.更多協(xié)議內(nèi)容

I2C協(xié)議手冊(cè)地址:

https://www./docs/en/user-guide/UM10204.pdf

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多