串列外圍設備接口

串列外圍設備接口

串列外圍設備接口,即SPI,是英語Serial Peripheral interface的縮寫。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要套用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數位訊號處理器和數位訊號解碼器之間。SPI,是一種高速的,全雙工,同步的通信匯流排,並且在晶片的管腳上只占用四根線,節約了晶片的管腳,同時為PCB的布局上節省空間,提供方便,正是出於這種簡單易用的特性,現在越來越多的晶片集成了這種通信協定,比如AT91RM9200。

概述

串列外圍設備接口 串列外圍設備接口

SPI匯流排系統是一種同步串列外設接口,它可以使MCU與各種外圍設備以串列方式進行通信以交換信息。外圍設定FLASHRAM、網路控制器、LCD顯示驅動器、A/D轉換器和MCU等。SPI匯流排系統可直接與各個廠家生產的多種標準外圍器件直接接口,該接口一般使用4條線:串列時鐘線(SCK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS(有的SPI接口晶片帶有中斷信號線INT或INT、有的SPI接口晶片沒有主機輸出/從機輸入數據線MOSI)。SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基於SPI的設備共有的,它們是SDI(數據輸入),SDO(數據輸出),SCK(時鐘),CS(片選)。

(1)SDO – 主設備數據輸出,從設備數據輸入

(2)SDI – 主設備數據輸入,從設備數據輸出

(3)SCLK – 時鐘信號,由主設備產生

SPI的主從結構 SPI的主從結構

(4)CS – 從設備使能信號,由主設備控制

其中CS是控制晶片是否被選中的,也就是說只有片選信號為預先規定的使能信號時(高電位或低電位),對此晶片的操作才有效。這就允許在同一匯流排上連線多個SPI設備成為可能。

接下來就負責通訊的3根線了。通訊是通過數據交換完成的,這裡先要知道SPI是串列通訊協定,也就是說數據是一位一位的傳輸的。這就是SCK時鐘線存在的原因,由SCK提供時鐘脈衝,SDI,SDO則基於此脈衝完成數據傳輸。數據輸出通過 SDO線,數據在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數據傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數據的傳輸。

要注意的是,SCK信號線只由主設備控制,從設備不能控制信號線。同樣,在一個基於SPI的設備中,至少有一個主控設備。這樣傳輸的特點:這樣的傳輸方式有一個優點,與普通的串列通訊不同,普通的串列通訊一次連續傳送至少8位數據,而SPI允許數據一位一位的傳送,甚至允許暫停,因為SCK時鐘線由主控設備控制,當沒有時鐘跳變時,從設備不採集或傳送數據。也就是說,主設備通過對SCK時鐘線的控制可以完成對通訊的控制。SPI還是一個數據交換協定:因為SPI的數據輸入和輸出線獨立,所以允許同時完成數據的輸入和輸出。不同的SPI設備的實現方式不盡相同,主要是數據改變和採集的時間不同,在時鐘信號上沿或下沿採集有不同定義,具體請參考相關器件的文檔。

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

優缺點

SPI接口具有如下優點:

1) 支持全雙工操作;

2) 操作簡單;

3) 數據傳輸速率較高。

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

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

2) 只支持單個主機。

3) 沒有指定的流控制,沒有應答機制確認是否接收到數據。

AT91RM9200的SPI接口主要由4個引腳構成:SPICLK、MOSI、MISO及 /SS,其中SPICLK是整個SPI匯流排的公用時鐘,MOSI、MISO作為主機,從機的輸入輸出的標誌,MOSI是主機的輸出,從機的輸入,MISO 是主機的輸入,從機的輸出。/SS是從機的標誌管腳,在互相通信的兩個SPI匯流排的器件,/SS管腳的電平低的是從機,相反/SS管腳的電平高的是主機。在一個SPI通信系統中,必須有主機。SPI匯流排可以配置成單主單從,單主多從,互為主從。

SPI的片選可以擴充選擇16個外設,這時PCS輸出=NPCS,說NPCS0~3接4-16解碼器,這個解碼器是需要外接4-16解碼器,解碼器的輸入為NPCS0~3,輸出用於16個外設的選擇。

相關詞條

相關搜尋

熱門詞條

聯絡我們