新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I2C之知(四)--I2C總線的7bit從機(jī)地址

I2C之知(四)--I2C總線的7bit從機(jī)地址

作者: 時(shí)間:2016-12-15 來源:網(wǎng)絡(luò) 收藏
時(shí)鐘拉伸(Clock stretching)
clock stretching通過將SCL線拉低來暫停一個(gè)傳輸.直到釋放SCL線為高電平,傳輸才繼續(xù)進(jìn)行.clock stretching是可選的,實(shí)際上大多數(shù)從設(shè)備不包括SCL驅(qū)動(dòng),所以它們不能stretch時(shí)鐘.
從字節(jié)級(jí)來看,一個(gè)設(shè)備可能在快速模式下接受數(shù)據(jù),但是需要更多的時(shí)間來存儲(chǔ)接收到的字節(jié)或者準(zhǔn)備將要傳輸?shù)牧硪粋€(gè)字節(jié).從機(jī)可以以一種握手的處理方式在接受和應(yīng)答字節(jié)后將SCL線拉低來強(qiáng)制使得主機(jī)進(jìn)入wait狀態(tài)知道從機(jī)準(zhǔn)備好下一個(gè)字節(jié)的傳輸.
從位級(jí)來看,I2C總線上的設(shè)備可以通過增長每一個(gè)時(shí)鐘的低周期來降低總線時(shí)鐘.所以每個(gè)主機(jī)可以適應(yīng)這個(gè)設(shè)備的內(nèi)部操作速率.
在Hs模式,握手處理只能用在字節(jié)級(jí)別.

從機(jī)地址和R/W bit
下圖是數(shù)據(jù)傳輸?shù)母袷?

在開始條件(S)后,發(fā)送從機(jī)地址.地址是7bit,后面的第8bit是數(shù)據(jù)的讀寫bit,0表示寫,1表示讀.具體的看下圖:

數(shù)據(jù)傳輸被主機(jī)產(chǎn)生的終止條件(P)終止.然而,主機(jī)也可以無需先產(chǎn)生終止條件,產(chǎn)生一個(gè)重復(fù)的開始條件(Sr)和尋址另一個(gè)從機(jī),
可能的數(shù)據(jù)傳輸格式如下:
主-發(fā)送器傳到從-接收器.傳輸方向不變.從-接收器應(yīng)答每一個(gè)字節(jié).如下:

在第一個(gè)字節(jié)后主機(jī)從從機(jī)讀數(shù)據(jù).第一個(gè)應(yīng)答后,主-發(fā)送器變?yōu)橹?接收器而從-接收器變?yōu)閺?發(fā)送器.第一個(gè)應(yīng)答仍然是由從機(jī)產(chǎn)生的.主機(jī)產(chǎn)生余下的應(yīng)答.主機(jī)在產(chǎn)生終止條件之前要發(fā)送一個(gè)NA.如下:

復(fù)合模式.在傳輸過程中改變方向,開始條件和從機(jī)地址都要重復(fù),而讀寫bit要取反.如果主-接收器發(fā)送一個(gè)重復(fù)的開始條件,那么它在這之前要發(fā)送一個(gè)NA.

注意:
1.復(fù)合模式可以在比如控制串行內(nèi)存器時(shí)用到.在第一個(gè)數(shù)據(jù)字節(jié)時(shí)一定要寫內(nèi)存器內(nèi)部的地址.開開始條件和從地址重復(fù)后,數(shù)據(jù)就開始傳輸了.
2.自動(dòng)增加或減少之前訪問的內(nèi)存位置都由設(shè)備的設(shè)計(jì)者決定.
3.每一個(gè)字節(jié)后面都跟著一個(gè)應(yīng)答位,在圖中用A或非A來表示.
4.兼容I2C總線的設(shè)備在接收到開始條件或重復(fù)開始條件時(shí)都一定要重啟它們的總線邏輯,即使開始條件都不是正確的格式,它們都期望發(fā)送從機(jī)地址.
5.開始條件后立馬跟著一個(gè)終止條件是不合法的格式.很多設(shè)備在設(shè)計(jì)時(shí)考慮了這一點(diǎn),可以處理.
6.連接到總線上的每個(gè)設(shè)備都由唯一的地址來確定.通常是簡單的主從關(guān)系,但可能存在多個(gè)一樣的從機(jī)可以同時(shí)接收和響應(yīng),比如說組播.這里是以NXP的PCA9546A作為例子說明.(PCA9546A是NXP半導(dǎo)體生產(chǎn)的一款基于I2C總線控制的4通道雙向多路復(fù)用器和開關(guān)。使用PCA9546A可以將一路SCL/SDA輸入擴(kuò)展為4路SCL/SDA輸出,在對(duì)內(nèi)部控制寄存器進(jìn)行相應(yīng)配置后,可同時(shí)選擇一路或多路下行I2C總線與上行I2C總線通信。)


關(guān)鍵詞: I2CI2C總線從機(jī)地

評(píng)論


技術(shù)專區(qū)

關(guān)閉