提高USB HID裝置速率的方法——基於C8051F380
阿新 • • 發佈:2019-01-07
專案採用C8051F380的USB2.0介面實現HID裝置(配置為Game Controller)。利用端點1傳送資料,每包12個位元組。經測試,即使裝置什麼也不做,僅在main函式的while(1)迴圈中持續傳送資料,最快資料也僅達到5ms一包。後查閱資料,得到了如下結論,提高了傳送速率(參考資料見後面的幾幅圖片):
1、USB HID裝置上報資料採用的端點1必須配置為中斷傳輸;
2、USB中斷傳輸時在端點描述符中,要配置一個引數bInterval,這個引數代表傳送一包的最小間隔,取值範圍為1~255(單位ms);
3、低速USB最快10ms一包,一包最多8Byte;全速USB最快1ms一包,一包最多64Byte;高速USB最快125μs一包,一包最多1024Byte。
因此,在下圖中,將引數bInterval直接改為1即可。
=====================上面說的參考資料如下=======================
======================說明==============================
關於高速模式下的輪詢間隔,應該是第三張圖是對的,即每125us發3包,這樣算出來的速率才是24.576MB。
第二張圖片中關於高速端點的輪詢間隔不對。