在標準SPI配置下,SPI設備除了包含基本的SPI特性外,還具備以下一些標準功能,這些功能如下所示:
- 支持FPGA內部的多主設備配置,其中使用單獨的_I(輸入)、_O(輸出)、_T(三態)表示三態端口。這種配置允許在FPGA內部有多個主設備共享SPI總線,通過三態驅動器來實現。
- 在默認配置下支持N次8位數據字符的傳輸。默認的SPI模式實現了通過寫入SPI SSR(SPI狀態/控制寄存器)來手動控制SS(從設備選擇)輸出的功能。
? ? ? ?此模式只能與外部從屬設備一起使用。
? ? ? ?在SPI通信中,當FIFO被禁用時,可以選擇一個可選操作,使得主設備在每次傳輸8位字符時? ? ? ? ?自動切換SS(從設備選擇)輸出。這是通過SPI控制寄存器(SPICR)中的某個特定位來實? ? ? ? ? ?現。
? ? ? ?當主設備需要向特定的從設備發送數據時,它會將相應的SS線拉低(通常表示選中該從設? ? ? ? ? ? 備)。然后,在每個8位字符傳輸完成后,主設備會自動切換SS線,以便選擇下一個從設備? ? ? ? ? ? 或繼續與當前從設備通信。
- 支持多主設備環境,這通常是通過三態驅動器來實現。在多主設備環境中,可能存在多個主設備試圖同時訪問同一從設備的情況,因此需要軟件仲裁來解決可能的沖突。
- 支持多從設備環境,能夠自動生成額外的從設備選擇輸出信號,以便主設備可以選擇性地與不同的從設備進行通信。
- 在主模式下,SPI控制器支持的最大時鐘速率可達AXI時鐘速率的一半。
- 在從模式下,由于AXI和SPI時鐘之間的同步方法,最大時鐘速率降至AXI時鐘速率的四分之一。注意,在從模式下不支持
C_SCK_RATIO = 2
的配置。當配置為從模式時,需要確保AXI和外部時鐘信號是對齊的。 - 具有一個可配置的波特率生成器,用于生成SPI時鐘信號。這允許用戶根據應用需求調整SPI通信的速率。
- 不支持WCOL(寫沖突)標志,因此WCOL不能用作寫沖突錯誤指示。在SPI數據傳輸進行中時,不應向發送寄存器寫入數據。
- 支持背靠背(back-to-back)事務,即在不中斷的情況下進行多個字節、半字或字的傳輸。這要求發送FIFO在傳輸過程中始終不為空,接收FIFO始終不為滿。
- 所有SPI傳輸都是全雙工的,意味著主設備向從設備發送一個8位數據字符的同時,從設備也在向主設備發送一個獨立的8位數據字符。這可以視為一個循環的16位移位寄存器,其中SPI主設備中的8位移位寄存器與SPI從設備中的另一個8位移位寄存器相連。
在SPI多主設備配置中,連接到給定從設備(第N個設備)的SPI總線通常由以下四根線組成:
-
Serial Clock (SCK): 串行時鐘線,用于同步主設備和從設備之間的數據傳輸。所有連接到SPI總線的從設備和主設備都共享這根線。
-
IO0 (Master Out, Slave In (MOSI)): 主設備數據輸出,從設備數據輸入線。主設備通過這根線發送數據到從設備,而從設備通過監聽這根線來接收數據。同樣,這根線也是所有連接到SPI總線的設備所共享的。
-
IO1 (Master In, Slave Out (MISO)): 主設備數據輸入,從設備數據輸出線。從設備通過這根線發送數據到主設備,主設備通過監聽這根線來接收數據。這根線也是共享的。
-
Slave Select (SS(N)): 從設備選擇線,也稱為片選線或NSS(Negative Slave Select)。在SPI多主配置中,每個從設備都有一個獨特的SS線,用于標識和選擇該從設備以進行通信。當主設備需要與某個特定的從設備通信時,它會將對應從設備的SS線拉低(激活狀態),而保持其他從設備的SS線為高電平(非激活狀態)。這樣,只有被選中的從設備會響應主設備的通信請求。
雖然SCK、IO0(MOSI)和IO1(MISO)這三根線是共享的,但每個從設備都有一個獨特的SS線,用于在多主配置中區分和選擇從設備,如下圖所示。此外,任何連接到SPI總線的設備(無論是主設備還是從設備)都可以根據配置(例如通過寄存器設置)在運行時動態地切換其角色(從主設備變為從設備,或從從設備變為主設備)。
注:當IP核在主機模式下生成,但通過寄存器配置(60h)將其配置為從機時,SPISEL(Slave Select)信號應由SPI主機驅動到該IP核。這意味著,盡管該IP核可能是在主機模式下創建的,但通過特定的配置,它可以作為從機工作,并從主機接收選擇信號。
每個SPI主機設備都可以生成一個低電平有效、一位熱編碼(one-hot encoded)的SS(N)向量。在這個向量中,每一位都被分配了一個SS信號,用于控制每個SPI從機設備。這意味著主機可以同時管理多個從機,通過不同的SS信號來激活和與特定的從機通信。
SPI主機和從機設備可以都是FPGA內部的,也可以有外部的從機設備。當與外部SPI從機設備接口時,Vivado?Design Suite會自動生成必要的SPI引腳。這提供了與外部硬件通信的接口。
圖3-1展示了多個SPI主機和從機設備的配置。這種配置同樣適用于dual 模式。