在PC端的USB驱动中每次向USB设备写入数据时,每一个Write的最大数据量是多少?如果我在USB设备的固件中固定一个Buffer,用来接收每次的Write数据,接收完后才写入。我发现当数据很大时,比如几MB的数据,每次Write时,数据为64KB,请问一下,有没有比这更大的情...
全文
回复(7) 2003-08-01 14:33 来自版块 - USB驱动开发
表情
jinghuiren哦,我说的是通用设备的情况,你也没说你做的是u盘呀!就当我前面的没说吧。(2003-08-02 12:46)
szzwm既然你有一个64KB的缓冲,你大可不必担心HOST一次写出的数据会超过你的缓冲。如果真的出现这种情况的话,你在接收满64KB之后优先处理缓冲区里的数据,此时如果主机继续发送数据,固件可以响应NAK信号给主机,主机就会不断重复发送从64KB之后的数据了。当你的固件处理完缓冲区的数据...(2003-08-02 00:33)
flycat0101一般不会大于64k的,不过我觉得这样的write事务对你固件方没有影响呀,因为即使是64k或者更多,主机每次的out事务中数据量还是一个包1.1是64,2.0是512,因此你固件中每次也就是读取这一个包而已,你不用管主机发多少个,只要你固件里能处理两个连续的包,那么就能处理更多个...(2003-08-01 16:43)
jinghuiren一般不会大于64k的,不过我觉得这样的write事务对你固件方没有影响呀,因为即使是64k或者更多,主机每次的out事务中数据量还是一个包1.1是64,2.0是512,因此你固件中每次也就是读取这一个包而已,你不用管主机发多少个,只要你固件里能处理两个连续的包,那么就能处理更多个...(2003-08-01 16:33)
flycat0101多谢 我现在不写PC端的驱动,我主要的问题是在设备固件里。 我想提高我固件的运行速度,在接收PC端的数据时开了一个64KB大小的固定buffer,我担心pc机在每个Write事务中会发送超过64KB的数据,这样的话,我的usb设备就会出现数据丢失的情况。请问一下,有没有超过6...(2003-08-01 16:19)
flytomoon可以,可以把一次DECIVEIOCONTROL的数据大小改变,大小随你自己定,这样就可以实现你的要求了,你用的是68013的开发板吧?(2003-08-01 15:13)
jinghuiren可以,但是你的在驱动例完成,把这些数据通过mdl传到驱动里,然后每次bulid一个64k的urb发动到底层驱动,循环进行,直到把数据传完返回!(2003-08-01 14:46)

返回顶部