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