IIC總線協(xié)議最佳理解_第1頁
IIC總線協(xié)議最佳理解_第2頁
IIC總線協(xié)議最佳理解_第3頁
IIC總線協(xié)議最佳理解_第4頁
IIC總線協(xié)議最佳理解_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、iic總線協(xié)議1)iic總線的概念lie總線是一種申行總線,用于連接微控制器及其外圍設(shè)備,具有以卜特點: 兩條總線線路:一條帝行數(shù)據(jù)線(sda), 條帝行時鐘線(scl) 每個連接到總線的器件都可以使用軟件更兵它的唯一的地址來識別 傳輸數(shù)據(jù)的設(shè)備ix!是簡單的主從關(guān)系 主機(jī)可以用作主機(jī)發(fā)送器或主機(jī)接收器 它是一個多主機(jī)總線,兩個或多個主機(jī)同時發(fā)起數(shù)據(jù)傳輸時,可以通 過沖突檢測和仲裁來方式數(shù)據(jù)被破壞 串行的8位雙句數(shù)據(jù)傳輸,位速率在標(biāo)準(zhǔn)模式下可達(dá)100kbit/s,在 快速模式k可達(dá)400kbit/s,在高速模式下可達(dá)3. 4mbit/s 片上的濾波器可以增加干擾功能,保證數(shù)據(jù)的完整 連接到同一

2、總線上的1c數(shù)量受到總線最大電容的限制sda發(fā)送器:發(fā)送數(shù)據(jù)到總線的器件接收器:從總線接收數(shù)據(jù)的器件主機(jī):發(fā)起/停止數(shù)據(jù)傳輸、提供吋鐘信號的器件從機(jī):被主機(jī)尋址的器件多主機(jī):可以有多個主機(jī)試圖去控制總線,但是不會破壞數(shù)據(jù)仲裁:當(dāng)多個主機(jī)試圖去控制總線時,通過仲裁可以使得只宥一個主機(jī)獲得總線 控制權(quán),并且它傳輸?shù)男畔⒉粫黄茐?同步:多個器件同步吋鐘信號的過程12c總線通過上拉電阻接正電源。當(dāng)總線空閑時,兩根線均為高電肀。連到總 線上的任一器件輸出的低電平,都將使總線的信號變低,即各器件的sda及scl 都是線“與”關(guān)系。每個接到t2c總線上的器件都有唯一的地址。主機(jī)與其它器件間的數(shù)據(jù)傳送 可以

3、是由主機(jī)發(fā)送數(shù)據(jù)到其它器件,這吋主機(jī)即為發(fā)送器。由總線上接收數(shù)據(jù)的 器件則為接收器。在多主機(jī)系統(tǒng)中,可能同時宥幾個主機(jī)企圖啟動總線傳送數(shù)據(jù)。為了避免混 亂,12c總線耍通過總線仲裁,以決定由哪一臺主機(jī)控制總線。在80c51單片機(jī)應(yīng)用系統(tǒng)的串行總線擴(kuò)展中,我們經(jīng)常遇到的是以80c51 竽片機(jī)為主機(jī),其它接口器件為從機(jī)的竽主機(jī)情況。數(shù)據(jù)位的有效性規(guī)定:t2c總線進(jìn)行數(shù)據(jù)傳送吋,吋鐘信號為高電平期間,數(shù)據(jù)線上的數(shù)據(jù)必須保 持穩(wěn)定,只有在吋鐘線上的信號為低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)4允許變化。sc)as數(shù)定 v求穩(wěn)要據(jù)數(shù)化 ?變允裾數(shù)定求穩(wěn)2)iic總線的信號類型uc總線在傳送數(shù)據(jù)過程屮共

4、有3種類型信號:殲始信號、結(jié)束信號和響應(yīng)信號 開始信號(s) : scl為高電平吋,sda巾高電平向低電平跳變,表示起始信號, 開始傳送數(shù)據(jù) 結(jié)束信號(p) : scl為高電平時,sda由低電平向高電平跳變,表示結(jié)束信號, 結(jié)束傳送數(shù)據(jù) 響應(yīng)信號(ack):接收器在接收到8位數(shù)據(jù)后,在第9個吋鐘周期,拉低sda 電t。即接收數(shù)據(jù)的tc在接收到8bit數(shù)據(jù)后,向發(fā)送數(shù)據(jù)的tc發(fā)出特定的低 電平脈沖,表示已收到數(shù)據(jù)。cpu向受控單元發(fā)出一個信號后,等待受控單元發(fā) 出一個應(yīng)答信號,cpu接收到應(yīng)答信號后,根據(jù)實際情況作出是否繼續(xù)傳遞信號 的判斷。若米收到應(yīng)答信號,由判斷為受控竽元出現(xiàn)故障。終止倍兮p

5、開始信號s和結(jié)束信號p起始和終止信號都是由主機(jī)發(fā)出的,在起始信號產(chǎn)生后,總線就處于被占 用的狀態(tài);在終止信號產(chǎn)生后,總線就處于空閑狀態(tài)。連接到i2c總線上的器件,若具有i2c總線的硬件接口,則很容易檢測到 起始和終止信號。對于不具備i2c總線硬件接口的有些單片機(jī)來說,為了檢測 起始和終止信號,必須保證在每個時鐘周期內(nèi)對數(shù)據(jù)線sda采樣兩次。接收器件收到一個完整的數(shù)據(jù)字節(jié)后,有可能需要完成一些其它工作,如 處理內(nèi)部中斷服務(wù)等,可能無法立刻接收下一個字節(jié),這時接收器件可以將scl 線拉成低電平,從而使主機(jī)處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個字 節(jié)時,再釋放scl線使之為高電平,從而使數(shù)據(jù)傳送

6、可以繼續(xù)進(jìn)行。應(yīng)答信號ack3) uc總線的數(shù)據(jù)傳輸格式發(fā)送到sda線上的每個字節(jié)必須是8位的,每次傳輸可以發(fā)送的字節(jié)數(shù) 量不受限制。每一個字節(jié)必須保證是8位長度。數(shù)據(jù)傳送時,先傳送最高位(msb), 每一個被傳送的字節(jié)后面都必須跟隨一位應(yīng)答位(即一幀共有9位)。如果從機(jī)耍完成一些其他功能后j能繼續(xù)接收或發(fā)送,從機(jī)可以拉低 scl迫使主機(jī)進(jìn)入等待狀態(tài)。當(dāng)從機(jī)準(zhǔn)備好接收并釋放scl后,數(shù)據(jù)繼續(xù)傳輸。 如果主機(jī)在傳輸數(shù)據(jù)期間也需耍完成一些其他功能葉可以拉低scl以心住總線。啟動一個傳輸吋,主機(jī)先發(fā)出s信號,然后發(fā)出8位數(shù)據(jù)。前7位為從 機(jī)地址,第8位表示傳輸方向(0表示寫操作,1表示讀操作)。被選

7、中的從機(jī) 發(fā)出響應(yīng)信號。跟著傳輸-系列字節(jié)及響應(yīng)位。最后,主機(jī)發(fā)出p信號結(jié)束。由于某種原因從機(jī)不對主機(jī)尋址信號應(yīng)答時(如從機(jī)正在進(jìn)行實時性的處理 工作而無法接收總線上的數(shù)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一 個終止信號以結(jié)束總線的數(shù)據(jù)傳送。如果從機(jī)對主機(jī)進(jìn)行y應(yīng)答,但在數(shù)據(jù)傳送一段吋間后無法繼續(xù)接收更多的 數(shù)據(jù)吋,從機(jī)可以通過對無法接收的第一個數(shù)據(jù)字節(jié)的“非應(yīng)答”通知主機(jī),主 機(jī)則應(yīng)發(fā)出終止信號以結(jié)束數(shù)據(jù)的繼續(xù)傳送。當(dāng)主機(jī)接收數(shù)據(jù)時,它收到最后一個數(shù)據(jù)字節(jié)后,必須向從機(jī)發(fā)出一個結(jié)束 傳送的信號。這個信號是由對從機(jī)的“非應(yīng)答”來實現(xiàn)的。然后,從機(jī)釋放sda 線,以允許主機(jī)產(chǎn)生終止信號。

8、下列三種情況不會有ack信號: 當(dāng)從機(jī)不能響應(yīng)從機(jī)地址時(從機(jī)忙于其他事無法響應(yīng)iic總線操作或這個地 址沒有對應(yīng)從機(jī)),在第9個scl周期內(nèi)sda線沒有被拉低,即沒有ack信號。 這時,主機(jī)發(fā)送一個p信號終止傳輸或者重新發(fā)送一個s信號開始新的傳輸 從機(jī)接收器在傳輸過程中不能接收更多的數(shù)據(jù)時,也不會發(fā)出ack信號。主機(jī) 意識到這點,從而發(fā)出一個p信號終止傳輸或者從新發(fā)送一個s信號開始新的傳 輸 主機(jī)接收器在接收到最后一個字節(jié)吋,也不會發(fā)出ack信號,于是,從機(jī)發(fā)送 器釋放sda線,允許主機(jī)發(fā)送p信號結(jié)束傳輸4)、數(shù)據(jù)幀格式i2c總線上傳送的數(shù)據(jù)信號是廣義的,既包括地址信號,又包括真正的數(shù)裾 信

9、號。在起始信號后必須傳送一個從機(jī)的地址(7位),第8位是數(shù)據(jù)的傳送方向 位(k/),用“0”表示主機(jī)發(fā)送數(shù)據(jù)(t) , “1”表示主機(jī)接收數(shù)據(jù)(k)。每 次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號結(jié)束。但是,若主機(jī)希望繼續(xù)占用總線進(jìn) 行新的數(shù)據(jù)傳送,則可以不產(chǎn)生終止信號,馬上再次發(fā)出起始信號對另一從機(jī)進(jìn) 行尋址。在總線的一次數(shù)據(jù)傳送過程中,可以有以下幾種組合方式:a,主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在整個傳送過程屮不變:s 從機(jī)地址f 0, a.:據(jù)a,a/a p注:有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無陰影部分則表示數(shù)據(jù)由從機(jī)向主 機(jī)傳送。a表示應(yīng)答,表示非應(yīng)答(高電平)。s表示起始信號,p表示終止

10、信號。 b、主機(jī)在第一個字節(jié)后,立即由從機(jī)讀數(shù)據(jù)c、在傳送過程中,當(dāng)需耍改變傳送方向時,起始信號和從機(jī)地址都被重復(fù)產(chǎn)生 一次,但兩次讀/寫方向位正好反相。a/x | s |從機(jī)地址| 1 | a |5)、總線的尋址i2c總線協(xié)議宥明確的規(guī)定:采用7位的尋址字節(jié)(尋址字節(jié)是起始信號 后的第一個字節(jié))。(1)尋址字節(jié)的位定義位:64p2ip從機(jī)地址pr/w |d7d1位組成從機(jī)的地址。do位是數(shù)據(jù)傳送方向位,為“0”時表示主機(jī) 向從機(jī)寫數(shù)據(jù),為“1”時表示主機(jī)由從機(jī)讀數(shù)據(jù)。主機(jī)發(fā)送地址吋,總線上的每個從機(jī)都將這7位地址碼與自己的地址進(jìn)行比較, 如果相同,則認(rèn)為自己正被主機(jī)尋址,根據(jù)r/位將自己確定

11、為發(fā)送器或接收器。從機(jī)的地址由鬧定部分和可編程部分組成。在一個系統(tǒng)屮可能希望接入多個相同 的從機(jī),從機(jī)地址屮可編程部分決定了可接入總線該類器件的最大數(shù)目。如一個 從機(jī)的7位尋址位有4位是固定位,3位是可編程位,這時僅能尋址8個同樣的 器件,即可以有8個同樣的器件接入到該12c總線系統(tǒng)中。(2)尋址字節(jié)中的特殊地址其中高四位為器件類型識別符(即固定地址編號0000和1111,不同的芯片 類型有不同的定義,eepkom 般應(yīng)為1010),接著三位為片選,最后一位為讀 寫位,當(dāng)為1時為讀操作,為0時為寫操作。表94 i2c總線特殊地址表。地址位*,r/w0000。000»5op000op0

12、0opip000op001000op010。xp為不000op01ipxp0000*31x111ip1x11110xxp起始信號后的第一字節(jié)的8位為“0000 0000”吋,稱為通用呼叫地址。通用 呼叫地址的用意在第二字節(jié)中加以說明。格式為:第一字節(jié)(通用呼叫地址)。第二字節(jié)0。(b0。(b0。(b0。(bapx.x ixx ixx第二字節(jié)為06h時,所冇能響應(yīng)通用呼叫地址的從機(jī)器件復(fù)位,并由硬件裝 入從機(jī)地址的可編程部分。能響應(yīng)命令的從機(jī)器件復(fù)位時不拉低sda和scl線, 以免堵塞總線。第二字節(jié)為04h吋,所有能響應(yīng)通用呼叫地址并通過硬件來定義其可編程 地址的從機(jī)器件將鎖定地址中的可編程位,

13、但不進(jìn)行復(fù)位。如果第二字節(jié)的方向位b為“1”,則這兩個字節(jié)命令稱為硬件通用呼叫命 令。在這第二字節(jié)的高7位說明自己的地址。接在總線上的智能器件,如單片機(jī) 或其他微處理器能識別這個地址,并與之傳送數(shù)據(jù)。硬件主器件作為從機(jī)使用時, 也用這個地址作為從機(jī)地址。格式為:s 0000 0000 a1主機(jī)地址1 ap:據(jù)在系統(tǒng)中另一種選擇可能是系統(tǒng)復(fù)位時硬件主機(jī)器件工作在從機(jī)接收器方 式,這吋由系統(tǒng)屮的主機(jī)先告訴硬件主機(jī)器件數(shù)據(jù)應(yīng)送往的從機(jī)器件地址,當(dāng)硬 件主機(jī)器件要發(fā)送數(shù)據(jù)時就可以直接向指定從機(jī)器件發(fā)送數(shù)據(jù)了。(3) 起始字節(jié)起始字節(jié)是提供給沒有i2c總線接口的單片機(jī)查詢i2c總線吋使用的特殊字 節(jié)。不

14、兵備i2c總線接1_1的單片機(jī),則必須通過軟件不斷地檢測總線,以便及時 地響應(yīng)總線的請求。單片機(jī)的速度與硬件接口器件的速度就出現(xiàn)了較大的差別, 為此,i2c總線上的數(shù)據(jù)傳送要由一個較長的起始過程加以引導(dǎo)。引導(dǎo)過程由起始信號、起始字節(jié)、應(yīng)答位、重復(fù)起始信號(sr)組成。請求訪問總線的主機(jī)發(fā)出起始信號后,發(fā)送起始字節(jié)(0000 0001),另一個爭 片機(jī)可以用一個比較低的速率釆樣sda線,直到檢測到起始字節(jié)中的7個“0” 中的一個為止。在檢測到sda線上的高電平后,單片機(jī)就可以用較高的采樣速率, 以便尋找作為同步信號使用的第二個起始信號sr。在起始信號盾的應(yīng)答時鐘脈沖僅僅是為了和總線所使用的格式一致,并不要求器 件在這個脈沖期間作應(yīng)答。2 80c51單片機(jī)i2c串行總線器件的接口2.1總線數(shù)據(jù)傳送的模擬主機(jī)可以采用不帶i2c總線接口的單片機(jī),如80c51、at89c2051等單片機(jī), 利用軟件實現(xiàn)i2c總線的數(shù)據(jù)傳送,即軟件與硬件結(jié)合的信號模擬。一、典型信號模擬為了保證數(shù)據(jù)傳送的可靠性,標(biāo)準(zhǔn)的12c總線的數(shù)據(jù)傳送冇嚴(yán)格的時序要求。 i2c總線的起始信號、終止信號、發(fā)送“0”及發(fā)送“1”的模擬時序:scl'k 7mss

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論