關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 基于CY7C68013A的USB控制系統設計研究

        基于CY7C68013A的USB控制系統設計研究

        作者: 時間:2010-09-28 來源:網絡 收藏

        固件設計流程圖如圖3所示。

        本文引用地址:http://www.104case.com/article/162816.htm


        用戶初始化設備部分放在TD_Init()子程序中,負責整個USB設備的初始化過程。在定向描述符之后,需要把所用中斷打開,并開啟8051全局中斷EA=1。由于EZ-USB設備啟動需要重列舉,因而需要通過設置和判斷USBCS寄存器的RENUM和DISCON位來模擬設備物理上的斷開和連接過程。用戶外圍設備控制功能的實現放在TD_Poll()子程序中,同時主循環中的SetupCommand()子程序用于接收、分析上位機的控制信號,響應上位機請求(標準請求和用戶自定義請求)。
        3.4 上位機界面設計
        為了能夠很好地控制USB設備,需要編寫上位機控制界面。界面程序在VC++6.O環境下開發,該環境具有編程簡單、快捷等的特點,便于開發可視化程序。Cypress公司為EZ_USB系列芯片提供了開發庫CyAPI.lib,使用其中的控制函數類,可以在VC++6.0環境下開發界面程序。建立MFC(exe)工程后,在工程中加入CyAPI.lib,并且在主文件頭部添加EZ-USB開發環境中提供的CyAPI.h,cyioctl.h頭文件。利用庫中的控制函數,如VendorID,ProductID等,可以獲取USB設備的描述信息,同時也可以編寫相關的控制功能程序。
        3.5 系統設計中關鍵問題
        (1)一個設備只能有一個設備描述符,可以有多個配置描述符,多個接口描述符,以及多個端點描述符。
        (2)設備描述符中VID,PID要與驅動中的相一致,否則不能自動加載相應的固件程序。
        (3)固件程序必須轉換為.spt格式,用于固件加載的驅動程序和固件程序應放在一個文件夾。
        (4)端點0為缺省控制端點,其可設置最大數據包長度為64 B,在設備描述符中wMaxPacketSize字段描述。
        (5)傳輸模式有中斷傳輸、塊傳輸、同步傳輸、控制傳輸四類,需根據自己設計需求選擇,同時注意最大數據包長度的設置。

        4 驅動程序
        對于USB設備,Windows操作系統要想對其實現操作,必須借助于驅動程序來實現。主機和驅動程序直接通信,交換數據,而驅動程序則和硬件資源進行通信,從而很好地控制USB設備。Cypress提供的開發環境中自帶了相關的驅動程序CyLoad.sys和CyUSB.sys,可以直接使用,縮短了系統的開發周期。其中CyLoad.sys用于主機向USB設備下載固件程序,CyUSB.sys實現主機和固件程序通信。為了在CyLoad.sys的幫助下實現固件的自動下載,固件程序CyLoad.HEX必須轉換為適合自動下載的CyLoad.spt文件,并且與CyLoad.sys一起放在CyLoad文件夾下,拷貝到系統system32目錄下。在安裝文件CyUSB.inf中設置的PID,VID必須和描述符中的一致,使得能夠自動加載對應固件。

        5 實驗
        實驗系統,采用CY7C68013A-56pin作為USB設備芯片,實現控制LED和讀取I/O數據功能。由于芯片采用3.3 V電壓供電,因此可以從主機USB口取電,經LM317電壓調整芯片轉換為3.3 V,也可外接3.3 V電壓供電。在PD口接LED,顯示TD_Poll(void)實現的功能(燈亮/滅間隔300 ms),而PA口LED用于顯示判斷主機發送數據。PB口接高/低電平,用于主機讀取該口數據,可以驗證主機接收數據的正確性。



        關鍵詞: 收發器

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 玉山县| 拉萨市| 怀来县| 中方县| 虞城县| 齐河县| 若羌县| 博湖县| 乌拉特后旗| 滦南县| 大英县| 本溪| 北安市| 眉山市| 延川县| 临洮县| 萝北县| 东阿县| 澄迈县| 香格里拉县| 亚东县| 托克逊县| 蚌埠市| 泽州县| 北川| 迭部县| 廊坊市| 普安县| 汕头市| 南陵县| 旅游| 广东省| 财经| 武宣县| 邢台县| 永州市| 庄浪县| 上犹县| 阳山县| 左云县| 那曲县|