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

評(píng)論