<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

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

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

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

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

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

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

          在本方案中,CY7C646xx采用無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)"軟"開發(fā)目的;該驅(qū)動(dòng)程序重置啟動(dòng)8051,重新列舉設(shè)備,下載至RAM中的程序回復(fù)主機(jī)的USB描述符請(qǐng)求,主機(jī)加載"數(shù)據(jù)通信驅(qū)動(dòng)程序",完成USB設(shè)備的安裝。應(yīng)用程序通過"數(shù)據(jù)通信驅(qū)動(dòng)程序"和CY7C646xx建立通信,完成數(shù)據(jù)傳輸。

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

          USB設(shè)備驅(qū)動(dòng)程序采用一種新的驅(qū)動(dòng)模型--WDM(windows driver model)。WDM通過提供一種靈活的方式來簡(jiǎn)化驅(qū)動(dòng)程序的開發(fā),在實(shí)現(xiàn)對(duì)新硬件支持的基礎(chǔ)上減少并降低所必須開發(fā)的驅(qū)動(dòng)程序的數(shù)量和復(fù)雜性??梢詰?yīng)用Cypress公司提供編寫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īng)加入相同的語句,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)模板供用戶修改使用。它提供一個(gè)上層的程序代碼來實(shí)現(xiàn)底層的驅(qū)動(dòng)程序的編寫,能夠完成USB設(shè)備的標(biāo)準(zhǔn)請(qǐng)求及Cypress公司的該系列電路所特定的請(qǐng)求和數(shù)據(jù)的傳輸。該GPD所提供的接口函數(shù)具有通用性,包括打開、關(guān)閉設(shè)備及USB的I/O操作等。本應(yīng)用主要采用上述兩類接口程序,在沒有改變所提供的EZUSB.SYS的驅(qū)動(dòng)程序的情況下,實(shí)現(xiàn)主機(jī)和外設(shè)的數(shù)據(jù)通信。

          5 固件程序的編寫

          固件程序指的是需要下載到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)部從屬"寫FIFO"及讀取內(nèi)部從屬"讀FIFO"的數(shù)據(jù)和轉(zhuǎn)發(fā)至IN端點(diǎn)等功能。



          評(píng)論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();