新闻中心

EEPW首页>嵌入式系统>设计应用> 一款基于CYPRESS的USB3.0总线设计

一款基于CYPRESS的USB3.0总线设计

作者: 时间:2014-03-19 来源:网络 收藏

图5、图6分别为同步写入和读出数据的时序图。由于读写最大包为1024字节,所以实际每一包传输需要256个周期。图中的输入/出DQ数据为测试数据模块和PC机产生的测试数据,RX即UART_RX信号。

本文引用地址://m.amcfsurvey.com/article/234977.htm

3.3.2 测试数据模块

当计算机向FPGA发出读命令时,FPGA产生测试数据。32位数据,高16位为0,低16位循环计数,发送一个周期后,自动清零。

批量(bulk)传输时的最大包大小为1024字节,因此测试数据在0~255之间循环变化。

产生测试数据后,数据传输流程为DATA->

DDR2->FIFO->CYUSB3014->PC机,实现了将测试数据上传到PC机的功能。

3.3.3 DDR2接口模块

该部分直接负责外围DDR2接口,利用FPGA的DDRII SDRAM IP核实现,按照DDR2芯片MT47H64M16HR来设定控制器的时序参数,控制器根据这些参数值生成满足MT47H64M16HR时序的接口,再由DDR2模块进行读写控制。

4.测试结果及分析

4.1 写入数据测试

当应用程序向USB发出写命令时,FPGA产生测试数据并传给FX3以便上传给PC机。

采集1000MB的数据进行记录,以便在MATLAB中进行分析。

官方开发包中自带了streamer软件进行速度测试。在Endpoint选项中选择Bulk in endpoint端点(Bulk Out对应的是PC机向FPGA写数据)。由于批量传输时的最大包为1024字节,因此需要将Packets perXfer设置为256或以下,Xfers to Queue置为4.不同的控制器,速度的测试结果会有所不同。如图7所示是在64位WIN7系统下的测试及分析结果。如图7(a)中所示,经过一段时间的速度测试,23704个成功包,0失败,往P C中写入数据的速度能够达到178800KB/S,即1.43Gbps.为了验证数据的正确性,在MATLAB中对采集的8.0Gb数据进行分析。由于测试数据是0~255之间循环变化,因此可以根据每一包数据的数据差是否为1来判断数据的正确性,当不为1时报错。

如图7(b)所示,读取的数据是正确的,没有发生丢数或错数的情况。

4.2 读出数据测试

类似的,当应用程序向USB发出读命令时,同时会产生一组有规律的测试数据,并传送给CYUSB3014,FPGA直接读取数据。如下图8(a)所示是读入速度测试结果,18252个成功包,0失败,往USB中写入数据的速度能够达到179000KB/S,即1.432Gbps.在FPGA中记录下随机采集的32k数据并进行分析,同样的可以根据数据间的差来判断数据的正确性,如图8(b)所示,写入的数据时正确的,没有发生丢数错数的情况。

5.结束语

本文在FPGA和CYUSB3014的基础上,对进行了开发应用。鉴于本文的系统架构,虽然测试数据都是FPGA内部产生,但是对于实际使用高采样率AD的数据采集系统具有很大的借鉴意义。


上一页 1 2 下一页

关键词:CYPRESSUSB3.0

评论


相关推荐

技术专区

关闭