新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > I2C總線信號(hào)時(shí)序總結(jié)

I2C總線信號(hào)時(shí)序總結(jié)

作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏

總線封鎖狀態(tài)
  在特殊情況下,如果需要禁止所有發(fā)生在I2C總線上的通信活動(dòng),封鎖或關(guān)閉總線是一種可行途徑,只要掛接于該總線上的任意一個(gè)器件將時(shí)鐘線SCL鎖定在低電平上即可。

總線競(jìng)爭(zhēng)的仲裁
總線上可能掛接有多個(gè)器件,有時(shí)會(huì)發(fā)生兩個(gè)或多個(gè)主器件同時(shí)想占用總線的情況,這種情況叫做總線競(jìng)爭(zhēng)。I2C總線具有多主控能力,可以對(duì)發(fā)生在SDA線上的總線競(jìng)爭(zhēng)進(jìn)行仲裁,其仲裁原則是這樣的:當(dāng)多個(gè)主器件同時(shí)想占用總線時(shí),如果某個(gè)主器件發(fā)送高電平,而另一個(gè)主器件發(fā)送低電平,則發(fā)送電平與此時(shí)SDA總線電平不符的那個(gè)器件將自動(dòng)關(guān)閉其輸出級(jí)??偩€競(jìng)爭(zhēng)的仲裁是在兩個(gè)層次上進(jìn)行的。首先是地址位的比較,如果主器件尋址同一個(gè)從器件,則進(jìn)入數(shù)據(jù)位的比較,從而確保了競(jìng)爭(zhēng)仲裁的可靠性。由于是利用I2C總線上的信息進(jìn)行仲裁,因此不會(huì)造成信息的丟失。

為何識(shí)別到“0”將丟失仲裁呢?因?yàn)閷?duì)于OD門(mén),只能驅(qū)動(dòng)到低電平,釋放總線只能通過(guò)不驅(qū)動(dòng)總線釋放,停止驅(qū)動(dòng)即產(chǎn)生“1”,但是發(fā)現(xiàn)總線還是“0”,這說(shuō)明還有主機(jī)在跟自己競(jìng)爭(zhēng)總線使用權(quán),自己線驅(qū)動(dòng)到“1”,確檢測(cè)到“0”,那代表自己已經(jīng)失去了仲裁。

  • 主機(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)榭偩€上的電平與它自己的電平不相同。然后,進(jìn)一步獲得其的判定條件:
  • 仲裁可以持續(xù)多位。首先是比較地址位。如果每個(gè)主機(jī)都試圖尋址同一的器件,仲裁會(huì)繼續(xù)比較數(shù)據(jù)位(假設(shè)主機(jī)是發(fā)送器),或者比較響應(yīng)位(假設(shè)主機(jī)是接收器)。
  • I2C總線的地址和數(shù)據(jù)信息由贏得仲裁的主機(jī)決定,在仲裁過(guò)程中不會(huì)丟失信息。丟失仲裁的主機(jī)可以產(chǎn)生時(shí)鐘脈沖直到丟失仲裁的該字節(jié)末尾。
  • 在串行傳輸過(guò)程中時(shí),一旦有重復(fù)的起始條件或停止條件發(fā)送到I2C總線的時(shí)侯,仲裁過(guò)程仍在進(jìn)行。如果可能產(chǎn)生這樣的情況,有關(guān)的主機(jī)必須在幀格式相同位置發(fā)送這個(gè)重復(fù)起始條件或停止條件。
  • 此外,如果主機(jī)也結(jié)合了從機(jī)功能,而且在尋址階段丟失仲裁,它很可能就是贏得仲裁的主機(jī)在尋址的器件。那么,丟失仲裁的主機(jī)必須立即切換到它的從機(jī)模式。
  • I2C總線的控制只由地址或主機(jī)碼以及競(jìng)爭(zhēng)主機(jī)發(fā)送的數(shù)據(jù)決定,沒(méi)有中央主機(jī),總線也沒(méi)有任何定制的優(yōu)先權(quán)。
上圖顯示了兩個(gè)主機(jī)的仲裁過(guò)程當(dāng)然可能包含更多的內(nèi)容由連接到總線的主機(jī)數(shù)量決定此時(shí)產(chǎn)生DATA1 的主機(jī)的內(nèi)部數(shù)據(jù)電平與SDA 線的實(shí)際電平有一些差別如果關(guān)斷數(shù)據(jù)輸出這就意味著總線連接了一個(gè)高輸出電平這不會(huì)影響由贏得仲裁的主機(jī)初始化的數(shù)據(jù)傳輸。

時(shí)鐘信號(hào)的同步
在I2C總線上傳送信息時(shí)的時(shí)鐘同步信號(hào)是由掛接在SCL線上的所有器件的邏輯“與”完成的。SCL線上由高電平到低電平的跳變將影響到這些器件,一旦某個(gè)器件的時(shí)鐘信號(hào)下跳為低電平,將使SCL線一直保持低電平,使SCL線上的所有器件開(kāi)始低電平期。此時(shí),低電平周期短的器件的時(shí)鐘由低至高的跳變并不能影響SCL線的狀態(tài),于是這些器件將進(jìn)入高電平等待的狀態(tài)。當(dāng)所有器件的時(shí)鐘信號(hào)都上跳為高電平時(shí),低電平期結(jié)束,SCL線被釋放返回高電平,即所有的器件都同時(shí)開(kāi)始它們的高電平期。其后,第一個(gè)結(jié)束高電平期的器件又將SCL線拉成低電平。這樣就在SCL線上產(chǎn)生一個(gè)同步時(shí)鐘??梢?jiàn),時(shí)鐘低電平時(shí)間由時(shí)鐘低電平期最長(zhǎng)的器件確定,而時(shí)鐘高電平時(shí)間由時(shí)鐘高電平期最短的器件確定。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: I2C總線信號(hào)時(shí)

評(píng)論


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

關(guān)閉