1、標(biāo)準SPI
1.1、SPI接口的引腳
(1)SCLK:時鐘線;
(2)MOSI(master output slave input):主設(shè)備輸出,從設(shè)備輸入,單向傳輸;
(3)MISO(master input slave output):主設(shè)備輸入,從設(shè)備輸出,單向傳輸;
(4)CS(chip select):片選信號,用于主片選中從片;
1.2、SPI通信協(xié)議
(1)SPI(serial peripheral interface)是串行外設(shè)接口的縮寫;
(2)SPI是一種高速的、全雙工、同步的串行通信總線; 全雙工體現(xiàn)在主從設(shè)備間通信時發(fā)送數(shù)據(jù)和接收數(shù)據(jù)是單獨的數(shù)據(jù)線,能夠同時接收和發(fā)送數(shù)據(jù);同步體現(xiàn)在主從設(shè)備間有時鐘線,主設(shè)備提供時鐘信號;
(3)SPI可以實現(xiàn)采用主從方式工作,實現(xiàn)一對多,其中主設(shè)備通過多個CS片選引腳來控制和從設(shè)備的通信;
(4)SPI總線在傳輸數(shù)據(jù)時,先傳送高位,后傳送地位;數(shù)據(jù)線為高電平表示邏輯1,低電平表示邏輯0;一個字節(jié)傳送完成后,無須應(yīng)答即可開始下一個字節(jié)的傳送;
(5)主設(shè)備/從設(shè)備在時鐘線的上升沿或者下降沿往數(shù)據(jù)線上發(fā)送數(shù)據(jù),在下降沿或者上升沿從數(shù)據(jù)線上讀取數(shù)據(jù);
1.3、SPI的四種模式:相位和極性
CPOL=0 | CPOL=1 | |
---|---|---|
CPHA=0 | 時鐘線在空閑時為低電平;在每個周期的第一個時鐘沿采樣 | 時鐘線在空閑時為高電平;在每個周期的第一個時鐘沿采樣 |
CPHA=1 | 時鐘線在空閑時為低電平;在每個周期的第二個時鐘沿采樣 | 時鐘線在空閑時為高電平;在每個周期的第二個時鐘沿采樣 |
(1)相位(CPOL):表示時鐘線空閑時的狀態(tài);
(2)極性(CPHA):表示設(shè)備從數(shù)據(jù)線采樣的時刻;
1.4、時序分析
(1)上面的時序圖是CPOL=1 ,CPHA=1的情況;
(2)MSB代表字節(jié)數(shù)據(jù)的高位,LSB代表字節(jié)數(shù)據(jù)的地位,所以SPI協(xié)議是先發(fā)高位再發(fā)低位;
(3)在每個時鐘周期發(fā)送一個bit的數(shù)據(jù),數(shù)據(jù)在數(shù)據(jù)線上的發(fā)送和接收是在一個時鐘周期里完成的,前半個周期A設(shè)備往數(shù)據(jù)線上發(fā)數(shù)據(jù),后半個周期B設(shè)備從數(shù)據(jù)線上讀數(shù)據(jù);
(4)分析MOSI線上發(fā)送MSB位的時序:空閑時時鐘線是高位,在時鐘線的下降沿主設(shè)備開始往MOSI線發(fā)數(shù)據(jù),在上升沿時從設(shè)備從MOSI線上讀數(shù)據(jù),這樣一個bit就傳輸完成;
(5)空閑時時鐘線是高電平,所以CPOL=1;每個時鐘周期都是先有下降沿再有上升沿,設(shè)備是在上升沿采樣,而上升沿是時鐘周期的第二個時鐘沿,所以CPHA=1;
1.5、四種模式的選擇
(1)實際的電路中,SPI協(xié)議中的主設(shè)備就是主控,從設(shè)備是外設(shè);
(2)主控的SPI控制中,模式是可以配置的,但是從設(shè)備的模式是在出廠的時候就定死了;
總結(jié):查閱外設(shè)的數(shù)據(jù)手冊,知道外設(shè)的SPI模式,主設(shè)備去適配從設(shè)備的模式;
1.6、SPI協(xié)議的優(yōu)缺點
優(yōu)點:
(1)沒有像I2C這樣復(fù)雜的從設(shè)備尋址系統(tǒng);
(2)分離的MISO和MOSI信號線,因此可以同時發(fā)送和接收數(shù)據(jù),支持全雙工;
(3)極其靈活的數(shù)據(jù)傳輸,不限于8位,它可以是任意大小的字;
(4)數(shù)據(jù)傳輸速率比I2C更高(幾乎快兩倍);
缺點:
(1)使用四根信號線(I2C和UART使用兩根信號線);
(2)雖然沒有負責(zé)的從設(shè)備尋址系統(tǒng),但是要為每個從設(shè)備預(yù)留一根CS片選線;
(3)沒有應(yīng)答機制,無法確認是否已成功接收數(shù)據(jù);
(4)與RS-232和CAN總線相比,只能支持非常短的距離;
2、Dual SPI和QSPI
2.1、使用場景介紹
(1)通常我們說的SPI就是Standard SPI,有4根信號線,分別為CLK、CS、MOSI和MISO,也就是上面介紹的SPI協(xié)議;
(2)Dual SPI:只是針對SPI Flash而言,不是針對所有SPI外設(shè)。對于SPI Flash,全雙工并不常用,因此擴展了mosi和miso的用法,讓它們工作在半雙工,用以加倍數(shù)據(jù)傳輸。也就是對于Dual SPI Flash,可以發(fā)送一個命令字節(jié)進入dual mode,這樣MOSI變成SIO0(serial io 0),MISO變成SIO1(serial io 1),這樣一個時鐘周期內(nèi)就能傳輸2個bit數(shù)據(jù),加倍了數(shù)據(jù)傳輸;
(3)Queued SPI Flash:在Dual SPI的基礎(chǔ)上增加了兩根I/O線(SIO2,SIO3),目的是一個時鐘內(nèi)傳輸4個bit,而QSPI就是Queued SPI的簡寫;
總結(jié):Dual SPI和Queued SPI是針對flash的接口,根據(jù)flash工作的特性,將全雙工改為半雙工,提高通信的速率;
2.2、QSPI接口分析
>(1)CS:片選線;
(2)WP(IO2):復(fù)用引腳,WP(write protect):當(dāng)做寫保護引腳;IO2就是當(dāng)做數(shù)據(jù)傳輸引腳;
(3)HOLD(IO3):復(fù)用引腳,做HOLD功能時是暫停QSPI Flash的操作,IO3就是當(dāng)做數(shù)據(jù)傳輸引腳;
總結(jié):QSPI的引腳是功能復(fù)用的,具體時序不去分析,最終要達到的效果是能時序同時4根數(shù)據(jù)線去傳輸數(shù)據(jù);
2.3、QSPI的電路原理圖
(1)上面是SPI flash的電路原理圖;
(2)連接的線:時鐘線、復(fù)位線、片選線、4根數(shù)據(jù)傳輸線;文章來源:http://www.zghlxwxcb.cn/news/detail-812067.html
3、三種SPI協(xié)議的總結(jié)
(1)標(biāo)準SPI是通用的,Dual SPI和QSPI只適用于flash;
(2)標(biāo)準SPI:標(biāo)準4線連接,全雙工,同時收和發(fā);
(3)Dual SPI:標(biāo)準4線連接,半雙工,2根數(shù)據(jù)線,并線發(fā)和收,雙方向切換;
(4)QSPI:標(biāo)準4線連接,半雙工,4根數(shù)據(jù)線,并線發(fā)和收,雙方向切換;文章來源地址http://www.zghlxwxcb.cn/news/detail-812067.html
到了這里,關(guān)于SPI協(xié)議詳解(Standard SPI、Dual SPI和Queued SPI)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!