《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的微型數(shù)字存儲系統(tǒng)設計
基于FPGA的微型數(shù)字存儲系統(tǒng)設計
摘要: 針對航天測試系統(tǒng)的應用需求,,提出一種基于FPGA的微型數(shù)字存儲系統(tǒng)設計方案,。該系統(tǒng)是在傳統(tǒng)存儲測試系統(tǒng)的基礎上,,利用可編程邏輯器件FPGA對傳統(tǒng)存儲測試系統(tǒng)進行單元電路的二次集成,,使測試系統(tǒng)體積大幅減小,,功耗急劇降低,,從而提高系統(tǒng)的抗高過載性能,,增加系統(tǒng)靈活性,、通用性和可靠性。FPGA不僅完成控制存儲及大部分的相關(guān)數(shù)字邏輯單元電路,,而且使得整個存儲系統(tǒng)更為簡單,,布線也更容易。
Abstract:
Key words :

1 引言

  針對航天測試系統(tǒng)的應用需求,,提出一種基于FPGA的微型數(shù)字存儲系統(tǒng)設計方案,。該系統(tǒng)是在傳統(tǒng)存儲測試系統(tǒng)的基礎上,利用可編程邏輯器件FPGA對傳統(tǒng)存儲測試系統(tǒng)進行單元電路的二次集成,,使測試系統(tǒng)體積大幅減小,,功耗急劇降低,從而提高系統(tǒng)的抗高過載性能,,增加系統(tǒng)靈活性,、通用性和可靠性。FPGA不僅完成控制存儲及大部分的相關(guān)數(shù)字邏輯單元電路,,而且使得整個存儲系統(tǒng)更為簡單,,布線也更容易。另外,,系統(tǒng)FPGA編程就是按照預定功能連接器件內(nèi)的熔絲,,從而使其完成特定邏輯功能的過程,一旦完成編程,,F(xiàn)PGA就相當于一片能夠完成特定功能的集成電路,,因而無需擔心程序運行路徑出錯,這與單片機有本質(zhì)區(qū)別,。

2 系統(tǒng)硬件設計

2.1 器件選型

2.1.1 電源轉(zhuǎn)換器TPS70358

系統(tǒng)中,,F(xiàn)PGA工作電壓為3.3 V和2.5 V,USB接口器件CY7C68013 工作電壓為3.3 V,,F(xiàn)lash工作電壓為3.3 V,,系統(tǒng)需通過電源器件TPS70358將電壓轉(zhuǎn)換為3.3 V和2.5 V,為系統(tǒng)各器件提供電源,。TPS70358是新一代的集成穩(wěn)壓器,,是一個自耗很低的微型片上系統(tǒng),具有極低的自有噪音和較高的電源紋波抑制性能,,因此,,該器件適用于一塊電路板或一片重要器件(如FPGA、DSP)供電的電壓轉(zhuǎn)換,。

2.1.2 現(xiàn)場可編程門陣列(FPGA)XC2S50

該系統(tǒng)采用XC2S50型FPGA控制各個接口,,該器件是xilinx公司生產(chǎn)的Spartan II系列高性能現(xiàn)場可編程門陣列(FPGA),具有如下特點:內(nèi)置標準JTAG接口,,支持3.3 V在系統(tǒng)可編程(ISP),;3.3 V電源,,集成密度為50 000個可用門;引腳到引腳的延時7.5 ns,,系統(tǒng)頻率高達200 MHz,。采用單片F(xiàn)PGA實現(xiàn)邏輯控制功能簡化電路設計,提高系統(tǒng)可靠性,。且XC2S50系統(tǒng)可編程,,只需將一根下載電纜連接到目標板上,就可多次重復編程,,方便電路調(diào)試,。

2.1.3 USB 2.0控制器CY7C68013

CY7C68013是Cypress公司生產(chǎn)的一款USB 2.0控制器,該器件具有運算速度快,、功耗小和性價比高等特點,。時鐘周期高達40 MHz,每執(zhí)行1條指令需4個時鐘周期,;其內(nèi)部集成有USB接口,,I2C總線接口等,該系統(tǒng)設計實際數(shù)據(jù)傳輸速度高達10 MHz,。

2.2 電路設計思路

圖1為系統(tǒng)硬件結(jié)構(gòu)框圖,,計算機通過USB接口控制可編程邏輯器件FPGA實現(xiàn)對Flash存儲器的塊擦除、頁編程,、讀數(shù)據(jù)等操作,。
 



塊擦除操作時,計算機通過USB接口向FPGA發(fā)送指令,,F(xiàn)PGA接收到指令后對Flash存儲器進行塊擦除操作,并將狀態(tài)返回計算機,;頁編程操作時,, FPGA接收計算機并行接口發(fā)送的指令,立即對Flash存儲器進行頁編程操作,,先寫命令,,再寫要編程的地址,然后將數(shù)據(jù)發(fā)送到Flash存儲器中,;讀取數(shù)據(jù)操作時,,F(xiàn)PGA首先接收計算機發(fā)出的指令,然后對Flash存儲器進行讀取數(shù)據(jù)操作,,先寫命令,,再寫要讀取的地址,然后開始輸出數(shù)據(jù),,并將狀態(tài)返回計算機并行接口,。

3 系統(tǒng)軟件設計

3.1 FPGA對Flash的讀,、寫、擦除操作

FPGA執(zhí)行對Flash的讀,、寫,、擦除操作是利用VHDL語言的狀態(tài)機實現(xiàn)的。狀態(tài)機控制Flash的時序電路簡單易行,,邏輯關(guān)系一目了然,。XC2S50接收到CY7C68013傳來的擦除控制命令,立即執(zhí)行擦除操作,。按照時序,,首先寫入自動塊擦除設置命令60H,之后依次寫入2個行地址和1個列地址進行尋址,,而后寫入擦除命令D0H開始執(zhí)行擦除操作,。

讀操作較為復雜,需要XC2S50和CY7C68013協(xié)同工作,。這里只給出讀信號的操作過程,。先寫人讀設置命令00H,因為讀一次執(zhí)行一頁,,所以地址的寫入是2個行地址和3個列地址,,之后寫入讀命令,在等待rb變高后就可發(fā)送re信號將數(shù)據(jù)從Flash讀出,。寫操作過程與讀操作類似,,但寫操作完全由 XC2S50控制,寫完命令,、地址后,,開始寫入數(shù)據(jù),直到寫滿2 KB數(shù)據(jù),,最后輸入頁編程命令,。需要注意每寫完2 KB數(shù)據(jù),F(xiàn)lash返回的狀態(tài)信號rb所等待的時間較長,,大約是140μs,。圖2為頁編程的流程。
 



3.2 CY7C68013控制邏輯及固件程序設計

CY7C68013主要完成兩部分工作,,一是實現(xiàn)對擦除的控制開關(guān)命令,,即上位機通過USB接口發(fā)送擦除命令,CY7C68013接收到這個命令后,,會發(fā)送一個約為200 ms低脈沖通知FPGA啟動擦除操作,;二是通過與FPGA配合,完成從Flash通過CY7C68013的GPIF接口讀入上位機的任務。 CY7C68013所用到的I/O包括控制線USBCTR1,,狀態(tài)線US-BS0,,讀信號線USBRD及8條數(shù)據(jù)線。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。