大家好,关于68013通信的问题想问一下, (68013 )作为USB的控制芯片通过上位机软件与FPGA进行通信, FPGA与USB之间通信采用slave-fifo的方式,FPGA不断从USB的FIFO中读取数据,上位机不断写数据到USB的FIFO中, 实际工作中USB的通信速率要求能达到10M/Byte 的速率才能保证FPGA对数据的连续运行, USB处理器68013能达到最快60M/Byte的速率, 我在测试中发现只能达到5M的速率,远低于最快速率, 从以下几个步骤分析了问题:
1. 1. 先确定FPGA从USB-FIFO取数据的速率, 当FIFO中有数据时,USB会输出一个FLAGC信号为高,这时,FPGA就会在48M同步时钟控制下从USB-FIFO中取出数据,通过逻辑分析仪可以看到,FPGA取数据的速率是24M/16bit. 也就是在FLAGC为高是,FPGA用24M的速率将数据取出来.发现FLAGC为高的时间间隔为8.3us左右, 一个包为400字节.
2. 2.上位机软件是不断的发送数据,使用bus hound软件测上位机发给68013的数据速率,发现数据包是240us一个包,一个包是400字节,这样,速度只有1.6M/byte, 这240us是指每个OUT包之间的间隔时间,下图为两个OUT包之间的间隔.也就是如果这个包之间的间隔更短些,则数据速率就可以提高了, 还有USB内部是采有两个缓冲区,想知道怎样才能提高USB传输的速度,从现在的情况看来,感觉是上位机传到USB的速度慢了,大家帮忙分析一下.
下 |