前言:
接口的存在是使得芯片的設計達到 模塊化 ( modularity ),就像在第一篇文章所講到的,我們可以通過不同的IP組成一個功能完備的芯片(或稱之為 SoC )。
芯片的接口可以分為兩大類:片上通信接口與 片外通信接口 。以AMBA為代表的片上接口主要有靈活,效率高的優勢,而片外接口的選擇則更加廣泛,根據不同的成本需求或是性能需求,能夠選擇的片外通信接口有IIC,SPI等。
今天討論的SPI接口是一種十分常用的片外通信接口,經常作為芯片與片外存儲器(多為 serial nand flash )的通信接口。同時,硬件物理接口也是應屆生面試時被提問最多的問題之一。有意在畢業后從事計算機硬件行業的朋友們可以在準備應聘的時候多多儲備這方面的知識。
SPI接口介紹
SPI是一種串行通信接口,全稱是 Serial Peripheral Interface 。它是一種 full-duplex (全雙工:支持發射端TX與接收端RX同時雙向傳輸數據)接口。最基礎的SPI接口由四根線組成:
- SCLK(Serial Clock)
- SS(Slave Select或CS:Chip Select)
- MOSI(Mater Out Slave In)
- MISO(Mater In Slave Out)
如下圖。
SPI接口pin
1. SCLK:
首先是這根時鐘線,這也是將接口分為 Synchronous (同步接口)與 asynchronous (異步接口)的重要標志。由于異步接口發送與采集數據沒有一個統一控制信號,所以沒法確保發送端與接收端有相同的收發 data rate, 這給現在許多使用同步設計方法的芯片帶來的很多難題,所以這也是目前同步接口更受歡迎的原因。
異步通信接口
同步通信接口
不過當然了,異步接口也有它的好處。可以在數據的起始位和終止位來添加兩個 flag (標記符)來控制數據的接收,而且需要在使用前確保兩個模塊收發數據的速率是相同的。
所以要是有了這個由 Master (一般是一個 microcontroller )發出的CLK給slave,slave端就知道什么時候接受數據了,可以是上升沿也可以是下降沿,一般由datasheet決定。時鐘的頻率也取決于slave能夠正常工作的時鐘頻率范圍,一般在80MHz左右。
2.SS/CS:
因為SPI接口有時候會連有多個Slave(一般不超過三個),所以隨著slave的增加,master端就會需要越來越多的pin口。當Master與slave處于斷鏈狀態時,SS/CS一般是置成高位的,這樣在master決定要給與哪個slave交互的時候就會把相應的SS/CS置低,稱作 active low 。
3.MISO/MOSI:
剩下的幾個接口都是SPI的數據線,在每個時鐘周期內,master都會向slave發送1bit數據,slave也可以同時向master發送1bit數據。所以說假設某個SPI接口正工作在50MHz的時鐘頻率,那么它的數據傳輸速率可以達到50Mbps/100Mbps(隨著數據線的增加SPI的數據傳輸速率還能增大更多)。相較于普通的IIC接口已經高出不少了。這也是為什么對于許多傳感器來說會選擇SPI接口。
多位寬數據pin口的SPI通信接口
其實呢,SPI作為一個常用的外設接口,卻不存在一個標準,因此沒有用于驗證給定產品的接口一致性的基準。。所以SPI可以說是一個 * de facto standard ( 在實踐中被接受,但尚未經過任何正式程序以達成共識的標準,甚至可能沒有公開可用的文檔 )。* * *
A de facto standard :is one that has become accepted in practice but has not undergone any formal process to obtain consensus and may not even have publicly available documentation。
并且在SPI中沒有任何通信流程控制單元,SPI的硬件實現有時候就是靠一個簡單的 shift register ,時鐘這個唯一的控制信號的穩定性至關重要。除此之外,如何確保數據的傳輸是否準確也十分重要,一般只能通過軟件來檢測。在一些 real-time embedded system (實時嵌入式系統)中,軟件必須以比數據到達更快的速度處理接收到的數據。通過接收端的FIFO Buffer,可以緩解此問題。SPI接口中沒有嵌入到錯誤檢測和校正功能中。如果需要,必須在軟件中實現錯誤檢測/糾正。
-
存儲器
+關注
關注
38文章
7492瀏覽量
163843 -
接口
+關注
關注
33文章
8601瀏覽量
151167 -
SPI
+關注
關注
17文章
1706瀏覽量
91591 -
通信接口
+關注
關注
3文章
238瀏覽量
30996
發布評論請先 登錄
相關推薦
評論