IIC和SPI有什麼區別,IIC與SPI是全雙工還是半雙工?

時間 2022-10-05 21:12:52

1樓:仁0者

1. spi

spi 是一種四線制序列匯流排介面,為主/從結構,四條導線分別為序列時鐘(sclk)、主出從入(mosi)、主入從出(miso)和從選(ss)訊號。主器件為時鐘提供者,可發起讀從器件或寫從器件操作。這時主器件將與乙個從器件進行對話。

當匯流排上存在多個從器件時,要發起一次傳輸,主器件將把該從器件選擇線拉低,然後分別通過 mosi 和 miso 線啟動資料傳送或接收。

spi 時鐘速度很快,範圍可從幾兆赫茲到幾十兆赫茲,且沒有系統開銷。spi 在系統管理方面的缺點是缺乏流控機制,無論主器件還是從器件均不對訊息進行確認,主器件無法知道從器件是否繁忙。因此,必須設計聰明的軟體機制來處理確認問題。

同時,spi 也沒有多主器件協議,必須採用很複雜的軟體和外部邏輯來實現多主器件架構。每個從器件需要乙個單獨的從選擇訊號。總訊號數最終為 n+3 個,其中 n 是匯流排上從器件的數量。

因此,導線的數量將隨增加的從器件的數量按比例增長。同樣,在 spi 匯流排上新增新的從器件也不方便。對於額外新增的每個從器件,都需要一條新的從器件選擇線或解碼邏輯。

圖 2 顯示了典型的 spi 讀/寫週期。在位址或命令位元組後面跟有乙個讀/寫位。資料通過 mosi 訊號寫入從器件,通過 miso 訊號自從器件中讀出。

2. iic匯流排

iic 是一種二線制序列匯流排介面,工作在主/從模式。二線通訊訊號分別為開漏 scl 和 sda 序列時鐘和序列資料。主器件為時鐘源。

資料傳輸是雙向的,其方向取決於讀/寫位的狀態。每個從器件擁有乙個唯一的 7 或 10 位位址。主器件通過乙個起始位發起一次傳輸,通過乙個停止位終止一次傳輸。

起始位之後為唯一的從器件位址,再後為讀/寫位。

iic匯流排速度為從0hz到3.4mhz。它沒有spi 那樣快,但對於系統管理器件如溫度感測器來說則非常理想。

iic 存在系統開銷,這些開銷包括起始位/停止位、確認位和從位址位,但它因此擁有流控機制。主器件在完成接收來自從器件的資料時總是傳送乙個確認位,除非其準備終止傳輸。從器件在其接收到來自主器件的命令或資料時總是傳送乙個確認位。

當從器件未準備好時,它可以保持或延展時鐘,直到其再次準備好響應。

iic允許多個主器件工作在同一匯流排上。多個主器件可以輕鬆同步其時鐘,因此所有主器件均採用同一時鐘進行傳輸。多個主器件可以通過資料仲裁檢測哪乙個主器件正在使用匯流排,從而避免資料破壞。

由於 iic匯流排只有兩條導線,因此新從器件只需接入匯流排即可,而無需附加邏輯。

iic與spi是全雙工還是半雙工?

2樓:孫永峰的老巢

iic通訊是序列同步全雙工。

全雙工是在微處理器與外圍裝置之間採用傳送線和接受線各自獨立的方法,可以使資料在兩個方向上同時進行傳送操作。指在傳送資料的同時也能夠接收資料,兩者同步進行,這好像我們平時打**一樣,說話的同時也能夠聽到對方的聲音。目前的網絡卡一般都支援全雙工。

3樓:匿名使用者

spi通訊是序列同步半雙工。

iic通訊是序列同步全雙工。

雙工(full duplex)是指在傳送資料的同時也能夠接收資料,兩者同步進行,這好像我們平時打**一樣,說話的同時也能夠聽到對方的聲音。目前的網絡卡一般都支援全雙工。

半雙工(half duplex),所謂半雙工就是指乙個時間段內只有乙個動作發生,舉個簡單例子,一條窄窄的馬路,同時只能有一輛車通過,當目前有兩量車對開,這種情況下就只能一輛先過,等到頭兒後另一輛再開,這個例子就形象的說明了半雙工的原理。早期的對講機、以及早期集線器等裝置都是基於半雙工的產品。隨著技術的不斷進步,半雙工會逐漸退出歷史舞台.

單工通訊是指通訊線路上的資料按單一方向傳送。

同步和非同步

非同步是指:傳送方發出資料後,不等接收方發回響應,接著傳送下個資料報的通訊方式。 串列埠通訊是序列非同步全雙工:

4樓:匿名使用者

i2c,不能同時收發。

spi同時收發;收發公用乙個sck訊號。從機不能產生時鐘訊號,因此不能主動向主機傳送資料。

5樓:

都是同步通訊 一般有時鐘線的都是同步的 iic是半雙工 spi全雙工

6樓:匿名使用者

i2c是半雙工的,spi是全雙工的,

都是同步

7樓:匿名使用者

i2c可以理解是半雙工的,spi一般是全雙工的

8樓:騷傾

樓上說錯了,spi是全雙工,主、從裝置可同時收/發(乙個收時,另乙個發)資訊。

而i2c則是半雙工,主從裝置同一時刻只能乙個收乙個發。

9樓:匿名使用者

spi 是全雙工;

iic是半雙工;

同步和非同步是指通訊過程中的時鐘訊號是否同步

spi 匯流排 和 iic 匯流排 的區別

spi協議和iic協議的相同點和不同點?

10樓:匿名使用者

最大的區別是spi是4線(時鐘,兩個資料線,片選線)或者3線(時鐘,兩個資料線)的,i2c是兩線的(時鐘,乙個資料線)。一般spi的速度比i2c快很多,因為它有兩個資料線的所以可以實現全雙工通訊,而i2c因為收發共用一根資料線,所以只能是半雙工的。

spi和iic技術的應用和比較

11樓:匿名使用者

spi的應用例項: 執行命令時,首先通過spi串列埠往flash傳送一連串的資料,然後以命令字開頭,除了「讀狀態暫存器」外,後面還要跟上頁位址和頁內的位元組位址發及一些無關位。「讀主存」時,首先需要往flash傳送64bit的命令,即:

命令字52(8bit)+4個「r」+頁位址(11bit)+頁內位元組的起始位址(9bit)+32個無關位,傳送完這64bit(通常是組合成8個位元組)命令後,緊跟著從flash讀資料以可以了(即後面的sck訊號使得資料從so腳移出),每讀出乙個位元組,位元組位址自動加1,如遇到該頁的末尾,只要有sck訊號,系統再加到該頁的開關處讀資料。在整個操作過程中,cs腳始終為「0」;當cs腳回到「1」時,將終止此次操作,so腳恢復到高阻狀態。 主存傳送到bufferx是指將2048頁主存中的任何一頁(由pa10~pa0決定)的內容複製到緩衝區,傳送完32bit命令後,當cs腳由「0」為「1」後,資料的複製才真正開始。

主存與bufferx的比較主要是看主存中的某一頁與緩衝區是否一樣,當cs腳回到「1」後,比較才開始進行,比較的結果(是否一樣)記錄在狀態暫存器的bit6中。 把帶擦除的bufferx傳送到主存就是將緩衝區的內容複製到主存中的某一頁,複製前應將緩衝區的內容複製到主存中的某一頁,複製前應將主存中的該頁資料全部擦掉,所有這些操作只有等到cs腳回到「1」後才能進行。對於不帶擦除的bufferx傳送到主存的操作,在命令執行前,指定的主存頁必須已被擦除過。

以bufferx為緩衝為主存程式設計就是將「寫bufferx」與「帶擦除的bufferx傳送到主存」進行組合。在傳送完命令後,寫入flash的資料將被寫入到緩衝區內,如果遇到緩衝區末尾,要繼續寫入的資料又從緩衝區開頭寫入,直到cs腳由「0」到「1」後,主存中被指定的頁的資料被擦除後再將緩衝區的資料整個複製到主存的指定頁中。 3 狀態暫存器及操作完成指示 一般向flash傳送57h後以可讀出狀態暫存器(移出時,高位在前),狀態暫存器的位定義如表2所列。

其中bit7為「0」表示器件忙,為「1」表示可以接收新的命令;bit6是比較結果位,為「0」表示主存與緩衝區的資料一樣,為「1」時表示最少有乙個bit不同;bit5~bit3為該系列器件的容量指示位,一共種8種容量,對於at45d041來說,該區域為「011」;bit2~bit0未使用。一共蛾6種操作會使器件處於「忙」狀態,這6種操作是: ●主存傳送到bufferx; ●主存與bufferx比較; ●帶擦除的bufferx傳送到主存; ●不帶擦除的bufferx傳送到主存; ●bufferx為緩衝對主存程式設計; ●bufferx為緩衝自動重程式設計。

這6種操作均需要監視狀態暫存器,以便知道操作是否完成。除了監視狀態暫存器外,更好的方法是將晶元管腳rdy/busy與cpu的某個中斷相連,並將中斷設定為公升沿觸發,操作一完成即可觸發中斷,這樣可能節省大量的cpu時間。 4 spi介面及應用 4.

1 spi介面 序列外圍介面一共有4種操作模式,圖3為其時序圖。這些操作模式決定了傳送與接收的時鐘相位和極性,換句話說,也就是這些模式決定了利用時鐘訊號的哪個沿來控制資料傳判斷的方向。這些模式一般由主機(cpu)來設定。

當cpol=0時,時鐘訊號sck在空閒時為「0」,即模式0和1; 如果cpol=1,則sck在空閒時為「1」,即模式2和3; 當cpha=cpol時,資料總在時鐘訊號的上公升沿移進flash,下降沿移出flash,即模式0和3。 4.2 spi介面應用 對於12位的資料採集系統,使用ad公司的flash整合mcu晶元aduc812可使電路設計更加簡單快捷。

由於aduc812有乙個與i2c相容的spi介面,所以與at45系列的flash介面只需將相應的管腳相連即可,只不過要將aduc812設為主機,而at45d041自然以是從機了。在aduc812中有spi控制暫存器(spicon)與spi資料暫存器(spidat),資料暫存器的使用如同使用rs232的buffer一樣簡單,控制暫存器的位定義如

i2c、spi匯流排和串列埠通訊之間是什麼關係?

12樓:匿名使用者

串列埠通訊意味著資料是串式傳遞,就是乙個位乙個位的通過傳輸線傳遞,i2c,spi都屬於這種型別。

13樓:匿名使用者

i2c和spi匯流排類似,都是主從模式的匯流排,i2c和spi匯流排上可以掛多個從裝置,但是只能有乙個主裝置。

串列埠通訊是一種全雙工通訊,有3種電氣特性,分別是rs232,rs422,rs485。其中rs232是點對點的通訊,兩個通訊端之間的收發都是獨立的;rs422可以做到乙個傳送,多個接收;rs485是半雙工的工作方式,但是可以做到多個傳送多個接收,即掛在匯流排上的裝置都可以進行傳送跟接收。

總之,i2c,spi匯流排與串列埠之間的最大區別在於,串列埠通訊可以做到互相收發,而i2c,spi匯流排只能有乙個主裝置,另外的都是從裝置,無論讀取還是寫入,都由主裝置發起。

iic和spi有什麼區別?

14樓:仁0者

1. spi

spi 是一種四線制序列匯流排介面,為主/從結構,四條導線分別為序列時鐘(sclk)、主出從入(mosi)、主入從出(miso)和從選(ss)訊號。主器件為時鐘提供者,可發起讀從器件或寫從器件操作。這時主器件將與乙個從器件進行對話。

當匯流排上存在多個從器件時,要發起一次傳輸,主器件將把該從器件選擇線拉低,然後分別通過 mosi 和 miso 線啟動資料傳送或接收。

spi 時鐘速度很快,範圍可從幾兆赫茲到幾十兆赫茲,且沒有系統開銷。spi 在系統管理方面的缺點是缺乏流控機制,無論主器件還是從器件均不對訊息進行確認,主器件無法知道從器件是否繁忙。因此,必須設計聰明的軟體機制來處理確認問題。

同時,spi 也沒有多主器件協議,必須採用很複雜的軟體和外部邏輯來實現多主器件架構。每個從器件需要乙個單獨的從選擇訊號。總訊號數最終為 n+3 個,其中 n 是匯流排上從器件的數量。

因此,導線的數量將隨增加的從器件的數量按比例增長。同樣,在 spi 匯流排上新增新的從器件也不方便。對於額外新增的每個從器件,都需要一條新的從器件選擇線或解碼邏輯。

圖 2 顯示了典型的 spi 讀/寫週期。在位址或命令位元組後面跟有乙個讀/寫位。資料通過 mosi 訊號寫入從器件,通過 miso 訊號自從器件中讀出。

2. iic匯流排

iic 是一種二線制序列匯流排介面,工作在主/從模式。二線通訊訊號分別為開漏 scl 和 sda 序列時鐘和序列資料。主器件為時鐘源。

資料傳輸是雙向的,其方向取決於讀/寫位的狀態。每個從器件擁有乙個唯一的 7 或 10 位位址。主器件通過乙個起始位發起一次傳輸,通過乙個停止位終止一次傳輸。

起始位之後為唯一的從器件位址,再後為讀/寫位。

iic匯流排速度為從0hz到3.4mhz。它沒有spi 那樣快,但對於系統管理器件如溫度感測器來說則非常理想。

iic 存在系統開銷,這些開銷包括起始位/停止位、確認位和從位址位,但它因此擁有流控機制。主器件在完成接收來自從器件的資料時總是傳送乙個確認位,除非其準備終止傳輸。從器件在其接收到來自主器件的命令或資料時總是傳送乙個確認位。

當從器件未準備好時,它可以保持或延展時鐘,直到其再次準備好響應。

iic允許多個主器件工作在同一匯流排上。多個主器件可以輕鬆同步其時鐘,因此所有主器件均採用同一時鐘進行傳輸。多個主器件可以通過資料仲裁檢測哪乙個主器件正在使用匯流排,從而避免資料破壞。

由於 iic匯流排只有兩條導線,因此新從器件只需接入匯流排即可,而無需附加邏輯。

i3 4130和i3 3220有什麼區別

lga1150 lga 1155 主頻3.4ghz 3.3ghz 54w 55w i3 3220和i3 4130有什麼區別?答案 i3 4130比i3 3220更好。i3 4130目前尚有,i3 3220早停產了。1 按照效能比較,i3 4130比i3 3220強 5 7 2 按照功耗比較,i3 4...

寶馬523I和525I有什麼區別

寶馬523i和525i的區別有以下幾點。1 最大功率不同。寶馬523i的最大功率是130 5800 千瓦 轉 秒 525i的最大功率是192 6000 千瓦 轉 秒 2 最大扭矩不同。寶馬523i的最大扭矩是230 3500 牛 公尺 525i的最大扭矩是245 3500 牛 公尺 3 理論油耗不同...

電腦i3和i5有什麼區別,台式電腦i3和i5有什麼區別??

i3以及i5,i7的cpu到底區別在哪?你知道怎麼選嗎?看完長知識了 i5的主頻要高的,快取也高的,處理速度也是要好一點的,支援技術也多點!然後是真四核,i3是雙核的,筆記本四核!謝謝,希望我的回答能給你幫助!效能上講i5 i3,而同系列又是數字大者為好其中i5 750為四核四執行緒,i5 670及...

thinkpad的i3和i5有什麼區別呢?哪個好些

我用了半年thinkpad e40 i5了,沒感覺散熱有明顯的問題。效能的話i5肯定比i3高,因為i5的主頻比i3的高,處理能力比i3的高。現在市場的主流cpu都是i5。大型的應用程式,比如大型3d遊戲,對cpu的要求自然高。程式設計的話,如果是設計一些大運算量的數學類 工程類程式,為了除錯的方便,...

i3 m350和i3 3110M有什麼區別

主要差別是 3110m主頻高,2400對比2260 記憶體傳輸率高 1600對比1066 gpu快。cpu的主頻,即cpu核心工作的時鐘頻率 cpu clock speed 通常所說的某某cpu是多少兆赫的,而這個多少兆赫就是 cpu的主頻 很多人認為cpu的主頻就是其執行速度,其實不然。cpu的主...