一、概述
SPI:Serial Peripheral Interface,串行外圍設備接口。
是由摩托羅拉在20世紀80年代中期開發的同步串行總線接口規范(帶有時鐘信號,通過時鐘極性和時鐘相位來控制采樣,
即同步傳輸)。
1、支持半雙工、全雙工通信模式。
2、沒有流控制和應答機制來確認是否接收到數據(UART有校驗或流控制)。
3、沒有一個固定的傳輸速率規定,已有器件SPI輸出速率達到50Mbps以上(I2C有明確規定速率)。
4、只能板內的短距離傳輸(RS232、RS485輸出距離遠)。
5、沒有限制傳輸bit數量,常用的是8bit或9bit。
6、不需要硬件地址(I2C要地址),采用片選。
7、主從模式,一托多。
二、3線和4線模式
3線SPI和4線SPI各個模式下信號定義:
3線9bit I型 接口信號:SCL、CS、SDA
3線9bit II型接口信號:SCL、CS、SDO、SDI
4線8bit I型接口信號:SCL、CS、DCX、SDA
4線8bit II型接口信號:SCL、CS、DCX、SDO、SDI
3線9bit 2 data Lane 接口信號:SCL、CS、D0、D1
對于3線或4線來區分,并不是信號線的數量,也不是網上說的半雙工和全雙工,或者數據線數量差異。
個人認為:
3線說的是時鐘、片選、數據信號(不管是一根數據線,還是兩根數據線),共三種信號。
4線說的是時鐘、片選、數據信號、數據或命令控制線(確定發送的是數據還是命令),共4中信號。
三、SPI 四種工作模式
通過CPOL時鐘極性和CPHA時鐘相位的搭配來得到四種工作模式:

CPOL時鐘極性定義的是 SCLK時鐘線空閑狀態時的電平
CPOL=0,即SCLK=0,表示SCLK時鐘信號線在空閑狀態時的電平為低電平,因此有效狀態為高電平。
CPOL=1,即SCLK=1,表示SCLK時鐘信號線在空閑狀態時的電平為高電平,因此有效狀態為低電平。
CPHA時鐘相位定義的是數據位相對于時鐘線的時序(即相位)
CPHA=0,即表示輸出(out)端在上一個時鐘周期的后沿改變數據,而輸入(in)端在時鐘周期的前沿(或不久之后)捕
獲數據。輸出端保持數據有效直到當前時鐘周期的尾部邊緣。對于第一個時鐘周期來說,第一位的數據必須在時鐘前沿之
前出現在MOSI線上。也就是一個CPHA=0的周期包括半個時鐘空閑和半個時鐘置位的周期。
CPHA=1,即表示輸出(out)端在當前時鐘周期的前沿改變數據,而輸入(in)端在時鐘周期的后沿(或不久之后)捕獲
數據。輸出端保持數據有效直到下一個時鐘周期的前沿。對于最后一個時鐘周期來說,從機設備在片選信號消失之前保持
MISO信號線有效。也就是一個CHPA=1的周期包括半個時鐘置位和半個時鐘空閑的周期。
四、SPI升級版
SPI flash接口有standard SPI、Dual SPI、Quad SPI、Octal SPI,也就是所謂的1248線模式。

五、SDR和DDR模式
SPI通信支持SDR和DDR模式。
SDR:Single Data Rate通過 SCLK 的觸發對信號進行采樣時,一個時鐘周期只執行一次,稱為單倍數據速率模式。
DDR:Double Data Rate通過 SCLK 的觸發對信號進行采樣時,每個上升沿和下降沿將采樣一次。
也就是說一個時鐘周期內發送2位或者接收2位數據,稱為雙倍數據速率模式
六、SPI Flash接口
Dual SPI有兩根數據IO;Quad SPI有4根數據IO。
SPI flash spec:

七、SPI TFT液晶屏接口
TFT液晶屏ST7789 spec定義,支持串行和并行,支持SPI多種通信模式。

八、信號定義及連線
標準SPI接口信號定義:

標準的SPI規范連線:

SDOSDI網絡命名的連線(SDO和SDI交叉):

SPI總線,一對多連線:

九、小結
1、有的參考設計原理圖中,用SDI表示MOSI,用SDO表示MISO,連線要注意輸出和輸入的定義。
2、芯片引腳的信號輸入或輸出,是針對自身來標明的,因此在主從設備芯片的輸出或輸入要連接正確。
3、電路設計上引腳信號不需要上拉。如果是IO模擬的話,需注意是不是開漏,如是要加上拉。另,要確認器件spec的SPI
信息,可能有特殊的要加上下拉。
4、一對多的連線,片選信號CS單獨控制,多個從設備需要多個CS信號。
5、從設備未被選中時,信號線變成高阻態(斷開)。
6、Layout上沒有特殊要求,當然可以SCLK信號包下地。
審核編輯 黃宇
-
通信協議
+關注
關注
28文章
1092瀏覽量
42201 -
SPI
+關注
關注
17文章
1886瀏覽量
101343 -
總線
+關注
關注
10文章
3043瀏覽量
91693
發布評論請先 登錄
機器人通信協議EtherCAT和CAN如何選擇
基于FPGA的I2C通信協議設計
通信協議IIC與SPI最全對比分析
FPGA實現基于SPI協議的Flash驅動控制芯片擦除
SPI、I2C、I2S、UART:通信協議解釋
SPI、I2C、I2S、UART:通信協議對比表
Xilinx FPGA串行通信協議介紹
分布式能源并網的通信協議有哪些?
如何驗證硬件加速是否真正提升了通信協議的安全性?
有哪些方法可以確保硬件加速與通信協議的兼容性?
如何利用硬件加速提升通信協議的安全性?
通信協議之SPI總線硬件篇
評論