在多主的通訊系統中。匯流排上有多個節點,它們都有自己的定址位址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點傳送控制位元組和傳送資料。但是如果有兩個或兩個以上的節點都向匯流排上傳送啟動訊號並開始傳送資料,這樣就形成了衝突。要解決這種衝突,就要進行仲裁的判決,這就是
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匯流排的仲裁機制
在多主的通訊系統中。匯流排上有多個節點,它們都有自己的定址位址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點傳送控制位元組和傳 送資料。但是如果有兩個或兩個以上的節點都向匯流排上傳送啟動訊號並開始傳送資料,這樣就形成了衝突。要解決這種衝突,就要進行仲裁的判決,這就是i 2c匯流...
二十 I2C匯流排仲裁機制
i2c inter integratedcircuit 匯流排是一種由philips公司開發的兩線式序列匯流排,用於連線微控制器及其外圍裝置,乙個i2c匯流排上可以掛載多個從裝置,多個裝置同時使用匯流排時,怎麼防止資料衝突,這就需要i2c的匯流排仲裁機制。1 i2c匯流排上可能在某一時刻有兩個主控裝...
iic匯流排從機仲裁 I2C匯流排的仲裁機制
在多主的通訊系統中。匯流排上有多個節點,它們都有自己的定址位址,可以作為從節點被別的節點訪問,同時它們都可以作為主節點向其他的節點傳送控制位元組和傳 送資料。但是如果有兩個或兩個以上的節點都向匯流排上傳送啟動訊號並開始傳送資料,這樣就形成了衝突。要解決這種衝突,就要進行仲裁的判決,這就是i 2c匯流...