一、概述
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文章
1012瀏覽量
41006 -
SPI
+關注
關注
17文章
1788瀏覽量
95009 -
總線
+關注
關注
10文章
2956瀏覽量
89465
發布評論請先 登錄
評論