SPI

SPI

SPI是串列外設接口(Serial Peripheral Interface)的縮寫。SPI,是一種高速的,全雙工,同步的通信匯流排,並且在晶片的管腳上只占用四根線,節約了晶片的管腳,同時為PCB的布局上節省空間,提供方便,正是出於這種簡單易用的特性,如今越來越多的晶片集成了這種通信協定,比如AT91RM9200。

基本介紹

  • 中文名:串列外設接口
  • 外文名:Serial Peripheral Interface
  • 特性:支持全雙工
  • 縮寫:SPI
基本協定,SPI協定概括,協定舉例,用戶邏輯,SPI原理,時序圖,同步串列口,硬體示意圖,性能特點,協定舉例,性能補充,協定心得,舉例,其他SPI,績效指數,SPI公司,種豬遺傳,軟體過程改進,SDH物理接口,SMT行業,業餘兵棋界,掃瞄器參數,農業遙感,蛋白尿指數,其他含義簡介,

基本協定

SPI協定概括

SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(單向傳輸時)。也是所有基於SPI的設備共有的,它們是SDI(數據輸入)、SDO(數據輸出)、SCLK(時鐘)、CS(片選)。
(1)SDI – SerialData In,串列數據輸入;
(2)SDO – SerialDataOut,串列數據輸出;
(3)SCLK – Serial Clock,時鐘信號,由主設備產生;
(4)CS – Chip Select,從設備使能信號,由主設備控制。
其中,CS是從晶片是否被主晶片選中的控制信號,也就是說只有片選信號為預先規定的使能信號時(高電位或低電位),主晶片對此從晶片的操作才有效。這就使在同一條匯流排上連線多個SPI設備成為可能。
接下來就負責通訊的3根線了。通訊是通過數據交換完成的,這裡先要知道SPI是串列通訊協定,也就是說數據是一位一位的傳輸的。這就是SCLK時鐘線存在的原因,由SCLK提供時鐘脈衝,SDI,SDO則基於此脈衝完成數據傳輸。數據輸出通過 SDO線,數據在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數據傳輸,輸入也使用同樣原理。因此,至少需要8次時鐘信號的改變(上沿和下沿為一次),才能完成8位數據的傳輸。
SCLK信號線只由主設備控制,從設備不能控制信號線。同樣,在一個基於SPI的設備中,至少有一個主控設備。這樣傳輸的特點:這樣的傳輸方式有一個優點,與普通的串列通訊不同,普通的串列通訊一次連續傳送至少8位數據,而SPI允許數據一位一位的傳送,甚至允許暫停,因為SCLK時鐘線由主控設備控制,當沒有時鐘跳變時,從設備不採集或傳送數據。也就是說,主設備通過對SCLK時鐘線的控制可以完成對通訊的控制。SPI還是一個數據交換協定:因為SPI的數據輸入和輸出線獨立,所以允許同時完成數據的輸入和輸出。不同的SPI設備的實現方式不盡相同,主要是數據改變和採集的時間不同,在時鐘信號上沿或下沿採集有不同定義,具體請參考相關器件的文檔。
最後,SPI接口的一個缺點:沒有指定的流控制,沒有應答機制確認是否接收到數據。
SPI的片選可以擴充選擇16個外設,這時PCS輸出=NPCS,說NPCS0~3接4-16解碼器,這個解碼器是需要外接4-16解碼器,解碼器的輸入為NPCS0~3,輸出用於16個外設的選擇。

協定舉例

SPI是一個環形匯流排結構,由ss(cs)、sck、sdi、sdo構成,主要是在sck的控制下,兩個雙向移位暫存器進行數據交換。
假設下面的8位暫存器裝的是待傳送的數據10101010,上升沿傳送、下降沿接收、高位先傳送。
那么第一個上升沿來的時候 數據將會是sdo=1;暫存器=0101010x。下降沿到來的時候,sdi上的電平將鎖存到暫存器中去,那么這時暫存器=0101010sdi,這樣在 8個時鐘脈衝以後,兩個暫存器的內容互相交換一次。這樣就完成了一個spi時序。
舉例:假設主機和從機初始化就緒:並且主機的sbuff(串列口收發緩衝器)=0xaa,從機的sbuff(串列口收發緩衝器)=0x55,下面將分步對spi的8個時鐘周期的數據情況演示一遍:
這樣就完成了兩個暫存器8位的交換,上面的上表示上升沿、下表示下降沿,sdi、sdo相對於主機而言的。其中ss引腳作為主機的時候,從機可以把它拉低被動選為從機,作為從機的時候,可以作為片選腳用。根據以上分析,一個完整的傳送周期是16位,即兩個位元組,因為,首先主機要傳送命令過去,然後從機根據主機的命令準備數據,主機在下一個8位時鐘周期才把數據讀回來。
SPI 匯流排是Motorola公司推出的三線同步接口,同步串列3線方式進行通信:一條時鐘線SCK,一條數據輸出線MOSI,一條數據輸入線MISO;用於CPU與各種外圍器件進行全雙工、同步串列通訊。SPI主要特點有:可以同時發出和接收串列數據;可以當作主機或從機工作;提供頻率可程式時鐘;傳送結束 中斷標誌;寫衝突保護;匯流排競爭保護等。下圖示出SPI匯流排工作的四種方式,其中使用的最為廣泛的是SPI0和SPI3方式 (實線表示):
SPI匯流排四種工作方式SPI匯流排四種工作方式
SPI模組為了和外設進行數據交換,根據外設工作要求,其輸出串列同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協定沒有重大的影響。如果CPOL=0,串列同步時鐘的空閒狀態為低電平;SPI主模組和與之通信的外設時鐘相位和極性應該一致。SPI接口時序如圖3、圖4所示。
SPI

用戶邏輯

該模組針對用戶不同的套用來設計,本質上就是用戶的具體業務套用,與SPI-4接口沒有直接關係。當套用支持多個連線埠時,這部分就顯得至關重要。下面以支持兩個連線埠的套用來說明用戶邏輯的設計技巧。
(1)Sink Core的用戶邏輯
連線埠為兩個時,用戶邏輯就需要用兩個不同的FIFO根據連線埠的地址等來分別快取用戶的兩個業務數據.同時根據FIFO的情況來發出流控信息給SPI4數據接口,如圖1所示。
圖1 Sink Core 兩個連線埠的用戶邏輯
圖1圖1
(2) Source Core的用戶邏輯
當連線埠為兩個時,用戶邏輯就需要根據流控信息和兩個不同的FffiOffJ情況來做仲裁,諛定哪個用戶邏輯FIFO需要傳送給SPI4數據接口,如圖2所示.
圖2 Source Core2個連線埠的用戶邏輯
圖2圖2

SPI原理

SPI目前有3種規格,如右圖所示為其模型。
3種SPI的處理流程大同小異,以目前使用最多的SPI-4為例來說明SPI的原理。它在傳送接口和接收接口都有各自的數據通道和流控狀態信息通道,其數據通道和流控狀態信息通道是獨立的並且是點對點通信。數據是以包的形式傳送,根據數據包中的內嵌地址可支持高達256個連線埠,以下分別說明基本協定及數據通道和流控狀態信息的處理過程。
圖

時序圖

SPI時序圖詳解---SPI接口在模式0下輸出第一位數據的時刻。
SPI時序圖詳解SPI時序圖詳解
SPI接口有四種不同的數據傳輸時序,取決於CPOL和CPHL這兩位的組合。圖1中表現了這四種時序,時序與CPOL、CPHA的關係也可以從圖中看出。
CPOL是用來決定SCK時鐘信號空閒時的電平,CPOL=0,空閒電平為低電平,CPOL=1時,空閒電平為高電平。CPHA是用來決定採樣時刻的,CPHA=0,在每個周期的第一個時鐘沿採樣,CPHA=1,在每個周期的第二個時鐘沿採樣。

同步串列口

SPI:高速同步串列口。是一種標準的四線同步雙向串列匯流排。
SPI,是英語Serial Peripheral interface的縮寫,顧名思義就是串列外圍設備接口。是Motorola首先在其MC68HCXX系列處理器上定義的。SPI接口主要套用在 EEPROM,FLASH,實時時鐘,AD轉換器,還有數位訊號處理器和數位訊號解碼器之間。SPI,是一種高速的,全雙工,同步的通信匯流排,並且在晶片的管腳上只占用四根線,節約了晶片的管腳,同時為PCB的布局上節省空間,提供方便,正是出於這種簡單易用的特性,如今越來越多的晶片集成了這種通信協定,比如AT91RM9200。
SPI匯流排系統是一種同步串列外設接口,它可以使MCU與各種外圍設備以串列方式進行通信以交換信息。外圍設定FLASHRAM、網路控制器、LCD顯示驅動器、A/D轉換器和MCU等。SPI匯流排系統可直接與各個廠家生產的多種標準外圍器件直接接口,該接口一般使用4條線:串列時鐘線(SCLK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS(有的SPI接口晶片帶有中斷信號線INT、有的SPI接口晶片沒有主機輸出/從機輸入數據線MOSI)。
SPI的通信原理很簡單,它以主從方式工作,這種模式通常有一個主設備和一個或多個從設備,需要至少4根線,事實上3根也可以(用於單向傳輸時,也就是半雙工方式)。也是所有基於SPI的設備共有的,它們是SDI(數據輸入)、SDO(數據輸出)、SCLK(時鐘)、CS(片選)。
(1)MOSI– SPI匯流排主機輸出/ 從機輸入(SPI Bus Master Output/Slave Input);
(2)MISO– SPI匯流排主機輸入/ 從機輸出(SPI Bus Master Input/Slave Output);
(3)SCLK –時鐘信號,由主設備產生;
(4)CS – 從設備使能信號,由主設備控制(Chip select),有的IC此pin腳叫SS。
其中CS是控制晶片是否被選中的,也就是說只有片選信號為預先規定的使能信號時(高電位或低電位),對此晶片的操作才有效。這就允許在同一匯流排上連線多個SPI設備成為可能。
接下來就負責通訊的3根線了。通訊是通過數據交換完成的,這裡先要知道SPI是串列通訊協定,也就是說數據是一位一位的傳輸的。這就是SCLK時鐘線存在的原因,由SCK提供時鐘脈衝,SDI,SDO則基於此脈衝完成數據傳輸。數據輸出通過 SDO線,數據在時鐘上升沿或下降沿時改變,在緊接著的下降沿或上升沿被讀取。完成一位數據傳輸,輸入也使用同樣原理。這樣,在至少8次時鐘信號的改變(上沿和下沿為一次),就可以完成8位數據的傳輸。
點對點的通信中,SPI接口不需要進行定址操作,且為全雙工通信,顯得簡單高效。在多個從設備的系統中,每個從設備需要獨立的使能信號,硬體上比I2C系統要稍微複雜一些。

硬體示意圖

在多個從器件的系統中,每個從器件需要獨立的使能信號,硬體上比I2C系統要稍微複雜一些。
SPI接口在內部硬體實際上是兩個簡單的移位暫存器,傳輸的數據為8位,在主器件產生的從器件使能信號和移位脈衝下,按位傳輸,高位在前,低位在後。如下圖所示,在SCLK的下降沿上數據改變,同時一位數據被存入移位暫存器。

性能特點

AT91RM9200的SPI接口主要由4個引腳構成:SPICLK、MOSI、MISO及 NSS,其中SPICLK是整個SPI匯流排的公用時鐘,MOSI、MISO作為主機,從機的輸入輸出的標誌,MOSI是主機的輸出,從機的輸入,MISO 是主機的輸入,從機的輸出。NSS是從機的標誌管腳,在互相通信的兩個SPI匯流排的器件,NSS管腳的電平低的是從機,相反NSS管腳的電平高的是主機。在一個SPI通信系統中,必須有主機。SPI匯流排可以配置成單主單從,單主多從,互為主從。
SPI的片選可以擴充選擇16個外設,這時PCS輸出=NPCS,說NPCS0~3接4-16解碼器,這個解碼器是需要外接4-16解碼器,解碼器的輸入為NPCS0~3,輸出用於16個外設的選擇。
SPI接口的一個缺點:沒有指定的流控制,沒有應答機制確認是否接收到數據。

協定舉例

SPI是一個環形匯流排結構,由ss(cs)、sck、sdi、sdo構成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位暫存器進行數據交換。
假設下面的8位暫存器裝的是待傳送的數據10101010,上升沿傳送、下降沿接收、高位先傳送。
那么第一個上升沿來的時候 數據將會是sdo=1;暫存器中的10101010左移一位,後面補入送來的一位未知數x,成了0101010x。下降沿到來的時候,sdi上的電平將鎖存到暫存器中去,那么這時暫存器=0101010sdi,這樣在 8個時鐘脈衝以後,兩個暫存器的內容互相交換一次。這樣就完成了一個spi時序。

性能補充

上文中最後一句話:SPI主模組和與之通信的外設備時鐘相位和極性應該一致。個人理解這句話有2層意思:其一,主設備SPI時鐘和極性的配置應該由外設來決定;其二,二者的配置應該保持一致,即主設備的SDO同從設備的SDO配置一致,主設備的SDI同從設備的SDI配置一致。因為主從設備是在SCLK的控制下,同時傳送和接收數據,並通過2個雙向移位暫存器來交換數據。工作原理演示如下圖:
上升沿主機SDO傳送數據1,同時從設備SDO傳送數據0;緊接著在SCLK的下降沿的時候從設備的SDI接收到了主機傳送過來的數據1,同時主機也接收到了從設備傳送過來的數據0。

協定心得

SPI接口時鐘配置心得:在主設備這邊配置SPI接口時鐘的時候一定要弄清楚從設備的時鐘要求,因為主設備這邊的時鐘極性和相位都是以從設備為基準的。因此在時鐘極性的配置上一定要搞清楚從設備是在時鐘的上升沿還是下降沿接收數據,是在時鐘的下降沿還是上升沿輸出數據。但要注意的是,由於主設備的SDO連線從設備的SDI,從設備的SDO連線主設備的SDI,從設備SDI接收的數據是主設備的SDO傳送過來的,主設備SDI接收的數據是從設備SDO傳送過來的,所以主設備這邊SPI時鐘極性的配置(即SDO的配置)跟從設備的SDI接收數據的極性是相反的,跟從設備SDO傳送數據的極性是相同的。下面這段話是Sychip Wlan8100 Module Spec上說的,充分說明了時鐘極性是如何配置的:
The 81xx module will always input data bits at the rising edge of the clock,and the host will always output data bits on the falling edge of the clock.
意思是:主設備在時鐘的下降沿傳送數據,從設備在時鐘的上升沿接收數據。因此主設備這邊SPI時鐘極性應該配置為下降沿有效。
又如,下面這段話是摘自LCD Driver IC SSD1289:
SDI is shifted into 8-bit shift register on every rising edge of SCK in the order of data bit 7,data bit 6 …… data bit 0。
意思是:從設備SSD1289在時鐘的上升沿接收數據,而且是按照從高位到低位的順序接收數據的。因此主設備的SPI時鐘極性同樣應該配置為下降沿有效。
時鐘極性和相位配置正確後,數據才能夠被準確的傳送和接收。因此應該對照從設備的SPI接口時序或者Spec文檔說明來正確配置主設備的時鐘。

舉例

假設主機和從機初始化就緒:並且主機的sbuff=0xaa,從機的sbuff=0x55,下面將分步對spi的8個時鐘周期的數據情況演示一遍:假設上升沿傳送數據
脈衝主機sbuff 從機sbuff sdi sdo
0 10101010 01010101 0 0
1上 0101010x 1010101x 0 1
1下 01010100 10101011 0 1
2上 1010100x 0101011x 1 0
2下 10101001 01010110 1 0
3上 0101001x 1010110x 0 1
3下 01010010 10101101 0 1
4上 1010010x 0101101x 1 0
4下 10100101 01011010 1 0
5上 0100101x 1011010x 0 1
5下 01001010 10110101 0 1
6上 1001010x 0110101x 1 0
6下 10010101 01101010 1 0
7上 0010101x 1101010x 0 1
7下 00101010 11010101 0 1
8上 0101010x 1010101x 1 0
8下 01010101 10101010 1 0
這樣就完成了兩個暫存器8位的交換,上面的上表示上升沿、下表示下降沿,sdi、sdo相對於主機而言的。其中ss引腳作為主機的時候,從機可以把它拉底被動選為從機,作為從機的是時候,可以作為片選腳用。根據以上分析,一個完整的傳送周期是16位,即兩個位元組,因為,首先主機要傳送命令過去,然後從機根據主機的命令準備數據,主機在下一個8位時鐘周期才把數據讀回來。SPI匯流排是Motorola公司推出的三線同步接口,同步串列3線方式進行通信:一條時鐘線SCK,一條數據輸入線MISO,一條數據輸出線MOSI;用於CPU與各種外圍器件進行全雙工、同步串列通訊。SPI主要特點有:可以同時發出和接收串列數據;可以當作主機或從機工作;提供頻率可程式時鐘;傳送結束 中斷標誌;寫衝突保護;匯流排競爭保護等。下圖示出SPI匯流排工作的四種方式,其中使用的最為廣泛的是SPI0和SPI3方式 (實線表示):
SPI匯流排四種工作方式 SPI 模組為了和外設進行數據交換,根據外設工作要求,其輸出串列同步時鐘極性和相位可以進行配置,時鐘極性(CPOL)對傳輸協定沒有重大的影響。如果 CPOL=0,串列同步時鐘的空閒狀態為低電平;如果CPOL=1,串列同步時鐘的空閒狀態為高電平。時鐘相位(CPHA)能夠配置用於選擇兩種不同的傳輸協定之一進行數據傳輸。如果CPHA=0,在串列同步時鐘的第一個跳變沿(上升或下降)數據被採樣;如果CPHA=1,在串列同步時鐘的第二個跳變沿(上升或下降)數據被採樣。SPI主模組和與之通信的外設備時鐘相位和極性應該一致。

其他SPI

績效指數

SPI(schedule performance index)=BCWP/BCWS
其中,BCWP--已完成工作預算費用(掙值)=已完工程量×預算單價;BCWS--計畫完成工作預算費用 =計畫工程量×預算單價;SPI>1說明進度超前,符合要求;SPI<1說明進度延遲,應採取措施糾正!

SPI公司

Sales Performance International(SPI)是解決方案銷售(Solution Selling&reg;方法的唯一智慧財產權所有者——全球備受承認的銷售培訓可為銷售人員和管理專業人士提供成熟、完整、端到端的專業發展計畫。
SPI亞洲總部位於新加坡,通過與顧客精誠合作,在亞洲地區開展了廣泛而深入的工作,通過提供戰略、運營及戰術層次上的解決方案來幫助客戶提升銷售業績。SPI成立於1988 年,已幫助多家公司成功地從銷售產品轉變為行銷和銷售高價值的解決方案,是業內的領導者。SPI已在50個以上的國家內使用14種以上的語言為超過60萬名的銷售及管理專業人士提供過培訓,具備足夠的專業技能來為客戶提供合適的解決方案,可幫助客戶實現可衡量及可持續的收入增長和可執行的銷售業績提升。

種豬遺傳

SPI,母豬繁殖指數(Swine Productivity Index),也叫繁殖經濟效益指數。

軟體過程改進

SPI: Software Process Improvement.軟體過程改進。是軟體企業項目過程質量的改進,CMM,ISO9000-3說的就是這個。

SDH物理接口

SPI:SDH Physical Interface.SDH物理接口。SPI是設備和光路的接口,主要完成光/電變換,電/光變換,提取線路定時,以及相應告警的檢測。

SMT行業

在SMT行業中指的是錫膏檢測設備(Solder Paste Inspection)的英文簡稱,用於錫膏印刷後檢測錫膏的高度、體積、面積、短路和偏移量。

業餘兵棋界

SPI公司是著名的兵棋設計人鄧尼根在離開阿瓦隆山公司後開辦的兵棋設計公司,旗下有多部雜誌和著名兵棋。為“第三世界設計”和阿瓦隆山公司成美國兵棋界三巨頭之勢。後被設計《龍與地下城》的桌遊公司收購,往日威力減弱了很多。

掃瞄器參數

SPI, samples per inch,表示每英寸中所含的分離像素點的個數。
掃瞄器為了獲得最佳效果,需要根據輸出設備(雷射印表機、平板印刷機、直接數碼印刷)對它的SPI進行調整。通常確定掃描照片spi的公式是由網線版(halftone screen)或印表機嘗試使用的網線頻率(screen ruling)來決定。

農業遙感

標準化降水指數SPI(Standardized Precipitation Index):由於不同時間、不同地區降水量變化幅度很大,直接用降水量很難在不同時空尺度上相互比較,而且降水分布是一種偏態分布,不是常態分配,所以在降水分析中,採用r分布機率來描述降水量的變化,然後再經正態標準化求得SPI值。
乾旱指標的發展經歷了由最初只是反映降水多少的簡單指標到如今建立針對某一具體問題的複雜模型(如PDSI、KBDI)。中國科學工作者在乾旱指標的制定和套用方面作了大量工作,但是由於乾旱的複雜性和影響的廣泛性,迄今為止還沒有建立起完善統一的乾旱指標體系,不同地區、不同領域使用不同尺度的乾旱指標,這樣大大降低了乾旱等級的可比性和乾旱監測的連續性。SPI可以計算不同時間尺度的指標值,滿足多種水分監測需求,可以為不同部門和領域提供一個統一的乾旱指標。
SPI同z指數一樣存在因不涉及乾旱機理而產生的不足。首先,由於SPI的計算特性,不同地點的乾旱等級頻度相同,即假定了所有地點發生旱澇極端事件的機率相同,無法標識旱澇頻發地區。其次,除由於降水偏少影響以外,氣候變暖蒸發加大也是造成乾旱的重要因素(方修琦等,1997),而SPI沒有考慮氣溫、蒸發對乾旱的影響。最後,SPI值的計算是建立在長nCfnq序列基礎上的,其單月值是在該時間序列同一時期平均水平上的反映。與濕季同樣多的甚至是少的降水量在旱季的sPI值會大得多。

蛋白尿指數

參考值:正常情況:SPI<0.1表示選擇性好 SPI0.1~0.2表示選擇性一般 SPI>0.2表示選擇性差。
臨床意義:當尿中排出大分子IgG的量少時,表示選擇性好。相反,表示選擇性差。

其他含義簡介

一、SPI 是英文Software Process Improvement的縮寫,中文意思是軟體過程的改進。它是CMM(還有其他能力模型)中的一個重要概念,CMM模型的目的就是要改進一個組織的過程,提高過程能力,所以叫做SPI-軟體過程改進
二、SPI 是英文Service Provider Interface的縮寫。中文意思是服務提供商接口。滿足某種服務標準的供應商提供的符合該標準的應用程式接口,SPI應該和該服務的API標準是兼容的,應用程式一般應該是基於API編寫,除非是SPI中包含API中沒有提供的功能而又必須使用。
三、SPI:Standardized Precipitation Index 標準化降水指數,是一種用伽馬分布來擬合降雨量然後將積累機率等機率轉換成標準常態分配對應值的一種乾旱指數。
四、SPI 是英文Single Program Initiation的縮寫。中文意思是單個程式啟動。
五、SPI:Security Parameter Index,安全參數索引。IPSec協定基本概念之一。是一個32比特的數值,在每一個IPSec報文中都攜帶該值。SPI、IP目的地址、安全協定號三者結合起來共同構成一個三元組,來唯一標識一個特定的安全聯盟(Security Association)。
六、SPI理論:心理學中在記憶部分,SPI是SERIAL(記憶系統的編碼是串列的),PARALLEL(存儲是並行的),INDEPENDENT(提取是獨立的)的縮寫。在1995年,由Tulving提出,試圖將記憶系統和記憶過程的概念統一到一個更綜合的框架中。
七、SPI----Standard Process Instruction標準作業指導。
八、SPI The Society of the Plastics Industry,Inc 美國塑膠工業協會。
九、SPI Soybean Protein Isolate,大豆分離蛋白
十、SPI:stitch per inch 針/英寸,服裝專業用語。
十一、SPI:進度績效指數,掙值與計畫價值之比,反應了項目團隊利用時間的效率

相關詞條

熱門詞條

聯絡我們