新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于DSP的USB數據傳輸系統設計

        基于DSP的USB數據傳輸系統設計

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

        1.2 接口的訪問
        CY7C68001提供給兩種軟件接口:
        (1)命令接口:用來訪問CY7C68001寄存器、End-point0緩沖器及描述表;
        (2)FIFO接口:用來訪問4個1 KB的FIFO中的。通過編程直接作為FIFO分配給。EP2,EP4,EP6,EP8。這兩個外部接口均可以通過同步或異步方式進行訪問。在此均采用異步的方式進行訪問,命令口的命令字如下:

        在表1中,A/D用于地址/的選擇,當其為0時,表示本操作為數據讀或寫;當其為1時,表示本操作為地址寫。R/W用于讀/寫操作的選擇,當其為0時,進行寫,當其為1時,進行讀。A[5:0]用于地址/數據的選擇,當Bit7=0時,D[3:0]為數據半字節;D[5:4]為未用,命令字為8位,故命令字數據分二次讀出或寫入;當Bit7=1時,D[5:0]包含將要尋址的命令寄存器地址。

        2 軟件
        的軟件包括三方面:固件、驅動程序設計和主機端應用程序設計。
        2.1 固件設計
        所有微控制器及外圍電路功能設備的正常工作都離不開固件的參與,固件的作用就是輔助硬件工作。沒有固件的參與和控制,硬件設備無法實現預期的功能。設備也不例外,必須編寫固件程序來輔助硬件完成USB的通信任務。由于采用不帶MCU內核的USB接口芯片,USB的應用層協議應該通過對TMS320C6416的編程來實現,USB固件的加載必須靠的控制CY7C68001來完成。在CCS中用C語言完成固件程序的編寫,程序流程圖如圖2所示。

        根據程序流程圖,固件設計思路如下:
        (1)初始化工作。包括設置一些特殊功能寄存器的初值,以實現所需的設備屬性或功能,例如:配置端口、使能端點、開中斷。該設計中,使CY7C68001工作于異步FIFO模式,將4 KB的FIFO對應到兩個端點(Endpoint),即Endpoint2和Endpoint6。
        (2)輔助硬件完成設備的重新列舉過程。包括模擬設備的斷開與重新連接,對接收到的設置包進行分析判斷,從而對主機的設備請求做出適當的響應,完成主機對設備的配置任務。
        (3)對中斷的處理。CY7C68001有6個中斷源,可以分別通過中斷使能對寄存器的各位進行設置。一旦中斷事件發生,CY7C68001的INT引腳就被置低,并且置中斷使能寄存器的相應位(即中斷使能寄存器同時充當中斷標志寄存器,中斷使能寄存器具有讀寫屬性)。當中斷發生時,中斷標志寄存器的狀態字映射到FD[7:0];中斷發生后。對CY7C68001簡單的一次讀操作即可獲取中斷信息,識別中斷源并進行相應處理。相對于中斷標志寄存器的讀操作,其他對CY7C68001寄存器的讀操作通常要先發送一次請求,并且收到READY響應后.才可以讀取數據。
        (4)數據的接收與發送。在讀數據時,應首先判斷CY7C68001的FIFO2是否為空,如果不為空,才將數據讀進來。在寫數據時,還要判斷要寫的數據個數是否為512 B的整倍數,如果不是,則使用PKTEND信號來標識數據包的結束。EP2和EP6分別對應存放USB需要上傳與接收的數據。其中,EP2為OUT型,負責從主機接收數據;EP6為IN型,負責向主機發送數據。EP2和EP6均采用批量(BULK)傳輸方式,這種傳輸方式具有數據可靠,傳輸速率高等特點,特別適合大批量數據傳輸。部分關鍵代碼如下:
        DSP讀端點2中的數據:



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 白水县| 建湖县| 嵊泗县| 益阳市| 鄂州市| 长丰县| 武山县| 黄大仙区| 大田县| 嘉鱼县| 玛曲县| 东乌珠穆沁旗| 乌拉特前旗| 修水县| 瑞金市| 丰县| 广平县| 伊宁市| 武山县| 陇川县| 泸州市| 枝江市| 肥西县| 贺兰县| 花垣县| 常熟市| 大理市| 龙南县| 吴忠市| 建德市| 曲松县| 安达市| 麟游县| 辉南县| 中江县| 吴堡县| 桃园县| 松桃| 隆化县| 寿阳县| 长葛市|