色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于CY7C646xx的通用串行總線接口

          基于CY7C646xx的通用串行總線接口

          作者: 時(shí)間:2012-04-11 來(lái)源:網(wǎng)絡(luò) 收藏

          3 USB接口系統(tǒng)的結(jié)構(gòu)

          USB接口的結(jié)構(gòu)如圖2所示。計(jì)算機(jī)采用Windows操作系統(tǒng),用戶(hù)程序通過(guò)設(shè)備驅(qū)動(dòng)程序訪問(wèn)目標(biāo)板。在目標(biāo)板端上,把TMS320VC33型數(shù)字信號(hào)處垣器和計(jì)算機(jī)通過(guò)USB總線建立通信鏈路,用CPLD進(jìn)行目標(biāo)板的控制。TMS320VC33通過(guò)內(nèi)置的從屬FIFO和進(jìn)行數(shù)據(jù)交換。

          基于CY7C646xx的通用串行總線接口

          在本方案中,CY7C646xx采用無(wú)EEPROM的列舉方式,即當(dāng)目標(biāo)板插入U(xiǎn)SB端口時(shí),操作系統(tǒng)進(jìn)行USB常規(guī)描述符請(qǐng)求,CY7C646xx將內(nèi)置的PID、VID和DID回復(fù)主機(jī)請(qǐng)求;主機(jī)動(dòng)態(tài)加載"固件下載驅(qū)動(dòng)程序",由該驅(qū)動(dòng)程序?qū)?051程序代碼和數(shù)據(jù)下載至CYTC646xx內(nèi)的RAM中,實(shí)現(xiàn)"軟"開(kāi)發(fā)目的;該驅(qū)動(dòng)程序重置啟動(dòng)8051,重新列舉設(shè)備,下載至RAM中的程序回復(fù)主機(jī)的USB描述符請(qǐng)求,主機(jī)加載"數(shù)據(jù)通信驅(qū)動(dòng)程序",完成USB設(shè)備的安裝。應(yīng)用程序通過(guò)"數(shù)據(jù)通信驅(qū)動(dòng)程序"和CY7C646xx建立通信,完成數(shù)據(jù)傳輸。

          4 驅(qū)動(dòng)程序的編寫(xiě)

          USB設(shè)備驅(qū)動(dòng)程序采用一種新的驅(qū)動(dòng)模型--WDM(windows driver model)。WDM通過(guò)提供一種靈活的方式來(lái)簡(jiǎn)化驅(qū)動(dòng)程序的開(kāi)發(fā),在實(shí)現(xiàn)對(duì)新硬件支持的基礎(chǔ)上減少并降低所必須開(kāi)發(fā)的驅(qū)動(dòng)程序的數(shù)量和復(fù)雜性??梢詰?yīng)用Cypress公司提供編寫(xiě)CY7C646xx系列驅(qū)動(dòng)程序框架源代碼進(jìn)行相應(yīng)的修改和添加,生成所需要的驅(qū)動(dòng)程序。

          4.1 固件下載驅(qū)動(dòng)程序

          利用代碼轉(zhuǎn)換工具h(yuǎn)ex2c.exe,將生成的8051固件代碼(hex文件)轉(zhuǎn)換為C文件;將C文件中的相應(yīng)代碼拷貝到所提供的源代碼程序之一的firmware.c相應(yīng)部分;利用WindowsDDK工具將各個(gè)源文件編譯成.sys文件。

          修改相應(yīng)的INF文件,將"%USB\VID_0547PID_1004.DeviceDesc%=EZUSBDev.Dev,USB\VID_PID_'中的VID及PID修改為相應(yīng)的"預(yù)設(shè)USB設(shè)備"的相應(yīng)VID和PID,在本應(yīng)用中,VID.為0547,PID為2235;緊接在此語(yǔ)句之后應(yīng)加入相同的語(yǔ)句,PID和VID應(yīng)為所下載的固件代碼所能提供的PID和VID,保證外設(shè)第二次列舉后能根據(jù)此PID和VID找到相應(yīng)的支持主機(jī)和電路通信的驅(qū)動(dòng)程序。

          4.2 支持主機(jī)和電路通信的驅(qū)動(dòng)程序

          由Cypress公司提供的GPD(General Purpose Driver)模板供用戶(hù)修改使用。它提供一個(gè)上層的程序代碼來(lái)實(shí)現(xiàn)底層的驅(qū)動(dòng)程序的編寫(xiě),能夠完成USB設(shè)備的標(biāo)準(zhǔn)請(qǐng)求及Cypress公司的該系列電路所特定的請(qǐng)求和數(shù)據(jù)的傳輸。該GPD所提供的接口函數(shù)具有通用性,包括打開(kāi)、關(guān)閉設(shè)備及USB的I/O操作等。本應(yīng)用主要采用上述兩類(lèi)接口程序,在沒(méi)有改變所提供的EZUSB.SYS的驅(qū)動(dòng)程序的情況下,實(shí)現(xiàn)主機(jī)和外設(shè)的數(shù)據(jù)通信。

          5 固件程序的編寫(xiě)

          固件程序指的是需要下載到CY7C646xx內(nèi)RAM中的8051程序代碼和數(shù)據(jù)。需要完成的功能包括初始化CY7C646xx內(nèi)部的所有用到的寄存器使之與外部電路相配合;對(duì)主機(jī)的USB標(biāo)準(zhǔn)請(qǐng)求的響應(yīng);CY7C646xx的電子仿真實(shí)際脫離與重新連接至USB接口的實(shí)現(xiàn);設(shè)備休眠狀態(tài)的啟動(dòng)和終止;完成讀取OUT端點(diǎn)和轉(zhuǎn)發(fā)至內(nèi)部從屬"寫(xiě)FIFO"及讀取內(nèi)部從屬"讀FIFO"的數(shù)據(jù)和轉(zhuǎn)發(fā)至IN端點(diǎn)等功能。



          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉