《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于FPGA的微型數字存儲系統設計

基于FPGA的微型數字存儲系統設計

2015-09-17
關鍵詞: Protel DSP FPGA PROTEL99SE

  1 引言

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

  2 系統硬件設計

  2.1 器件選型

  2.1.1 電源轉換器TPS70358

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

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

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

  .1.3 USB 2.0控制器CY7C68013

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

  2.2 電路設計思路

  圖1為系統硬件結構框圖,計算機通過USB接口控制可編程邏輯器件FPGA實現對Flash存儲器的塊擦除、頁編程、讀數據等操作。

2009114104547421.jpg

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

  3 系統軟件設計

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

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

2009114104550595.jpg

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

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

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

  讀數時,首先由單片機發出讀數開始命令USBCTR1,FPGA接收到該命令后開始初始化,包括寫入讀數設置命令、地址及讀數命令,等待rb變高, USBS0置低,當單片機檢測到USBS0變低后,開始給出一系列脈沖GPIF(USBRD),將2 KB數據依次讀出。與此同時,FPGA在等待幾百納秒后將USBS0置高,單片機在判斷USBS0變高后也將USBCTR1拉高,為下一頁讀數做準備。讀數時序如圖3所示。

2009114104552369.jpg

  按照上述控制邏輯關系編寫CY7C68013的同件程序。CY7C68013有3種可用接口模式:端口、GPIF主控和從FI-FO。“GPIF主控”接口模式使用PORTB和PORTD構成通向4個FX2端點FIFO(EP2、EP4、EP6和EP8)的16位數據接口。GPIF作為內部的主控制器與 FIFO直接相連.具有6個可編程控制輸出信號(CTR0~CTR5)和6個通用準備就緒輸入信號(RDY0~RDY5),用戶可通過編程設置控制信號的輸出狀態,即器件在接收到何種就緒信號后執行相應操作,GPIF控制代碼存放于器件內部RAM的波形描述器中。從該系統需求出發,將CY7C68013設為FIFO Read模式,使GPIF中的Slave FIFO與USB通信中端點緩沖直接建立連接,數據傳送無需CPU參與。

2009114104552495.jpg

  固件程序代碼設計主要是根據系統需求設計相應的程序框架圖,再調用同件函數庫 (Ezusb.lib)的函數進行編程,初始化并重新列舉端點,然后在任務處理器中設定任務,在Keil C51環境中編譯代碼。編譯通過后,將同件代碼下載到USB單片機中,即可實現GPIF多字節讀操作。

  4 系統可靠性驗證

  為驗證系統可靠性,在數據輸入端循環輸入00~0F遞增數據,通過上位機讀出、寫入Flash中的數據,圖4為試驗數據。通過讀出的數據驗證了該系統數據存儲及回讀的正確性、可靠性。

  5 結束語

  采用FPGA對Flash進行讀、寫、擦除操作,利用狀態機分時控制3種操作,簡化程序設計,簡單修改地址將Flash的容量從32 MB增加到1 GB,提高了系統的可移植性、可擴展性和通用性,便于維護設備,有利于產品的優化和改進,縮短了開發周期。采用USB單片機與PC機建立通信連接,與現有設備很好兼容,數據讀取速度可達1O MB/s,可方便、快捷地讀取數據。通過多次驗證,該系統工作穩定、可靠。


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 五月天婷婷在线播放 | 国产亚洲第一页 | 日本高清色视频高清电影 | 一级毛片a免费播放王色 | 老女人另类重囗味 | 国产欧美一区视频在线观看 | 国产成人精品亚洲2020 | 四虎影院海外永久 | 97狠狠干| 狠狠综合久久综合网站 | 国产成人精品日本亚洲专 | 五月花成人网 | 国产免费一区二区三区最新 | 国产精品久久久久影视青草 | 欧美插插视频 | 99久久精品免费看国产四区 | 国产福利免费 | 丁香花在线电影播放 | 九九免费视频 | 中文字幕99在线精品视频免费看 | 亚州综人网 | 日韩欧美国产精品 | 久久久无码精品亚洲日韩按摩 | 99精品高清不卡在线观看 | 色婷婷六月桃花综合影院 | 国产综合婷婷 | 四虎影视最新网址 | 深爱婷婷激情网 | 日本一区精品久久久久影院 | 五月天天堂网 | 高清性色生活片欧美在线 | 1234影院 | 天真无邪的乐园 | 欧美成人性色xxxx视频 | 777888免费观看| 九七电影网97理论片 | 久久国内精品自在自线观看 | 婷婷激情五月小说综合无弹窗 | 国产永久免费高清动作片www | 日本不卡一区二区三区 | 国产日韩精品欧美一区色 |