阅读:1634回复:7
弱弱的一问,最大包长度的问题!
例如我要传送一张图片 大小为100KB,而我的端点最大包长度为1KB,那么我就要传100次是吗,对数据的分割时应用层来做还是驱动层自动做的,我大概看了驱动的代码好像没有数据分割这么一说,见笑。
|
|
沙发#
发布于:2008-11-19 14:26
数据分割是硬件做的, 软件需要给出一次传输的长度(transfer_size)和最大包长度(max_packet_size), 如果transfer_size>max_packet_size, 硬件会做数据分割
|
|
|
板凳#
发布于:2008-11-19 14:32
感谢,但是我用DRIVERSTUDIO做的驱动代码是这样写的,如果要传输的长度大于最大包长度,就只传送最大包长度,既然是硬件分割,那为什么驱动层还要判断呢?迷惑中。。。
|
|
地板#
发布于:2008-11-19 15:30
那这就是软件分割了, 可能有的硬件不支持硬件分割
|
|
|
地下室#
发布于:2008-11-19 15:53
应用层直接读100KB大小的数据,数据分割USb固件都帮你了,不用管
|
|
5楼#
发布于:2008-11-19 16:11
晕,可是我的S1R72V05芯片的固件程序没有对数据进行分割啊,它只是判断要传送的数据是不是比最大包长度大,大的话,就只传送最大包长度的数据,并没有进行分割啊。
|
|
6楼#
发布于:2008-11-19 17:25
是判断要传输的是否比最大包大, 还是判断剩余的是否比最大包大?
|
|
|
7楼#
发布于:2008-11-20 09:24
不好意思,是我没看全,数据分割是驱动完成的,每次传输最大包长度的数据包,感谢!
|
|