新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > FPGA實戰開發技巧(10)

FPGA實戰開發技巧(10)

作者:時間:2017-10-11來源:網絡收藏

5.5.3 SPI串行Flash配置模式
1.SPI串行配置介紹

串行Flash的特點是占用管腳比較少,作為系統的數據存貯非常合適,一般都是采用串行外設接口(SPI 總線接口)。Flash 存貯器與根本不同的特征就是可以按字節進行數據的改寫,而Flash只能先擦除一個區間,然后改寫其內容。一般情況下,這個擦除區間叫做扇區(Sector),也有部分廠家引入了頁面(Page) 的概念。選擇Flash產品時,最小擦除區間是比較重要的指標。在寫入Flash時,如果寫入的數據不能正好是一個最小擦除區間的尺寸,就需要把整個區間的數據全部保存另外一個存貯空間,擦除這個空間,然后才能重新對這個區間改寫。大多數Flash工藝更容易實現較大的擦除區間,因此較小擦除區間的Flash 其價格一般會稍貴一些。此外,SPI是標準的4線同步串行雙向總線,提供控制器和外設之間的串行通信數據鏈路,廣泛應用于嵌入式設備中。

本文引用地址:http://www.hifi-yinxiang.com/article/201710/365610.htm

公司的新款都支持SPI接口。SPI總線通過4根信號線來完成主、從之間的通信,典型的SPI系統中常包含一個主設備以及至少一個從設備,在應用場合中,芯片為主設備,SPI 串行FLASH為從設備。4個SPI接口信號的名稱和功能如表5-2所示。

表5-2 SPI接口信號列表

一個主芯片和一個從芯片的通信接口如圖5-24所示。FPGA通過SCLK控制雙方通信的時序,在SS_n為低時,FPGA通過MOSI 信號線將數據傳送到FLASH,在同一個時鐘周期中,FLASH通過SOMI將數據傳輸到FPGA芯片。無論主、從設備,數據都是在時鐘電平跳轉時輸出,并在下一個相反的電平跳轉沿,送入另外一個芯片。

圖5-24 SPI接口連接示意圖

其中SCLK信號支持不同的速率,一般常采用20MHz。通過SPI 接口中的CPOL和CPHA這兩個比特定義了4種通信時序。其中,CPOL信號定義了SCLK的空閑狀態,當CPOL為低時,SCLK的低電平為空閑狀態,否則其空閑狀態為高電平;CPHA定義了數據有效的上升沿位置,當其為低時,數據在第1 個電平跳轉沿有效,否則數據在第2個電平跳轉沿有效。其相應的時序邏輯如圖5-25所示。

圖5-27 CPHA為低時SPI的總線時序示意圖

圖5-28 CPHA為高時SPI的總線時序示意圖

可以通過增加片選信號SS_n的位寬來支持多個從設備,SS_n的位寬等于從設備的個數。對于某時刻被選中的從設備和主設備而言,其讀寫時序邏輯和圖5-29一樣。

圖5-29 多個從芯片的連接電路圖

SPI串行FLASH作為一種新興的高性能非易失性存儲器,其有效讀寫次數高達百萬次,不僅引腳數量少、封裝小、容量大,可以節約電路板空間,還能夠降低功耗和噪聲。從功能上看,可以用于代碼存儲以及大容量的數據和語音存儲,對于以讀為主,僅有少量擦寫和寫入時間的應用來說,支持分區( 多頁) 擦除和頁寫入的串行存儲是最佳方案。

2.SPI串行FLASH配置電路

SPI串行配置模式常用于已采用了SPI串行FLASH PROM的系統,在上電時將配置數據加載到FPGA中,這一過程只需向SPI串行發送一個4字節的指令,其后串行FLASH中的數據就像PROM配置方式一樣連續加載到FPGA中。一旦配置完成,SPI中的額外存儲空間還能用于其它應用目的。

1)SPI 配置電路

雖然SPI接口是標準的4線接口,但不同的SPI FLASH PROM芯片采用了不同的指令協議。FPGA芯片通過變量選擇信號VS[2:0] 來定義FPGA和SPI FLASH的通信方式、FPGA的讀指令以及在有效接收數據前插入的冗余比特數。常用SPI FLASH與FPGA的有效操作配置如表5-3所示,其余的VS[2:0] 配置留有它用。

表5-3 芯片所支持的SPI FLASH存儲器以及配置列表

從整體上看來,控制SPI串行閃存比較容易,只需要使用簡單的指令就能完成讀取、擦除、編程、寫使能/禁止以及其它功能。所有的指令都是通過4 個SPI 引腳串行移位輸入的。

圖5-30 支持快讀寫的串行FLASH配置電路示意圖

不同型號的FPGA芯片具有數目不同的從設備片選信號,因此所掛的串行芯片數目也就不一樣。例如:Spartan-3E系列FPGA芯片只有1位SPI從設備片選信號,因此只能外掛一片SPI串行FLASH芯片。在SPI串行FLASH配置模式下,M[2:0]=3’b001。FPGA 上電后,通過外部SPI 串行FLASH PROM完成配置,配置時鐘信號由FPGA芯片提供時鐘信號,支持兩類業界常用的FLASH。

圖5-30給出了Spartan3E系列FPGA支持0X0B快速讀寫指令的STMicro 25系列PROM的典型配置電路。其中的Flash芯片需要Flash編程器來加載配置數據;單片的FPGA芯片構成了完整的JTAG鏈,僅用來測試芯片狀態,以及支持JTAG在線調試模式,與SPI配置模式沒有關系。

從中可以看出,SPI Flash容量大,適合于大規模設計場合。但由于SPI配置需要專門的Flash編程器,且操作起來比較麻煩,不適合在產品研發階段調試FPGA芯片,因此一般還會添加JTAG鏈專門用于在線調試。

圖5-31 Atmel SPI串行FLASH配置電路示意圖

圖5-31給出了Spartan3E系列FPGA支持SPI協議的Atmel公司“C”、“D”系列串行Flash芯片的典型配置電路。這兩個系列的FLASH芯片可以工作在很低溫度,具有短的時鐘建立時間。同樣,單片的FPGA芯片構成了完整的JTAG鏈,僅用來測試芯片狀態,以及支持JTAG在線調試模式,與SPI 配置模式沒有關系。

表5-3給出了SPI配置接口的連線說明,每個SPI Flash PROM采用的名字略有不同,SPI Flash PROM的寫保護信號和保持控制信號在FPGA配置階段是不用的。其中HOLD管腳在配置階段必須為高,為了編程Flash存儲器,寫保護信號必須為高。



關鍵詞: FPGA 賽靈思 EEPROM

評論


相關推薦

技術專區

關閉
小仙女视频app官-小仙女视频app破解版直播-小仙女视频下载安装