新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 一種基于FPGA的CAN總線通信接口的設計

        一種基于FPGA的CAN總線通信接口的設計

        作者: 時間:2010-12-21 來源:網絡 收藏

          3 軟件設計

          3.1 USB固件程序

          USB固件程序是在Keil工具上開發完成的,除了進行必要的端點及寄存器配置外,程序中使用了自定義請求命令。自定義請求碼通過USB控制傳輸的方式傳送給固件,固件程序需要響應自定義請求碼的請求信息。本文使用的自定義請求碼為Oxa8,在響應代碼中設置端口PA[1:0]電平值,產生USB控制命令,代碼如下所示。SETUPDAT[2]對應控制傳輸端點的Value值,由上位機應用程序設定。

        程序

          3.2 USB驅動程序及應用程序

          使用CYPRESS公司提供的CY7C68013A通用驅動程序CyUSB.sys。上位機應用程序使用VC編寫,也是基于Cypress提供的C++類庫文件CyAP-I.lib設計完成的。使用的主要函數包括:BeginDataXfer、FinishDataXfer、XferData等函數。應用程序中設計了獨立的數據接收線程,線程函數中不斷地發送USB數據讀命令,并完成批量輸人端點的讀操作。當有數據讀入時,與主線程之間采用事件的線程同步方式,將數據讀入計算機內存并保存。以下是線程函數中用于發送USB控制命令的控制傳輸代碼:

        程序



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 龙井市| 武胜县| 赤峰市| 综艺| 绥棱县| 称多县| 宜兴市| 东乡族自治县| 泾川县| 明水县| 济南市| 博兴县| 叙永县| 赤水市| 定结县| 玛曲县| 克拉玛依市| 吴桥县| 四平市| 军事| 昌吉市| 巫山县| 汝阳县| 绥中县| 万山特区| 深水埗区| 西畴县| 北安市| 甘洛县| 东乌珠穆沁旗| 集贤县| 浦县| 酒泉市| 永嘉县| 马龙县| 开江县| 乌什县| 敦煌市| 中阳县| 宣化县| 龙泉市|