提高USB HID设备速率的方法——基于C8051F380
2018-03-29 14:40
567 查看
项目采用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。
第二张图片中关于高速端点的轮询间隔不对。
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。
第二张图片中关于高速端点的轮询间隔不对。
相关文章推荐
- 通过修改内核提高3G上网卡设备速率(usbserial.c)
- C# 访问USB(HID)设备方法 (转)
- Arduino模拟电脑键盘(基于AVR-USB的USB-HID设备)
- C# 访问USB(HID)设备方法一
- C# 访问USB(HID)设备方法二
- 基于HID协议的USB人机交互设备的接口设计
- 《Linux总线、设备与驱动》USBHID设备驱动
- USBHID设备报告描述符详解(转帖)
- 4.6 基于OHCI的USB主机 —— USB设备描述符数据结构
- 基于windows7的usb多点触控设备
- USB设备驱动6:usb HID 报告描述符
- fedora系统中无驱动的USB设备在virtualbox中使用方法
- USB HID设备
- C#:USB设备枚举(七)WPF扩展方法
- USB-HUB上制定生成的设备号(一种解决方法)
- virtualbox虚拟机使用usb设备中遇到的问题和解决方法
- Android USB Gadget复合设备驱动(打印机)测试方法
- 解决VMware虚拟机发现不了Usb设备的方法
- VMware无法识别USB设备的解决方法
- 基于Linux的USB 主/从设备之间通讯的三种方式