I2C時序分析和基礎(chǔ)知識總結(jié)課件_第1頁
I2C時序分析和基礎(chǔ)知識總結(jié)課件_第2頁
I2C時序分析和基礎(chǔ)知識總結(jié)課件_第3頁
I2C時序分析和基礎(chǔ)知識總結(jié)課件_第4頁
I2C時序分析和基礎(chǔ)知識總結(jié)課件_第5頁
已閱讀5頁,還剩57頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

I2C時序分析和基礎(chǔ)知識簡介一、什么是I2C三、I2C基礎(chǔ)知識二、I2C時序分析四、I2C注意事項I2C時序分析和基礎(chǔ)知識簡介一、什么是I2C三、I2C基礎(chǔ)知1I2C(Inter-IntegratedCircuit)總線是由PHILIPS公司(現(xiàn)在的NXP半導(dǎo)體)開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。一、什么是I2C

I2C總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。I2C(Inter-IntegratedCircu2I2C總線通過上拉電阻接正電源。當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。I2C總線通過上拉電阻接正電源。當總線空閑時,兩根線均31、數(shù)據(jù)位的有效性規(guī)定I2C總線進行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。二、I2C時序分析1、數(shù)據(jù)位的有效性規(guī)定二、I2C時序分析42、起始和終止信號

SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。

SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。2、起始和終止信號SCL線為高電平期間,SDA線由高5I2C

總線是雙向傳輸?shù)目偩€,因此主機和從機都可能成為發(fā)送器和接收器。如果主機向從機發(fā)送數(shù)據(jù),則主機是發(fā)送器,而從機是接收器;如果主機從從機讀取數(shù)據(jù),則主機是接收器,而從機是發(fā)送器。不論主機是發(fā)送器還是接收器,時鐘信號

SCL

都要由主機來產(chǎn)生。

每個器件都有一個唯一的地址識別,而且都可以作為一個發(fā)送器和接收器(由器件的功能決定)。很明顯,LCD驅(qū)動器只能是接收器,而存儲器既可以接收又可以發(fā)送數(shù)據(jù)。I2C

總線是雙向傳輸?shù)目偩€,因此主機和從機都可6

連接到I2C總線上的器件,若具有I2C總線的硬件接口,則很容易檢測到起始和終止信號。對于不具備I2C總線硬件接口的有些單片機來說,為了檢測起始和終止信號,必須保證在每個時鐘周期內(nèi)對數(shù)據(jù)線SDA采樣兩次。

接收器件收到一個完整的數(shù)據(jù)字節(jié)后,有可能需要完成一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無法立刻接收下一個字節(jié),這時接收器件可以將SCL線拉成低電平,從而使主機處于等待狀態(tài)。直到接收器件準備好接收下一個字節(jié)時,再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進行。

連接到I2C總線上的器件,若具有I2C總線的硬件接口73、數(shù)據(jù)傳送格式(1)字節(jié)傳送與應(yīng)答

每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位(MSB),每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。

3、數(shù)據(jù)傳送格式每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳8

由于某種原因從機不對主機尋址信號應(yīng)答時(如從機正在進行實時性的處理工作而無法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機產(chǎn)生一個終止信號以結(jié)束總線的數(shù)據(jù)傳送。如果從機對主機進行了應(yīng)答,但在數(shù)據(jù)傳送一段時間后無法繼續(xù)接收更多的數(shù)據(jù)時,從機可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機,主機則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳送。當主機接收數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從機發(fā)出一個結(jié)束傳送的信號。這個信號是由對從機的“非應(yīng)答”來實現(xiàn)的。然后,從機釋放SDA線,以允許主機產(chǎn)生終止信號。由于某種原因從機不對主機尋址信號應(yīng)答時(如從機正在進9但如果從機要完成一些其他功能后才能接收或發(fā)送下一個完整的數(shù)據(jù)字節(jié),那么可以使時鐘信號保持低電平迫使主機進入等待狀態(tài)。這也是唯一一個從機改變主機時鐘的情況。當從機準備好接受下一個字節(jié)時,釋放時鐘線SCL,數(shù)據(jù)傳輸繼續(xù)。但如果從機要完成一些其他功能后才能接收或發(fā)送下一10(2)數(shù)據(jù)幀格式I2C總線上傳送的數(shù)據(jù)信號是廣義的,既包括地址信號,又包括真正的數(shù)據(jù)信號。在總線的一次數(shù)據(jù)傳送過程中,可以有以下幾種組合方式:在起始信號后必須傳送一個從機的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/),用“0”表示主機發(fā)送數(shù)據(jù)(T),“1”表示主機接收數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機產(chǎn)生的終止信號結(jié)束。但是,若主機希望繼續(xù)占用總線進行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號,馬上再次發(fā)出起始信號對另一從機進行尋址。

(2)數(shù)據(jù)幀格式在總線的一次數(shù)據(jù)傳送過程中,可以有以11a、主機向從機發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變:注:有陰影部分表示數(shù)據(jù)由主機向從機傳送,無陰影部分則表示數(shù)據(jù)由從機向主機傳送。A表示應(yīng)答,A表示非應(yīng)答(高電平)。S表示起始信號,P表示終止信號。a、主機向從機發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變:注12b、主機在第一個字節(jié)后,立即由從機讀數(shù)據(jù)c、在傳送過程中,當需要改變傳送方向時,起始信號和從機地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫方向位正好反相。b、主機在第一個字節(jié)后,立即由從機讀數(shù)據(jù)c、在傳送過程中,當134、總線的尋址I2C總線協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號后的第一個字節(jié))。(1)尋址字節(jié)的位定義

D7~D1位組成從機的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時表示主機向從機寫數(shù)據(jù),為“1”時表示主機由從機讀數(shù)據(jù)。4、總線的尋址I2C總線協(xié)議有明確的規(guī)定:采用7位14主機發(fā)送地址時,總線上的每個從機都將這7位地址碼與自己的地址進行比較,如果相同,則認為自己正被主機尋址,根據(jù)R/位將自己確定為發(fā)送器或接收器。從機的地址由固定部分和可編程部分組成。在一個系統(tǒng)中可能希望接入多個相同的從機,從機地址中可編程部分決定了可接入總線該類器件的最大數(shù)目。如一個從機的7位尋址位有4位是固定位,3位是可編程位,這時僅能尋址8個同樣的器件,即可以有8個同樣的器件接入到該I2C總線系統(tǒng)中。主機發(fā)送地址時,總線上的每個從機都將這7位地址碼與自己的地址15(2)尋址字節(jié)中的特殊地址固定地址編號0000和1111已被保留作為特殊用途。

(2)尋址字節(jié)中的特殊地址16起始信號后的第一字節(jié)的8位為“00000000”時,稱為通用呼叫地址。通用呼叫地址的用意在第二字節(jié)中加以說明。格式為:

第二字節(jié)為06H時,所有能響應(yīng)通用呼叫地址的從機器件復(fù)位,并由硬件裝入從機地址的可編程部分。能響應(yīng)命令的從機器件復(fù)位時不拉低SDA和SCL線,以免堵塞總線。第二字節(jié)為04H時,所有能響應(yīng)通用呼叫地址并通過硬件來定義其可編程地址的從機器件將鎖定地址中的可編程位,但不進行復(fù)位。起始信號后的第一字節(jié)的8位為“00000000”時,17如果第二字節(jié)的方向位B為“1”,則這兩個字節(jié)命令稱為硬件通用呼叫命令。

在這第二字節(jié)的高7位說明自己的地址。接在總線上的智能器件,如單片機或其他微處理器能識別這個地址,并與之傳送數(shù)據(jù)。硬件主器件作為從機使用時,也用這個地址作為從機地址。格式為:

在系統(tǒng)中另一種選擇可能是系統(tǒng)復(fù)位時硬件主機器件工作在從機接收器方式,這時由系統(tǒng)中的主機先告訴硬件主機器件數(shù)據(jù)應(yīng)送往的從機器件地址,當硬件主機器件要發(fā)送數(shù)據(jù)時就可以直接向指定從機器件發(fā)送數(shù)據(jù)了。如果第二字節(jié)的方向位B為“1”,則這兩個字節(jié)命令稱18(3)起始字節(jié)不具備I2C總線接口的單片機,則必須通過軟件不斷地檢測總線,以便及時地響應(yīng)總線的請求。單片機的速度與硬件接口器件的速度就出現(xiàn)了較大的差別,為此,I2C總線上的數(shù)據(jù)傳送要由一個較長的起始過程加以引導(dǎo)。

起始字節(jié)是提供給沒有I2C總線接口的單片機查詢I2C總線時使用的特殊字節(jié)。(3)起始字節(jié)不具備I2C總線接口的單片機,則必須通19

引導(dǎo)過程由起始信號、起始字節(jié)、應(yīng)答位、重復(fù)起始信號(Sr)組成。請求訪問總線的主機發(fā)出起始信號后,發(fā)送起始字節(jié)(00000001),另一個單片機可以用一個比較低的速率采樣SDA線,直到檢測到起始字節(jié)中的7個“0”中的一個為止。在檢測到SDA線上的高電平后,單片機就可以用較高的采樣速率,以便尋找作為同步信號使用的第二個起始信號Sr。在起始信號后的應(yīng)答時鐘脈沖僅僅是為了和總線所使用的格式一致,并不要求器件在這個脈沖期間作應(yīng)答。

引導(dǎo)過程由起始信號、起始字節(jié)、應(yīng)答位、重復(fù)起始信20(4)10位尋址10位尋址向下兼容7位尋址,而且可以結(jié)合使用。10位尋址不會影響已有的7位尋址。有7位和10位地址的器件可以連接到相同的I2C總線,它們都能用于F/S模式和Hs模式系統(tǒng)。10位從機地址是由在起始條件(S)或重復(fù)起始條件(Sr)后的頭兩個字節(jié)組成。第一個字節(jié)的頭7位是11110XX的組合,其中最后兩位(XX)是10位地址的兩個最高位(MSB);第一個字節(jié)的第8位是R/W位,決定了報文的方向。第一個字節(jié)的最低位是‘0’表示主機將寫信息到選中的從機?!?’表示主機將向從機讀信息。如果R/W位是0,則第二個字節(jié)是10位從機地址剩下的8位。如果R/W位是1,則下一個字節(jié)是從機發(fā)送給主機的數(shù)據(jù)。(4)10位尋址10位尋址向下兼容7位尋址,21主機-發(fā)送器用10位地址尋址從機-接收器主機-接收器用10位地址尋址從機-發(fā)送器主機-發(fā)送器用10位地址尋址從機-接收器主機-接收器用1022組合格式。主機用10位地址尋址從機,然后發(fā)送數(shù)據(jù)到這個從機并向這個從機讀數(shù)據(jù)組合格式。主機用10位地址尋址從機,然后發(fā)送數(shù)據(jù)到這個從機231、I2C總線數(shù)據(jù)傳送速率

I2C

總線的通信速率受主機控制,能快能慢。但是最高速率是有限制的,I2C

總線上數(shù)據(jù)的傳輸速率在標準模式(Standard-mode)下為

100kbps(每秒

100k

位)

,在快速模式下為400kbps。按照后來修訂的版本,位速率最高可達

3.4Mbps。2、子地址

帶有

I2C

總線的器件除了有從機地址(Slave

Address)外,還可能有子地址。從機地址是指該器件在

I2C

總線上被主機尋址的地址,

而子地址是指該器件內(nèi)部不同部件或存儲單元的編址。例如,帶

I2C

總線接口的

E2PROM

就是擁有子地址器件的典型代表。

某些器件(只占少數(shù))內(nèi)部結(jié)構(gòu)比較簡單,可能沒有子地址,只有必須的從機地址。

與從機地址一樣,子地址實際上也是像普通數(shù)據(jù)那樣進行傳輸?shù)?,傳輸格式仍然是與數(shù)據(jù)相統(tǒng)一的,區(qū)分傳輸?shù)牡降资堑刂愤€是數(shù)據(jù)要靠收發(fā)雙方具體的邏輯約定。子地址的長度必須由整數(shù)個字節(jié)組成,可能是單字節(jié)(8

位子地址)

,也可能是雙字節(jié)(16

位子地址)

,還可能是

3

字節(jié)以上,這要看具體器件的規(guī)定。三、I2C基礎(chǔ)知識1、I2C總線數(shù)據(jù)傳送速率

2、子地址

三、I2C基礎(chǔ)知識243、仲裁是一個在有多個主機同時嘗試控制總線但只允許其中一個控制總線并使報文不被破壞的過程。所有主機在SCL線上產(chǎn)生它們自己的時鐘來傳輸I2C總線上的報文。數(shù)據(jù)只在時鐘的高電平周期有效。因此,需要一個確定的時鐘進行逐位仲裁。時鐘同步通過線與連接I2C接口到SCL線來執(zhí)行。這就是說:SCL線的高到低切換會使器件開始數(shù)它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL線保持這種狀態(tài)直到到達時鐘的高電平。但是,如果另一個時鐘仍處于低電平周期,這個時鐘的低到高切換不會改變SCL線的狀態(tài)。因此,SCL線被有最長低電平周期的器件保持低電平。此時,低電平周期短的器件會進入高電平的等待狀態(tài)。當所有有關(guān)的器件數(shù)完了它們的低電平周期后,時鐘線被釋放并變成高電平,之后器件時鐘和SCL線的狀態(tài)沒有差別,而且所有器件會開始數(shù)它們的高電平周期。首先完成高電平周期的器件會再次將SCL線拉低,這樣產(chǎn)生的同步SCL時鐘的低電平周期由低電平時鐘周期最長的器件決定,而高電平周期由高電平時鐘周期最短的器件決定。3、仲裁所有主機在SCL線上產(chǎn)生它們自己的時鐘25這發(fā)生在仲裁之前,這部分稱為同步。這發(fā)生在仲裁之前,這部分稱為同步。26主機只能在總線空閑的時侯啟動傳輸。兩個或多個主機可能在起始條件的最小持續(xù)時間(tHD;STA)內(nèi)產(chǎn)生一個起始條件,結(jié)果在總線上產(chǎn)生一個規(guī)定的起始條件。當SCL線是高電平時,仲裁在SDA線發(fā)生;這樣,在其他主機發(fā)送低電平時,發(fā)送高電平的主機將斷開它的數(shù)據(jù)輸出級,因為總線上的電平與它自己的電平不相同。仲裁主機只能在總線空閑的時侯啟動傳輸。兩個或多個主機可能27下圖顯示了兩個主機的仲裁過程,當然可能包含更多的內(nèi)容(由連接到總線的主機數(shù)量決定)。此時,產(chǎn)生DATA1的主機的內(nèi)部數(shù)據(jù)電平與SDA線的實際電平有一些差別,如果關(guān)斷數(shù)據(jù)輸出,這就意味著總線連接了一個高輸出電平。這不會影響由贏得仲裁的主機初始化的數(shù)據(jù)傳輸。由于I2C總線的控制只由地址或主機碼以及競爭主機發(fā)送的數(shù)據(jù)決定,沒有中央主機,總線也沒有任何定制的優(yōu)先權(quán)。下圖顯示了兩個主機的仲裁過程,當然可能包含更多28四、I2C注意事項1、關(guān)于400pF負載電容

(1)波形畸變:電容越大,其濾波效果越明顯。當這個電容過大時,很明顯部分通訊信號會被濾除,引起波形畸變,I2C將可能會產(chǎn)生誤碼,從而無法正常通信。(2)總線驅(qū)動能力:負載電容決定了總線在某一速率下的穩(wěn)定性。當輸出為高時,電流通過上拉電阻對負載電容充電。上拉越大,電容越大,所需要的時間就越長,如果超過了通信周期的10%,那么這個上升沿就太緩了,相應(yīng)的建立時間會受到影響。I2C規(guī)范的最大負載電容是400pF,快速模式下是100pF,高速模式下是20pF(自己估的)、四、I2C注意事項1、關(guān)于400pF負載電容(1)波292、I2C的負載能力(1)負載電容。I2C的負載并不是純電阻負載,在負載的輸入端一般都會有一個等效輸入電容,一般情況下都是PF級的,而這些負載都是并聯(lián)的,所以負載越多,電容越大。(2)負載電感,它的作用跟電容差不多,這個電感主要是走線和引腳帶來的等效電感。(3)純負載。I2C的負載也可以等效為一個純電阻,負載越多,這個電阻就越小,對I2C的輸出能力要求就越高,超過I2C總線的帶載能力時,它也不能正常工作。2、I2C的負載能力(1)負載電容。I2C的負載并不是純電阻30謝謝觀看謝謝觀看31I2C時序分析和基礎(chǔ)知識簡介一、什么是I2C三、I2C基礎(chǔ)知識二、I2C時序分析四、I2C注意事項I2C時序分析和基礎(chǔ)知識簡介一、什么是I2C三、I2C基礎(chǔ)知32I2C(Inter-IntegratedCircuit)總線是由PHILIPS公司(現(xiàn)在的NXP半導(dǎo)體)開發(fā)的兩線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種總線標準。它是同步通信的一種特殊形式,具有接口線少,控制方式簡單,器件封裝形式小,通信速率較高等優(yōu)點。一、什么是I2C

I2C總線只有兩根雙向信號線。一根是數(shù)據(jù)線SDA,另一根是時鐘線SCL。I2C(Inter-IntegratedCircu33I2C總線通過上拉電阻接正電源。當總線空閑時,兩根線均為高電平。連到總線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的SDA及SCL都是線“與”關(guān)系。I2C總線通過上拉電阻接正電源。當總線空閑時,兩根線均341、數(shù)據(jù)位的有效性規(guī)定I2C總線進行數(shù)據(jù)傳送時,時鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變化。二、I2C時序分析1、數(shù)據(jù)位的有效性規(guī)定二、I2C時序分析352、起始和終止信號

SCL線為高電平期間,SDA線由高電平向低電平的變化表示起始信號;SCL線為高電平期間,SDA線由低電平向高電平的變化表示終止信號。

SDA線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,SCL為高電平的期間,SDA狀態(tài)的改變被用來表示起始和停止條件。2、起始和終止信號SCL線為高電平期間,SDA線由高36I2C

總線是雙向傳輸?shù)目偩€,因此主機和從機都可能成為發(fā)送器和接收器。如果主機向從機發(fā)送數(shù)據(jù),則主機是發(fā)送器,而從機是接收器;如果主機從從機讀取數(shù)據(jù),則主機是接收器,而從機是發(fā)送器。不論主機是發(fā)送器還是接收器,時鐘信號

SCL

都要由主機來產(chǎn)生。

每個器件都有一個唯一的地址識別,而且都可以作為一個發(fā)送器和接收器(由器件的功能決定)。很明顯,LCD驅(qū)動器只能是接收器,而存儲器既可以接收又可以發(fā)送數(shù)據(jù)。I2C

總線是雙向傳輸?shù)目偩€,因此主機和從機都可37

連接到I2C總線上的器件,若具有I2C總線的硬件接口,則很容易檢測到起始和終止信號。對于不具備I2C總線硬件接口的有些單片機來說,為了檢測起始和終止信號,必須保證在每個時鐘周期內(nèi)對數(shù)據(jù)線SDA采樣兩次。

接收器件收到一個完整的數(shù)據(jù)字節(jié)后,有可能需要完成一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無法立刻接收下一個字節(jié),這時接收器件可以將SCL線拉成低電平,從而使主機處于等待狀態(tài)。直到接收器件準備好接收下一個字節(jié)時,再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù)進行。

連接到I2C總線上的器件,若具有I2C總線的硬件接口383、數(shù)據(jù)傳送格式(1)字節(jié)傳送與應(yīng)答

每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位(MSB),每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。

3、數(shù)據(jù)傳送格式每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳39

由于某種原因從機不對主機尋址信號應(yīng)答時(如從機正在進行實時性的處理工作而無法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機產(chǎn)生一個終止信號以結(jié)束總線的數(shù)據(jù)傳送。如果從機對主機進行了應(yīng)答,但在數(shù)據(jù)傳送一段時間后無法繼續(xù)接收更多的數(shù)據(jù)時,從機可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機,主機則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳送。當主機接收數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從機發(fā)出一個結(jié)束傳送的信號。這個信號是由對從機的“非應(yīng)答”來實現(xiàn)的。然后,從機釋放SDA線,以允許主機產(chǎn)生終止信號。由于某種原因從機不對主機尋址信號應(yīng)答時(如從機正在進40但如果從機要完成一些其他功能后才能接收或發(fā)送下一個完整的數(shù)據(jù)字節(jié),那么可以使時鐘信號保持低電平迫使主機進入等待狀態(tài)。這也是唯一一個從機改變主機時鐘的情況。當從機準備好接受下一個字節(jié)時,釋放時鐘線SCL,數(shù)據(jù)傳輸繼續(xù)。但如果從機要完成一些其他功能后才能接收或發(fā)送下一41(2)數(shù)據(jù)幀格式I2C總線上傳送的數(shù)據(jù)信號是廣義的,既包括地址信號,又包括真正的數(shù)據(jù)信號。在總線的一次數(shù)據(jù)傳送過程中,可以有以下幾種組合方式:在起始信號后必須傳送一個從機的地址(7位),第8位是數(shù)據(jù)的傳送方向位(R/),用“0”表示主機發(fā)送數(shù)據(jù)(T),“1”表示主機接收數(shù)據(jù)(R)。每次數(shù)據(jù)傳送總是由主機產(chǎn)生的終止信號結(jié)束。但是,若主機希望繼續(xù)占用總線進行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號,馬上再次發(fā)出起始信號對另一從機進行尋址。

(2)數(shù)據(jù)幀格式在總線的一次數(shù)據(jù)傳送過程中,可以有以42a、主機向從機發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變:注:有陰影部分表示數(shù)據(jù)由主機向從機傳送,無陰影部分則表示數(shù)據(jù)由從機向主機傳送。A表示應(yīng)答,A表示非應(yīng)答(高電平)。S表示起始信號,P表示終止信號。a、主機向從機發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程中不變:注43b、主機在第一個字節(jié)后,立即由從機讀數(shù)據(jù)c、在傳送過程中,當需要改變傳送方向時,起始信號和從機地址都被重復(fù)產(chǎn)生一次,但兩次讀/寫方向位正好反相。b、主機在第一個字節(jié)后,立即由從機讀數(shù)據(jù)c、在傳送過程中,當444、總線的尋址I2C總線協(xié)議有明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號后的第一個字節(jié))。(1)尋址字節(jié)的位定義

D7~D1位組成從機的地址。D0位是數(shù)據(jù)傳送方向位,為“0”時表示主機向從機寫數(shù)據(jù),為“1”時表示主機由從機讀數(shù)據(jù)。4、總線的尋址I2C總線協(xié)議有明確的規(guī)定:采用7位45主機發(fā)送地址時,總線上的每個從機都將這7位地址碼與自己的地址進行比較,如果相同,則認為自己正被主機尋址,根據(jù)R/位將自己確定為發(fā)送器或接收器。從機的地址由固定部分和可編程部分組成。在一個系統(tǒng)中可能希望接入多個相同的從機,從機地址中可編程部分決定了可接入總線該類器件的最大數(shù)目。如一個從機的7位尋址位有4位是固定位,3位是可編程位,這時僅能尋址8個同樣的器件,即可以有8個同樣的器件接入到該I2C總線系統(tǒng)中。主機發(fā)送地址時,總線上的每個從機都將這7位地址碼與自己的地址46(2)尋址字節(jié)中的特殊地址固定地址編號0000和1111已被保留作為特殊用途。

(2)尋址字節(jié)中的特殊地址47起始信號后的第一字節(jié)的8位為“00000000”時,稱為通用呼叫地址。通用呼叫地址的用意在第二字節(jié)中加以說明。格式為:

第二字節(jié)為06H時,所有能響應(yīng)通用呼叫地址的從機器件復(fù)位,并由硬件裝入從機地址的可編程部分。能響應(yīng)命令的從機器件復(fù)位時不拉低SDA和SCL線,以免堵塞總線。第二字節(jié)為04H時,所有能響應(yīng)通用呼叫地址并通過硬件來定義其可編程地址的從機器件將鎖定地址中的可編程位,但不進行復(fù)位。起始信號后的第一字節(jié)的8位為“00000000”時,48如果第二字節(jié)的方向位B為“1”,則這兩個字節(jié)命令稱為硬件通用呼叫命令。

在這第二字節(jié)的高7位說明自己的地址。接在總線上的智能器件,如單片機或其他微處理器能識別這個地址,并與之傳送數(shù)據(jù)。硬件主器件作為從機使用時,也用這個地址作為從機地址。格式為:

在系統(tǒng)中另一種選擇可能是系統(tǒng)復(fù)位時硬件主機器件工作在從機接收器方式,這時由系統(tǒng)中的主機先告訴硬件主機器件數(shù)據(jù)應(yīng)送往的從機器件地址,當硬件主機器件要發(fā)送數(shù)據(jù)時就可以直接向指定從機器件發(fā)送數(shù)據(jù)了。如果第二字節(jié)的方向位B為“1”,則這兩個字節(jié)命令稱49(3)起始字節(jié)不具備I2C總線接口的單片機,則必須通過軟件不斷地檢測總線,以便及時地響應(yīng)總線的請求。單片機的速度與硬件接口器件的速度就出現(xiàn)了較大的差別,為此,I2C總線上的數(shù)據(jù)傳送要由一個較長的起始過程加以引導(dǎo)。

起始字節(jié)是提供給沒有I2C總線接口的單片機查詢I2C總線時使用的特殊字節(jié)。(3)起始字節(jié)不具備I2C總線接口的單片機,則必須通50

引導(dǎo)過程由起始信號、起始字節(jié)、應(yīng)答位、重復(fù)起始信號(Sr)組成。請求訪問總線的主機發(fā)出起始信號后,發(fā)送起始字節(jié)(00000001),另一個單片機可以用一個比較低的速率采樣SDA線,直到檢測到起始字節(jié)中的7個“0”中的一個為止。在檢測到SDA線上的高電平后,單片機就可以用較高的采樣速率,以便尋找作為同步信號使用的第二個起始信號Sr。在起始信號后的應(yīng)答時鐘脈沖僅僅是為了和總線所使用的格式一致,并不要求器件在這個脈沖期間作應(yīng)答。

引導(dǎo)過程由起始信號、起始字節(jié)、應(yīng)答位、重復(fù)起始信51(4)10位尋址10位尋址向下兼容7位尋址,而且可以結(jié)合使用。10位尋址不會影響已有的7位尋址。有7位和10位地址的器件可以連接到相同的I2C總線,它們都能用于F/S模式和Hs模式系統(tǒng)。10位從機地址是由在起始條件(S)或重復(fù)起始條件(Sr)后的頭兩個字節(jié)組成。第一個字節(jié)的頭7位是11110XX的組合,其中最后兩位(XX)是10位地址的兩個最高位(MSB);第一個字節(jié)的第8位是R/W位,決定了報文的方向。第一個字節(jié)的最低位是‘0’表示主機將寫信息到選中的從機?!?’表示主機將向從機讀信息。如果R/W位是0,則第二個字節(jié)是10位從機地址剩下的8位。如果R/W位是1,則下一個字節(jié)是從機發(fā)送給主機的數(shù)據(jù)。(4)10位尋址10位尋址向下兼容7位尋址,52主機-發(fā)送器用10位地址尋址從機-接收器主機-接收器用10位地址尋址從機-發(fā)送器主機-發(fā)送器用10位地址尋址從機-接收器主機-接收器用1053組合格式。主機用10位地址尋址從機,然后發(fā)送數(shù)據(jù)到這個從機并向這個從機讀數(shù)據(jù)組合格式。主機用10位地址尋址從機,然后發(fā)送數(shù)據(jù)到這個從機541、I2C總線數(shù)據(jù)傳送速率

I2C

總線的通信速率受主機控制,能快能慢。但是最高速率是有限制的,I2C

總線上數(shù)據(jù)的傳輸速率在標準模式(Standard-mode)下為

100kbps(每秒

100k

位)

,在快速模式下為400kbps。按照后來修訂的版本,位速率最高可達

3.4Mbps。2、子地址

帶有

I2C

總線的器件除了有從機地址(Slave

Address)外,還可能有子地址。從機地址是指該器件在

I2C

總線上被主機尋址的地址,

而子地址是指該器件內(nèi)部不同部件或存儲單元的編址。例如,帶

I2C

總線接口的

E2PROM

就是擁有子地址器件的典型代表。

某些器件(只占少數(shù))內(nèi)部結(jié)構(gòu)比較簡單,可能沒有子地址,只有必須的從機地址。

與從機地址一樣,子地址實際上也是像普通數(shù)據(jù)那樣進行傳輸?shù)?,傳輸格式仍然是與數(shù)據(jù)相統(tǒng)一的,區(qū)分傳輸?shù)牡降资堑刂愤€是數(shù)據(jù)要靠收發(fā)雙方具體的邏輯約定。子地址的長度必須由整數(shù)個字節(jié)組成,可能是單字節(jié)(8

位子地址)

,也可能是雙字節(jié)(16

位子地址)

,還可能是

3

字節(jié)以上,這要看具體器件的規(guī)定。三、I2C基礎(chǔ)知識1、I2C總線數(shù)據(jù)傳送速率

2、子地址

三、I2C基礎(chǔ)知識553、仲裁是一個在有多個主機同時嘗試控制總線但只允許其中一個控制總線并使報文不被破壞的過程。所有主機在SCL線上產(chǎn)生它們自己的時鐘來傳輸I2C總線上的報文。數(shù)據(jù)只在時鐘的高電平周期有效。因此,需要一個確定的時鐘進行逐位仲裁。時鐘同步通過線與連接I2C接口到SCL線來執(zhí)行。這就是說:SCL線的高到低切換會使器件開始數(shù)它們的低電平周期,而且一旦器件的時鐘變低電平,它會使SCL線保持這種狀態(tài)直到到達時鐘的高電平。但是,如果另一個時鐘仍處于低電平周期,這個

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論