打印

速度很低

[复制链接]
1052|27
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zwll|  楼主 | 2017-11-27 17:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我现在用的是68013,驱动使用的是cyusb.sys,32KB的那个,68013与设备的接口是27MB/S左右,slaveFIFO IN方式,在PC端通过同步或异步方式进行读取,现在速度始终只能保持在16MB/S
沙发
zwll|  楼主 | 2017-11-27 17:48 | 只看该作者
在提问之前我也看了论坛里的帖子,之前有大侠使用的这种方式刚开始大概也是这个速度,后来有些是通过修改PC端接收缓冲区大小实现了20+MB/S的,我自己的程序中缓冲区已经做了很多的修改,但是目前来看好像没有什么作用

使用特权

评论回复
板凳
chuxh| | 2017-11-27 17:49 | 只看该作者
你的SlaveFIFO的外部MCU频率是多少?

使用特权

评论回复
地板
juventus9554| | 2017-11-27 17:51 | 只看该作者
有没有另外外接FIFO存储器

使用特权

评论回复
5
stly| | 2017-11-27 17:52 | 只看该作者

我也在测slaveFIFO 的AUTOOUT传输速度可速度非常可怜只有2.2MB/S

使用特权

评论回复
6
zwll|  楼主 | 2017-11-27 17:54 | 只看该作者
如果速度只有2.2MB/S的话,应该是PC端接收缓冲区设置得太小了,设置大点,比如10K,或是其他,会有比较大的提升

使用特权

评论回复
7
zwll|  楼主 | 2017-11-27 17:58 | 只看该作者
不过我的极限好像也就16MB/S

使用特权

评论回复
8
stly| | 2017-11-27 17:59 | 只看该作者

不经过单片机,应该会很快啊!

使用特权

评论回复
9
llljh| | 2017-11-27 18:01 | 只看该作者
用的什么传输模式啊?

使用特权

评论回复
10
zwll|  楼主 | 2017-11-27 18:02 | 只看该作者

楼上请指点一下,我测试的是SLAVE FIFO AUTOOUT模式 端点2 512*4 PC机发数据 外部主机我使用的是AVR单片机(11.0592MHZ)用单片机来读FIFO中的数据,从而测AUTOOUT的速度

使用特权

评论回复
11
zwll|  楼主 | 2017-11-27 18:05 | 只看该作者

另外我PC的缓冲区设置成了45K了,看来不是缓冲区太小的原因的问题,不知道速度的瓶颈在哪里?

使用特权

评论回复
12
dingy| | 2017-11-27 18:06 | 只看该作者
是i啊,测的是SLAVE FIFO的什么模式,外部主机是什么配置?

使用特权

评论回复
13
pengf| | 2017-11-27 18:07 | 只看该作者
我觉得首先必须确认外部主机的速度不能成为瓶颈

使用特权

评论回复
14
renyaq| | 2017-11-27 18:09 | 只看该作者
我也是16MB/s,下面上传的速度从32MB/s,提到48MB/s,连续传输还是16MB/s,

使用特权

评论回复
15
supernan| | 2017-11-27 18:11 | 只看该作者

我用的FPGA传数,多半时间空闲,我知道瓶颈在上面,怎么修改缓冲区大小啊?

使用特权

评论回复
16
xxrs| | 2017-11-27 18:12 | 只看该作者

AVR用的是8位数据总线吧,它就是一个单片机,用它测USB速率,恐怕没法胜任。可以查一下时序,AVR操作一次外部数据用多少时间,加上其它软件开销,能估算出AVR读/写一个字节耗费的时间。

使用特权

评论回复
17
juventus9554| | 2017-11-27 18:14 | 只看该作者
或者上示波器,看看握手信号。

使用特权

评论回复
18
liuzaiy| | 2017-11-27 18:16 | 只看该作者
CY提供的例子除了接DSP,就是FPGA的。FIFO不仅可以8位操作,还可以16位操作,比如连16位的DSP总线。

使用特权

评论回复
19
zwll|  楼主 | 2017-11-27 18:18 | 只看该作者
谢谢楼上各位楼上,鼎力相助!是AVR单片机速度不过快,单片机的读周期是900ns的只有1.1M,很慢!瓶颈在AVR上

使用特权

评论回复
20
zwll|  楼主 | 2017-11-27 18:19 | 只看该作者


刚才发现一个新问题,还是上面提到的SLAVE FIFO AUTOOUT模式测试。
AVR单片机接收的数据通过串口返回从串口调试助手(通过串口助手读回USB发出去的数据)显示中发现向USB发2次不同的数据时,数据会不同步。
   比如我第一次发512个0x65(此时的开头257个数据不是65,是随机数),第二次再发512个0x65数据(这以后的数据都正常,发n次都行),第3次我发512个0x33数据,开头显示的是刚才的257个0x65数据,然后才是0x33.不知道怎么会这样的?

使用特权

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

本版积分规则

885

主题

11314

帖子

5

粉丝