新聞中心

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

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

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

          3 系統軟件設計

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

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

          讀操作較為復雜,需要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配合,完成從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所示。

        讀數時序



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 通州市| 安徽省| 博白县| 桐柏县| 新源县| 永寿县| 两当县| 中方县| 连江县| 大城县| 腾冲县| 新化县| 红桥区| 安远县| 娱乐| 长葛市| 北川| 松潘县| 平谷区| 湖口县| 防城港市| 启东市| 高邮市| 大方县| 和硕县| 南投市| 盐山县| 北辰区| 闻喜县| 鸡泽县| 崇文区| 濮阳市| 常德市| 秭归县| 霍州市| 富民县| 衢州市| 开鲁县| 孝感市| 阜平县| 宜黄县|