<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于CY7C646xx的通用串行總線(xiàn)接口

基于CY7C646xx的通用串行總線(xiàn)接口

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

3 USB接口系統的結構

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

基于CY7C646xx的通用串行總線(xiàn)接口

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

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

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

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

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

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

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

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

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

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



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>