打印

先转帖我以前的一篇**,纠正楼主一个概念上的错误:

[复制链接]
3052|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wowow|  楼主 | 2007-12-1 15:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
测板板子的USB速度,2.0下最高只有6.5MByte/s,1.1下最高只有240kByte/s,跟理论速度差太远了吧?2.0下应该可以到40M/s,1.1下应该可以到800k/s的。相同的USB端口用HDTone测移动硬盘可以到23M/s。问题会出在哪呢?

68013A工作于Slave FIFO模式,测试时用板上的CPLD检测FLAG,只要不是FULL就往里写。写入速度最大6.25M Word/s,也就是12.5M Byte/s。上位机用的是CyAPI开发包和CyUSB.sys的驱动,只管使劲地读:
    while (1){
        PacketLength=512;
        USBDevice->BulkInEndPt->XferData((unsigned char*)Buf,Dlg->PacketLength);
     }
就这样速度怎么也起不来,哪里出了问题呢?

相关帖子

沙发
vongy| | 2007-12-1 17:31 | 只看该作者

不知道你CPUCS的频率选的是多少

使用特权

评论回复
板凳
wowow|  楼主 | 2007-12-1 19:09 | 只看该作者

CPUCS是48M的

使用特权

评论回复
地板
wowow|  楼主 | 2007-12-1 23:45 | 只看该作者

终于2.0下做到11.2M/s了

终于2.0下做到11.2M/s了,接近于CPLD写FIFO的12.5M/s。应该可以达到这个速度的,提不上来了。IFCLK没接到CPLD上,没办法用同步slave fifo测更高的速度。

提高速度的办法很简单把下面的PacketLength换成比较大的值,如32768就好了。。。。
while (1){
        PacketLength=512;
        USBDevice->BulkInEndPt->XferData((unsigned char*)Buf,Dlg->PacketLength);
 }
看Full Flag的波形,还是时不时有一小段高,可能PC机做为多任务的不可能一直在接收。提高写FIFO的速度应该还可以提高速度。

但是在1.1下的速度还是惨不忍睹的240k/s。难道是68013对full speed支持得不好?看Full flag的波形,连续8段写入,然后一大段等待。为什么有8段连续写想不通。

使用特权

评论回复
5
dragon_hn| | 2007-12-4 19:00 | 只看该作者

楼主做到这个已经不错了

楼主做到这个已经不错了.提高速度一是FIFO和USB包长度要尽量长,二是对多FIFO的USB IC尽量把所有FIFO用上,三是尽量用DMA

使用特权

评论回复
6
computer00| | 2007-12-4 19:19 | 只看该作者

先转帖我以前的一篇**,纠正楼主一个概念上的错误:

误区:关于USB2.0和USB高速传输模式 

在最初的USB1.0和USB1.1协议中,仅存在着低速(1.5Mbps),全速(12Mbps)设备。发展到后来的USB2.0协议,又增加了高速(480Mbps)模式。但是需要注意的是,USB2.0协议只是USB协议的2.0版本而已,它并不是USB高速传输模式的代名词。在USB2.0协议中,规定了可以支持3种速度模式,分别是低速(Low Speed, 1.5Mbps),全速(Full Speed, 12Mbps)和高速(High Speed, 480Mbps)。但它并未强制要求一定具备高速模式。

很多USB芯片注明支持USB2.0协议,但是只支持全速(Full Speed)传输模式。如果你需要的是高速传输模式,那么在选择芯片时要特别注意,看它是否支持高速传输模式,如果只是看到USB2.0就认为一定支持高速传输模式,那就错了。

像Philips的PDIUSBD12芯片,数据手册里面就明确写了,支持USB2.0协议的全速传输模式。

相关链接:http://group.ednchina.com/93/200.aspx

使用特权

评论回复
7
wowow|  楼主 | 2007-12-4 21:35 | 只看该作者

我的产品是要求1.1/2.0都可以支持

我的产品是要求1.1/2.0都可以支持,并且要求如果2.0下传输不稳定的话能强制到1.1。因为以前的样机发现有的PC上2.0有时能联,有时不能联。现在做法是上电时先强制为1.1(稳定放在第一位),界面有个选择可以让68013切换到2.0模式。现在基本弄好了,但是1.1下速度太慢,只有244k/s,离上限800-900k/s差得太远。问题可能出在哪呢?
另外一个bug是运行过程中Reset OUT EP后EP就好像不工作了,IN EP没有问题。

使用特权

评论回复
8
dwindy| | 2016-7-7 16:10 | 只看该作者
wowow 发表于 2007-12-1 23:45
终于2.0下做到11.2M/s了,接近于CPLD写FIFO的12.5M/s。应该可以达到这个速度的,提不上来了。IFCLK没接到CP ...

那请问你len改了之后buf也对应改过去了吗?

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

59

主题

649

帖子

3

粉丝