arm spi 介面概述
SPI介面
SPI(Serial Peripheral Interface--序列外設介面)匯流排系統是一種同步序列外設介面,
它可以使MCU與各種外圍裝置以序列方式進行通訊以交換資訊。SPI有三個暫存器分別為:
控制暫存器SPCR,狀態暫存器SPSR,資料暫存器SPDR。外圍裝置包括FLASHRAM、網路控制器、LCD顯示驅動器、A/D轉換器和MCU等。
SPI匯流排系統可直接與各個廠家生產的多種標準外圍器件直接介面,該介面一般使用4條線:
序列時鐘線(SCLK)、主機輸入/從機輸出資料線MISO、主機輸出/從機輸入資料線MOSI和
低電平有效的從機選擇線NSS(有的SPI介面晶片帶有中斷訊號線
SPI介面的全稱是"Serial Peripheral Interface",意為序列外圍介面,是Motorola首先在其MC68HCXX系列處理器上定義的。
SPI介面主要應用在EEPROM、FLASH、實時時鐘、AD轉換器,還有數字訊號處理器和數字訊號解碼器之間。
SPI介面是在CPU和外圍低速器件之間進行同步序列資料傳輸,在主器件的移位脈衝下,資料按位傳輸,低位在前,高位在後,為全雙工通訊,
資料傳輸速度總體來說比I2C匯流排要快,速度可達到幾Mbps。
特點:
訊號線少,協議簡單,相對資料速率高
缺點:
沒有指定的流控制,沒有應答機制確認是否接收到資料。
介面訊號:
(1)MOSI – 主器件資料輸出,從器件資料輸入
(2)MISO – 主器件資料輸入,從器件資料輸出
(3)SCLK –時鐘訊號,由主器件產生,最大為fPCLK/2,從模式頻率最大為fCPU/2
(4)NSS – 從器件使能訊號,由主器件控制,有的IC會標註為CS(Chip select)
在點對點的通訊中,SPI介面不需要進行定址操作,且為全雙工通訊,顯得簡單高效。在多個從器件的系統中,
每個從器件需要獨立的使能訊號,硬體上比I2C系統要稍微複雜一些。
SPI介面在內部硬體實際上是兩個簡單的移位暫存器,傳輸的資料為8位,在主器件產生的從器件使能訊號和移位脈衝下,
按位傳輸,高位在前,低位在後。
如下圖所示,在SCLK的上升沿上資料改變,同時一位資料被存入移位暫存器。