日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

I2C總線相關(guān)的基本概念和通信流程解析

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

掃碼添加小助手

加入工程師交流群

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

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

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

1、基本概念
I2C總線上常用的一些基本概念如下:
主機(jī):初始化發(fā)送,產(chǎn)生時(shí)鐘信號(hào)和終止發(fā)送的器件。

從機(jī):被主機(jī)尋址的器件。

發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件。

接收器:從總線接收數(shù)據(jù)的器件。

多主機(jī):同時(shí)有多于一個(gè)主機(jī)嘗試控制總線,但不破壞報(bào)文。

仲裁:是一個(gè)在有多個(gè)主機(jī)同時(shí)嘗試控制總線,但只允許其中一個(gè)控制總線并使報(bào)文不被破壞的過(guò)程。

同步:兩個(gè)或多個(gè)器件同步時(shí)鐘信號(hào)的過(guò)程。

總線空閑狀態(tài):I2C總線的SDA和SCL同時(shí)處于高電平時(shí),規(guī)定為總線的空閑狀態(tài)。此時(shí)各個(gè)器件的輸出級(jí)場(chǎng)效應(yīng)管均處在截止?fàn)顟B(tài),即釋放總線,由兩條信號(hào)線各自的上拉電阻把電平拉高。

開(kāi)始信號(hào):SCL為高電平時(shí),SDA由高電平向低電平跳變,開(kāi)始傳送數(shù)據(jù)。

結(jié)束信號(hào):SCL為高電平時(shí),SDA由低電平向高電平跳變,結(jié)束傳送數(shù)據(jù)。

數(shù)據(jù)傳輸:SCL為高電平時(shí),SDA線必須保持穩(wěn)定,SDA上傳輸一個(gè)bit數(shù)據(jù)(電平采樣);

數(shù)據(jù)改變:SCL為低電平時(shí),SDA線才能改變電平。

I2C應(yīng)答信號(hào):主控每發(fā)送完8bit數(shù)據(jù)后等待從設(shè)備ACK。即在第9個(gè)CLK,若從設(shè)備發(fā)回ACK,SDA會(huì)被拉低(ACK信號(hào)為‘0’)。若沒(méi)有ACK,SDA會(huì)被置高(NAK信號(hào)為‘1’),這會(huì)引起主控發(fā)生RESTART或STOP流程。

★NAK主要有兩個(gè)作用:一是表示接收器未成功接收數(shù)據(jù)字節(jié);二是當(dāng)接收器是主機(jī)時(shí)(主機(jī)讀數(shù)據(jù)),它收到最后一個(gè)字節(jié)后,應(yīng)發(fā)送一個(gè)NAK信號(hào),以通知從機(jī)結(jié)束數(shù)據(jù)發(fā)送,并釋放總線,以便主機(jī)發(fā)送一個(gè)停止信號(hào)STOP。

2、基本通信流程
一次完整的I2C通信流程如下:
主設(shè)備發(fā)出開(kāi)始信號(hào)(Start)。
主設(shè)備發(fā)出1字節(jié)的從設(shè)備地址信息,其中最低位為讀寫(xiě)控制碼(0為寫(xiě),1為讀),高7位為從設(shè)備地址碼。
從設(shè)備發(fā)出ACK信號(hào)。
主設(shè)備開(kāi)始對(duì)從設(shè)備進(jìn)行讀寫(xiě)操作。如果是讀操作,則每讀取1字節(jié),主設(shè)備會(huì)發(fā)送一個(gè)應(yīng)答信號(hào)(ACK)給從設(shè)備,如果是寫(xiě)操作,則每寫(xiě)入1字節(jié),從設(shè)備會(huì)發(fā)送一個(gè)應(yīng)答信號(hào)(ACK)給主設(shè)備。
主設(shè)備發(fā)出結(jié)束信號(hào)(Stop)。

3、10bit地址的發(fā)送
10bit地址的發(fā)送分兩次發(fā)送,第一次發(fā)送高2bit和讀寫(xiě)信號(hào)(高5bit固定為識(shí)別碼11110),第二次發(fā)送低8bit,每次都有ACK信號(hào)。I2C規(guī)范并沒(méi)有強(qiáng)制規(guī)定發(fā)送端在發(fā)送接收端地址后接收端非要做出響應(yīng)不可,也可以默不作聲,即便默不作聲,發(fā)送端還是會(huì)繼續(xù)工作,開(kāi)始進(jìn)行數(shù)據(jù)傳輸及讀/寫(xiě)指令;

實(shí)際使用中10bit地址的尋址有兩種方式:一種是只進(jìn)行一次尋址,10bit地址的發(fā)送分兩次發(fā)送,第一次發(fā)送高2bit和讀寫(xiě)信號(hào)(實(shí)際讀寫(xiě)操作),第二次發(fā)送低8bit。另一種是進(jìn)行兩次尋址,第一次尋址將10bit地址的發(fā)送分兩次發(fā)送,第一次發(fā)送高2bit和讀寫(xiě)信號(hào),第二次發(fā)送低8bit;第二次尋址通過(guò)一個(gè)重復(fù)開(kāi)始信號(hào)跟高2bit地址和讀寫(xiě)信號(hào)(實(shí)際讀寫(xiě)操作)進(jìn)行二次尋址,第二次尋址只有第一次匹配上的從機(jī)會(huì)有應(yīng)答。


主機(jī)發(fā)送數(shù)據(jù)時(shí),當(dāng)從機(jī)接收到開(kāi)始條件后的10bit地址,從機(jī)就和它自己的地址比較從機(jī)地址的第一個(gè)字節(jié)(1111 0XX),并檢查第八個(gè)bit(讀寫(xiě)位)是否為0。有可能多個(gè)設(shè)備都匹配并產(chǎn)生應(yīng)答(A1)。接下來(lái)所有從機(jī)開(kāi)始匹配自己地址與第二個(gè)字節(jié)的8個(gè)bit(XXXXXXXX),這時(shí)就只有一個(gè)從機(jī)匹配并產(chǎn)生應(yīng)答(A2)。被主機(jī)尋址匹配的從機(jī)會(huì)保持被尋址的狀態(tài)直到接收到終止條件或者是重復(fù)開(kāi)始條件后跟著一個(gè)不同的從機(jī)地址。

在第二個(gè)應(yīng)答A2之前,處理過(guò)程與上面的一致。在重復(fù)開(kāi)始條件(Sr)之后,匹配的從機(jī)會(huì)保持被尋址上的狀態(tài)。這個(gè)從機(jī)會(huì)檢查Sr之后的第一個(gè)字節(jié)的前7bit是否正確,然后測(cè)試第8bit是否為1(讀)。如果這也匹配的話,從機(jī)就認(rèn)定它被作為一個(gè)發(fā)送器被尋址到了并產(chǎn)生應(yīng)答A3。從機(jī)會(huì)保持被尋址的狀態(tài)直到接收到終止條件(P)或者重復(fù)開(kāi)始條件(Sr)跟著一個(gè)不同的從機(jī)地址。然后這個(gè)時(shí)候的重復(fù)開(kāi)始條件下,所有的從機(jī)會(huì)比較它們的地址與11110XX比較并測(cè)試第八位(讀寫(xiě)位)。然而它們不會(huì)尋址到,因?yàn)閷?duì)于10bit設(shè)備。讀寫(xiě)位是1,或者對(duì)于7bit的設(shè)備,1111 0XX的從機(jī)地址不匹配。

4、同步和仲裁
所有主機(jī)在SCL線上產(chǎn)生它們自己的時(shí)鐘來(lái)傳輸I2C總線上的報(bào)文。數(shù)據(jù)只在時(shí)鐘的高電平周期有效。因此,需要一個(gè)確定的時(shí)鐘進(jìn)行逐位仲裁。

時(shí)鐘同步通過(guò)線與連接I2C接口到SCL線來(lái)執(zhí)行。這就是說(shuō):SCL線的高到低切換會(huì)使器件開(kāi)始數(shù)它們的低電平周期,而且一旦器件的時(shí)鐘變低電平,它會(huì)使SCL線保持這種狀態(tài)直到到達(dá)時(shí)鐘的高電平。但是,如果另一個(gè)時(shí)鐘仍處于低電平周期,這個(gè)時(shí)鐘的低到高切換不會(huì)改變SCL線的狀態(tài)。因此,SCL線被有最長(zhǎng)低電平周期的器件保持低電平。此時(shí),低電平周期短的器件會(huì)進(jìn)入高電平的等待狀態(tài)。

當(dāng)所有有關(guān)的器件數(shù)完了它們的低電平周期后,時(shí)鐘線被釋放并變成高電平。之后,器件時(shí)鐘和SCL線的狀態(tài)沒(méi)有差別,而且所有器件會(huì)開(kāi)始數(shù)它們的高電平周期。首先完成高電平周期的器件會(huì)再次將SCL線拉低。

這樣,產(chǎn)生的同步SCL時(shí)鐘的低電平周期由低電平時(shí)鐘周期最長(zhǎng)的器件決定,而高電平周期由高電平時(shí)鐘周期最短的器件決定。

主機(jī)只能在總線空閑的時(shí)侯啟動(dòng)傳輸。兩個(gè)或多個(gè)主機(jī)可能在起始條件的最小持續(xù)時(shí)間(tHD;STA)內(nèi)產(chǎn)生一個(gè)起始條件,結(jié)果在總線上產(chǎn)生一個(gè)規(guī)定的起始條件。

當(dāng)SCL線是高電平時(shí),仲裁在SDA線發(fā)生。這樣,在其他主機(jī)發(fā)送低電平時(shí),發(fā)送高電平的主機(jī)將斷開(kāi)它的數(shù)據(jù)輸出級(jí),因?yàn)榭偩€上的電平與它自己的電平不相同。

仲裁可以持續(xù)多位。它的第一個(gè)階段是比較地址位。如果每個(gè)主機(jī)都嘗試尋址相同的器件,仲裁會(huì)繼續(xù)比較數(shù)據(jù)位(如果是主機(jī))或者比較響應(yīng)位(如果是主機(jī))。因?yàn)镮2C總線的地址和數(shù)據(jù)信息由贏得仲裁的主機(jī)決定,在仲裁過(guò)程中不會(huì)丟失信息。

丟失仲裁的主機(jī)可以產(chǎn)生時(shí)鐘脈沖直到丟失仲裁的該字節(jié)末尾。

由于Hs模式的主機(jī)有一個(gè)唯一的8位主機(jī)碼,因此一般在第一個(gè)字節(jié)就可以結(jié)束仲裁。

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

產(chǎn)生DATA1的主機(jī)的內(nèi)部數(shù)據(jù)電平與SDA線的實(shí)際電平有一些差別,如果關(guān)斷數(shù)據(jù)輸出,這就意味著總線連接了一個(gè)高輸出電平。這不會(huì)影響由贏得仲裁的主機(jī)初始化的數(shù)據(jù)傳輸。

由于I2C總線的控制只由地址或主機(jī)碼以及競(jìng)爭(zhēng)主機(jī)發(fā)送的數(shù)據(jù)決定,沒(méi)有中央主機(jī),總線也沒(méi)有任何定制的優(yōu)先權(quán)。
在串行傳輸時(shí),當(dāng)重復(fù)起始條件或停止條件發(fā)送到,I2C總線的時(shí)侯,仲裁過(guò)程仍在進(jìn)行。如果可能產(chǎn)生這樣的情況,有關(guān)的主機(jī)必須在幀格式相同位置發(fā)送這個(gè)重復(fù)起始條件或停止條件。也就是說(shuō),仲裁不能在下列情況之間進(jìn)行:
重復(fù)起始條件和數(shù)據(jù)位

停止條件和數(shù)據(jù)位

重復(fù)起始條件和停止條件

從機(jī)不被卷入仲裁過(guò)程。

5、高速模式切換
Hs模式的串行數(shù)據(jù)傳輸格式符合標(biāo)準(zhǔn)模式I2C總線規(guī)范,Hs模式只能在下面的情況下(所有都在F/S模式)啟動(dòng):

起始條件(S)

8位的主機(jī)碼(00001XXX)

不響應(yīng)位(A/)

主機(jī)碼有兩個(gè)主要的功能:
它允許在F/S模式速度下競(jìng)爭(zhēng)主機(jī)之間仲裁和同步,結(jié)果得到一個(gè)獲勝的主機(jī)。

它表示Hs模式傳輸?shù)拈_(kāi)始。

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

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

編輯:hfy


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

    關(guān)注

    8

    文章

    422

    瀏覽量

    63512
  • 串行總線
    +關(guān)注

    關(guān)注

    1

    文章

    187

    瀏覽量

    31923
  • 硬件接口
    +關(guān)注

    關(guān)注

    0

    文章

    50

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    SGM4541 I2C總線過(guò)壓保護(hù)器:設(shè)計(jì)與應(yīng)用的詳細(xì)解析

    SGM4541 I2C總線過(guò)壓保護(hù)器:設(shè)計(jì)與應(yīng)用的詳細(xì)解析 在如今的電子設(shè)備設(shè)計(jì)中,保護(hù)電路免受過(guò)電壓的損害是至關(guān)重要的。SG Micro Corp推出的SGM4541 I2C
    的頭像 發(fā)表于 03-17 16:30 ?416次閱讀

    SGM4541A:I2C總線過(guò)壓保護(hù)的理想之選

    SGM4541A:I2C總線過(guò)壓保護(hù)的理想之選 在電子設(shè)備的設(shè)計(jì)中,I2C總線的穩(wěn)定運(yùn)行至關(guān)重要。而SGM4541A作為一款低IQ I2C
    的頭像 發(fā)表于 03-17 16:30 ?230次閱讀

    SGM4551:雙路雙向 I2C 總線和 SMBus 電壓電平轉(zhuǎn)換器的深度解析

    SGM4551:雙路雙向 I2C 總線和 SMBus 電壓電平轉(zhuǎn)換器的深度解析 在電子設(shè)計(jì)領(lǐng)域,電壓電平轉(zhuǎn)換是一個(gè)常見(jiàn)且關(guān)鍵的問(wèn)題。特別是在 I2C
    的頭像 發(fā)表于 03-16 16:10 ?367次閱讀

    PCA9545A/45B/45C:4通道I2C總線開(kāi)關(guān)的深度解析

    PCA9545A/45B/45C:4通道I2C總線開(kāi)關(guān)的深度解析 在電子工程師的日常設(shè)計(jì)工作中,I2C
    的頭像 發(fā)表于 02-10 11:50 ?1095次閱讀

    I2C總線-通信線纜長(zhǎng)度的影響及改進(jìn)措施

    I2C總線確實(shí)不適合遠(yuǎn)距離通信,尤其是需要使用線纜與I2C接口器件進(jìn)行通信,這里的“不適合”并不是說(shuō)不可以,這也是本文的重點(diǎn)。一般使用
    發(fā)表于 01-21 06:03

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

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

    P82B715:I2C總線擴(kuò)展的得力助手

    P82B715:I2C總線擴(kuò)展的得力助手 在電子設(shè)計(jì)領(lǐng)域,I2C總線是一種常用的通信協(xié)議,但它的總線
    的頭像 發(fā)表于 12-26 10:20 ?1719次閱讀

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

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

    ISO164x熱插拔雙向I2C隔離器:設(shè)計(jì)與應(yīng)用全解析

    ISO164x熱插拔雙向I2C隔離器:設(shè)計(jì)與應(yīng)用全解析 在電子工程師的日常設(shè)計(jì)工作中,I2C總線隔離器是一個(gè)常用且關(guān)鍵的組件。今天,我們就來(lái)深入探討一下TI的ISO164x熱插拔雙向
    的頭像 發(fā)表于 12-17 10:50 ?1043次閱讀

    TCA39306雙向I2C總線和SMBus電壓電平轉(zhuǎn)換器技術(shù)解析

    TCA39306雙向I2C總線和SMBus電壓電平轉(zhuǎn)換器技術(shù)解析 在電子設(shè)計(jì)領(lǐng)域,電壓電平轉(zhuǎn)換是一個(gè)常見(jiàn)且關(guān)鍵的問(wèn)題,特別是在涉及不同電壓標(biāo)準(zhǔn)的總線
    的頭像 發(fā)表于 12-17 10:00 ?554次閱讀

    TCAL6416R:16位轉(zhuǎn)換I2C總線、SMBus I/O擴(kuò)展器的深度解析

    TCAL6416R:16位轉(zhuǎn)換I2C總線、SMBus I/O擴(kuò)展器的深度解析 在電子設(shè)計(jì)領(lǐng)域,I/O擴(kuò)展器是解決設(shè)備
    的頭像 發(fā)表于 12-15 17:55 ?2424次閱讀

    I2C總線協(xié)議

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

    深入剖析I2C協(xié)議

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

    I2C總線通信,為什么要進(jìn)行電氣隔離?

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

    第十八章 I2C通信測(cè)試

    本章介紹了I2C協(xié)議,其物理層用SDA和SCL雙線,支持多設(shè)備:協(xié)議層含起始/停止信號(hào)、應(yīng)答機(jī)制等。還講解W55MH32的I2C外設(shè)及初始化,并進(jìn)行了通信測(cè)試代碼的分析。
    的頭像 發(fā)表于 06-19 17:07 ?1506次閱讀
    第十八章 <b class='flag-5'>I2C</b><b class='flag-5'>通信</b>測(cè)試
    客服| 祥云县| 汶川县| 新兴县| 南城县| 金山区| 盐池县| 勃利县| 奉化市| 德令哈市| 富蕴县| 贵州省| 安溪县| 临夏市| 江源县| 利津县| 偏关县| 云林县| 临潭县| 北碚区| 荥阳市| 静安区| 稷山县| 宜阳县| 柳州市| 鄂尔多斯市| 正镶白旗| 乾安县| 宁海县| 汝州市| 永嘉县| 时尚| 玉龙| 盐边县| 如皋市| 新郑市| 蚌埠市| 昭通市| 彩票| 江川县| 德江县|