91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

關(guān)于I2C總線的讀寫操作流程詳解

電子設(shè)計 ? 來源:硬件助手 ? 作者:硬件助手 ? 2020-11-29 09:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文主要介紹I2C總線的讀寫操作流程。

I2C總線的操作包括讀和寫,具體的操作流程如下:

1、主機發(fā)送數(shù)據(jù)(I2C寫)流程
I2C主機給從機寫數(shù)據(jù)的操作流程如下:
Master發(fā)起START;
Master發(fā)送I2C ADDR(7bit)和W操作0(1bit),等待ACK;
Slave發(fā)送ACK(ACK=0);
Master發(fā)送reg addr(8bit),等待ACK(該地址為雙方約定的需要寫入數(shù)據(jù)的首地址,實際使用中隨機寫入時可以沒有該地址數(shù)據(jù));
Slave發(fā)送ACK;
Master收到Slave的ACK信號后開始發(fā)送第一個字節(jié)的數(shù)據(jù)(8bit),等待ACK;
Slave收到數(shù)據(jù)后發(fā)送ACK;
Master收到ACK后再發(fā)送下一個數(shù)據(jù);
當Master發(fā)送完最后一個字節(jié)數(shù)據(jù)并收到Slave的ACK后,發(fā)起STOP。



★主機通過發(fā)送地址碼與對應(yīng)的從機建立了通信關(guān)系,而掛接在總線上的其它從機雖然同時也收到了地址碼,但因為與其自身的地址不相符合,因此提前退出與主機的通信;
★主機的一次發(fā)送通信,其發(fā)送的數(shù)據(jù)數(shù)量不受限制。主機是通過STOP信號通知發(fā)送的結(jié)束,從機收到STOP信號后退出本次通信;
★主機的每一次發(fā)送后都是通過從機的ACK信號了解從機的接收狀況,如果應(yīng)答錯誤則重發(fā)(一般重發(fā)次數(shù)可以設(shè)置,但次數(shù)太多會影響效率);
★實際測試時,ACK信號會有一個毛刺,是因為數(shù)據(jù)和ACK是不同的角色發(fā)出的(當主機發(fā)送數(shù)據(jù)時,從機返回ACK;當從機發(fā)送數(shù)據(jù)時,主機返回ACK),這樣ACK正好是方向切換的時候,毛刺的大小取決于主從之間的切換速度。

2、主機接收數(shù)據(jù)(I2C讀)流程
I2C主機讀取從機數(shù)據(jù)的操作流程如下:
Master發(fā)送START;
Master發(fā)送I2C ADDR(7bit)和R操作1(1bit),等待ACK;
Slave發(fā)送ACK;
Master發(fā)送reg addr(8bit),等待ACK;
Slave發(fā)送ACK;
Master發(fā)起START;
Master發(fā)送I2C addr(7bit)和r操作1(1bit),等待ACK;
Slave發(fā)送ACK;
Slave發(fā)送ACK后,緊接著向Master發(fā)送數(shù)據(jù);
Master收到數(shù)據(jù)后發(fā)送ACK;
Slave接收到ACK后再向Master發(fā)送下一個數(shù)據(jù);
當Master完成接收數(shù)據(jù)后,向Slave發(fā)送一個非應(yīng)答信號(NAK=1),從機收到非應(yīng)答信號后停止發(fā)送數(shù)據(jù);
Master發(fā)送非應(yīng)答信號后,再發(fā)送一個STOP信號。



★主機所接收數(shù)據(jù)的數(shù)量是由主機自身決定,當發(fā)送“非應(yīng)答信號/A”時從機便結(jié)束傳送并釋放總線(非應(yīng)答信號的兩個作用:前一個數(shù)據(jù)接收成功,從機不再發(fā)送數(shù)據(jù))。當從機收到NAK信號后如果沒有停止信號,則從機會重發(fā)上一字節(jié)數(shù)據(jù)。

3、讀寫指定地址的方式
I2C讀寫指定地址有以下幾種方式:
在從器件地址后面直接跟需要讀寫的寄存器首地址,然后直接跟數(shù)據(jù),最后通過停止信號結(jié)束此次讀寫。

主從器件約定讀寫指令,在從器件地址后面直接跟讀寫指令,然后再跟需要讀寫的寄存器首地址,然后直接跟數(shù)據(jù)。

在發(fā)送完從器件地址后直接跟需要讀寫的寄存器地址,然后再通過重復(fù)開始信號(后跟從機地址)進行讀寫操作(數(shù)據(jù)直接寫入或者讀取相應(yīng)的寄存器)。





★所有讀寫操作,都不會限定數(shù)據(jù)的長度,讀寫數(shù)據(jù)的長度由主機決定。不需要讀寫數(shù)據(jù)了就發(fā)送STOP信號。

4、復(fù)合傳輸實現(xiàn)方式
在傳輸過程中改變方向,開始條件和從機地址都要重復(fù),而讀寫bit要取反。如果主機發(fā)送一個重復(fù)的開始條件,那么它在這之前要發(fā)送一個NAK。

★復(fù)合模式可以在比如控制串行寄存器時用到。在第一個數(shù)據(jù)字節(jié)時一定要寫寄存器內(nèi)部的地址。開始條件和從地址重復(fù)后,數(shù)據(jù)就開始傳輸了。
★自動增加或減少之前訪問的寄存器地址都由設(shè)備的設(shè)計者決定。
★兼容I2C總線的設(shè)備在接收到開始條件或重復(fù)開始條件時都一定要重啟它們的總線邏輯,即使開始條件都不是正確的格式,它們都期望發(fā)送從機地址。
★開始條件后馬上跟著一個終止條件是不合法的格式。

以上就是針對I2C總線的主機發(fā)送、主機接收、讀寫指定地址數(shù)據(jù)、符合傳輸方式的操作流程介紹。

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

    關(guān)注

    8

    文章

    417

    瀏覽量

    63364
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    P82B715:I2C總線擴展的得力助手

    )的P82B715,一款專門用于緩沖高電容I2C總線系統(tǒng)的器件,看看它是如何解決這些問題的。 文件下載: p82b715.pdf 1. 器件概述 P82B715是一款支持通過I2C
    的頭像 發(fā)表于 12-26 10:20 ?746次閱讀

    基于FPGA的I2C控制模塊設(shè)計

    I2C_WRITE_WDATA.v模塊實現(xiàn)I2C寫時序,I2C_Controller (I2C控制器)例化了I2C_WRITE_WDATA.
    的頭像 發(fā)表于 12-26 09:48 ?5032次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設(shè)計

    深入解析TCA9617B:I2C總線中繼器的卓越之選

    深入解析TCA9617B:I2C總線中繼器的卓越之選 在電子工程師的日常設(shè)計工作中,I2C總線和SMBus系統(tǒng)的應(yīng)用極為廣泛。而TCA9617B作為一款BiCMOS雙雙向緩沖器,專為
    的頭像 發(fā)表于 12-22 15:20 ?503次閱讀

    AS32X601的I2C模塊操作EEPROM詳解

    國科安芯推出的AS32X601系列MCU芯片內(nèi)置的I2C模塊提供了符合工業(yè)標準的兩線串行制接口,可用于MCU和外部I2C設(shè)備的通訊。I2C總線使用兩條串行線:串行數(shù)據(jù)線SDA和串行時鐘
    的頭像 發(fā)表于 12-21 21:39 ?1015次閱讀
    AS32X601的<b class='flag-5'>I2C</b>模塊<b class='flag-5'>操作</b>EEPROM<b class='flag-5'>詳解</b>

    TCA9517-Q1電平轉(zhuǎn)換I2C總線中繼器:設(shè)計與應(yīng)用詳解

    TCA9517-Q1電平轉(zhuǎn)換I2C總線中繼器:設(shè)計與應(yīng)用詳解 在當今復(fù)雜的電子系統(tǒng)中,I2C和SMBus系統(tǒng)的應(yīng)用越來越廣泛,而電平轉(zhuǎn)換和總線
    的頭像 發(fā)表于 12-18 11:25 ?426次閱讀

    I2C總線協(xié)議

    I2C 總線使用兩根信號線(數(shù)據(jù)線 SDA 和時鐘線 SCL)在設(shè)備間傳輸數(shù)據(jù)。SCL 為單向時鐘線,固定由主機驅(qū)動。SDA 為雙向數(shù)據(jù)線,在數(shù)據(jù)傳輸過程中由收發(fā)兩端分時驅(qū)動。 I2C 總線
    發(fā)表于 12-15 08:07

    CW32單片機I2C接口來讀寫EEPROM芯片

    所有所需讀取的數(shù)據(jù)全部讀取,之后再發(fā)送停止信號。 四、硬件連接 如下圖所示,MCU和EEPROM通過I2C總線互連。 五、實例演示:MCU采用頁寫和順序讀操作時序完成EERPOM的訪問
    發(fā)表于 12-09 07:43

    I2C死鎖的問題

    在實際使用過程中,I2C比較容易出現(xiàn)的一個問題就是死鎖 ,死鎖在I2C中主要表現(xiàn)為:I2C死鎖時表現(xiàn)為SCL為高,SDA一直為低。 在I2C主設(shè)備進行
    發(fā)表于 12-04 06:00

    基于CW32 MCU的I2C接口優(yōu)化穩(wěn)定讀寫EEPROM關(guān)鍵技術(shù)

    問題,實現(xiàn)多個EEPROM設(shè)備的穩(wěn)定讀寫操作。 通過這些優(yōu)化技術(shù),能夠有效提升CW32 MCU在I2C通信中的穩(wěn)定性和可靠性,確保在復(fù)雜環(huán)境下的數(shù)據(jù)傳輸安全和穩(wěn)定。
    發(fā)表于 12-03 07:29

    深入剖析I2C協(xié)議

    I2C是由Philips開發(fā)的簡單的雙向兩線總線,在深入淺出理解SPI協(xié)議中,我們區(qū)分了單工,半雙工,全雙工協(xié)議數(shù)據(jù)流向的區(qū)別,根據(jù)特征,I2C協(xié)議屬于半雙工協(xié)議(即同一時刻,數(shù)據(jù)單向流動)。此外
    的頭像 發(fā)表于 08-21 15:10 ?3688次閱讀
    深入剖析<b class='flag-5'>I2C</b>協(xié)議

    I2C總線通信,為什么要進行電氣隔離?

    I2C總線采用雙向二線制,支持多主機多從機通信,具備高可靠性、抗干擾能力強,廣泛應(yīng)用于嵌入式系統(tǒng)中。
    的頭像 發(fā)表于 08-11 11:04 ?2521次閱讀
    <b class='flag-5'>I2C</b><b class='flag-5'>總線</b>通信,為什么要進行電氣隔離?

    STM32H7CubeMX配置硬件I2C,讀寫失敗是什么問題呀?

    STM32H7CubeMX配置硬件I2C,讀寫失敗什么問題呀,同樣的操作F4和F1都能正常使用,應(yīng)該不存在i2c地址錯誤,操作都是一樣的,但
    發(fā)表于 06-12 06:21

    是德DSOX4034A示波器I2C總線信號分析

    在現(xiàn)代電子設(shè)計與調(diào)試中,I2C(Inter-Integrated Circuit)總線作為一種廣泛應(yīng)用的串行通信協(xié)議,因其簡單性、靈活性和低功耗特性,成為許多嵌入式系統(tǒng)和電子設(shè)備中不可或缺的通信方式
    的頭像 發(fā)表于 03-19 13:47 ?1239次閱讀
    是德DSOX4034A示波器<b class='flag-5'>I2C</b><b class='flag-5'>總線</b>信號分析

    STM32學(xué)習(xí)筆記_I2C詳解(可下載)

    I2C 是一種簡單的雙向二線制同步串行總線。它只需要兩根線即可在連接于總線 上的器件之間傳送信息I2C 總線能夠支持多個設(shè)備間的通訊。它包含
    發(fā)表于 03-14 17:33 ?3次下載

    I2C總線復(fù)用

    帝晶智慧屏I2C總線復(fù)用
    的頭像 發(fā)表于 03-11 17:20 ?2111次閱讀