新聞中心

EEPW首頁 > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 高速USB接口設(shè)計(jì)

高速USB接口設(shè)計(jì)

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

Void TD_PoLL(void):此函數(shù)在設(shè)備運(yùn)行時(shí)被重復(fù)的調(diào)用,應(yīng)包括完成特別任務(wù)的代碼。在該函數(shù)返回前,優(yōu)先級高的任務(wù)可能己完成。若它返回值為假,EZ―FX2將不會影響設(shè)備請求和總線設(shè)備掛起事件。若需要大量的處理時(shí)間,EZ-FX2會通過多次調(diào)用TD_PoLL函數(shù)將時(shí)間分段。
BooL TD_suspend(void):此函數(shù)是在設(shè)備進(jìn)入掛起狀態(tài)前調(diào)用,在其中加入適當(dāng)?shù)拇a,配置設(shè)備的工作狀態(tài),可使設(shè)備處于低功耗狀態(tài)并返回真值。可以改動TD_Suspend的程序代碼,使其返回為假,可使EZ-USBFX2不進(jìn)入掛起狀態(tài)。
Void TD_Resume (void):當(dāng)外部要求重新啟動時(shí),設(shè)備會通過調(diào)用此函數(shù)對處理器重啟,即TD_SUspendO函數(shù)的逆操作。此時(shí),設(shè)備在正常電源下重新啟動。設(shè)備請求函數(shù)主要完成對來自主機(jī)的命令和請求的處理工作。
4.2 固件主程序
fw.c是固件程序的主程序文件,負(fù)責(zé)處理主機(jī)發(fā)出的各種USB設(shè)備請求。該程序首先初始化所有的內(nèi)部狀態(tài)變量,然后調(diào)用TD_InitO函數(shù)初始化,并打開中斷。然后,固件程序開始列舉USB設(shè)備,直至在端點(diǎn)0上接收到SETUP包為止。一旦接受到令牌包,框架將開始交互的任務(wù)調(diào)度。
整個(gè)系統(tǒng)實(shí)現(xiàn)過程中,設(shè)置一些重要寄存器。表1列出EZ―USBFX2為異步從屬FIFO自動模式時(shí),需要配置的相關(guān)寄存器。

本文引用地址:http://m.butianyuan.cn/article/188948.htm

5 FPGA程序的設(shè)計(jì)
編程思路:由于CY7C68013設(shè)置為異步SlaveFIFO模式,根據(jù)異步FIFO讀寫狀態(tài)圖,選擇狀態(tài)機(jī)來編寫進(jìn)程。其狀態(tài)圖如圖3所示。

6 結(jié)語
以CY7C68013和FPGA接口為例描述了USB芯片的SlaveFIFO固件程序流程和設(shè)計(jì)思想,并且在項(xiàng)目中得到了實(shí)際應(yīng)用,并且數(shù)據(jù)連續(xù)傳輸無誤碼,無丟失。


上一頁 1 2 下一頁

關(guān)鍵詞: USB 接口設(shè)計(jì)

評論


相關(guān)推薦

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

關(guān)閉