IIC匯流排工作原理

2021-08-04 05:30:01 字數 2942 閱讀 8428

2017-04-26 14:56

340人閱讀收藏 

舉報

圖11-1給出乙個由mcu作為主機,通過iic匯流排帶3個從機的單主機iic匯流排系統。這是最常用、最典型的iic匯流排連線方式。

物理結構上,iic系統由一條序列資料線sda和一條序列時鐘線scl組成。主機按一定的通訊協議向從機定址和進行資訊 傳輸。在資料傳輸時,由主機初始化一次資料傳輸,主機使資料在sda線上傳輸的同時還通過scl線傳輸時鐘。資訊傳輸的物件和方向以及資訊傳輸的開始和終 止均由主機決定。

每個器件都有乙個唯一的位址,而且可以是單接收的器件(例如:lcd驅動器)或者可以接收也可以傳送的器件(例如:儲存器)。傳送器或接收器可以在主模式或從模式下操作,這取決於晶元是否必須啟動資料的傳輸還是僅僅被定址。

1.匯流排上資料的有效性

iic匯流排是以序列方式傳輸資料,從資料位元組的最高位開始傳送,每乙個資料位在scl上都有乙個時鐘脈衝相對應。在時鐘線高電平期間資料線上必須保持穩定 的邏輯電平狀態,高電平為資料1,低電平為資料0。只有在時鐘線為低電平時,才允許資料線上的電平狀態變化,如圖11-2所示。

2.匯流排上的訊號

iic匯流排在傳送資料過程中共有四種型別訊號,它們分別是:開始訊號、停止訊號、重新開始訊號和應答訊號。

開始訊號(start):如圖11-3所示,當scl為高電平時,sda由高電平向低電平跳變,產生開始訊號。當匯流排空閒的時候,例如,沒有主動裝置在使用匯流排(sda和scl都處於高電平),主機通過傳送開始(start)訊號建立通訊。

停止訊號(stop):如圖11-3所示,當scl為高電平時,sda由低電平向高電平跳變,產生停止訊號。主機通過傳送停止訊號,結束資料通訊。

重新開始訊號(repeated start):在iic匯流排上,由主機傳送乙個開始訊號啟動一次通訊後,在首次傳送停止訊號之前,主機通過傳送重新開始訊號,可以轉換與當前從機的通訊模 式,或是切換到與另乙個從機通訊。如圖11-3所示,當scl為高電平時,sda由高電平向低電平跳變,產生重新開始訊號,它的本質就是乙個開始訊號。

應答訊號(a):接收資料的ic在接收到8位資料後,向傳送資料的ic發出的特定的低電平脈衝。每乙個資料位元組後面都要 跟一位應答訊號,表示已收到資料。應答訊號在第9個時鐘週期出現,這時傳送器必須在這一時鐘位上釋放資料線,由接收裝置拉低sda電平來產生應答訊號,由 接收裝置保持sda的高電平來產生非應答訊號(a(—)),如圖11-4所示。所以,乙個完整的位元組資料傳輸需要9個時鐘脈衝。如果從機作為接收方向主機 傳送非應答訊號,這樣,主機方就認為此次資料傳輸失敗;如果是主機作為接收方,在從機傳送器傳送完乙個位元組資料後,傳送了非應答訊號,從機就認為資料傳輸 結束,並釋放sda線。不論是以上哪種情況都會終止資料傳輸,這時,主機或是產生停止訊號釋放匯流排,或是產生重新開始訊號,開始一次新的通訊。開始訊號、 重新開始訊號和停止訊號都是由主控制器產生,應答訊號由接收器產生,匯流排上帶有iic匯流排介面的器件很容易檢測到這些訊號。

3.匯流排上資料傳輸格式

一般情況下,乙個標準的iic通訊由四部分組成:開始訊號、從機位址傳輸、資料傳輸、停止訊號。

由主機傳送乙個開始訊號,啟動一次iic通訊;在主機對從機定址後,再在匯流排上傳輸資料。iic匯流排上傳送的每乙個位元組均為8位,首先傳送的資料位為最高 位,每傳送乙個位元組後都必須跟隨乙個應答位,每次通訊的資料位元組數是沒有限制的;在全部資料傳送結束後,由主機傳送停止訊號,結束通訊。

圖11-5所示,時鐘線為低電平時資料傳送將停止進行。這種情況可以用於當接收器接收到乙個位元組資料後要進行一些其它工 作而無法立即接收下乙個資料時,迫使匯流排進入等待狀態,直到接收器準備好接收新資料時,接收器再釋放時鐘線使資料傳送得以繼續正常進行。例如,當接收器接 收完主控制器的乙個位元組資料後,產生中斷訊號並進行中斷處理,中斷處理完畢才能接收下乙個位元組資料,這時接收器在中斷處理時將鉗住scl為低電平,直到中 斷處理完畢才釋放scl。

4.iic匯流排定址約定

為了消除iic匯流排系統中主控器與被控器的位址選擇線,最大限度地簡化匯流排連線線,iic匯流排採用了獨特的定址約定,規定了開始訊號後的第乙個位元組為定址位元組,用來定址被控器件,並規定資料傳送方向。

在iic匯流排系統中,定址位元組由被控器的七位位址位(它佔據了d7-d1位)和一位方向位(為d0位)組成。方向位為0時表示主控器將資料寫入被控器,為 1時表示主控器從被控器讀取資料。主控器傳送開始訊號後,立即傳送定址位元組,這時,匯流排上的所有器件都將定址位元組中的7位位址與自己器件位址比較。如果兩 者相同,則該器件認為被主控器定址,並傳送應答訊號,被控器根據讀,寫位確定自身是作為傳送器還是接收器。

主器件作為被控器時,其7位從位址在iic匯流排位址暫存器中給定,為純軟體位址。而非微控制器型別的外圍器件位址完全由器件型別與引腳電平給定。iic匯流排系統中,沒有兩個從機的位址是相同的。主控器不應該傳輸乙個和它本身的從位址相同的位址。

5.主機向從機讀寫1個位元組資料的過程

如圖11-6所示,主機要向從機寫1個位元組資料時,主機首先產生start訊號,然後緊跟著傳送乙個從機位址,這個位址共有7位,緊接著的第8位是資料方 向位(r/w),0表示主機傳送資料(寫),1表示主機接收資料(讀),這時候主機等待從機的應答訊號(a),當主機收到應答訊號時,傳送要訪問的位址, 繼續等待從機的應答訊號,當主機收到應答訊號時,傳送1個位元組的資料,繼續等待從機的應答訊號,當主機收到應答訊號時,產生停止訊號,結束傳送過程。

如圖11-7所示,主機要從從機讀1個位元組資料時,主機首先產生start訊號,然後緊跟著傳送乙個從機位址,注意此時該位址的第8位為0,表明是向從機 寫命令,這時候主機等待從機的應答訊號(a),當主機收到應答訊號時,傳送要訪問的位址,繼續等待從機的應答訊號,當主機收到應答訊號後,主機要改變通訊 模式(主機將由傳送變為接收,從機將由接收變為傳送)所以主機傳送重新開始訊號,然後緊跟著傳送乙個從機位址,注意此時該位址的第8位為1,表明將主機設 置成接收模式開始讀取資料,這時候主機等待從機的應答訊號,當主機收到應答訊號時,就可以接收1個位元組的資料,當接收完成後,主機傳送非應答訊號,表示不 在接收資料,主機進而產生停止訊號,結束傳送過程。

電子基礎 IIC匯流排工作原理

iic 匯流排工作原理 i 2c匯流排進行資料傳送時,時鐘訊號為高電平期間,資料線上的資料必須保持穩定,只有在時鐘線上的訊號為低電平期間,資料線上的高電平或低電平狀態才允許變化。起始和終止訊號 scl 線為高電平期間,sda線由高電平向低電平的變化表示起始訊號 scl線為高電平期間,sda線由低電平...

IIC匯流排硬體工作原理(待完善)

一 iic基礎概念 簡單 介面在元件上,占用空間小 高效 能夠以10kbps的最大傳輸速率支援40個元件 多主控 任何能夠進行傳送和接收的裝置都可以成為主匯流排 2 協議簡介 匯流排訊號 sda 序列資料線 scl 序列時鐘 匯流排空閒狀態 sda 高電平 scl 高電平 起始位 scl為高電平期間...

IIC序列匯流排的組成及工作原理

1.基本組成 iic匯流排只有兩根雙向訊號線 資料線sda serial data i o 時鐘線scl serial clock 如圖,iic匯流排上可以掛多個器件,資料通訊方式採用主從方式,主機負責主動聯絡從機,而從機則被動回應資料。iic匯流排通過上拉電阻接正電源,匯流排空閒時兩根線均為高電平...