一、概述
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介面在內部硬體實際上是兩個簡單的移位寄存器,傳輸的資料為8位,在主器件產生的從器件使能訊號和移位脈衝下,按位傳輸,高位在前,低位在後。如所示,在SCLK的下降沿上資料改變,上升沿一位元據被存入移位寄存器。
五、資料轉送
在一個SPI刻度內,會完成如下操作:
1) 主機通過MOSI線發送1位元據,從機通過該線讀取這1位元據;
2) 從機通過MISO線發送1位元據,主機通過該線讀取這1位元據。
這是通過移位寄存器來實現的。如所示,主機和從機各有一個移位寄存器,且二者串連成環。隨著時鐘脈衝,資料按照從高位到低位的方式依次移出主機寄存器和從機寄存器,並且依次移入從機寄存器和主機寄存器。當寄存器中的內容全部移出時,相當於完成了兩個寄存器內容的交換。
六、優缺點
SPI介面具有如下優點:
1) 支援全雙工系統操作;
2) 操作簡單;
3) 資料轉送速率較高。
同時,它也具有如下缺點:
1) 需要佔用主機較多的口線(每個從機都需要一根片選線);
2) 只支援單個主機。
3) 沒有指定的流量控制,沒有應答機制確認是否接收到資料。轉自:http://blog.csdn.net/ce123_zhouwei/article/details/6897293