<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 基于FPGA的微型數(shù)字存儲(chǔ)系統(tǒng)設(shè)計(jì)

          基于FPGA的微型數(shù)字存儲(chǔ)系統(tǒng)設(shè)計(jì)

          作者: 時(shí)間:2009-10-15 來源:網(wǎng)絡(luò) 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/191913.htm

          3.2 CY7C68013控制邏輯及固件程序設(shè)計(jì)
          CY7C68013主要完成兩部分工作,一是實(shí)現(xiàn)對(duì)擦除的控制開關(guān)命令,即上位機(jī)通過USB接口發(fā)送擦除命令,CY7C68013接收到這個(gè)命令后,會(huì)發(fā)送一個(gè)約為200 ms低脈沖通知啟動(dòng)擦除操作;二是通過與配合,完成從Flash通過CY7C68013的GPIF接口讀入上位機(jī)的任務(wù)。 CY7C68013所用到的I/O包括控制線USBCTR1,狀態(tài)線US-BS0,讀信號(hào)線USBRD及8條數(shù)據(jù)線。
          讀數(shù)時(shí),首先由單片機(jī)發(fā)出讀數(shù)開始命令USBCTR1,接收到該命令后開始初始化,包括寫入讀數(shù)設(shè)置命令、地址及讀數(shù)命令,等待rb變高, USBS0置低,當(dāng)單片機(jī)檢測(cè)到USBS0變低后,開始給出一系列脈沖GPIF(USBRD),將2 KB數(shù)據(jù)依次讀出。與此同時(shí),F(xiàn)PGA在等待幾百納秒后將USBS0置高,單片機(jī)在判斷USBS0變高后也將USBCTR1拉高,為下一頁讀數(shù)做準(zhǔn)備。讀數(shù)時(shí)序如圖3所示。

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



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();