打印

关于68013的问题1

[复制链接]
3952|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hugoodboy|  楼主 | 2011-4-28 11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,关于68013通信的问题想问一下, (68013 )作为USB的控制芯片通过上位机软件与FPGA进行通信, FPGAUSB之间通信采用slave-fifo的方式,FPGA不断从USBFIFO中读取数据,上位机不断写数据到USBFIFO, 实际工作中USB的通信速率要求能达到10M/Byte 的速率才能保证FPGA对数据的连续运行, USB处理器68013能达到最快60M/Byte的速率, 我在测试中发现只能达到5M的速率,远低于最快速率, 从以下几个步骤分析了问题:
1.     1. 先确定FPGAUSB-FIFO取数据的速率, FIFO中有数据时,USB会输出一个FLAGC信号为高,这时,FPGA就会在48M同步时钟控制下从USB-FIFO中取出数据,通过逻辑分析仪可以看到,FPGA取数据的速率是24M/16bit. 也就是在FLAGC为高是,FPGA24M的速率将数据取出来.发现FLAGC为高的时间间隔为8.3us左右, 一个包为400字节.

2.     2.上位机软件是不断的发送数据,使用bus hound软件测上位机发给68013的数据速率,发现数据包是240us一个包,一个包是400字节,这样,速度只有1.6M/byte, 240us是指每个OUT包之间的间隔时间,下图为两个OUT包之间的间隔.也就是如果这个包之间的间隔更短些,则数据速率就可以提高了, 还有USB内部是采有两个缓冲区,想知道怎样才能提高USB传输的速度,从现在的情况看来,感觉是上位机传到USB的速度慢了,大家帮忙分析一下.
沙发
USB-Emily| | 2012-10-31 18:22 | 只看该作者
是不是和上位机发送数据的间隔有关呢?

使用特权

评论回复
板凳
McuPlayer| | 2012-11-5 15:10 | 只看该作者
为什么一个包400个字节?

bulk端点是512的,按倍数来,就不会有小包了,效率也提高了

使用特权

评论回复
地板
ji_dan| | 2012-11-5 16:30 | 只看该作者
我也用过这款,也用slave fifo模式,不过是向PC发送数据,6013a自身产生数据,设置好fifo,满了自动发送,这个速度也只能达到3MB/s,不知道怎么提升

使用特权

评论回复
5
liangziusb| | 2012-11-9 08:36 | 只看该作者
固件一侧的速度很高,影响速度的因素主要是上位机程序,你可以这样修改一下,在一个线程内,一次启动多个传输。

使用特权

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

本版积分规则

2

主题

22

帖子

2

粉丝