iic匯流排從機仲裁 I2C匯流排的仲裁機制

2021-10-12 14:08:56 字數 2376 閱讀 4517

在多主的通訊系統中。匯流排上有多個節點,它們都有自己的定址位址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點傳送控制位元組和傳 送資料。但是如果有兩個或兩個以上的節點都向匯流排上傳送啟動訊號並開始傳送資料,這樣就形成了衝突。要解決這種衝突,就要進行仲裁的判決,這就是i 2c匯流排上的仲裁。

i2c匯流排上的仲裁分兩部分:scl線的同步和sda線的仲裁。

1  scl線的同步(時鐘同步)

scl同步是由於匯流排具有線「與」的邏輯功能,即只要有乙個節點傳送低電平時,匯流排上就表現為低電平。當所有的節點都傳送高電平時,匯流排才能表現為高電平。正是由於線「與」邏輯功能的原理,當多個節點同時傳送時鐘訊號時,在匯流排上表現的是統一的時鐘訊號。這就是scl的同步原理

時鐘的同步

2 sda仲裁

sda線的仲裁也是建立在匯流排具有線「與」邏輯功能的原理上的。節點在傳送1位資料後,比較匯流排上所呈現的資料與自己傳送的是否一致。是,繼續傳送;否則,退出競爭。sda線的仲裁可以保證i2c匯流排系統在多個主節點同時企圖控制匯流排時通訊正常進行並且資料不丟失。匯流排系統通過仲裁只允許乙個主節點可以繼續佔據匯流排

3 仲裁過程

兩個主節點的仲裁過程

上圖是以兩個節點為例的仲裁過程。data1和data2分別是主節點向匯流排所傳送的資料訊號,sda為匯流排上所呈現的資料訊號,scl是匯流排上所呈現的時鐘訊號。當主節點1、2同時傳送起始訊號時,兩個主節點都傳送了高電平訊號。這時匯流排上呈現的訊號為高電平,兩個主節點都檢測到匯流排上的訊號與自己傳送的訊號相同,繼續傳送資料。第2個時鐘週期,2個主節點都傳送低電平訊號,在匯流排上呈現的訊號為低電平,仍繼續傳送資料。在第3個時鐘週期,主節點1傳送高電平訊號,而主節點2傳送低電平訊號。根據匯流排的線「與」的邏輯功能,匯流排上的訊號為低電平,這時主節點1檢測到匯流排上的資料和自己所傳送的資料不一樣,就斷開資料的輸出級,轉為從機接收狀態。這樣主節點2就贏得了匯流排,而且資料沒有丟失,即匯流排的資料與主節點2所傳送的資料一樣,而主節點1在轉為從節點後繼續接收資料,同樣也沒有丟掉sda線上的資料。因此在仲裁過程中資料沒有丟失。

總結:sda仲裁和scl時鐘同步處理過程沒有先後關係,而是同時進行的。

對i2c匯流排的時鐘同步和匯流排仲裁的深入理解

每乙個iic匯流排器件內部的sda、scl引腳電路結構都是一樣的,引腳的輸出驅動與輸入緩衝連在一起。其中輸出為漏極開路的場效電晶體、輸入緩衝為乙隻高輸入阻抗的同相器[1]。這種電路具有兩個特點:

①由於sda、scl為漏極開路結構,借助於外部的上拉電阻實現了訊號的「線與」邏輯;

②引腳在輸出訊號的同時還將引腳上的電平進行檢測,檢測是否與剛才輸出一致。為 「時鐘同步」和「匯流排仲裁」提供硬體基礎。

i2c匯流排介面內部結構

iic裝置對匯流排的操作僅有「把線路接地」——輸出邏輯0。基 於iic匯流排的設計,線路上不可能出現電平衝突現象。如果一裝置傳送邏輯0,其他傳送邏輯1,那麼線路看到的只有邏輯0。也就是說,如果出現電平衝突,發 送邏輯0的始終是「贏家」。匯流排的物理接法允許主裝置往匯流排寫資料的同事讀取資料。這樣兩主裝置爭匯流排的時候「贏家」並不知道競爭的發生,只有「輸家」發 現了衝突——當寫乙個邏輯1,卻讀到了0——而退出競爭。

時鐘同步

如果被控器希望主控器降低傳送速度可以通過將scl主動拉低延長其低電平時間的方法來通知主控器,當主控器在準備下一次傳送發現scl的電平被拉低時就 進行等待,直至被控器完成操作並釋放scl線的控制控制權。這樣以來,主控器實際上受到被控器的時鐘同步控制。可見scl線上的低電平是由時鐘低電平最長 的器件決定;高電平的時間由高電平時間最短的器件決定。這就是時鐘同步,它解決了i2c匯流排的速度同步。

匯流排仲裁

假設主控器1要傳送的資料data1為「101 ……」;主控器2要傳送的資料data2為「1001 ……」匯流排被啟動後兩個主控器在每傳送乙個資料位時都要對自己的輸出電平進行檢測,只要檢測的電平與自己發出的電平一致,他們就會繼續占用匯流排。在這種情 況下匯流排還是得不到仲裁。當主控器1傳送第3位資料「1」時(主控器2傳送「0」 ),由於「線與」的結果sda上的電平為「0」,這樣當主控器1檢測自己的輸出電平時,就會測到乙個與自身不相符的「0」電平。這時主控器1只好放棄對總 線的控制權;因此主控器2就成為匯流排的唯一主宰者。 不難看出:

① 對於整個仲裁過程主控器1和主控器2都不會丟失資料;

② 各個主控器沒有對匯流排實施控制的優先級別;

③匯流排控制隨即而定,他們遵循「低電平優先」的原則,即誰先傳送低電平誰就會掌握對匯流排的控制權。

根據上面的描述,「時鐘同步」與「匯流排仲裁」可以總結如下規律:

①主控器通過檢測scl上的電平來調節與從器件的速度同步問題——時鐘同步;

②主控器通過檢測sda上自身傳送的電平來判斷是否發生匯流排「衝突」——匯流排仲裁。因此,i2c匯流排的「時鐘同步」與「匯流排仲裁」是靠器件自身介面的特殊結構得以實現的。

[1]同相器:當輸入高電平時輸出也是高電平,輸入低電平時輸出也是低電平。主要要於需要緩衝的場合,就是只要輸入很小的電流,可輸出較大的電流,增加帶載能力。

I2C匯流排的仲裁機制

在多主的通訊系統中。匯流排上有多個節點,它們都有自己的定址位址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點傳送控制位元組和傳送資料。但是如果有兩個或兩個以上的節點都向匯流排上傳送啟動訊號並開始傳送資料,這樣就形成了衝突。要解決這種衝突,就要進行仲裁的判決,這就是 i 2c 匯...

I2C匯流排的仲裁機制

在多主的通訊系統中。匯流排上有多個節點,它們都有自己的定址位址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點傳送控制位元組和傳 送資料。但是如果有兩個或兩個以上的節點都向匯流排上傳送啟動訊號並開始傳送資料,這樣就形成了衝突。要解決這種衝突,就要進行仲裁的判決,這就是i 2c匯流...

iic匯流排從機仲裁 IIC學習筆記

iic inter integrated circuit 積體電路匯流排 iic通訊協議是飛利浦公司於80年代初發明的一種運用於晶元與晶元之間進行資訊交換的序列 同步 半雙工通訊協議。應用場合 晶元與晶元之間。板間通訊。共模通訊。抗干擾能力很差。1 iic協議有兩根匯流排 時鐘匯流排sck,資料匯流...