色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

I2C總線協(xié)議的基礎(chǔ)知識(shí)

FPGA研究院 ? 來(lái)源:數(shù)字站 ? 2024-08-06 11:36 ? 次閱讀

串口是傳感器、外設(shè)常用的接口,在低速器件中可以通過串口傳輸數(shù)據(jù)。高速?gòu)?fù)雜的器件,往往內(nèi)部存在很多寄存器,這些寄存器的配置一般也是采用串口通信,可以節(jié)省IO口。

常用串口大致分為UART、IIC、SPI三種,其中IIC時(shí)序稍微復(fù)雜,卻是最好用的串行接口。如下圖所示,主機(jī)通過兩根數(shù)據(jù)線,就可以與多個(gè)外設(shè)通信。

wKgZomaxmliAH6PWAADnQZUn07k428.jpg

圖1 主機(jī)控制多個(gè)外設(shè)

主機(jī)想要通過UART與N個(gè)外設(shè)雙向通信,一般需要2*N個(gè)IO口。主機(jī)想要通過SPI與N個(gè)外設(shè)雙向通信,一般需要使用N+3個(gè)IO口。而如果使用IIC接口,那么只需要2個(gè)IO口。

因此IIC對(duì)于節(jié)省IO有較大優(yōu)勢(shì),劣勢(shì)在于UART可以全雙工通信,SPI的時(shí)鐘線與數(shù)據(jù)線分開,傳輸速度最快,且UART和SPI的驅(qū)動(dòng)設(shè)計(jì)一般比較簡(jiǎn)單。而IIC由于只靠?jī)筛€驅(qū)動(dòng)多個(gè)傳感器,所以需要確認(rèn)主機(jī)與哪個(gè)傳感器建立連接(傳輸器件地址),然后在對(duì)器件內(nèi)部寄存器進(jìn)行讀寫,導(dǎo)致通信速度不可能很高。

01I2C硬件接口

IIC主機(jī)或者從機(jī)的硬件接口如下圖所示,使用一個(gè)開漏/開集(如果是MOS管則漏極開路,如果是三極管則集電極開路)開路,在同一條線上有一個(gè)輸入緩沖區(qū),允許數(shù)據(jù)線用于雙向傳輸數(shù)據(jù)。

pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgaomaxmliAMerpAAAWIuaLQvo789.jpg

圖2 IIC硬件接口

三角形代表輸入緩沖器,準(zhǔn)確的說該接口只能通過FET輸出低電平,高電平依靠外部上拉電阻完成。

下圖是該接口輸出低電平的信號(hào)示意圖,當(dāng)需要輸出低電平時(shí),F(xiàn)ET導(dǎo)通,VBUS下拉與GND連接,此時(shí)總線呈現(xiàn)低電平,如圖中紅色部分。

wKgZomaxmlmAHE49AABu9d-iWwo284.jpg

pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg圖3 輸出低電平

當(dāng)從機(jī)或主機(jī)希望發(fā)送邏輯高電平時(shí),只能通過關(guān)閉下拉場(chǎng)效應(yīng)管來(lái)釋放總線。使得總線浮動(dòng),上拉電阻將把電壓拉到電壓軌,表現(xiàn)為高電平。

wKgZomaxmliAePAyAACBaV2Uyq4621.jpg

圖4 輸出高電平

02I2C通信

IIC總線是一個(gè)標(biāo)準(zhǔn)的雙向接口,除非從機(jī)已被主機(jī)尋址,否則從機(jī)不能傳輸數(shù)據(jù)。IIC總線上的每個(gè)設(shè)備都有一個(gè)特定的設(shè)備地址,以區(qū)分同一IIC總線上的其他設(shè)備。許多從設(shè)備在啟動(dòng)時(shí)需要配置來(lái)設(shè)置設(shè)備的行為,通常是在主機(jī)訪問從機(jī)的內(nèi)部寄存器時(shí)完成。

物理IIC接口由串行時(shí)鐘(SCL)和串行數(shù)據(jù)(SDA)線組成,SDA和SCL線路都必須通過上拉電阻連接到VCC。只有當(dāng)總線空閑時(shí)才可以開始數(shù)據(jù)傳輸,如果SDA和SCL線在停止條件后都為高電平,則總線空閑。

先總體看下經(jīng)典的IIC讀、寫器件寄存器時(shí)序,然后在具體分析起始位、停止位、應(yīng)答、傳輸數(shù)據(jù)的SCL和SDA波形。

下圖是主機(jī)通過IIC寫從機(jī)寄存器數(shù)據(jù)的步驟,首先主機(jī)向從機(jī)發(fā)送起始位,然后發(fā)送7位從機(jī)器件地址,之后會(huì)發(fā)送一位讀寫操作信號(hào),從機(jī)應(yīng)答主機(jī)(ACK為低電平)后,向從機(jī)發(fā)送寄存器地址(這個(gè)寄存器地址為8位,但是有的器件可能會(huì)有16位或者24位寄存器地址,就需要發(fā)送三次這種時(shí)序)。等待從機(jī)應(yīng)答之后,主機(jī)把需要寫入寄存器的數(shù)據(jù)輸出,等待從機(jī)應(yīng)答后,主機(jī)發(fā)送停止條件,結(jié)束本次通信。注意不管是器件地址還是寄存器地址,亦或者是數(shù)據(jù),都是先傳輸高位數(shù)據(jù)。

wKgZomaxmliAGpmhAADHSFuYe7c736.jpg

圖5 IIC主機(jī)向從機(jī)寄存器寫入數(shù)據(jù)

上圖中灰色方塊表示主機(jī)發(fā)送數(shù)據(jù),白色表示從機(jī)發(fā)送數(shù)據(jù)。

下圖是主機(jī)通過IIC讀取從機(jī)寄存器數(shù)據(jù)的步驟,主機(jī)依次向從機(jī)發(fā)送起始位、器件地址、寄存器地址,等待從機(jī)應(yīng)答之后,在次向從機(jī)發(fā)送起始信號(hào),然后發(fā)送器件地址,此時(shí)讀寫位位高電平,表示讀出數(shù)據(jù),然后從機(jī)就會(huì)把該器件該寄存器地址的數(shù)據(jù)依次輸出,數(shù)據(jù)接收完成后,主機(jī)向從機(jī)發(fā)送不應(yīng)答指令(如果發(fā)送應(yīng)答指令,則從機(jī)會(huì)把下個(gè)寄存器地址的數(shù)據(jù)繼續(xù)輸出到總線上,實(shí)現(xiàn)連續(xù)讀取寄存器數(shù)據(jù)),然后發(fā)送停止位,完成寄存器數(shù)據(jù)的讀取。

wKgaomaxmliAOH2XAADGoey8crc617.jpg

pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg圖6 IIC主機(jī)向從機(jī)寄存器讀出數(shù)據(jù)

上圖中灰色方塊表示主機(jī)發(fā)送數(shù)據(jù),白色表示從機(jī)發(fā)送數(shù)據(jù)。

在了解了讀寫寄存器的步驟后,在來(lái)查看IIC的一些細(xì)節(jié)時(shí)序,由于主機(jī)和從機(jī)都會(huì)在時(shí)鐘SCL的高電平采集SDA的狀態(tài),因此在傳輸數(shù)據(jù)時(shí),SDA在SCL的低電平的時(shí)候更新數(shù)據(jù),在SCL高電平階段盡量保持不變。

只有兩種情況,SDA會(huì)在SCL的高電平期間電平發(fā)生變化,即起始位和停止位,時(shí)序圖如下所示:

pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgaomaxmliAHUndAAAg-Njjbb4216.jpg

圖7 IIC通信的起始位和停止位時(shí)序圖

起始位:SCL為高電平,SDA從高電平變?yōu)榈碗娖奖硎酒鹗嘉唬ㄒ驗(yàn)榭臻e時(shí)SDA是高電平,SDA變?yōu)榈碗娖酱黹_始傳輸數(shù)據(jù))。

停止位:SCL為高電平時(shí),SDA從低電平變?yōu)楦唠娖奖硎就V刮弧?/p>

重復(fù)起始條件(圖6中紅色字體的時(shí)序):時(shí)序與起始條件一樣,用于代替連續(xù)的停止然后開始條件。當(dāng)總線未空閑時(shí),主機(jī)希望啟動(dòng)新的通信,但不希望發(fā)送停止信號(hào)釋放總線,就可以直接發(fā)送重復(fù)起始條件,開啟信號(hào)通信。因?yàn)橥V箺l件有可能使主機(jī)失去對(duì)總線的控制(在多主機(jī)環(huán)境中)。

如圖8所示,在SCL的每個(gè)時(shí)鐘脈沖期間傳輸一個(gè)數(shù)據(jù)位,每次傳輸8位數(shù)據(jù)后需要從機(jī)應(yīng)。8位數(shù)據(jù)可以是設(shè)備地址、寄存器地址,也可以是寫入或讀取從機(jī)的數(shù)據(jù)。

數(shù)據(jù)首先傳輸最高有效位(MSB)。在START和STOP條件之間,可以將任意字節(jié)的數(shù)據(jù)從主機(jī)傳輸?shù)綇臋C(jī)。在傳輸數(shù)據(jù)過程中SDA必須在SCL低電平時(shí)更新狀態(tài),在SCL為高電平時(shí)SDA線上的數(shù)據(jù)必須保持穩(wěn)定,因?yàn)楫?dāng)SCL高時(shí),SDA的變化被解釋為控制命令(START或STOP)。

wKgaomaxmliAaqJ0AABUfEhPwbg512.jpg

圖8 單字節(jié)數(shù)據(jù)傳輸時(shí)序圖

每個(gè)字節(jié)(包括地址字節(jié))后面都有一個(gè)來(lái)自接收方的ACK位,ACK位允許接收方與發(fā)送方通信,表明該字節(jié)已成功接收,并且可以發(fā)送下一個(gè)字節(jié)數(shù)據(jù)。

在接收方發(fā)送ACK之前,發(fā)送方必須釋放SDA線。如下圖9所示,為了發(fā)送ACK位,接收方需要在ACK/NACK相關(guān)時(shí)鐘周期(周期9)的低電平期間拉低SDA線,使SDA線在ACK/ NACK相關(guān)時(shí)鐘周期的高相位穩(wěn)定在低電平。設(shè)置和保持時(shí)間必須考慮在內(nèi)。

wKgaomaxmliAb9JZAAC50c1GBbc414.jpg

圖9 NACK波形

當(dāng)SDA在與ACK/NACK相關(guān)的時(shí)鐘周期內(nèi)保持高位時(shí),則不應(yīng)答(NACK)。有幾個(gè)條件會(huì)導(dǎo)致NACK的產(chǎn)生:

從機(jī)無(wú)法接收或發(fā)送,因?yàn)樗趫?zhí)行一些實(shí)時(shí)功能,還沒有準(zhǔn)備好開始與主機(jī)通信。

在傳輸過程中,接收方接收到它不理解的數(shù)據(jù)或命令。

在傳輸過程中,接收方不能再接收任何數(shù)據(jù)字節(jié)。

主機(jī)讀取從機(jī)寄存器數(shù)據(jù)后,通過NACK表示終止從機(jī)寄存器數(shù)據(jù)的讀取。

03總結(jié)

IIC接口是開漏/開集輸出的硬件接口,只能主動(dòng)輸出低電平。當(dāng)需要輸出高電平時(shí),會(huì)釋放總線(對(duì)外表現(xiàn)高阻態(tài)),被外部上拉電阻上拉到VCC,從而實(shí)現(xiàn)高電平,所以上拉電阻必須存在。

SDA在傳輸數(shù)據(jù)時(shí)只能在SCL的低電平期間變化,如果SCL為高電平,SDA從高電平變?yōu)榈碗娖?,則表示起始位或者重復(fù)起始位,SDA從低電平變?yōu)楦唠娖絼t便是停止位。

每當(dāng)傳輸一字節(jié)數(shù)據(jù)后,接收方需要產(chǎn)生一個(gè)應(yīng)答位(ACK低電平表示應(yīng)答),之后發(fā)送方才能傳輸下一字節(jié)數(shù)據(jù)。

在起始位和停止位之間,可以傳輸任意字節(jié)數(shù)據(jù),數(shù)據(jù)可以是器件地址、寄存器地址、寫入或讀取從機(jī)的數(shù)據(jù)。

上述的總結(jié)來(lái)自于TI的IIC總線手冊(cè),需要該手冊(cè)的可以在公眾號(hào)后臺(tái)回復(fù)“I2C手冊(cè)”(不包括引號(hào))。

聲明:本文轉(zhuǎn)載自數(shù)字站公眾號(hào)

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 傳感器
    +關(guān)注

    關(guān)注

    2550

    文章

    51035

    瀏覽量

    753067
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5336

    瀏覽量

    120230
  • I2C
    I2C
    +關(guān)注

    關(guān)注

    28

    文章

    1484

    瀏覽量

    123619
  • 串口
    +關(guān)注

    關(guān)注

    14

    文章

    1551

    瀏覽量

    76421
  • IIC總線
    +關(guān)注

    關(guān)注

    1

    文章

    66

    瀏覽量

    20295

原文標(biāo)題:I2C基礎(chǔ)協(xié)議詳解

文章出處:【微信號(hào):FPGA研究院,微信公眾號(hào):FPGA研究院】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    I2C總線協(xié)議基礎(chǔ)知識(shí)

    物理層的連接可以說是非常簡(jiǎn)單,這也是它最大的優(yōu)勢(shì),原理就是通過控制SDA和SCL線的高低電平時(shí)序,來(lái)產(chǎn)生I2C總線協(xié)議所需要的信號(hào)進(jìn)行數(shù)據(jù)傳輸。在總線處于空閑狀態(tài)時(shí)SCL和SDA被上拉
    發(fā)表于 08-25 11:16

    i2c總線ppt(I2C總線器件應(yīng)用)

    I2C總線器件應(yīng)用第一節(jié) I2C總線器件應(yīng)用概述I2C總線工作原理
    發(fā)表于 08-13 17:34 ?0次下載

    I2C總線協(xié)議及其應(yīng)用(圖)

    I2C總線協(xié)議及其應(yīng)用
    發(fā)表于 06-01 20:22 ?7029次閱讀

    什么是i2c總線

    什么是i2c總線  下載請(qǐng)點(diǎn)擊: i2c總線協(xié)議中文版 
    發(fā)表于 11-05 09:26 ?2919次閱讀

    I2C總線協(xié)議及其應(yīng)用

    I2C總線協(xié)議及其應(yīng)用 一、I2C總線介紹: ---- 由于大規(guī)模集成電路技術(shù)的發(fā)展,在單個(gè)芯片集成CPU以及組成一個(gè)單獨(dú)工作系統(tǒng)
    發(fā)表于 02-08 11:23 ?1567次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>及其應(yīng)用

    i2c總線協(xié)議(中文版pdf)

    i2c總線協(xié)議(中文版pdf),感興趣的可以看看。
    發(fā)表于 02-26 16:47 ?0次下載

    i2c總線相關(guān)知識(shí)

    I2C總線在物理連接上非常簡(jiǎn)單,分別由SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)及上拉電阻組成。通信原理是通過對(duì)SCL和SDA線高低電平時(shí)序的控制,來(lái)產(chǎn)生I2C總線
    發(fā)表于 12-06 10:48 ?3551次閱讀
    <b class='flag-5'>i2c</b><b class='flag-5'>總線</b>相關(guān)<b class='flag-5'>知識(shí)</b>

    I2C總線協(xié)議基礎(chǔ)知識(shí)資料總結(jié)免費(fèi)下載

    I2C(Inter-Integrated Circuit)總線是一種由PHILIPS公司開發(fā)的兩線式串行總線,用于I2C總線的工作原理與應(yīng)用
    發(fā)表于 04-30 18:23 ?3次下載
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>資料總結(jié)免費(fèi)下載

    I2C總線基礎(chǔ)知識(shí)

    如果用GPIO口模擬I2C總線,并實(shí)現(xiàn)雙向傳輸,則需一個(gè)輸入輸出口(SDA),另外還需一個(gè)輸出口(SCL)。
    發(fā)表于 07-16 17:52 ?1952次閱讀

    i2c總線用來(lái)做什么_i2c總線數(shù)據(jù)傳輸過程

    I2C總線控制器為微控制器或微處理器提供控制I2C總線的接口,它控制所有I2C總線的特殊序列、
    發(fā)表于 11-24 14:16 ?7259次閱讀

    I2C總線協(xié)議英文資料

    I2C總線協(xié)議英文資料
    發(fā)表于 11-24 10:00 ?13次下載

    簡(jiǎn)述I2C總線協(xié)議

    I2C 總線在物理連接上非常簡(jiǎn)單,分別由SDA(串行數(shù)據(jù)線)和SCL(串行時(shí)鐘線)及上拉電阻組成。通信原理是通過對(duì)SCL和SDA線高低電平時(shí)序的控制,來(lái) 產(chǎn)生I2C總線
    的頭像 發(fā)表于 02-13 10:14 ?1482次閱讀
    簡(jiǎn)述<b class='flag-5'>I2C</b><b class='flag-5'>總線</b><b class='flag-5'>協(xié)議</b>

    I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點(diǎn)?

    I2C串行總線協(xié)議是什么?I2C總線有哪些優(yōu)點(diǎn)? I2C(Inter-Integrated Ci
    的頭像 發(fā)表于 09-12 11:18 ?1647次閱讀

    I2C總線協(xié)議的工作原理和尋址格式

    I2C(Inter-Integrated Circuit)總線協(xié)議,即集成電路總線協(xié)議,是一種用于連接微控制器及其外圍設(shè)備的串行
    的頭像 發(fā)表于 05-27 15:47 ?1719次閱讀

    I2C協(xié)議基礎(chǔ)知識(shí)

    本文從I2C協(xié)議的概述開始,描述協(xié)議的歷史、不同速度模式、物理層和數(shù)據(jù)幀結(jié)構(gòu),最后介紹I2C混合電壓系統(tǒng)中電平兼容性以及上拉電阻大小計(jì)算。
    的頭像 發(fā)表于 10-22 15:51 ?486次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>協(xié)議</b>的<b class='flag-5'>基礎(chǔ)知識(shí)</b>
    主站蜘蛛池模板: 黑色丝袜美女被网站| 色拍拍噜噜噜久久蜜桃| 在线视频久久只有精品第一日韩| 国产精品女上位好爽在线短片| 日本熟妇多毛XXXXX视频| 99久久精品国内| 麻生希第一部快播| 与子敌伦刺激对白亂輪亂性| 精品含羞草免费视频观看| 小莹的性荡生活45章| 国产电影尺度| 十分钟免费看完整视频| 动漫美女3d被爆漫画| 青青草偷拍国产亚洲欧洲| 99久久免费热在线精品| 男人和女人全黄一级毛片| 970女主播电台歌曲| 蜜桃日本MV免费观看| 99久久国产露脸精品麻豆| 嫩草国产福利视频一区二区| 99精品久久精品一区二区| 男女床上黄色| 99视频久九热精品| 女教师の诱惑| yellow免费观看在线| 日本黄色官网| 国产h视频在线观看网站免费| 少妇被阴内射XXXB少妇BB| 国产传媒18精品A片在线观看| 网红刘婷hd国产高清| 国产三级在线免费| 亚洲精品免费视频| 久久成人免费观看草草影院| 在线观看日本污污ww网站| 美女被触手注入精子强制受孕漫画| 57PAO强力打造高清免费| 欧美高清xxx| 纯肉高H种马艳遇风流多| 午夜十八岁禁| 肉肉高潮液体高干文H| 国产成人国产在线观看入口|