關(guān) 閉

新聞中心

EEPW首頁 > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > USB2.0控制器CY7C68013的接口設(shè)計(jì)實(shí)現(xiàn)

USB2.0控制器CY7C68013的接口設(shè)計(jì)實(shí)現(xiàn)

作者: 時(shí)間:2010-01-20 來源:網(wǎng)絡(luò) 收藏

  每個(gè)波形描述符包含了S0~S6七個(gè)有效狀態(tài)和一個(gè)空閑狀態(tài)。在每個(gè)有鏟狀態(tài)對(duì)應(yīng)的時(shí)間段里,經(jīng)過預(yù)先設(shè)置,GPIF可以做出以下幾件事件;驅(qū)動(dòng)(使高或低)或浮接CTL輸出、采樣或驅(qū)動(dòng)FIFO的數(shù)據(jù)總線、增加GPIF地址總線的值、增加指向當(dāng)前FIFO指針的值和啟動(dòng)GPIFWF(GPIF波形)中斷。除此之外,在每個(gè)狀態(tài),GPIF還可以對(duì)以下幾個(gè)信號(hào)中的任意兩個(gè)進(jìn)行采樣,它們是:RDYX輸入端、FIFO狀態(tài)標(biāo)志位、內(nèi)部RDY標(biāo)志位和傳輸計(jì)數(shù)終止標(biāo)志位。每個(gè)GPIF動(dòng)作都由七段組成,每個(gè)狀態(tài)都可以定義為Non- Decision Interval (NDP)或Decision Point Interval(DP)。當(dāng)某個(gè)狀態(tài)定義為NDP時(shí),在執(zhí)行此狀態(tài)動(dòng)作時(shí),系統(tǒng)只是用簡(jiǎn)單的延時(shí)來確定產(chǎn)生指定電平的延續(xù)時(shí)間;而當(dāng)執(zhí)行DP狀態(tài)時(shí),它將根據(jù)RDY0、RDY1上的輸入信號(hào)狀態(tài)把其中的兩個(gè)信號(hào)相與、相或或者相異,然后根據(jù)結(jié)果跳轉(zhuǎn)到其它任意一個(gè)狀態(tài)或延遲1~256個(gè)IFCLK時(shí)鐘周期。當(dāng)然也可根據(jù)輸入端信號(hào)進(jìn)行跳轉(zhuǎn)或延遲。
 
  

 

本文引用地址:http://www.butianyuan.cn/article/202568.htm

  圖2中,在第一個(gè)DP時(shí)刻,若硬盤中數(shù)據(jù)已準(zhǔn)備就緒,硬盤會(huì)傳給GPIF一個(gè)負(fù)脈沖信號(hào)RDY0,根據(jù)此信號(hào),波形將按順序轉(zhuǎn)入2、3、4狀態(tài),并使指向內(nèi)部FIFO的指針在每個(gè)時(shí)鐘上升沿加1,然后依次讀取四個(gè)數(shù)據(jù),讀取完數(shù)據(jù)后再利用CTL0的上升沿啟動(dòng)下一次讀寫操作。若在狀態(tài)1時(shí)沒有出現(xiàn)負(fù)脈沖,則直接跳轉(zhuǎn)到狀態(tài)6,之后重復(fù)此波形描述符。在這種情況下,所有的讀寫及控制邏輯均可通過CY7的GPIF以軟件編程的方式實(shí)現(xiàn),且控制邏輯的變換非常方便靈活(只需改變接口的一個(gè)配置寄存器的值)。GPIF波形描述符可用Cypress公司的GPIF工具GPIFTOOL來進(jìn)行配置,它是一個(gè)可以運(yùn)行于Windows平臺(tái)的應(yīng)用程序。
  3 系統(tǒng)軟件設(shè)計(jì)與實(shí)現(xiàn)
   本系統(tǒng)軟件設(shè)計(jì)包括:固件、應(yīng)用程序和驅(qū)動(dòng)程序的設(shè)計(jì)。其中,固件程序是指運(yùn)行在設(shè)備CPU中的程序,是整個(gè)程序設(shè)計(jì)的核心,可采用匯編語言和C語言設(shè)計(jì)。只有在該程序運(yùn)行時(shí),外設(shè)才能稱之為具有給定功能的外部設(shè)備。
   3.1 設(shè)備固件程序設(shè)計(jì)
   設(shè)備固件程序的主要功能是控制EZ- FX2接收并處理驅(qū)動(dòng)程序的請(qǐng)求(如請(qǐng)求設(shè)備描述符或設(shè)置設(shè)備狀態(tài),請(qǐng)求或設(shè)置設(shè)備接口等USB標(biāo)準(zhǔn)請(qǐng)求)、控制芯片中應(yīng)用程序控制指令的接收、控制硬盤數(shù)據(jù)的讀寫等。該固件程序除能夠使內(nèi)置的通用可編程接口(GPIF)在沒有CPU的干涉下通過四個(gè)大的端點(diǎn)FIFO(EP2、EP4、 EP6、EP8)來處理高速寬帶外,還有如下固定的工作:配置端點(diǎn)、通過控制端點(diǎn)0來響應(yīng)主機(jī)請(qǐng)求、控制和監(jiān)測(cè)GPIF的活動(dòng)等。其固件程序框圖如圖形所示。
  設(shè)計(jì)時(shí)可采用PIO和UDMA兩種模式,F(xiàn)X2芯片的BULK端點(diǎn)大小可設(shè)置為512字節(jié)或1024字節(jié)。為實(shí)現(xiàn)UDMA功能,應(yīng)將GPIF中的 Slave FIFO與USB通訊中的端點(diǎn)BUFFER直接連接,數(shù)據(jù)的傳送不再需要CPU的參考。當(dāng)BUFFER寫滿后,置BUFFER滿標(biāo)志位,以使GPIF停止動(dòng)作。實(shí)際上,也可運(yùn)用GPIF的Re-execute功能(重復(fù)執(zhí)行功能)。設(shè)定此功能后,GPIF可以不經(jīng)過IDLE狀態(tài)而僅根據(jù)采樣RDY信號(hào)即可重復(fù)下次動(dòng)作。直到出現(xiàn)指定的標(biāo)志位后才停止動(dòng)作。這項(xiàng)功能一般用于大批量數(shù)據(jù)的連續(xù)讀寫。如在UDMA模式下對(duì)一個(gè)或多個(gè)扇區(qū)的讀寫操作。如在UDMA 模式下對(duì)一個(gè)或多個(gè)扇區(qū)的讀寫操作。為了實(shí)現(xiàn)UDMA模式下的CRC校驗(yàn),還需設(shè)備特殊寄存器來完成CRC校驗(yàn)工作。
   3.2 驅(qū)動(dòng)程序設(shè)計(jì)
  該系統(tǒng)需要兩個(gè)驅(qū)動(dòng)程度,即通用驅(qū)動(dòng)和下載固件驅(qū)動(dòng)。通用驅(qū)動(dòng)用于完成與外設(shè)和用戶程序的通信及控制;而下載固件驅(qū)動(dòng)程序則負(fù)責(zé)在外連接USB總線后把特定的固件程序下載到FX2的RAM中使FX2的CPU重啟,同時(shí)模擬斷開與USB總線的連接以完成對(duì)外設(shè)的重新設(shè)置,這種即可使主機(jī)能夠根據(jù)新的設(shè)置來安裝通用驅(qū)動(dòng)程序,重新格舉外設(shè)為一個(gè)新的USB設(shè)備。通用驅(qū)動(dòng)程序一般不需要重新編寫,可以使用Cypress公司已經(jīng)編好的驅(qū)動(dòng)ezusb.sys。由于在Winsows0操作系統(tǒng)中已經(jīng)新增了媒體存儲(chǔ)(Mass Stroage)設(shè)備的驅(qū)動(dòng)程序,并可使用批量傳輸功能,所以可以直接選擇BULKUSB.SYS驅(qū)動(dòng)程序,而下載固件驅(qū)動(dòng)則必須定做。



關(guān)鍵詞: C68013 68013 USB 2.0

評(píng)論


相關(guān)推薦

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

關(guān)閉