91在线观看视频-91在线观看视频-91在线观看免费视频-91在线观看免费-欧美第二页-欧美第1页

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

通過libusb實現PC和ZYNQ之間的USB通信

C29F_xilinx_inc ? 來源:賽靈思 ? 作者:賽靈思 ? 2022-02-19 19:23 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1 概述

libusb是一個免費的跨平臺USB庫,本文在windows平臺下使用libusb庫開發上位機程序與ZYNQ的USB接口進行數據收發測試。libusb可以支持WinUSB驅動,因此為ZYNQ的USB接口設備安裝WinUSB驅動。

libusb網址:https://libusb.info/

windows下開發指南:https://github.com/libusb/libusb/wiki/Windows

2 libusb庫

https://libusb.info/可以下載libusb庫,目前的最新版本是1.0.23。解壓后的目錄如下:

通過libusb實現PC和ZYNQ之間的USB通信

使用VS作為上位機驅動的開發環境,因此需要使用MS32或者MS64文件夾下的dll和lib文件。以及include里的頭文件。

3 ZYNQ裸機程序設計

PS端的USB接口作為Endpoint Device。設計了3個Endpoint,分別為:

Endpoint 0:control endpoint
Endpoint 1:BULK endpoint
Endpoint 2:interrupt endpoint

分別對應控制傳輸、塊傳輸和中斷傳輸。

通過libusb實現PC和ZYNQ之間的USB通信

USB的PID設為0x0007,PID設為0x0001。

通過libusb實現PC和ZYNQ之間的USB通信

設計USB設備的字符串描述。

通過libusb實現PC和ZYNQ之間的USB通信

4 上位機測試程序設計

PC機作為HOST,調用libusb的API函數設計上位機程序,分別測試電腦與開發板USB接口之間的BULK和interrupt模式傳輸速率。實現如下功能:

  • PC->ZYNQ BULK模式發送數據
  • PC->ZYNQ->PC BULK模式數據回環
  • PC->ZYNQ interrupt模式發送數據
  • PC->ZYNQ->PC interrupt模式數據回環

5 USB驅動安裝

安裝libusb驅動。使用Zadig軟件生產使用WinUSB內核的USB驅動,選擇Create New Device。

通過libusb實現PC和ZYNQ之間的USB通信

選擇advance mode

通過libusb實現PC和ZYNQ之間的USB通信

選擇提取驅動文件。

通過libusb實現PC和ZYNQ之間的USB通信

輸入設備名稱ZYNQ USB DEVICE,VID 0x0007,PID0x0001。

通過libusb實現PC和ZYNQ之間的USB通信

選擇驅動文件提取的存放目錄,然后點擊Extract Files

通過libusb實現PC和ZYNQ之間的USB通信

完成后,打開驅動文件所在目錄,可以找到生成的驅動文件。

通過libusb實現PC和ZYNQ之間的USB通信

對于Win10系統,首先要禁用數字簽名。將開發板USB口與電腦連接,將程序通過SDK下載到開發板中,此時電腦設備管理器提示發現新的USB設備。選擇設備,安裝上述目錄下已經生成的USB驅動程序。

6 USB傳輸速率測試

6.1 BULK模式

6.1.1 PC向ZYNQ單向發送

8字節包

通過libusb實現PC和ZYNQ之間的USB通信

64字節包

通過libusb實現PC和ZYNQ之間的USB通信

256字節包

通過libusb實現PC和ZYNQ之間的USB通信

1024字節包

通過libusb實現PC和ZYNQ之間的USB通信

2048字節包

通過libusb實現PC和ZYNQ之間的USB通信

4096字節包

通過libusb實現PC和ZYNQ之間的USB通信

6.1.2 PC與ZYNQ間數據回環

實際速率需要將圖中的速率乘以2倍

8字節包

通過libusb實現PC和ZYNQ之間的USB通信

64字節包

通過libusb實現PC和ZYNQ之間的USB通信

256字節包

通過libusb實現PC和ZYNQ之間的USB通信

1024字節包

通過libusb實現PC和ZYNQ之間的USB通信

2048字節包

通過libusb實現PC和ZYNQ之間的USB通信

4096字節包

通過libusb實現PC和ZYNQ之間的USB通信

6.2 interrupt模式

6.2.1 PC向ZYNQ單向發送數據

8字節包

通過libusb實現PC和ZYNQ之間的USB通信

64字節包

通過libusb實現PC和ZYNQ之間的USB通信

256字節包

通過libusb實現PC和ZYNQ之間的USB通信

1024字節包

通過libusb實現PC和ZYNQ之間的USB通信

2048字節包

通過libusb實現PC和ZYNQ之間的USB通信

4096字節包

通過libusb實現PC和ZYNQ之間的USB通信

6.2.2 PC與ZYNQ間數據回環

實際速率需要將圖中的速率乘以2倍

8字節包

通過libusb實現PC和ZYNQ之間的USB通信

64字節包

通過libusb實現PC和ZYNQ之間的USB通信

256字節包

通過libusb實現PC和ZYNQ之間的USB通信

1024字節包

通過libusb實現PC和ZYNQ之間的USB通信

2048字節包

通過libusb實現PC和ZYNQ之間的USB通信

4096字節包

通過libusb實現PC和ZYNQ之間的USB通信
審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • usb
    usb
    +關注

    關注

    60

    文章

    8214

    瀏覽量

    274032
  • 通信
    +關注

    關注

    18

    文章

    6211

    瀏覽量

    137990
  • PC
    PC
    +關注

    關注

    9

    文章

    2155

    瀏覽量

    156789
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何通過USS協議實現變頻器與PLC之間通信

    USS協議(Universal Serial Interface Protocol)是西門子公司專為驅動設備設計的基于串行通信的通用協議,它通過RS485物理接口實現PLC與變頻器等設備的經濟高效
    的頭像 發表于 06-07 17:21 ?405次閱讀
    如何<b class='flag-5'>通過</b>USS協議<b class='flag-5'>實現</b>變頻器與PLC<b class='flag-5'>之間</b>的<b class='flag-5'>通信</b>?

    CYUSB3014與PC通信幾小時后斷開,通過bus hound抓不到任何通信數據,為什么?

    PC是WIN7系統,PC端APP通過USB3與下位機通信幾個小時以后,通信就會斷開,
    發表于 06-04 08:27

    MCU是否可以使用普通IO口和數據總線控制cy7c68013a,用異步slavefifo模式增加一個與PC通信USB口?

    cy7c68013a的固件已經配置成異步slave模式,是否有MCU用IO口控制cy7c68013a通過數據總線來實現PCUSB通信
    發表于 05-30 06:32

    上位機和下位機之間通信通過什么實現

    上位機和下位機之間通信通過多種方式實現,以下從有線通信和無線通信兩大類別展開介紹: 有線
    的頭像 發表于 05-29 09:24 ?345次閱讀

    CY7C65215-32LTXI插入USB查到PC上無法識別到USB端口怎么解決?

    目前的現象就是板子通過USB查到PC上無法識別到USB端口,沒有任何反應,電源都是正常的.幫看下電路圖設計是否有問題,謝謝!
    發表于 05-28 06:47

    帶有USB C的便攜式設備可以通過USB C轉USB A電纜連接到計算機的USB A嗎?

    通過 PC 進行數據傳輸。 但是我們現在正在解決USB A到PC的向后兼容問題,這樣即使沒有USB C連接器,用戶也可以將我們的設備連接到
    發表于 05-27 06:29

    使用libusb可以打開libusb設備,但是無法燒寫固件,為什么?

    我使用libusb可以打開libusb設備,但是無法燒寫固件,我需要在執行燒錄固件之前,還需要做什么步驟
    發表于 05-23 07:34

    如何在FX3和FX10芯片上運行/實現USB 3.0批量流?

    我們正在嘗試在 FX3 和 FX10 芯片上運行/實現 USB 3.0 批量流(單個 IN 端點上的多個流)。 到目前為止,我們已經能夠在 FX10 上實現它們(兩個流的枚舉),并嘗試 FX3 上
    發表于 05-09 06:10

    是否可以通過3014將數據從pc傳輸到FPGA?

    我正在設計一個系統,通過 USB 3.0 將圖片數據從 PC 下載到 FPGA,然后 FPGA 在 LCD 上顯示圖像。 我需要一種方法讓 FPGA 將狀態(下載了多少圖像以及 LCD 上顯示了
    發表于 05-08 06:56

    請問k230可否和樹莓派通過USB-typeC線來通信

    能否讓一根線接樹莓派的USB接口同時接到k230的tpyeC接口,同時供電和通信,將k230視覺獲取的信息傳給樹莓派。這個能實現嗎有沒有什么學習的例程?求各位大佬教教 你好,可以讓樹莓派做us
    發表于 04-28 08:25

    zynq通過什么接口去控制DLP?

    我是用ZYNQ控制DLP,DLP的投影,給sensor采集。我的問題是zynq通過什么接口去控制DLP。DLP和sensor沒有物理連接,sensor會直接拍DLP的投影
    發表于 02-21 06:56

    利用FPGA實現USB 2.0通信接口

    USB?2.0接口的實現方式 利用FPGA來實現USB 2.0接口的方式一般有兩種,一是借助外圍的USB接口芯片,二是FPGA內部
    的頭像 發表于 12-30 13:59 ?2984次閱讀
    利用FPGA<b class='flag-5'>實現</b><b class='flag-5'>USB</b> 2.0<b class='flag-5'>通信</b>接口

    可以不通過pc使用usb2any連接dac81416嗎?

    Q1:用軟件連接設置dac81416的每個通道的電壓值之后,怎樣可以斷開usb2any之后,dac81416每個通道還能輸出之前設置的值。 Q2:可以不通過pc使用usb2any連接
    發表于 12-03 06:57

    UART通信協議介紹和數據傳輸工作流程

    UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可實現全雙工傳輸和接收。UART通常用來實現PC
    的頭像 發表于 10-24 14:20 ?2380次閱讀
    UART<b class='flag-5'>通信</b>協議介紹和數據傳輸工作流程

    如何實現51單片機與PC機的串行通信

    51單片機與PC機的串行通信是一種常見的通信方式,它允許單片機通過串行接口與PC機進行數據交換。這種通信
    的頭像 發表于 10-21 11:35 ?2725次閱讀
    主站蜘蛛池模板: 日本午夜片| 四虎影院成人在线观看 | 超级淫小黄文大全很污的那种 | 欧美一区二区三区不卡视频 | 亚洲经典一区二区三区 | 欧美日韩高清一区 | 日本不卡在线一区二区三区视频 | 欧美三级视频网站 | 色综合久久88色综合天天 | 久久99综合 | 中文字幕精品一区二区三区视频 | 婷婷在线免费观看 | 天天摸天天做天天爽水多 | 男人的天堂在线精品视频 | 国产精品va一区二区三区 | 色丁香在线 | 天天干天天综合 | 中文字幕在线不卡 | 国产色女人 | 午夜视频在线观看www中文 | 国内亚州视频在线观看 | 中文字幕导航 | 四虎永久网址在线观看 | 丁香六月激情 | 久99热| 美女中出视频 | 色图插插插 | 男男全肉高h腐文 | 欧美日本一道免费一区三区 | 久久在精品线影院精品国产 | 黑色丝袜美女被视频网站 | 黄色网在线播放 | 国产福利资源 | 97婷婷色| 男人天堂欧美 | 久久六月丁香婷婷婷 | 日韩三级中文 | 天天看a| 欧美人成a视频www | 日韩精品免费一区二区三区 | 宅男69免费永久网站 |