在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美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

    文章

    8150

    瀏覽量

    271148
  • 通信
    +關注

    關注

    18

    文章

    6182

    瀏覽量

    137434
  • PC
    PC
    +關注

    關注

    9

    文章

    2144

    瀏覽量

    156112
收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

    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

    請問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 ?2673次閱讀
    利用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 ?2078次閱讀
    UART<b class='flag-5'>通信</b>協議介紹和數據傳輸工作流程

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

    51單片機與PC機的串行通信是一種常見的通信方式,它允許單片機通過串行接口與PC機進行數據交換。這種通信
    的頭像 發表于 10-21 11:35 ?2465次閱讀

    如何實現ESP32-S2 CDC與PC端的通信?

    CDC數據包完全沒有。 目前S2 USB OTG的資料實在太少,不知道到底要如何實現S2 CDC與PC端的通信
    發表于 06-25 08:29
    主站蜘蛛池模板: 女的扒开尿口让男人桶爽 | 91久娇草| 在线视频观看一区 | 婷婷久久综合网 | 精品视频卡1卡2卡3 精品视频免费看 | 手机看片精品国产福利盒子 | 大香交伊人 | www.五月婷| 色视频网站色视频播放 | 免费观看的黄色网址 | 日本免费一区二区三区视频 | 在线观看免费视频一区 | 手机看片福利盒子久久 | 欧美性猛 | 国产美女一级ba大片免色 | 美日毛片| 免费看曰批女人爽的视频网址 | 在线网站你懂得 | 日韩成人免费一级毛片 | 视频免费在线 | 四虎精品永久在线网址 | 天天艹夜夜艹 | 2021久久精品免费观看 | 1v1双性受整夜不拔bl | 日韩精品视频免费观看 | 拍拍拍无档又黄又爽视频 | 日本高清高色 | 中文字幕一区二区三 | 一区二区精品 | 中文天堂最新版在线中文 | 就是操就是干 | 一级欧美视频 | 成人午夜亚洲影视在线观看 | 天天做天天爱天天干 | 另类激情网 | 亚洲黄色第一页 | 国产精品www夜色影视 | 日韩精品免费一区二区三区 | 免费看黄色片网站 | 一级a性色生活片毛片 | 国产精品免费观看网站 |