SPI通信協(xié)議由摩托羅拉公司于20世紀(jì)80年代中期開發(fā)而成,包括SD卡、液晶顯示器、一般閃存等等都在使用SPI進(jìn)行通信。
SPI作為串行通信接口脫穎而出的原因很多,全雙工比I2C傳輸速率更高,推挽輸出接口能夠減少走線分叉,能夠保證在高速傳輸下信號的完整性,傳輸協(xié)議更加靈活,信息幀大小可以任意調(diào)節(jié),不需要上拉電阻,功耗可以更低,外圍電路和軟件配置都更簡單。
同時SPI的缺點(diǎn)也很明顯,SPI通常僅支持一個主設(shè)備,傳輸距離短,一般只適合板內(nèi)信號傳輸,沒有硬件級別的錯誤檢查協(xié)議,無法內(nèi)部尋址,多重設(shè)備時需要額外的片選信號線。
SPI總線包括四條邏輯線
SPI有兩種接線方式,第一種是常規(guī)的獨(dú)立從機(jī)配置,每個從機(jī)都需要一條單獨(dú)的CS線,當(dāng)主機(jī)要和特定的從機(jī)進(jìn)行通訊時,將相應(yīng)的CS信號線拉低,并保持其他CS信號線為高。
同時因為從機(jī)的MISO引腳在同一條信號線上,因此要求未被選擇的從機(jī)的MISO引腳要配置為高阻態(tài)輸出。
SP的第二種接線方式為菊花鏈配置,我們一般將信號線以串行的方式從一個設(shè)備依次傳到下一個設(shè)備,直到數(shù)據(jù)到達(dá)目標(biāo)設(shè)備的數(shù)據(jù)傳輸方式稱為菊花鏈。
菊花鏈最大的缺點(diǎn)是如果從機(jī)出現(xiàn)單點(diǎn)故障時,低于該設(shè)備優(yōu)先級的從機(jī)就掉線了,距離主機(jī)越遠(yuǎn)的從機(jī)獲得服務(wù)的優(yōu)先級就越低。如果需要設(shè)置從線檢測器并安排好從今優(yōu)先級。
如果某個從機(jī)超時并及時處理,防止單點(diǎn)故障造成整個鏈路崩潰。
菊花鏈模式充分使用了SPI移位寄存器的功能,每個從機(jī)在下一個時鐘周期將輸入數(shù)據(jù)復(fù)制到輸出。
SPI可以根據(jù)時鐘極性CKP和時鐘向性CKE配置前四種模式。
CKP用來配置時鐘的默認(rèn)狀態(tài),CP=0時空閑電平為低,電平0,CKP=1時空閑電平為高,電平1。
CKE用來配置在哪個時鐘邊沿進(jìn)行數(shù)據(jù)采樣,CKE=0時,在時鐘信號SCK的第一個跳變沿采樣,CT=1時,在時鐘信號SCK的第二個跳變沿采樣。
SPI是一種同步通信的總線協(xié)議,數(shù)據(jù)線根據(jù)不同的配置在時鐘的上升沿或下降沿進(jìn)行采樣。
SPI通信的持續(xù)過程如下,主機(jī)先將對應(yīng)從機(jī)的CS信號拉低,通知從機(jī)開始建立連接,數(shù)據(jù)接收端檢測到時鐘的邊緣信號之后,就立即開始讀取數(shù)據(jù)線上的信號。
因為SPI是全雙工的,主機(jī)在發(fā)送數(shù)據(jù)的同時也在接收數(shù)據(jù),主機(jī)可以通過查詢的方式來判斷從機(jī)是否有數(shù)據(jù)需要發(fā)送,如果有,主機(jī)會繼續(xù)發(fā)送數(shù)據(jù)來獲取從機(jī)想要發(fā)送的數(shù)據(jù),之后從機(jī)只需要丟掉這些無效數(shù)據(jù)即可。
好了,以上就是SIP通信協(xié)議的全部內(nèi)容,喜歡的話麻煩大家點(diǎn)贊收藏哦。
審核編輯 :李倩
-
通信協(xié)議
+關(guān)注
關(guān)注
28文章
1035瀏覽量
41174 -
SPI
+關(guān)注
關(guān)注
17文章
1804瀏覽量
95997 -
I2C
+關(guān)注
關(guān)注
28文章
1541瀏覽量
127862
原文標(biāo)題:2022年SPI通信協(xié)議原理講解
文章出處:【微信號:電子技術(shù)控,微信公眾號:電子技術(shù)控】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
常用的串口通信協(xié)議之SPI協(xié)議簡析
SPI通信協(xié)議
SPI是什么?SPI通信協(xié)議說明
i.MX6ULL——ElfBoard ELF1板卡 之 SPI通信協(xié)議原理講解
嵌入式學(xué)習(xí)——ElfBoard ELF1板卡 之SPI通信協(xié)議原理講解
STM32 SPI通信協(xié)議詳細(xì)講解—小白入門

通信協(xié)議:SPI

通信協(xié)議(SPI)

Arduino UNO上的SPI通信協(xié)議

SPI通信協(xié)議原理是什么

評論