SPI總線協議介紹

SPI總線協議介紹

一、技術性能
        SPI接口是Motorola 首先提出的全雙工三線同步串行外圍接口,採用主從模式(Master Slave)架構;支持多slave模式應用,一般僅支持單Master。時鐘由Master控制,在時鐘移位脈衝下,數據按位傳輸,高位在前,低位在後(MSB first);SPI接口有2根單向數據線,爲全雙工通信,目前應用中的數據速率可達幾Mbps的水平。總線結構如下圖所示。

二、接口定義
        SPI接口共有4根信號線,分別是:設備選擇線、時鐘線、串行輸出數據線、串行輸入數據線。

(1)MOSI:主器件數據輸出,從器件數據輸入
(2)MISO:主器件數據輸入,從器件數據輸出
(3)SCLK :時鐘信號,由主器件產生
(4)/SS:從器件使能信號,由主器件控制
三、內部結構

四、 時鐘極性和時鐘相位
        在SPI操作中,最重要的兩項設置就是時鐘極性(CPOL或UCCKPL)和時鐘相位(CPHA或UCCKPH)。時鐘極性設置時鐘空閒時的電平,時鐘相位設置讀取數據和發送數據的時鐘沿。
主機和從機的發送數據是同時完成的,兩者的接收數據也是同時完成的。所以爲了保證主從機正確通信,應使得它們的SPI具有相同的時鐘極性和時鐘相位。

          SPI接口時鐘配置心得:在主設備這邊配置SPI接口時鐘的時候一定要弄清楚從設備的時鐘要求,因爲主設備這邊的時鐘極性和相位都是以從設備爲基準的。因此在時鐘極性的配置上一定要搞清楚從設備是在時鐘的上升沿還是下降沿接收數據,是在時鐘的下降沿還是上升沿輸出數據。

spi四種模式SPI的相位(CPHA)和極性(CPOL)分別可以爲0或1,對應的4種組合構成了SPI的4種模式(mode)


Mode 0 CPOL=0, CPHA=0
Mode 1 CPOL=0, CPHA=1
Mode 2 CPOL=1, CPHA=0
Mode 3 CPOL=1, CPHA=1

時鐘極性CPOL: 即SPI空閒時,時鐘信號SCLK的電平(1:空閒時高電平; 0:空閒時低電平)
時鐘相位CPHA: 即SPI在SCLK第幾個邊沿開始採樣(0:第一個邊沿開始; 1:第二個邊沿開始)



五、傳輸時序
        SPI接口在內部硬件實際上是兩個簡單的移位寄存器,傳輸的數據爲8位,在主器件產生的從器件使能信號和移位脈衝下,按位傳輸,高位在前,低位在後。如下圖所示,在SCLK的下降沿上數據改變,上升沿一位數據被存入移位寄存器。

五、數據傳輸
       在一個SPI時鐘週期內,會完成如下操作:
1) 主機通過MOSI線發送1位數據,從機通過該線讀取這1位數據;
2) 從機通過MISO線發送1位數據,主機通過該線讀取這1位數據。
這是通過移位寄存器來實現的。如下圖所示,主機和從機各有一個移位寄存器,且二者連接成環。隨着時鐘脈衝,數據按照從高位到低位的方式依次移出主機寄存器和從機寄存器,並且依次移入從機寄存器和主機寄存器。當寄存器中的內容全部移出時,相當於完成了兩個寄存器內容的交換。

六、優缺點

       SPI接口具有如下優點:

       1) 支持全雙工操作;

       2) 操作簡單;

       3) 數據傳輸速率較高。

      同時,它也具有如下缺點:

      1) 需要佔用主機較多的口線(每個從機都需要一根片選線);

      2) 只支持單個主機。

      3) 沒有指定的流控制,沒有應答機制確認是否接收到數據。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章