




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) I2C時(shí)序分析和基礎(chǔ)知識(shí)簡(jiǎn)介 一、什么是一、什么是I2C 三、三、I2C基礎(chǔ)知識(shí)基礎(chǔ)知識(shí) 二、二、I2C 四、四、I2C注意事項(xiàng)注意事項(xiàng) I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) I2C(InterIntegrated Circuit)總線是由PHILIPS公司(現(xiàn)在的NXP半導(dǎo)體)開(kāi)發(fā)的兩 線式串行總線,用于連接微控制器及其外圍設(shè)備。是微電子通信控制領(lǐng)域廣泛采用的一種 總線標(biāo)準(zhǔn)。它是同步通信的一種特殊形式,具有接口線少,控制方式簡(jiǎn)單,器件封裝形式 小,通信速率較高等優(yōu)點(diǎn)。 I2C總線只有兩根雙向信號(hào)線。一根是數(shù)據(jù)線總線只有兩根雙向信號(hào)線。一根是數(shù)據(jù)線SDA, 另一根是時(shí)鐘線
2、另一根是時(shí)鐘線SCL。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) I2C I2C總線通過(guò)上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根總線通過(guò)上拉電阻接正電源。當(dāng)總線空閑時(shí),兩根 線均為高電平。連到總線上的任一器件輸出的低電平,都線均為高電平。連到總線上的任一器件輸出的低電平,都 將使總線的信號(hào)變低,即各器件的將使總線的信號(hào)變低,即各器件的SDASDA及及SCLSCL都是線都是線“與與” 關(guān)系。關(guān)系。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 1、數(shù)據(jù)位的有效性規(guī)定、數(shù)據(jù)位的有效性規(guī)定 I2C總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù)總線進(jìn)行數(shù)據(jù)傳送時(shí),時(shí)鐘信號(hào)為高電平期間,數(shù) 據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線上的信號(hào)
3、為據(jù)線上的數(shù)據(jù)必須保持穩(wěn)定,只有在時(shí)鐘線上的信號(hào)為 低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變低電平期間,數(shù)據(jù)線上的高電平或低電平狀態(tài)才允許變 化。化。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 2、起始和終止信號(hào)、起始和終止信號(hào) SCL線為高電平期間,線為高電平期間,SDA線由高電平向低線由高電平向低 電平的變化表示起始信號(hào);電平的變化表示起始信號(hào);SCL線為高電平期線為高電平期 間,間,SDA線由低電平向高電平的變化表示終止線由低電平向高電平的變化表示終止 信號(hào)。信號(hào)。 SDA線上的數(shù)據(jù)狀態(tài)僅在線上的數(shù)據(jù)狀態(tài)僅在SCL為低電平的期間才能改變,為低電平的期間才能改變,SCL為高電為高電 平的期間,
4、平的期間,SDA狀態(tài)的改變被用來(lái)表示起始和停止條件。狀態(tài)的改變被用來(lái)表示起始和停止條件。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) I2C 總線是雙向傳輸?shù)目偩€,因此主機(jī)和從機(jī)都可能成為發(fā)總線是雙向傳輸?shù)目偩€,因此主機(jī)和從機(jī)都可能成為發(fā) 送器和接收器。如果主機(jī)向從機(jī)發(fā)送數(shù)據(jù),則主機(jī)是發(fā)送器,送器和接收器。如果主機(jī)向從機(jī)發(fā)送數(shù)據(jù),則主機(jī)是發(fā)送器, 而從機(jī)是接收器;如果主機(jī)從從機(jī)讀取數(shù)據(jù),則主機(jī)是接收器,而從機(jī)是接收器;如果主機(jī)從從機(jī)讀取數(shù)據(jù),則主機(jī)是接收器, 而從機(jī)是發(fā)送器。不論主機(jī)是發(fā)送器還是接收器,時(shí)鐘信而從機(jī)是發(fā)送器。不論主機(jī)是發(fā)送器還是接收器,時(shí)鐘信 號(hào)號(hào) SCL 都要由主機(jī)來(lái)產(chǎn)生。都要由主機(jī)來(lái)產(chǎn)生
5、。 每個(gè)器件都有一個(gè)唯一的地址識(shí)別,而且都可以作為一個(gè)每個(gè)器件都有一個(gè)唯一的地址識(shí)別,而且都可以作為一個(gè) 發(fā)送器和接收器(由器件的功能決定)。很明顯,發(fā)送器和接收器(由器件的功能決定)。很明顯,LCD驅(qū)動(dòng)器驅(qū)動(dòng)器 只能是接收器,而存儲(chǔ)器既可以接收又可以發(fā)送數(shù)據(jù)。只能是接收器,而存儲(chǔ)器既可以接收又可以發(fā)送數(shù)據(jù)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 連接到連接到I2C總線上的器件,若具有總線上的器件,若具有I2C總線的硬件接口,則總線的硬件接口,則 很容易檢測(cè)到起始和終止信號(hào)。對(duì)于不具備很容易檢測(cè)到起始和終止信號(hào)。對(duì)于不具備I2C總線硬件接總線硬件接 口的有些單片機(jī)來(lái)說(shuō),為了檢測(cè)起始和終止信號(hào),必須保證
6、口的有些單片機(jī)來(lái)說(shuō),為了檢測(cè)起始和終止信號(hào),必須保證 在每個(gè)時(shí)鐘周期內(nèi)對(duì)數(shù)據(jù)線在每個(gè)時(shí)鐘周期內(nèi)對(duì)數(shù)據(jù)線SDA采樣兩次采樣兩次。 接收器件收到一個(gè)完整的數(shù)據(jù)字節(jié)后,有可能需要完成接收器件收到一個(gè)完整的數(shù)據(jù)字節(jié)后,有可能需要完成 一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無(wú)法立刻接收一些其它工作,如處理內(nèi)部中斷服務(wù)等,可能無(wú)法立刻接收 下一個(gè)字節(jié),這時(shí)接收器件可以將下一個(gè)字節(jié),這時(shí)接收器件可以將SCL線拉成低電平,從而線拉成低電平,從而 使主機(jī)處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個(gè)字節(jié)使主機(jī)處于等待狀態(tài)。直到接收器件準(zhǔn)備好接收下一個(gè)字節(jié) 時(shí),再釋放時(shí),再釋放SCL線使之為高電平,從而使數(shù)據(jù)傳送可
7、以繼續(xù)線使之為高電平,從而使數(shù)據(jù)傳送可以繼續(xù) 進(jìn)行。進(jìn)行。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 3、數(shù)據(jù)傳送格式、數(shù)據(jù)傳送格式 (1)字節(jié)傳送與應(yīng)答)字節(jié)傳送與應(yīng)答 每一個(gè)字節(jié)必須保證是每一個(gè)字節(jié)必須保證是8位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳位長(zhǎng)度。數(shù)據(jù)傳送時(shí),先傳 送最高位(送最高位(MSB),每一個(gè)被傳送的字節(jié)后面都必須跟),每一個(gè)被傳送的字節(jié)后面都必須跟 隨一位應(yīng)答位(即一幀共有隨一位應(yīng)答位(即一幀共有9位)。位)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 由于某種原因從機(jī)不對(duì)主機(jī)尋址信號(hào)應(yīng)答時(shí)(如從由于某種原因從機(jī)不對(duì)主機(jī)尋址信號(hào)應(yīng)答時(shí)(如從 機(jī)正在進(jìn)行實(shí)時(shí)性的處理工作而無(wú)法接收總線上的數(shù)機(jī)正在進(jìn)行實(shí)時(shí)性的處理
8、工作而無(wú)法接收總線上的數(shù) 據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一個(gè)據(jù)),它必須將數(shù)據(jù)線置于高電平,而由主機(jī)產(chǎn)生一個(gè) 終止信號(hào)以結(jié)束總線的數(shù)據(jù)傳送。終止信號(hào)以結(jié)束總線的數(shù)據(jù)傳送。 如果從機(jī)對(duì)主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時(shí)間如果從機(jī)對(duì)主機(jī)進(jìn)行了應(yīng)答,但在數(shù)據(jù)傳送一段時(shí)間 后無(wú)法繼續(xù)接收更多的數(shù)據(jù)時(shí),從機(jī)可以通過(guò)對(duì)無(wú)法接后無(wú)法繼續(xù)接收更多的數(shù)據(jù)時(shí),從機(jī)可以通過(guò)對(duì)無(wú)法接 收的第一個(gè)數(shù)據(jù)字節(jié)的收的第一個(gè)數(shù)據(jù)字節(jié)的“非應(yīng)答非應(yīng)答”通知主機(jī),主機(jī)則應(yīng)通知主機(jī),主機(jī)則應(yīng) 發(fā)出終止信號(hào)以結(jié)束數(shù)據(jù)的繼續(xù)傳送。發(fā)出終止信號(hào)以結(jié)束數(shù)據(jù)的繼續(xù)傳送。 當(dāng)主機(jī)接收數(shù)據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必當(dāng)主機(jī)接收數(shù)
9、據(jù)時(shí),它收到最后一個(gè)數(shù)據(jù)字節(jié)后,必 須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信號(hào)。這個(gè)信號(hào)是由對(duì)從須向從機(jī)發(fā)出一個(gè)結(jié)束傳送的信號(hào)。這個(gè)信號(hào)是由對(duì)從 機(jī)的機(jī)的“非應(yīng)答非應(yīng)答”來(lái)實(shí)現(xiàn)的。然后,從機(jī)釋放來(lái)實(shí)現(xiàn)的。然后,從機(jī)釋放SDA線,以線,以 允許主機(jī)產(chǎn)生終止信號(hào)。允許主機(jī)產(chǎn)生終止信號(hào)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 但如果從機(jī)要完成一些其他功能后才能接收或發(fā)送下一個(gè)完但如果從機(jī)要完成一些其他功能后才能接收或發(fā)送下一個(gè)完 整的數(shù)據(jù)字節(jié),那么可以使時(shí)鐘信號(hào)保持低電平迫使主機(jī)進(jìn)入等整的數(shù)據(jù)字節(jié),那么可以使時(shí)鐘信號(hào)保持低電平迫使主機(jī)進(jìn)入等 待狀態(tài)。這也是唯一一個(gè)從機(jī)改變主機(jī)時(shí)鐘的情況。待狀態(tài)。這也是唯一一個(gè)從機(jī)改變主
10、機(jī)時(shí)鐘的情況。 當(dāng)從機(jī)準(zhǔn)備好接受下一個(gè)字節(jié)時(shí),釋放時(shí)鐘線當(dāng)從機(jī)準(zhǔn)備好接受下一個(gè)字節(jié)時(shí),釋放時(shí)鐘線SCL,數(shù)據(jù)傳,數(shù)據(jù)傳 輸繼續(xù)。輸繼續(xù)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) (2)數(shù)據(jù)幀格式)數(shù)據(jù)幀格式 I2C總線上傳送的數(shù)據(jù)信號(hào)是廣義的,既包括地總線上傳送的數(shù)據(jù)信號(hào)是廣義的,既包括地 址信號(hào),又包括真正的數(shù)據(jù)信號(hào)。址信號(hào),又包括真正的數(shù)據(jù)信號(hào)。 在總線的一次數(shù)據(jù)傳送過(guò)程中,可以有以下幾在總線的一次數(shù)據(jù)傳送過(guò)程中,可以有以下幾 種組合方式:種組合方式: 在起始信號(hào)后必須傳送一個(gè)從機(jī)的地址(在起始信號(hào)后必須傳送一個(gè)從機(jī)的地址(7位),位), 第第8位是數(shù)據(jù)的傳送方向位(位是數(shù)據(jù)的傳送方向位(R/),用
11、),用“0”表示主表示主 機(jī)發(fā)送數(shù)據(jù)(機(jī)發(fā)送數(shù)據(jù)(T),),“1”表示主機(jī)接收數(shù)據(jù)(表示主機(jī)接收數(shù)據(jù)(R)。)。 每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號(hào)結(jié)束。每次數(shù)據(jù)傳送總是由主機(jī)產(chǎn)生的終止信號(hào)結(jié)束。 但是,若主機(jī)希望繼續(xù)占用總線進(jìn)行新的數(shù)據(jù)傳但是,若主機(jī)希望繼續(xù)占用總線進(jìn)行新的數(shù)據(jù)傳 送,則可以不產(chǎn)生終止信號(hào),馬上再次發(fā)出起始送,則可以不產(chǎn)生終止信號(hào),馬上再次發(fā)出起始 信號(hào)對(duì)另一從機(jī)進(jìn)行尋址。信號(hào)對(duì)另一從機(jī)進(jìn)行尋址。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) a、主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在、主機(jī)向從機(jī)發(fā)送數(shù)據(jù),數(shù)據(jù)傳送方向在 整個(gè)傳送過(guò)程中不變:整個(gè)傳送過(guò)程中不變: 注:有陰影部分表示數(shù)據(jù)由主機(jī)向
12、從機(jī)傳送,無(wú)陰影部分注:有陰影部分表示數(shù)據(jù)由主機(jī)向從機(jī)傳送,無(wú)陰影部分 則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。則表示數(shù)據(jù)由從機(jī)向主機(jī)傳送。 A表示應(yīng)答,表示應(yīng)答, A表示非應(yīng)答(高電平)。表示非應(yīng)答(高電平)。S表示起始信號(hào),表示起始信號(hào), P表示終止信號(hào)。表示終止信號(hào)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) b、主機(jī)在第一個(gè)字節(jié)后,立即由從機(jī)讀數(shù)、主機(jī)在第一個(gè)字節(jié)后,立即由從機(jī)讀數(shù) 據(jù)據(jù) c、在傳送過(guò)程中,當(dāng)需要改變傳送方向、在傳送過(guò)程中,當(dāng)需要改變傳送方向 時(shí),起始信號(hào)和從機(jī)地址都被重復(fù)產(chǎn)生一時(shí),起始信號(hào)和從機(jī)地址都被重復(fù)產(chǎn)生一 次,但兩次讀次,但兩次讀/寫(xiě)方向位正好反相。寫(xiě)方向位正好反相。 I2C時(shí)序分析
13、和基礎(chǔ)知識(shí)總結(jié) 4、總線的尋址、總線的尋址 I2C總線協(xié)議有明確的規(guī)定:采用總線協(xié)議有明確的規(guī)定:采用7位的尋址字位的尋址字 節(jié)(尋址字節(jié)是起始信號(hào)后的第一個(gè)字節(jié))。節(jié)(尋址字節(jié)是起始信號(hào)后的第一個(gè)字節(jié))。 (1)尋址字節(jié)的位定義)尋址字節(jié)的位定義 D7D1位組成從機(jī)的地址。位組成從機(jī)的地址。D0位是數(shù)位是數(shù) 據(jù)傳送方向位,為據(jù)傳送方向位,為“0”時(shí)表示主機(jī)向從機(jī)時(shí)表示主機(jī)向從機(jī) 寫(xiě)數(shù)據(jù),為寫(xiě)數(shù)據(jù),為“1”時(shí)表示主機(jī)由從機(jī)讀數(shù)據(jù)。時(shí)表示主機(jī)由從機(jī)讀數(shù)據(jù)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 主機(jī)發(fā)送地址時(shí),總線上的每個(gè)從機(jī)都將這主機(jī)發(fā)送地址時(shí),總線上的每個(gè)從機(jī)都將這7 位地址碼與自己的地址進(jìn)行比較,
14、如果相同,位地址碼與自己的地址進(jìn)行比較,如果相同, 則認(rèn)為自己正被主機(jī)尋址,根據(jù)則認(rèn)為自己正被主機(jī)尋址,根據(jù)R/位將自己確位將自己確 定為發(fā)送器或接收器定為發(fā)送器或接收器。 從機(jī)的地址由固定部分和可編程部分組成。從機(jī)的地址由固定部分和可編程部分組成。 在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī),在一個(gè)系統(tǒng)中可能希望接入多個(gè)相同的從機(jī), 從機(jī)地址中可編程部分決定了可接入總線該類(lèi)從機(jī)地址中可編程部分決定了可接入總線該類(lèi) 器件的最大數(shù)目。如一個(gè)從機(jī)的器件的最大數(shù)目。如一個(gè)從機(jī)的7位尋址位有位尋址位有 4位是固定位,位是固定位,3位是可編程位,這時(shí)僅能尋位是可編程位,這時(shí)僅能尋 址址8個(gè)同樣的器件,即可以
15、有個(gè)同樣的器件,即可以有8個(gè)同樣的器件個(gè)同樣的器件 接入到該接入到該I2C總線系統(tǒng)中總線系統(tǒng)中。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) (2)尋址字節(jié)中的特殊地址)尋址字節(jié)中的特殊地址 固定地址編號(hào)固定地址編號(hào)0000和和1111已被保留作為已被保留作為 特殊用途。特殊用途。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 起始信號(hào)后的第一字節(jié)的起始信號(hào)后的第一字節(jié)的8位為位為“0000 0000”時(shí),時(shí), 稱(chēng)為通用呼叫地址。通用呼叫地址的用意在第二字稱(chēng)為通用呼叫地址。通用呼叫地址的用意在第二字 節(jié)中加以說(shuō)明。格式為:節(jié)中加以說(shuō)明。格式為: 第二字節(jié)為第二字節(jié)為 06H時(shí),所有能響應(yīng)通用呼叫地址的從機(jī)器時(shí),所有能響應(yīng)通
16、用呼叫地址的從機(jī)器 件復(fù)位,并由硬件裝入從機(jī)地址的可編程部分。能響應(yīng)命件復(fù)位,并由硬件裝入從機(jī)地址的可編程部分。能響應(yīng)命 令的從機(jī)器件復(fù)位時(shí)不拉低令的從機(jī)器件復(fù)位時(shí)不拉低SDA和和SCL線,以免堵塞總線。線,以免堵塞總線。 第二字節(jié)為第二字節(jié)為 04H時(shí),所有能響應(yīng)通用呼叫地址并通過(guò)硬時(shí),所有能響應(yīng)通用呼叫地址并通過(guò)硬 件來(lái)定義其可編程地址的從機(jī)器件將鎖定地址中的可編程件來(lái)定義其可編程地址的從機(jī)器件將鎖定地址中的可編程 位,但不進(jìn)行復(fù)位。位,但不進(jìn)行復(fù)位。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 如果第二字節(jié)的方向位如果第二字節(jié)的方向位B為為“1”,則這兩個(gè)字節(jié)命令,則這兩個(gè)字節(jié)命令 稱(chēng)為硬件通用呼叫命
17、令。稱(chēng)為硬件通用呼叫命令。 在這第二字節(jié)的高在這第二字節(jié)的高7位說(shuō)明自己的地址。接在總線上的位說(shuō)明自己的地址。接在總線上的 智能器件,如單片機(jī)或其他微處理器能識(shí)別這個(gè)地址,智能器件,如單片機(jī)或其他微處理器能識(shí)別這個(gè)地址, 并與之傳送數(shù)據(jù)。硬件主器件作為從機(jī)使用時(shí),也用這并與之傳送數(shù)據(jù)。硬件主器件作為從機(jī)使用時(shí),也用這 個(gè)地址作為從機(jī)地址。格式為:個(gè)地址作為從機(jī)地址。格式為: 在系統(tǒng)中另一種選擇可能是系統(tǒng)復(fù)位時(shí)硬件主在系統(tǒng)中另一種選擇可能是系統(tǒng)復(fù)位時(shí)硬件主 機(jī)器件工作在從機(jī)接收器方式,這時(shí)由系統(tǒng)中的機(jī)器件工作在從機(jī)接收器方式,這時(shí)由系統(tǒng)中的 主機(jī)先告訴硬件主機(jī)器件數(shù)據(jù)應(yīng)送往的從機(jī)器件主機(jī)先告訴硬
18、件主機(jī)器件數(shù)據(jù)應(yīng)送往的從機(jī)器件 地址,當(dāng)硬件主機(jī)器件要發(fā)送數(shù)據(jù)時(shí)就可以直接地址,當(dāng)硬件主機(jī)器件要發(fā)送數(shù)據(jù)時(shí)就可以直接 向指定從機(jī)器件發(fā)送數(shù)據(jù)了。向指定從機(jī)器件發(fā)送數(shù)據(jù)了。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) (3)起始字)起始字 節(jié)節(jié) 不具備不具備I2C總線接口的單片機(jī),則必須通過(guò)軟件不斷地總線接口的單片機(jī),則必須通過(guò)軟件不斷地 檢測(cè)總線,以便及時(shí)地響應(yīng)總線的請(qǐng)求。單片機(jī)的速度檢測(cè)總線,以便及時(shí)地響應(yīng)總線的請(qǐng)求。單片機(jī)的速度 與硬件接口器件的速度就出現(xiàn)了較大的差別,為此,與硬件接口器件的速度就出現(xiàn)了較大的差別,為此,I2C 總線上的數(shù)據(jù)傳送要由一個(gè)較長(zhǎng)的起始過(guò)程加以引導(dǎo)。總線上的數(shù)據(jù)傳送要由一個(gè)較長(zhǎng)
19、的起始過(guò)程加以引導(dǎo)。 起始字節(jié)是提供給沒(méi)有起始字節(jié)是提供給沒(méi)有I2C總線接口的單片機(jī)查詢(xún)總線接口的單片機(jī)查詢(xún)I2C 總線時(shí)使用的特殊字節(jié)。總線時(shí)使用的特殊字節(jié)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 引導(dǎo)過(guò)程由起始信號(hào)、起始字節(jié)、應(yīng)答位、引導(dǎo)過(guò)程由起始信號(hào)、起始字節(jié)、應(yīng)答位、 重復(fù)起始信號(hào)(重復(fù)起始信號(hào)(Sr)組成。)組成。 請(qǐng)求訪問(wèn)總線的主機(jī)發(fā)出起始信號(hào)后,發(fā)送起始字請(qǐng)求訪問(wèn)總線的主機(jī)發(fā)出起始信號(hào)后,發(fā)送起始字 節(jié)(節(jié)(0000 0001),另一個(gè)單片機(jī)可以用一個(gè)比較低),另一個(gè)單片機(jī)可以用一個(gè)比較低 的速率采樣的速率采樣SDA線,直到檢測(cè)到起始字節(jié)中的線,直到檢測(cè)到起始字節(jié)中的7個(gè)個(gè) “0”中的一
20、個(gè)為止。在檢測(cè)到中的一個(gè)為止。在檢測(cè)到SDA線上的高電平后,線上的高電平后, 單片機(jī)就可以用較高的采樣速率,以便尋找作為同單片機(jī)就可以用較高的采樣速率,以便尋找作為同 步信號(hào)使用的第二個(gè)起始信號(hào)步信號(hào)使用的第二個(gè)起始信號(hào)Sr。 在起始信號(hào)后的應(yīng)答時(shí)鐘脈沖僅僅是為了和總線所在起始信號(hào)后的應(yīng)答時(shí)鐘脈沖僅僅是為了和總線所 使用的格式一致,并不要求器件在這個(gè)脈沖期間作使用的格式一致,并不要求器件在這個(gè)脈沖期間作 應(yīng)答。應(yīng)答。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) (4)10位尋位尋 址址 10 位尋址向下兼容位尋址向下兼容7 位尋址,而且可以結(jié)合使用。位尋址,而且可以結(jié)合使用。10 位尋址不會(huì)位尋址不會(huì) 影響
21、已有的影響已有的7 位尋址。有位尋址。有7 位和位和10 位地址的器件可以連接到相同的位地址的器件可以連接到相同的I2C 總線,它們都能用于總線,它們都能用于F/S 模式和模式和Hs 模式系統(tǒng)。模式系統(tǒng)。 10 位從機(jī)地址是由在起始條件(位從機(jī)地址是由在起始條件(S )或重復(fù)起始條件()或重復(fù)起始條件(Sr) 后的后的 頭兩個(gè)字節(jié)組成。頭兩個(gè)字節(jié)組成。 第一個(gè)字節(jié)的頭第一個(gè)字節(jié)的頭7 位是位是11110XX 的組合,其中最后兩位(的組合,其中最后兩位(XX) 是是 10 位地址的兩個(gè)最高位(位地址的兩個(gè)最高位(MSB);第一個(gè)字節(jié)的第);第一個(gè)字節(jié)的第8 位是位是R/W 位,決位,決 定了報(bào)文
22、的方向。第一個(gè)字節(jié)的最低位是定了報(bào)文的方向。第一個(gè)字節(jié)的最低位是0 表示主機(jī)將寫(xiě)信息到選表示主機(jī)將寫(xiě)信息到選 中的從機(jī)。中的從機(jī)。1 表示主機(jī)將向從機(jī)讀信息。如果表示主機(jī)將向從機(jī)讀信息。如果R/W 位是位是0 ,則第二,則第二 個(gè)字節(jié)是個(gè)字節(jié)是10 位從機(jī)地址剩下的位從機(jī)地址剩下的8 位。如果位。如果R/W 位是位是1 ,則下一個(gè)字節(jié),則下一個(gè)字節(jié) 是從機(jī)發(fā)送給主機(jī)的數(shù)據(jù)。是從機(jī)發(fā)送給主機(jī)的數(shù)據(jù)。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 主機(jī)-發(fā)送器用10 位地址尋址從機(jī)-接收器 主機(jī)-接收器用10 位地址尋址從機(jī)-發(fā)送器 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 組合格式。主機(jī)用10 位地址尋址從機(jī),然后發(fā)送數(shù)據(jù)
23、到這個(gè)從機(jī)并向這個(gè)從機(jī)讀數(shù)據(jù) 1、I2C總線數(shù)據(jù)傳送速率總線數(shù)據(jù)傳送速率 I2C 總線的通信速率受主機(jī)控制,能快能慢。但是最高速率是有限制的,總線的通信速率受主機(jī)控制,能快能慢。但是最高速率是有限制的,I2C 總總 線上數(shù)據(jù)的傳輸速率在標(biāo)準(zhǔn)模式(線上數(shù)據(jù)的傳輸速率在標(biāo)準(zhǔn)模式(Standard-mode)下為)下為 100kbps(每秒(每秒 100k 位)位) ,在快速模式下為,在快速模式下為400kbps。按照后來(lái)修訂的版本,位速率最高可達(dá)。按照后來(lái)修訂的版本,位速率最高可達(dá) 3.4Mbps。 2、子地址、子地址 帶有帶有 I2C 總線的器件除了有從機(jī)地址(總線的器件除了有從機(jī)地址(Slav
24、e Address)外,還可能有子地址。)外,還可能有子地址。 從機(jī)地址是指該器件在從機(jī)地址是指該器件在 I2C 總線上被主機(jī)尋址的地址,總線上被主機(jī)尋址的地址, 而子地址是指該器件內(nèi)部不而子地址是指該器件內(nèi)部不 同部件或存儲(chǔ)單元的編址。例如,帶同部件或存儲(chǔ)單元的編址。例如,帶 I2C 總線接口的總線接口的 E2PROM 就是擁有子地址器就是擁有子地址器 件的典型代表。件的典型代表。 某些器件(只占少數(shù))內(nèi)部結(jié)構(gòu)比較簡(jiǎn)單,可能沒(méi)有子地址,只有必須的從機(jī)地某些器件(只占少數(shù))內(nèi)部結(jié)構(gòu)比較簡(jiǎn)單,可能沒(méi)有子地址,只有必須的從機(jī)地 址。址。 與從機(jī)地址一樣,子地址實(shí)際上也是像普通數(shù)據(jù)那樣進(jìn)行傳輸?shù)模瑐?/p>
25、輸格式仍與從機(jī)地址一樣,子地址實(shí)際上也是像普通數(shù)據(jù)那樣進(jìn)行傳輸?shù)模瑐鬏敻袷饺?然是與數(shù)據(jù)相統(tǒng)一的,區(qū)分傳輸?shù)牡降资堑刂愤€是數(shù)據(jù)要靠收發(fā)雙方具體的邏輯約然是與數(shù)據(jù)相統(tǒng)一的,區(qū)分傳輸?shù)牡降资堑刂愤€是數(shù)據(jù)要靠收發(fā)雙方具體的邏輯約 定。子地址的長(zhǎng)度必須由整數(shù)個(gè)字節(jié)組成,可能是單字節(jié)(定。子地址的長(zhǎng)度必須由整數(shù)個(gè)字節(jié)組成,可能是單字節(jié)(8 位子地址)位子地址) ,也可能,也可能 是雙字節(jié)(是雙字節(jié)(16 位子地址)位子地址) ,還可能是,還可能是 3 字節(jié)以上,這要看具體器件的規(guī)定。字節(jié)以上,這要看具體器件的規(guī)定。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 3、仲裁、仲裁 是一個(gè)在有多個(gè)主機(jī)同時(shí)嘗試控制總線但只允許
26、其中一個(gè)控制總線并使報(bào)是一個(gè)在有多個(gè)主機(jī)同時(shí)嘗試控制總線但只允許其中一個(gè)控制總線并使報(bào) 文不被破壞的過(guò)程。文不被破壞的過(guò)程。 所有主機(jī)在所有主機(jī)在SCL 線上產(chǎn)生它們自己的時(shí)鐘來(lái)傳輸線上產(chǎn)生它們自己的時(shí)鐘來(lái)傳輸I2C 總線上的報(bào)文。數(shù)總線上的報(bào)文。數(shù) 據(jù)只在時(shí)鐘的高電平周期有效。因此,需要一個(gè)確定的時(shí)鐘進(jìn)行逐位仲裁。據(jù)只在時(shí)鐘的高電平周期有效。因此,需要一個(gè)確定的時(shí)鐘進(jìn)行逐位仲裁。 時(shí)鐘同步通過(guò)線與連接時(shí)鐘同步通過(guò)線與連接I2C 接口到接口到SCL 線來(lái)執(zhí)行。這就是說(shuō):線來(lái)執(zhí)行。這就是說(shuō):SCL 線的線的 高到低切換會(huì)使器件開(kāi)始數(shù)它們的低電平周期,而且一旦器件的時(shí)鐘變低電高到低切換會(huì)使器件開(kāi)始
27、數(shù)它們的低電平周期,而且一旦器件的時(shí)鐘變低電 平,它會(huì)使平,它會(huì)使SCL 線保持這種狀態(tài)直到到達(dá)時(shí)鐘的高電平。但是,如果另一個(gè)線保持這種狀態(tài)直到到達(dá)時(shí)鐘的高電平。但是,如果另一個(gè) 時(shí)鐘仍處于低電平周期,這個(gè)時(shí)鐘的低到高切換不會(huì)改變時(shí)鐘仍處于低電平周期,這個(gè)時(shí)鐘的低到高切換不會(huì)改變SCL 線的狀態(tài)。因線的狀態(tài)。因 此,此,SCL 線被有最長(zhǎng)低電平周期的器件保持低電平。此時(shí),低電平周期短的線被有最長(zhǎng)低電平周期的器件保持低電平。此時(shí),低電平周期短的 器件會(huì)進(jìn)入高電平的等待狀態(tài)。器件會(huì)進(jìn)入高電平的等待狀態(tài)。 當(dāng)所有有關(guān)的器件數(shù)完了它們的低電平周期后,時(shí)鐘線被釋放并變成高當(dāng)所有有關(guān)的器件數(shù)完了它們的低電
28、平周期后,時(shí)鐘線被釋放并變成高 電平,之后器件時(shí)鐘和電平,之后器件時(shí)鐘和SCL線的狀態(tài)沒(méi)有差別,而且所有器件會(huì)開(kāi)始數(shù)它們線的狀態(tài)沒(méi)有差別,而且所有器件會(huì)開(kāi)始數(shù)它們 的高電平周期。首先完成高電平周期的器件會(huì)再次將的高電平周期。首先完成高電平周期的器件會(huì)再次將SCL線拉低,這樣產(chǎn)生線拉低,這樣產(chǎn)生 的同步的同步SCL 時(shí)鐘的低電平周期由低電平時(shí)鐘周期最長(zhǎng)的器件決定,而高電平時(shí)鐘的低電平周期由低電平時(shí)鐘周期最長(zhǎng)的器件決定,而高電平 周期由高電平時(shí)鐘周期最短的器件決定。周期由高電平時(shí)鐘周期最短的器件決定。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 這發(fā)生在仲裁之前,這部分稱(chēng)為同步。這發(fā)生在仲裁之前,這部分稱(chēng)為同步
29、。 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 主機(jī)只能在總線空閑的時(shí)侯啟動(dòng)傳輸。兩個(gè)或多個(gè)主機(jī)可能在起始條件的主機(jī)只能在總線空閑的時(shí)侯啟動(dòng)傳輸。兩個(gè)或多個(gè)主機(jī)可能在起始條件的 最小持續(xù)時(shí)間最小持續(xù)時(shí)間 (tHD; STA) 內(nèi)產(chǎn)生一個(gè)起始條件,結(jié)果在總線上產(chǎn)生一個(gè)規(guī)定內(nèi)產(chǎn)生一個(gè)起始條件,結(jié)果在總線上產(chǎn)生一個(gè)規(guī)定 的起始條件。的起始條件。 當(dāng)當(dāng)SCL 線是高電平時(shí),仲裁在線是高電平時(shí),仲裁在SDA 線發(fā)生;這樣,在其他主機(jī)發(fā)送低電線發(fā)生;這樣,在其他主機(jī)發(fā)送低電 平時(shí),發(fā)送高電平的主機(jī)將斷開(kāi)它的數(shù)據(jù)輸出級(jí),因?yàn)榭偩€上的電平與它自平時(shí),發(fā)送高電平的主機(jī)將斷開(kāi)它的數(shù)據(jù)輸出級(jí),因?yàn)榭偩€上的電平與它自 己的電平不相同。己的電平不相同。 仲裁仲裁 I2C時(shí)序分析和基礎(chǔ)知識(shí)總結(jié) 下圖下圖 顯示了兩個(gè)主機(jī)的仲裁過(guò)程,當(dāng)然可能包含更多的內(nèi)容(由連接到顯示了兩個(gè)主機(jī)的仲裁過(guò)程,當(dāng)然可能包含更多的內(nèi)容(由連接到 總線的主機(jī)數(shù)量決定)。此時(shí),產(chǎn)生總線的主機(jī)數(shù)量決定)。此時(shí),產(chǎn)生DATA1 的主機(jī)的內(nèi)部數(shù)據(jù)電平與的主機(jī)的內(nèi)部數(shù)據(jù)電平與SDA 線的實(shí)際電平有一些差別,如果關(guān)斷數(shù)據(jù)輸出,這就意味著總線連接了一個(gè)線的實(shí)際電平有一些差別,如果關(guān)斷數(shù)據(jù)輸出,這就意味著總線連接了一個(gè) 高輸出電平。這不會(huì)影響由贏得仲裁的主機(jī)初始化的數(shù)據(jù)傳輸。高輸出電平。這不會(huì)影響由贏得仲裁的主機(jī)初始化的數(shù)據(jù)傳輸
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳智sql數(shù)據(jù)庫(kù)考試題及答案
- 叉車(chē)工模擬考試題及答案
- 采煤工作面考試題庫(kù)及答案
- 濱城高中考試題庫(kù)及答案
- 編寫(xiě)高考考試題及答案解析
- 寶雞市社工考試題型及答案
- 鈑金安全考試題及答案
- 百日賽安全考試題及答案
- 豆奶包裝機(jī)項(xiàng)目立項(xiàng)可行性研究報(bào)告模板
- 2025年金融機(jī)構(gòu)數(shù)字化轉(zhuǎn)型中的操作風(fēng)險(xiǎn)數(shù)字化監(jiān)控策略報(bào)告
- 裝飾設(shè)計(jì)公司利潤(rùn)分析報(bào)告
- 國(guó)際貿(mào)易咨詢(xún)服務(wù)合作協(xié)議
- 新生兒吸入性肺炎的觀察與護(hù)理
- 醫(yī)院布草洗滌服務(wù)方案(技術(shù)方案)
- 嬰幼兒輔食添加課件
- 單片機(jī)課程設(shè)計(jì)之超聲波測(cè)距-電子工程系單片機(jī)課程設(shè)計(jì)報(bào)告
- 寧騷公共政策學(xué)
- 地下室頂板行車(chē)與堆載驗(yàn)算與加固方案
- GB/T 37234-2018文件鑒定通用規(guī)范
- 高中英語(yǔ)讀后續(xù)寫(xiě)教學(xué)策略的探究
- 2022年動(dòng)畫(huà)制作行業(yè)分析及未來(lái)五至十年行業(yè)發(fā)展報(bào)告
評(píng)論
0/150
提交評(píng)論