序列通訊方式spi和i2c各有何優點 適合在何種場合使用 ,兩微控制器板上相連,採用何種方式好

2022-02-05 05:04:44 字數 2584 閱讀 6976

1樓:匿名使用者

1,spi匯流排就是三根。 片選cs一根,這個由各自晶片決定,有高平或者低平的。這個其實是必須的,因為只有片選到了才能找到。

和我用的匯流排74hc573(或者74ls373)鎖存器一個道理。如果片選成功,就上第二根線scl,這個上面就是時鐘,這個時鐘完全可以模擬,當然時鐘上面是有時序的,用程式延時把時序調整好,模擬就沒問題。最後就是i/o口,如果是三線的spi,那麼這根線就是資料雙向傳輸的,如果是四根的spi,這個我現在還沒用過,就是一方入一方出,不過我覺得完全沒必要,一根線資料來去就挺好。

由於是一根或者兩根線,那麼資料就靠序列來去。2,i2c匯流排就是兩根。 就是一根scl時鐘,另一個根sda傳資料,就兩根,沒有了i2c的那個片選cs端。

因此在這個上面傳輸資料,必須靠i2c這兩根唯二的的線表示啟動、傳輸和停止等。電平就只有高低了,那麼還能利用什麼呢,就是上升沿和下降沿,總之,在這麼兩個線上其實好好多組合。第一類,電平組合類scl和sda的配合四種:

高平+高平、高平+低平、低平+高平、低平+低平;第二類,電平sckl和邊沿sda組合類:高平+上升沿、高平+下降沿、地平+上升沿、低平+下降沿。可以看出就這麼兩根線上可以利用的東西也不少,用這些組合就可以表示起動、停止等等,甚至根本就用不了這麼多。

退一萬步講,即使全部都用了,還可以序列繼續組合麼,還可以先sda再scl麼,總之兩根線都能被挖掘這麼深,我不得不佩服那些飛利浦工程師們的創造力。從上面就明白了,如何表示所選擇的晶片的啟動,就靠這些組合。例如:

scl上高平上sda上的上升沿或者下降沿,證明主機傳送了晶片的啟動要求。還有一個問題就是,如果i2c上掛了多個i2c器件,那麼怎麼知道啟動那一個呢,因為它們又沒有spi的片選cs那個管腳,這個管腳可以通過類似三八譯碼器那樣找到型別相同但是不同的晶片,i2c上又沒有怎麼辦呢?i2c的器件上有幾個管腳接地或者掛高(at24c02就是,叫可程式設計管腳)就是地址,還有就是器件廠商也規定了i2c上傳送的第一個位元組就是晶片地址,前四個位0000~11111,這個最多可以表示16個不同型別的i2c器件(實際i2c器件根本沒有這麼多,而且0000和1111不能用,所以只剩下14個了。

這個國際統一的規定,就是i2c的協議,《全國大學生電子設計競賽——微控制器應用技能》p171有說明,「i2c匯流排委員會」的規定)。剩下的3個位就是器件的地址,這個地址和i2c上發的地址對上了,就找到了,剩下最後一位是讀寫。然後在i2c上的兩根線上寫資料,先寫晶片地址,再寫找到的晶片內部的地址,最後是讀或者是寫這個地址,而且每傳送一個位元組必須從機給個應答,也就是連結的i2c器件給主機(一般是微控制器或者是i2c介面)傳送回來一個應答,而且應答是必須是收一個位元組接一個應答那麼交替。

因此從這點上看來,i2c協議實現起來其實挺複雜的,就為了少一根線,做了多種協議,還有就是程式比spi變得複雜。更重要的一點是,i2c匯流排上所接的器件,一種i2c最多可以接8個(因為控制字前四位是種類,最後一位是讀寫,只有三位留給地址了),如果不同種類的i2c都算進去,總共i2c上接的器件就是14*8=112個,儘管已經很多了,但至少說明了i2c匯流排上能掛的器件是有限的。3、但是和spi比較一下就會發現,儘管i2c複雜一點,器件有限,但是優點還是非常多的,因為三線spi匯流排上只有sck和i/o才是真正的匯流排,可以公用,但是cs片選訊號可是一對一的,如果spi匯流排上接112個spi器件,sck和i/o匯流排可以共用,但是112的cs片選如何處理,難道用cpld擴充套件邏輯閘門麼,顯然是不現實的。

而且各個器件的cs片選有的是高有的是低,也是個麻煩。這點看來,spi程式設計比i2c儘管簡單,但是硬體麻煩,i2c軟體複雜,但是硬體會簡單。總體來說還是i2c有更多好處,因為軟體總比硬體問題好處理。

4、共同的問題,如果在一些簡單的微控制器例如at89s51上模擬i2c或者spi匯流排的時候,時序中高低電平長短和晶振有關,因此當換用不同的晶振或者微控制器時候,要改變時序中控制高低電平的延時因子。

i2c具有以下優點:1. 硬體簡單,資源消耗少。

只有時鐘和資料線。2. 時鐘同步和仲裁的實現原理也很簡單,以開漏/集電極開路門以線路邏輯簡單實現。

3. 協議設計精巧、易用、靈活。資料、地址、指令都可以傳。

4. 使用廣泛,現在幾乎所有的ic廠商都在晶片上整合了i2c。5.

philips 對i2c協議的ip已經過期,license上幾乎不用考慮。

2樓:一萬光年

spi 優點:速度快,程式設計簡單;

i2c優點:佔用io線少;(缺點:程式設計複雜,速度慢)兩種介面各有優點和缺點。

一般一種晶片只有一種介面,不會有兩種介面的晶片,所以沒有何種方式好的說法。

3樓:匿名使用者

i2c優點:佔用資源少,只用到2根線,適用於io口資源比較緊的場合,但是速度不及spi了。

spi優點:全雙工工作,速度很快,適用於高速通訊的場合,但是佔用了4根線。

2塊微控制器相連,如果資源充足的話,當然是spi了,速度快。

傳輸距離和抗干擾的話2個都差不多,取決於硬體電路的設計,比如匯流排上的上拉電阻阻值。2者都不適合長距離傳輸。

spi,uart,i2c都有什麼區別,各自的特點是什麼?

4樓:局曼粟陽波

區別:spi:高速同步序列口。3~4線介面,收發獨立、可同步進行

uart:通用非同步序列口。按照標準波特率完成雙..

現代的通訊方式有哪些,現代的通訊方式有哪些

現代的通訊方式包括 郵遞 傳真 衛星 電報 資料通訊等。1 郵遞 以實物傳遞為基礎。信件是資訊傳遞最簡單最純樸的方式。快遞是人類社會發展的的需要,主要原因是因為隨著人類物質生活水平的提高服務需求面也越來越高,但其發展受交通運輸制約無便利的交通運輸怎麼也快不起來。2 分固定 移動 與網路 其傳遞方式與...

PC與微控制器序列通訊控制背景和意義

微控制器序列通訊的實際作用 一般用於和外部裝置交換資料的 舉例來說 一 比如和pc的串列埠機通訊,微控制器可以採集一些模擬量 溫度,溼度,氣體濃度等 將這些模擬量轉換成數字量後通過序列通訊介面傳輸個pc機,pc機上還得編寫一個簡單的應用軟體,可以顯示這些模擬量 溫度,溼度,氣體濃度等 的值,這個簡單...

lcd12864用序列方式好還是並行

這要根據你的具體要求和需求,序列速度相對較慢,但是佔用的i o口少,並行相對速度快,但是佔用的i o口多 hi我傳資料給你 以前搞過是序列口的 不過可以參考 12864液晶裡面的串列埠和並口是什麼意思?當15腳psb為高電平時,資料是從並口db0 db7 7 14 腳傳輸資料的,為低電平時,是從串列...