新聞中心

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

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

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

        該應用采用Keil51編譯環境,用C語言完成固件源代碼的編寫。采用標準的結構框架,修改或者添加自己的代碼,完成所需要的任務。

        需要注意,如果開發者沒有使用片外接存儲器,需將Keil51編譯環境的L51 Location選項中的Code(指令碼部分)始于0x0080,而且xdata(數據部分)始于0xl000,以保證在同一個RAM中指令代碼和數據不混迭。

        6 計算機端應用程序的編寫

        應用程序與設備進行通信的通用函數包括打開關閉設備、傳輸數據等:

        6.1 打開和關閉設備

        該應用程序基于Ezusb.sys驅動程序,利用VisualC++針對該電路進行操作,完成數據的傳輸。

        打開設備: HANDLE hDevice=CreateFile (DeviceName,
        GENERIC_WRITEIGENERIC_READ,FILE_SHARE_WRITE︱FILE_SHARE_READ,
        NULL,OPEN_EXISTING,0,NULL);

        程序打開設備"DeviceName''的方式為通用讀寫方式,文件共享讀寫。

        關閉設備:CloseHandle (hDevice)。

        6.2 數據傳輸

        其代碼為BOOL bResult = DeviceloControl (hDevice,direction,Control,sizeof xxxx_TRANSFER_CONTROL),buffer,length, (unsigned long*)nBytes,NULL),其中,hDevice為設備句柄;direction為數據傳輸的方向;Control為4種USB數據傳輸的方式選擇;size(xxxx_TRANSFER_CONTROL)為數據格式所需存儲空間的大小;buffer為所傳輸數據的緩沖區地址指針;nBytes為傳輸完成后實際傳輸的數據個數:數據傳輸格式為USB設備的統一規范,可參照Windows DDK中的相應文件。

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

        6.3 數據傳輸的

        每個數據包由包頭和數據或者只由包頭組成,最大的數據長度為64字節,由于本應用所采用的該系列的80引腳的CY7C64603沒有"數據空"對外標志,所以,外部電路讀寫邏輯每次瀆寫64字節。傳輸的字節不足64時由固件補零:·數據包格式如圖3所示。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 托克逊县| 陈巴尔虎旗| 海晏县| 兴国县| 伊春市| 葵青区| 新邵县| 庄浪县| 临朐县| 贞丰县| 伊金霍洛旗| 兴业县| 哈巴河县| 准格尔旗| 阳谷县| 临沭县| 句容市| 亳州市| 宁城县| 龙江县| 晋州市| 贺兰县| 南江县| 明光市| 板桥市| 铜梁县| 正蓝旗| 雅安市| 沧州市| 万源市| 林西县| 都江堰市| 新民市| 屏山县| 杭锦后旗| 上杭县| 类乌齐县| 如东县| 惠安县| 荥阳市| 绵竹市|