新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于CY7C646xx的通用串行總線接口

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

        作者: 時間:2012-04-11 來源:網絡 收藏

        3 USB接口系統的結構

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

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

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

        4 驅動程序的編寫

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

        4.1 固件下載驅動程序

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

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

        4.2 支持主機和電路通信的驅動程序

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

        5 固件程序的編寫

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



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阳泉市| 思南县| 民乐县| 溧水县| 抚顺市| 恩施市| 三江| 邢台县| 玉山县| 呈贡县| 合水县| 屯门区| 兴城市| 扎赉特旗| 陆川县| 武宁县| 桂平市| 佳木斯市| 来安县| 民县| 如东县| 夏河县| 荥阳市| 云林县| 玛纳斯县| 合川市| 浮山县| 湘潭县| 合阳县| 县级市| 静安区| 桃源县| 望谟县| 垣曲县| 南阳市| 荥阳市| 封丘县| 上林县| 库尔勒市| 伊通| 永善县|