速度很低

[复制链接]
 楼主| 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存储器
stly 发表于 2017-11-27 17:52 | 显示全部楼层

我也在测slaveFIFO 的AUTOOUT传输速度可速度非常可怜只有2.2MB/S
 楼主| zwll 发表于 2017-11-27 17:54 | 显示全部楼层
如果速度只有2.2MB/S的话,应该是PC端接收缓冲区设置得太小了,设置大点,比如10K,或是其他,会有比较大的提升
 楼主| zwll 发表于 2017-11-27 17:58 | 显示全部楼层
不过我的极限好像也就16MB/S
stly 发表于 2017-11-27 17:59 | 显示全部楼层

不经过单片机,应该会很快啊!
llljh 发表于 2017-11-27 18:01 | 显示全部楼层
用的什么传输模式啊?
 楼主| zwll 发表于 2017-11-27 18:02 | 显示全部楼层

楼上请指点一下,我测试的是SLAVE FIFO AUTOOUT模式 端点2 512*4 PC机发数据 外部主机我使用的是AVR单片机(11.0592MHZ)用单片机来读FIFO中的数据,从而测AUTOOUT的速度
 楼主| zwll 发表于 2017-11-27 18:05 | 显示全部楼层

另外我PC的缓冲区设置成了45K了,看来不是缓冲区太小的原因的问题,不知道速度的瓶颈在哪里?
dingy 发表于 2017-11-27 18:06 | 显示全部楼层
是i啊,测的是SLAVE FIFO的什么模式,外部主机是什么配置?
pengf 发表于 2017-11-27 18:07 | 显示全部楼层
我觉得首先必须确认外部主机的速度不能成为瓶颈
renyaq 发表于 2017-11-27 18:09 | 显示全部楼层
我也是16MB/s,下面上传的速度从32MB/s,提到48MB/s,连续传输还是16MB/s,
supernan 发表于 2017-11-27 18:11 | 显示全部楼层

我用的FPGA传数,多半时间空闲,我知道瓶颈在上面,怎么修改缓冲区大小啊?
xxrs 发表于 2017-11-27 18:12 | 显示全部楼层

AVR用的是8位数据总线吧,它就是一个单片机,用它测USB速率,恐怕没法胜任。可以查一下时序,AVR操作一次外部数据用多少时间,加上其它软件开销,能估算出AVR读/写一个字节耗费的时间。
juventus9554 发表于 2017-11-27 18:14 | 显示全部楼层
或者上示波器,看看握手信号。
liuzaiy 发表于 2017-11-27 18:16 | 显示全部楼层
CY提供的例子除了接DSP,就是FPGA的。FIFO不仅可以8位操作,还可以16位操作,比如连16位的DSP总线。
 楼主| zwll 发表于 2017-11-27 18:18 | 显示全部楼层
谢谢楼上各位楼上,鼎力相助!是AVR单片机速度不过快,单片机的读周期是900ns的只有1.1M,很慢!瓶颈在AVR上
 楼主| 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

粉丝
快速回复 在线客服 返回列表 返回顶部