是自定協議,用到一個bulk in ep1, 一個bulk out ep2 端點
用虛擬串口的優點顯而易見,上位機的編寫非常方便,就按照常規的串口功能編寫就可以了,而速度確還是usb的速度
USB要提速
1、使用自定義的Bulk傳輸
2、增加驅動的Buffer
剛才又實驗了下,現在驅動程序方面的速度瓶頸已經解決了。主要還是這個PipeMaxTransferSize的關系,這個值越大速度越快。晚上注意到這 個值很多USB設備的驅動程序都是設的很大的,連HID設備都設成4096,我的一個U盤也是4096,KEIL的ULINK設置成65535,幾乎所有 USB設備驅動的端點0都是設成65535。晚上測試了下,這個值不會影響數據傳輸,這個最大值不管怎么設實際USB設備管道每次接收的數據該64字節還 是64字節,應該是WINDOWS核心驅動層收到來自USB驅動的IRP后會自動拆包成與設備固件定義的大小(64字節)進行發送的。
做了下速度對比
pipemaxtranfer:64---33KB/S
pipemaxtranfer:512--265KB/S
pipemaxtranfer:1024--349KB/S
pipemaxtranfer:4096--457KB/S
做了下速度對比
pipemaxtranfer:64---33KB/S
pipemaxtranfer:512--265KB/S
pipemaxtranfer:1024--349KB/S
pipemaxtranfer:4096--457KB/S
pipemaxtranfer:65535--506KB/S
|