1 概述
libusb是一個免費的跨平臺USB庫,本文在windows平臺下使用libusb庫開發(fā)上位機程序與ZYNQ的USB接口進行數(shù)據(jù)收發(fā)測試。libusb可以支持WinUSB驅(qū)動,因此為ZYNQ的USB接口設(shè)備安裝WinUSB驅(qū)動。
libusb網(wǎng)址:https://libusb.info/
windows下開發(fā)指南:https://github.com/libusb/libusb/wiki/Windows
2 libusb庫
在https://libusb.info/可以下載libusb庫,目前的最新版本是1.0.23。解壓后的目錄如下:
使用VS作為上位機驅(qū)動的開發(fā)環(huán)境,因此需要使用MS32或者MS64文件夾下的dll和lib文件。以及include里的頭文件。
3 ZYNQ裸機程序設(shè)計
PS端的USB接口作為Endpoint Device。設(shè)計了3個Endpoint,分別為:
Endpoint 0:control endpoint
Endpoint 1:BULK endpoint
Endpoint 2:interrupt endpoint
分別對應(yīng)控制傳輸、塊傳輸和中斷傳輸。
USB的PID設(shè)為0x0007,PID設(shè)為0x0001。
設(shè)計USB設(shè)備的字符串描述。
4 上位機測試程序設(shè)計
PC機作為HOST,調(diào)用libusb的API函數(shù)設(shè)計上位機程序,分別測試電腦與開發(fā)板USB接口之間的BULK和interrupt模式傳輸速率。實現(xiàn)如下功能:
- PC->ZYNQ BULK模式發(fā)送數(shù)據(jù)
- PC->ZYNQ->PC BULK模式數(shù)據(jù)回環(huán)
- PC->ZYNQ interrupt模式發(fā)送數(shù)據(jù)
- PC->ZYNQ->PC interrupt模式數(shù)據(jù)回環(huán)
5 USB驅(qū)動安裝
安裝libusb驅(qū)動。使用Zadig軟件生產(chǎn)使用WinUSB內(nèi)核的USB驅(qū)動,選擇Create New Device。
選擇advance mode
選擇提取驅(qū)動文件。
輸入設(shè)備名稱ZYNQ USB DEVICE,VID 0x0007,PID0x0001。
選擇驅(qū)動文件提取的存放目錄,然后點擊Extract Files
完成后,打開驅(qū)動文件所在目錄,可以找到生成的驅(qū)動文件。
對于Win10系統(tǒng),首先要禁用數(shù)字簽名。將開發(fā)板USB口與電腦連接,將程序通過SDK下載到開發(fā)板中,此時電腦設(shè)備管理器提示發(fā)現(xiàn)新的USB設(shè)備。選擇設(shè)備,安裝上述目錄下已經(jīng)生成的USB驅(qū)動程序。
6 USB傳輸速率測試
6.1 BULK模式
6.1.1 PC向ZYNQ單向發(fā)送
8字節(jié)包
64字節(jié)包
256字節(jié)包
1024字節(jié)包
2048字節(jié)包
4096字節(jié)包
6.1.2 PC與ZYNQ間數(shù)據(jù)回環(huán)
實際速率需要將圖中的速率乘以2倍
8字節(jié)包
64字節(jié)包
256字節(jié)包
1024字節(jié)包
2048字節(jié)包
4096字節(jié)包
6.2 interrupt模式
6.2.1 PC向ZYNQ單向發(fā)送數(shù)據(jù)
8字節(jié)包
64字節(jié)包
256字節(jié)包
1024字節(jié)包
2048字節(jié)包
4096字節(jié)包
6.2.2 PC與ZYNQ間數(shù)據(jù)回環(huán)
實際速率需要將圖中的速率乘以2倍
8字節(jié)包
64字節(jié)包
256字節(jié)包
1024字節(jié)包
2048字節(jié)包
4096字節(jié)包
-
usb
+關(guān)注
關(guān)注
60文章
7976瀏覽量
265512 -
通信
+關(guān)注
關(guān)注
18文章
6064瀏覽量
136274 -
PC
+關(guān)注
關(guān)注
9文章
2102瀏覽量
154486
發(fā)布評論請先 登錄
相關(guān)推薦
評論