阅读:1725回复:5
请教usb传输速度的问题
有个关于usb传输速度的问题要请教大家,usb1.1协议说每毫秒传一帧的数据,而每个数据包的大小最多64字节(bulk传输),那我该怎么样才能把好几个包的数据放在一帧里传呢?
我现在做的驱动程序是这样的流程:应用程序用readfiel发出读请求,每次读请求的长度是64×40字节,驱动程序每次向总线驱动发出64字节的读请求,设备驱动程序需要发出40次请求。现在我的驱动程序是可以正常工作的,就是速度很慢,大概60k左右。可能是每毫秒就传了一个数据包,该怎么样才能把好几个包的数据放在一帧里传呢?请大家指教。 |
|
|
沙发#
发布于:2005-04-10 18:21
恩,60K左右正好是1ms一包左右,你的固件应该有问题
|
|
|
板凳#
发布于:2005-04-10 19:47
大佬,我用的是68013,开了4个fifo,经过检测,从外部设备读数已经足够快了,驱动每来一个in请求都有数去响应的。我不明白“帧”是怎么回事,怎样才能让一帧里传几个包呢。驱动里要做些什么传输速度才能提上去呢
|
|
|
地板#
发布于:2005-04-10 21:36
大佬,我用的是68013,开了4个fifo,经过检测,从外部设备读数已经足够快了,驱动每来一个in请求都有数去响应的。我不明白“帧”是怎么回事,怎样才能让一帧里传几个包呢。驱动里要做些什么传输速度才能提上去呢 68013使用从模式,可以达到20M字节/秒以上 |
|
|
地下室#
发布于:2005-04-10 21:41
这个应该数据的传输模式有关,跟工作模式关系不大吧
|
|
5楼#
发布于:2005-04-11 13:56
有个关于usb传输速度的问题要请教大家,usb1.1协议说每毫秒传一帧的数据,而每个数据包的大小最多64字节(bulk传输),那我该怎么样才能把好几个包的数据放在一帧里传呢? 其实要查这个问题,你可以分两个方面来做 第一:你直接些个固件测试程序,记录一下你固件大概的传输速率,若固件传输速率没有问题你就要考虑上层应用问题了 第二:就是直接查你的上层应用部分是否正确处理?对IO的频繁操作会导致系统发送数据很慢,假如批量数据都是从下位机取的话就不用考虑这个方面。 这个问题是我开发时遇到的最初的问题,应该好解决。 |
|
|