1. 程式人生 > >SPI淺談

SPI淺談

轉載地址:http://blog.sina.com.cn/s/blog_50cfd0fc0101flsn.html

轉載地址:http://blog.csdn.net/ce123/article/details/6897293

SPI介面介紹(轉)

   SPI介面的全稱是"Serial Peripheral Interface",意為序列外圍介面,是Motorola首先在其MC68HCXX系列處理器上定義的。SPI介面主要應用在EEPROM,FLASH,實時時鐘,AD轉換器,還有數字訊號處理器和數字訊號解碼器之間。

我的筆記:這裡只需要知道SPI英文名字是Serial Peripheral Interface,是由摩托羅拉開發的,應用方面見的多了,自然就知道的多了。


   SPI介面是在CPU和外圍低速器件之間進行同步序列資料傳輸,在主器件的移脈衝下,資料按位傳輸,高位在前,地位在後,為全雙工通訊,資料傳輸速度總體來說比I2C匯流排要快,速度可達到幾Mbps。

我的筆記:SPI匯流排傳輸可以彌補CPU與外圍裝置間的速度差異。傳輸資料時,按位傳輸,高位在前,地位在後,一般頻率設定為5Mbps。

時鐘極性和時鐘相位

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

SPI介面時鐘配置心得:在主裝置這邊配置SPI介面時鐘的時候一定要弄清楚從裝置的時鐘要求,因為主裝置這邊的時鐘極性和相位都是以從裝置為基準的。因此在時鐘極性的配置上一定要搞清楚從裝置是在時鐘的上升沿還是下降沿接收資料,是在時鐘的下降沿還是上升沿輸出資料。

我的筆記:SPI匯流排的兩個重要屬性:時鐘極性和時鐘相位,即SPI的工作模式,共有4種,具體使用那種方式方式需要參考晶片手冊。


   SPI介面是以主從方式工作的,這種模式通常有一個主器件和一個或多個從器件,其介面包括以下四種訊號:
(1)MOSI – 主器件資料輸出,從器件資料輸入
(2)MISO – 主器件資料輸入,從器件資料輸出
(3)SCLK – 時鐘訊號,由主器件產生
(4)SS/CS  – 從器件使能訊號,由主器件控制

SPI、I2C、UART三種序列匯流排協議的區別和SPI介面介紹(轉) - hailany - hailany 的部落格

   在點對點的通訊中,SPI介面不需要進行定址操作,且為全雙工通訊,顯得簡單高效。
      在多個從器件的系統中,每個從器件需要獨立的使能訊號,硬體上比I2C系統要稍微複雜一些。

SPI、I2C、UART三種序列匯流排協議的區別和SPI介面介紹(轉) - hailany - hailany 的部落格

我的筆記:上面是SPI(主從)一對多的硬體設計,除了使能訊號,其他的線可以共用。注意這裡所有的從裝置工作於同一模式下。

我的筆記:下面這些是SPI硬體的內部設計,可以瞭解,實現的話可以使用FPGA模擬一下。

SPI介面在內部硬體實際上是兩個簡單的移位暫存器,傳輸的資料為8位,在主器件產生的從器件使能訊號和移位脈衝下,按位傳輸,高位在前,低位在後。如下圖所示,在SCLK的下降沿上資料改變,同時一位資料被存入移位暫存器。

SPI、I2C、UART三種序列匯流排協議的區別和SPI介面介紹(轉) - hailany - hailany 的部落格

 SPI介面內部硬體圖示:

SPI、I2C、UART三種序列匯流排協議的區別和SPI介面介紹(轉) - hailany - hailany 的部落格

 最後,SPI介面的一個缺點:沒有指定的流控制,沒有應答機制確認是否接收到資料。