阅读:1583回复:6
如何提高USB的传输速率?
我现在用的是D12的模式0,用主管道通过批量传输方式一次传64字节,可是测了一下速度,只能达到20Kbyte/s。距USB1.1的协议中的速度还差很多,请教如何才能提高我的传输速率?
|
|
最新喜欢:dacong... |
沙发#
发布于:2002-12-09 22:29
不好意思.但是我想想问你一个问题..那次你告诉我
接着是设置设备地址处理事件,主机发送一个含有指定地址的数据包(00,05,02,00,00,00,00,00),设备需返回一个0数据包(这一步一定要做)。在主机只有一个USB设备的时候,这个地址一般会是2。设置地址事件处理结束后,设备进入地址状态,主机会在指定地址处访问设备。 这里0数据包怎么返回啊.是往缓冲区里写一个#0么?? 还有是不是我发了0数据包后,主机就在新地址访问了阿?我需要怎么办呢还是不用管就和原来地址一样啊....我做到这步后就走不下去了..烦啊. |
|
板凳#
发布于:2002-12-09 23:41
应该是应答ACK.
|
|
|
地板#
发布于:2002-12-10 09:33
应该是应答ACK. 能不能具体的说说..我很急阿 .谢谢 [编辑 - 12/10/02 by dacongtou] |
|
地下室#
发布于:2002-12-10 11:41
就是说你通过控制输入端点发一个长度为0的数据,你在你的程序里只要往控制输入端点(ENDPOINT1)的缓冲区写一个长度为0的数据包,实际上根据D12的使用手册可以看到,在缓冲区里第一个值是任意的,第二个是你要发的长度,现在应该是0,你三个开始才是你所要发的数据包,但你现在什么都没写,所以只要往缓冲区里写头两个数据,也就是任意值和0。懂不? :D
|
|
5楼#
发布于:2002-12-10 11:55
就是说你通过控制输入端点发一个长度为0的数据,你在你的程序里只要往控制输入端点(ENDPOINT1)的缓冲区写一个长度为0的数据包,实际上根据D12的使用手册可以看到,在缓冲区里第一个值是任意的,第二个是你要发的长度,现在应该是0,你三个开始才是你所要发的数据包,但你现在什么都没写,所以只要往缓冲区里写头两个数据,也就是任意值和0。懂不? :D 太感谢了..我正等着这个答案呢...试试去..... 还有问一句:设置地址 MOV A,#0D0H LCALL D12COMMAND MOV A,#82H LCALL D12WRITE 是不是就可以了...还有我是先设置地址然后写0,再然后是不是不用别的步骤了?还需不需要要来个使缓冲区有效阿.... |
|
6楼#
发布于:2002-12-11 08:16
这个问题解决了..帮你顶一顶...
|
|