SPI 通訊基礎知識
SPI是英文Serial Peripheral Interface的縮寫。它最初是摩托羅拉公司開發的全雙工同步序列匯流排。它用於微控制器 (MCU) 和外部設備之間的同步串行通訊。主要應用於Flash、D/A轉換器、訊號處理器、控制器以及EEPROM記憶體等周邊裝置。
SPI 總線是主多從介面。與I2C不同,SPI使用CS片選來控制主機和從機之間的通訊。幾乎所有現代微控制器都支援SPI匯流排,該匯流排已成為高速、同步和雙工的通用標準,廣泛應用於物聯網產品。
SPI 通常有 4 條線(四線系統),允許全雙工通訊。
【SCK】:順序時鐘。
【MOSI】:主輸出,從輸入)
[MISO]:主機接收與發送來自從機的訊號(主輸入,從機輸出)。
[CS/CS]:片選訊號(從機選擇)
SPI應用也有3線(3-wire system)來實現半雙工通訊。
SPI通訊原理
為了與外圍設備進行通信,SPI模組可以根據外圍設備的工作要求調整其輸出串行同步時脈的極性和相位,並透過CPHA(時脈相位)和CPOL(時脈相位)控制設備的通訊模式。 )。極性)。
CPOL 時脈的極性用於配置 SCK 電平有效或無效的狀態。 CPHA時脈的相位用於配置啟用哪個邊緣資料取樣:
CPHA=0,第1個邊緣取樣數據,第2個邊緣發送數據
CPHA=1,第2個邊緣取樣數據,第1個邊緣發送數據
CPOL=0,當SCLK=0時,處於閒置狀態,SCLK為高電位時有效。
CPOL=1,當SCLK=1時處於閒置狀態,SCLK為低電位時為有效狀態。
CPHA=0,CPOL=0:此時在空閒狀態下,SCK為低電平,資料取樣發生在第一個邊緣,即SCK從低電平到高電平的轉變,因此資料採樣為在上升沿(資料準備),(發送資料)在下降沿發送資料。
CPHA=0,CPOL=1:此時在空閒狀態,SCK為高電平,資料擷取發生在第一個邊緣,即SCK從高電平變為低電平,因此資料擷取下降。 Edge.,資料正在上升沿傳輸。
CPHA=1,CPOL=0:此時在空閒狀態,SCK為低電平,第一個邊緣傳輸數據,即SCK從低電平變為高電平,因此數據抽樣處於下降水平。 Edge.,資料正在上升沿傳輸。
CPHA=1,CPOL=1:此時在空閒狀態下,SCK為高電平,第一個邊緣發送數據,即SCK從高電平變為低電平,因此數據採集處於增加方式。 Edge.,資料在下降沿發送。
另外,分享一下辨識時間序列圖的方法。交叉線:資料可以更改,但不是必要的。平行線:資料不能改變,必須穩定發送。
讓我們更詳細地討論一下轉移的時間。 SPI介面的內部硬體其實是兩個簡單的移位暫存器。傳輸的資料大小為 8 位元。在從機的啟用訊號和主機產生的移位脈衝的作用下,逐位傳輸,最高位元在前,低位在後。 。如下圖所示,資料在SCLK訊號的下降沿發生變化,在上升沿將一位資料儲存到移位暫存器。 SPI 介面沒有定義的流控製或回應機制來確認資料的接收。
SPI資料傳輸:
SPI使用位元組來傳輸數據,通常8位元組是標準的,但位數可以根據需要進行調整。
數據在 MOSI 和 MISO 線上同時傳輸,主機設備向 MOSI 發送數據,並從 MISO 接收從設備的回應。
資料傳輸由 SCLK 時脈訊號提供時鐘,通常在時脈訊號的上升沿或下降沿進行。
SPI模式:
有四種 SPI 通訊模式,用於確定時脈極性和相位的組合,以確保正確的資料同步。
這些模式由 0 到 3 的數字指定,並且通常由字母“CPOL”和“CPHA”描述,分別表示時脈訊號的極性和相位。
為了正確通信,主設備和從設備必須配置為相同的模式。
SPI與其他通訊協定的比較:
SPI 通常比 I2C 和 UART 等其他串列通訊協定更快,但也需要更多引腳。
SPI更適合短距離高速通信,而I2C和UART則適合各種應用場景。
透過上述對SPI匯流排的簡單常識描述,我們可以大致了解到SPI具有高速、定時、全雙工、匯流排結構、主從通訊方式等優點,但也有諸如缺乏分配的流量控制和缺乏反應機制的確認。
億佰特專注於物聯網無線通訊產業,並始終關注物聯網技術和通訊產業的發展,走在物聯網無線通訊技術的前端。億佰特開發了易於使用、高品質、價格實惠的無線模組,包括Wi-Fi模組、 藍牙模組、 Zigbee模組、NB模組、4G模組、專用無線模組、 LoRa和LoRaWAN。等待模組出現。
欲了解更多產品詳情和信息,請訪問我們的官方網站:
喜歡我的作品嗎?別忘了給予支持與讚賞,讓我知道在創作的路上有你陪伴,一起延續這份熱忱!
- 來自作者
- 相關推薦