基于Verilog的FPGA與USB 2.0高速接口設(shè)計
IDLE:當(dāng)寫事件發(fā)生時,轉(zhuǎn)到狀態(tài)1。
狀態(tài)1:指向IN FIFO,激活FIFOADR[1:O],轉(zhuǎn)向狀態(tài)2。
狀態(tài)2:如果FIFO滿標(biāo)志為“假”(FIFO不滿),則轉(zhuǎn)向狀態(tài)3;否則停留在狀態(tài)2。
狀態(tài)3:傳送總線驅(qū)動數(shù)據(jù)。為一個IFCLK激活SLWR,轉(zhuǎn)向狀態(tài)4。
狀態(tài)4:如果有更多的數(shù)據(jù)要寫,則轉(zhuǎn)向狀態(tài)2;否則轉(zhuǎn)向IDLE。
用QuartusⅡ進行仿真驗證,其仿真波形如圖6所示,在此過程中USB_SLWR信號很重要,經(jīng)分析可知,本狀態(tài)機實現(xiàn)的FIFO寫控制信號完全正確。
3 實驗結(jié)果
對傳輸?shù)臄?shù)據(jù)進行驗證,可通過FPGA編程生成O~255的數(shù)據(jù)傳送至CY7C68013的EP6端點,連續(xù)傳送兩次,然后利用EZ一USB Control Panel軟件測試所接收到的數(shù)據(jù),測試結(jié)果如圖7所示,可以看出,數(shù)據(jù)傳輸準(zhǔn)確無誤。
4 結(jié) 語
USB 2.0控制器CY7C68013已經(jīng)被廣泛應(yīng)用到許多數(shù)據(jù)傳輸領(lǐng)域,由于USB具有靈活的接口和可編程特性,大大簡化了外部硬件的設(shè)計,提高了系統(tǒng)可靠性。該設(shè)計可擴展性好,已經(jīng)被應(yīng)用于數(shù)據(jù)傳輸與采集的板卡上,經(jīng)實際測試,沒有出現(xiàn)數(shù)據(jù)的誤碼等錯誤,數(shù)據(jù)傳送正確,傳輸速率可達30 MHz/s以上,滿足設(shè)計要求。
評論