国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

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

3天內不再提示

I2C總線相關的基本概念和通信流程解析

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

掃碼添加小助手

加入工程師交流群

本文主要介紹I2C總線相關的一些基本概念、通信流程、同步和仲裁、模式切換等。

I2C總線是PHILIPS公司推出的一種串行總線,是具備多主機系統所需的包括總線仲裁和高低速器件同步功能的高性能串行總線。

I2C物理上包括2條雙向串行線,一條數據線SDA,一條時鐘線SCL。均為OD結構,需要外部上拉,具體選取可參見之前的文章《硬件電路設計之“上下拉電阻”》。
SDA傳輸數據是大端傳輸(字節高位先傳),每次傳輸8bit,即一字節。支持多主控(multi master),任何時間點只能有一個主控。總線上每個設備都有自己的一個addr,7bit或10bit,廣播地址為全0。

1、基本概念
I2C總線上常用的一些基本概念如下:
主機:初始化發送,產生時鐘信號和終止發送的器件。

從機:被主機尋址的器件。

發送器:發送數據到總線的器件。

接收器:從總線接收數據的器件。

多主機:同時有多于一個主機嘗試控制總線,但不破壞報文。

仲裁:是一個在有多個主機同時嘗試控制總線,但只允許其中一個控制總線并使報文不被破壞的過程。

同步:兩個或多個器件同步時鐘信號的過程。

總線空閑狀態:I2C總線的SDA和SCL同時處于高電平時,規定為總線的空閑狀態。此時各個器件的輸出級場效應管均處在截止狀態,即釋放總線,由兩條信號線各自的上拉電阻把電平拉高。

開始信號:SCL為高電平時,SDA由高電平向低電平跳變,開始傳送數據。

結束信號:SCL為高電平時,SDA由低電平向高電平跳變,結束傳送數據。

數據傳輸:SCL為高電平時,SDA線必須保持穩定,SDA上傳輸一個bit數據(電平采樣);

數據改變:SCL為低電平時,SDA線才能改變電平。

I2C應答信號:主控每發送完8bit數據后等待從設備ACK。即在第9個CLK,若從設備發回ACK,SDA會被拉低(ACK信號為‘0’)。若沒有ACK,SDA會被置高(NAK信號為‘1’),這會引起主控發生RESTART或STOP流程。

★NAK主要有兩個作用:一是表示接收器未成功接收數據字節;二是當接收器是主機時(主機讀數據),它收到最后一個字節后,應發送一個NAK信號,以通知從機結束數據發送,并釋放總線,以便主機發送一個停止信號STOP。

2、基本通信流程
一次完整的I2C通信流程如下:
主設備發出開始信號(Start)。
主設備發出1字節的從設備地址信息,其中最低位為讀寫控制碼(0為寫,1為讀),高7位為從設備地址碼。
從設備發出ACK信號。
主設備開始對從設備進行讀寫操作。如果是讀操作,則每讀取1字節,主設備會發送一個應答信號(ACK)給從設備,如果是寫操作,則每寫入1字節,從設備會發送一個應答信號(ACK)給主設備。
主設備發出結束信號(Stop)。

3、10bit地址的發送
10bit地址的發送分兩次發送,第一次發送高2bit和讀寫信號(高5bit固定為識別碼11110),第二次發送低8bit,每次都有ACK信號。I2C規范并沒有強制規定發送端在發送接收端地址后接收端非要做出響應不可,也可以默不作聲,即便默不作聲,發送端還是會繼續工作,開始進行數據傳輸及讀/寫指令;

實際使用中10bit地址的尋址有兩種方式:一種是只進行一次尋址,10bit地址的發送分兩次發送,第一次發送高2bit和讀寫信號(實際讀寫操作),第二次發送低8bit。另一種是進行兩次尋址,第一次尋址將10bit地址的發送分兩次發送,第一次發送高2bit和讀寫信號,第二次發送低8bit;第二次尋址通過一個重復開始信號跟高2bit地址和讀寫信號(實際讀寫操作)進行二次尋址,第二次尋址只有第一次匹配上的從機會有應答。


主機發送數據時,當從機接收到開始條件后的10bit地址,從機就和它自己的地址比較從機地址的第一個字節(1111 0XX),并檢查第八個bit(讀寫位)是否為0。有可能多個設備都匹配并產生應答(A1)。接下來所有從機開始匹配自己地址與第二個字節的8個bit(XXXXXXXX),這時就只有一個從機匹配并產生應答(A2)。被主機尋址匹配的從機會保持被尋址的狀態直到接收到終止條件或者是重復開始條件后跟著一個不同的從機地址。

在第二個應答A2之前,處理過程與上面的一致。在重復開始條件(Sr)之后,匹配的從機會保持被尋址上的狀態。這個從機會檢查Sr之后的第一個字節的前7bit是否正確,然后測試第8bit是否為1(讀)。如果這也匹配的話,從機就認定它被作為一個發送器被尋址到了并產生應答A3。從機會保持被尋址的狀態直到接收到終止條件(P)或者重復開始條件(Sr)跟著一個不同的從機地址。然后這個時候的重復開始條件下,所有的從機會比較它們的地址與11110XX比較并測試第八位(讀寫位)。然而它們不會尋址到,因為對于10bit設備。讀寫位是1,或者對于7bit的設備,1111 0XX的從機地址不匹配。

4、同步和仲裁
所有主機在SCL線上產生它們自己的時鐘來傳輸I2C總線上的報文。數據只在時鐘的高電平周期有效。因此,需要一個確定的時鐘進行逐位仲裁。

時鐘同步通過線與連接I2C接口到SCL線來執行。這就是說:SCL線的高到低切換會使器件開始數它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL線保持這種狀態直到到達時鐘的高電平。但是,如果另一個時鐘仍處于低電平周期,這個時鐘的低到高切換不會改變SCL線的狀態。因此,SCL線被有最長低電平周期的器件保持低電平。此時,低電平周期短的器件會進入高電平的等待狀態。

當所有有關的器件數完了它們的低電平周期后,時鐘線被釋放并變成高電平。之后,器件時鐘和SCL線的狀態沒有差別,而且所有器件會開始數它們的高電平周期。首先完成高電平周期的器件會再次將SCL線拉低。

這樣,產生的同步SCL時鐘的低電平周期由低電平時鐘周期最長的器件決定,而高電平周期由高電平時鐘周期最短的器件決定。

主機只能在總線空閑的時侯啟動傳輸。兩個或多個主機可能在起始條件的最小持續時間(tHD;STA)內產生一個起始條件,結果在總線上產生一個規定的起始條件。

當SCL線是高電平時,仲裁在SDA線發生。這樣,在其他主機發送低電平時,發送高電平的主機將斷開它的數據輸出級,因為總線上的電平與它自己的電平不相同。

仲裁可以持續多位。它的第一個階段是比較地址位。如果每個主機都嘗試尋址相同的器件,仲裁會繼續比較數據位(如果是主機)或者比較響應位(如果是主機)。因為I2C總線的地址和數據信息由贏得仲裁的主機決定,在仲裁過程中不會丟失信息。

丟失仲裁的主機可以產生時鐘脈沖直到丟失仲裁的該字節末尾。

由于Hs模式的主機有一個唯一的8位主機碼,因此一般在第一個字節就可以結束仲裁。

如果主機也結合了從機功能,而且在尋址階段丟失仲裁,它很可能就是贏得仲裁的主機在尋址的器件。因此,丟失仲裁的主機必須立即切換到它的從機模式。

產生DATA1的主機的內部數據電平與SDA線的實際電平有一些差別,如果關斷數據輸出,這就意味著總線連接了一個高輸出電平。這不會影響由贏得仲裁的主機初始化的數據傳輸。

由于I2C總線的控制只由地址或主機碼以及競爭主機發送的數據決定,沒有中央主機,總線也沒有任何定制的優先權。
在串行傳輸時,當重復起始條件或停止條件發送到,I2C總線的時侯,仲裁過程仍在進行。如果可能產生這樣的情況,有關的主機必須在幀格式相同位置發送這個重復起始條件或停止條件。也就是說,仲裁不能在下列情況之間進行:
重復起始條件和數據位

停止條件和數據位

重復起始條件和停止條件

從機不被卷入仲裁過程。

5、高速模式切換
Hs模式的串行數據傳輸格式符合標準模式I2C總線規范,Hs模式只能在下面的情況下(所有都在F/S模式)啟動:

起始條件(S)

8位的主機碼(00001XXX)

不響應位(A/)

主機碼有兩個主要的功能:
它允許在F/S模式速度下競爭主機之間仲裁和同步,結果得到一個獲勝的主機。

它表示Hs模式傳輸的開始。

Hs主機碼是保留的8位代碼,它不用于從機尋址或其他目的。而且,由于每個主機都有唯一的主機碼,I2C總線系統最多可以有8個Hs模式主機(主機碼0000 1000應保留作測試和診斷用)。Hs模式主機器件的主機碼是軟件可編程的,由系統設計者決定。

以上就是針對I2C總線的一些基本介紹。

編輯:hfy


聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • I2C總線
    +關注

    關注

    8

    文章

    417

    瀏覽量

    63360
  • 串行總線
    +關注

    關注

    1

    文章

    187

    瀏覽量

    31603
  • 硬件接口
    +關注

    關注

    0

    文章

    50

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    PCA9545A/45B/45C:4通道I2C總線開關的深度解析

    PCA9545A/45B/45C:4通道I2C總線開關的深度解析 在電子工程師的日常設計工作中,I2C
    的頭像 發表于 02-10 11:50 ?404次閱讀

    I2C總線-通信線纜長度的影響及改進措施

    I2C總線確實不適合遠距離通信,尤其是需要使用線纜與I2C接口器件進行通信,這里的“不適合”并不是說不可以,這也是本文的重點。一般使用
    發表于 01-21 06:03

    I2C 為什么只要兩根線就能搞定通信

    到目前為止,我們已經討論了SPI通信和UART通信的基礎知識,現在讓我們討論本系列的最后一個協議,即集成電路間協議(I2C)。如果您曾經構建過使用OLED顯示器、氣壓傳感器或陀螺儀/加速度計模塊
    的頭像 發表于 01-04 09:14 ?1649次閱讀
    <b class='flag-5'>I2C</b> 為什么只要兩根線就能搞定<b class='flag-5'>通信</b>?

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

    P82B715:I2C總線擴展的得力助手 在電子設計領域,I2C總線是一種常用的通信協議,但它的總線
    的頭像 發表于 12-26 10:20 ?715次閱讀

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

    深入解析TCA9617B:I2C總線中繼器的卓越之選 在電子工程師的日常設計工作中,I2C總線和SMBus系統的應用極為廣泛。而TCA961
    的頭像 發表于 12-22 15:20 ?495次閱讀

    TCA39306雙向I2C總線和SMBus電壓電平轉換器技術解析

    TCA39306雙向I2C總線和SMBus電壓電平轉換器技術解析 在電子設計領域,電壓電平轉換是一個常見且關鍵的問題,特別是在涉及不同電壓標準的總線
    的頭像 發表于 12-17 10:00 ?385次閱讀

    TCAL6416R:16位轉換I2C總線、SMBus I/O擴展器的深度解析

    TCAL6416R:16位轉換I2C總線、SMBus I/O擴展器的深度解析 在電子設計領域,I/O擴展器是解決設備
    的頭像 發表于 12-15 17:55 ?2226次閱讀

    I2C總線協議

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

    深入剖析I2C協議

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

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

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

    嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之Linux下的I2C驅動簡介

    與設備進行通信。它還負責解析設備的數據格式,并提供一組API或接口供上層應用程序使用。在使用I2C總線時,通常需要同時開發I2C
    發表于 04-15 10:39

    飛凌嵌入式ElfBoard ELF 1板卡-I2C設備驅動之Linux下的I2C驅動簡介

    與設備進行通信。它還負責解析設備的數據格式,并提供一組API或接口供上層應用程序使用。在使用I2C總線時,通常需要同時開發I2C
    發表于 04-15 10:19

    嵌入式教育科普|I2C接口全面解析

    1、基本概念I2C的全稱是Inter-IntegratedCircuit,譯為集成電路總線,是一種同步、雙向、半雙工的兩線式串行接口總線。連接到I2
    的頭像 發表于 04-11 09:44 ?3252次閱讀
    嵌入式教育科普|<b class='flag-5'>I2C</b>接口全面<b class='flag-5'>解析</b>

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

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

    I2C總線復用

    帝晶智慧屏I2C總線復用
    的頭像 發表于 03-11 17:20 ?2098次閱讀