新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于FPGA的微型數字存儲系統設計方案

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

作者: 時間:2009-10-19 來源:網絡 收藏

  3 系統軟件設計

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

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

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

頁編程的流程

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

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

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

讀數時序



評論


相關推薦

技術專區(qū)

關閉