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。解壓后的目錄如下:

使用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
分別對應控制傳輸、塊傳輸和中斷傳輸。

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

設計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。

選擇advance mode

選擇提取驅動文件。

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

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

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

對于Win10系統,首先要禁用數字簽名。將開發板USB口與電腦連接,將程序通過SDK下載到開發板中,此時電腦設備管理器提示發現新的USB設備。選擇設備,安裝上述目錄下已經生成的USB驅動程序。
6 USB傳輸速率測試
6.1 BULK模式
6.1.1 PC向ZYNQ單向發送
8字節包

64字節包

256字節包

1024字節包

2048字節包

4096字節包

6.1.2 PC與ZYNQ間數據回環
實際速率需要將圖中的速率乘以2倍
8字節包

64字節包

256字節包

1024字節包

2048字節包

4096字節包

6.2 interrupt模式
6.2.1 PC向ZYNQ單向發送數據
8字節包

64字節包

256字節包

1024字節包

2048字節包

4096字節包

6.2.2 PC與ZYNQ間數據回環
實際速率需要將圖中的速率乘以2倍
8字節包

64字節包

256字節包

1024字節包

2048字節包

4096字節包

-
usb
+關注
關注
60文章
8150瀏覽量
271148 -
通信
+關注
關注
18文章
6182瀏覽量
137434 -
PC
+關注
關注
9文章
2144瀏覽量
156112
發布評論請先 登錄
如何通過USS協議實現變頻器與PLC之間的通信?

評論