版块
论坛
喜欢
话题
应用
搜索
登录
注册
takaya的个人空间
访问量
0
新鲜事
帖子
资料
http://bbs3.driverdevelop.com/index.php?m=space&uid=16273
51+D12,好像速度不太对劲.每4ms才传64B
上次说了.我用52+D12,速度最高只能达到16K.今天我查了一下.发现D12每4ms才发出一个中断,但这个中断只用了0.2ms就执行完了..这样算下来,速度最高也只能达到16K.并且速度的瓶颈不是出在51上.USB1.1每1ms都有一个帧呀.而且在一个帧中可出放19个bulk包...
全文
回复
(
8
)
2002-06-18 09:24
来自版块 -
USB驱动开发
◆
◆
表情
告诉我的粉丝
提 交
takaya
:
那是当然的呀.不然第二个包就读不出来了呀. 何况我只在中断处理程序填充了D12的Buffer.
(2002-06-18 16:41)
回复
laiqing
:
你处理一次中断后,有没有及时地再次把数据送到buffer中? 就是说你用4096的话,传输的第一个数据包要在中断来自前要先送入BUFFER中,把这个端点使能。 中断来后要在中断处理程序中把下一个数据报 送到BUFFER中。
(2002-06-18 16:11)
回复
takaya
:
是不是需要把在DS中设置的Endpoint2IN的MaxTransferSize也改成4096?我试过了.不能完整的读出4096个字节.只读得出一部分.
(2002-06-18 14:42)
回复
takaya
:
我试过把64B改成4096B,但只能读出前64B来. 现在是每4ms才读一次.其它3个帧都没有用到.C51处理从D12读64B的时间是0.2ms左右.这样算下来,在一个帧中应该可以处理5个包.但现在只有0.25个包..................
(2002-06-18 14:32)
回复
laiqing
:
OpenFile(??) 计时开始 while(???) { ReadFile(????????); } 计时结束 CloseFile(???) 你每次ReadFile(????????)传输的数据块有多大?64字节/次? 要是和它差不多大?...
(2002-06-18 14:16)
回复
takaya
:
再有,怎么控制一个帧中的包数目泥?
(2002-06-18 13:13)
回复
takaya
:
OpenFile(??) 计时开始 while(???) { ReadFile(????????); } 计时结束 CloseFile(???) 我就是这样做的呀. 在While中只有16K.
(2002-06-18 13:11)
回复
laiqing
:
这可能和你的应用程序有关,不要每次传输都执行打开和关闭USB管道。 打开USB管道,获得句柄后,等到所有的传输数据都传完后,再关闭 USB句柄。
(2002-06-18 12:39)
回复
takaya
加关注
写私信
0
关注
0
粉丝
248
帖子
返回顶部