您的位置 首页 方案

根据CYPRESS的USB3.0总线技能的开发使用

1.引言USB(UniversalSerialBus,通用串行总线)以其无需配置、即插即用等特性获得了广泛的应用。2004年提出的USB2.0标准,传输速度最大能够达到480Mbps.但在USB3.0

1.导言

USB(Universal Serial Bus,通用串行总线)以其无需装备、即插即用等特性获得了广泛的运用。2004年提出的USB2.0标准,传输速度最大能够到达480Mbps.但在USB3.0标准中,它的最大传输速度几乎是传统USB2.0传输速度的10倍,到达了5.0Gbps,被界说为“超高速U S B接口”.本文依据CYPRESS的FX3系列USB3.0芯片,对USB3.0总线进行研究开发。

2.USB3.0接口芯片概述

赛普拉斯的EZ-USB FX3是新一代的USB3.0外设操控器,具有高度集成的灵敏特性,答应体系规划者将USB3.0增加至任何体系。本文选用的是FX3系列USB3.0芯片CYUSB3014.

FX3是彻底兼容USB3.0 V1.0和USB2.0标准的,集成的USB2.0 OTG操控器答应芯片作为主从设备运用。别的,它还支撑一些常用的外设接口,如SPI,I2C,UART和I2S能够与外部设备进行通讯。

FX3具有一个可进行彻底装备的并行通用可编程接口GPIF II,它能够与任何处理器、AS%&&&&&%或是FPGA衔接。它能够轻松无缝地衔接至多种常用接口,比方异步SRAM、异步和同步地址数据复用式接口、并行ATA等等。EZ-USB FX3集成了USB3.0和USB2.0物理层(PHY)以及32位ARM926EJ-S微处理器,具有强壮的数据处理才能,并可用于构建定制运用。

3.体系全体规划

本体系规划首要由软件部分和硬件部分组成。软件部分首要包含三大部分:PC机运用程序、FX3固件程序、FPGA程序。硬件部分首要由FPGA、USB3.0芯片和DDR2组成,硬件的体系框图如图2所示。本文首要完成了硬件、PC机运用程序和FPGA程序的规划。

FX3固件程序运用的是Cypress的SDK开发包的固件程序。

3.1 DDR模块规划

与FPGA比较,USB3.0接口是一个高速的接纳单元。在不同作业速度的体系之间,数据缓存是不可或缺的部分,一般来说,运用FIFO根本能够使各体系作业在自己的时钟频率下,而不需求重复的相互握手信号就能进行数据的沟通。本文规划的数据是保存在核算机上,因为各核算机的硬件装备可能会不一样,咱们规划了DDR2虚拟FIFO模块来进行数据缓存,为批量传输时能够供给满意的缓存,不必忧虑为缓存不行电脑来不及存取数据形成数据丢掉。

本体系选用两片MT47H64M16HR,两片DDR并联操控总线和地址总线,总存储容量到达2Gbit,读写宽度都为16bit,它具有丰厚的资源,满意满意本体系的需求。

3.2 USB3.0接口规划

与USB2.0不同的是,USB3.0在与核算机通讯时,它有自己专用的数据通路,专用的数据发送线路和独立的数据接纳线路,即图3中四线差分信号SSRX+/-和SSTX+/-,然后能够真实的完成全双工。一起,USB3.0还兼容了USB2.0的D+/-信号接口,然后能够与USB2.0无缝衔接。运用从器材FIFO接口与FPGA链接,传输速度能到达可到达320MBps.图3为USB芯片与FPGA和PC机的电路衔接。

3.3 FPGA逻辑规划

FPGA是整个体系的中心,它需求发生测验数据并将数据存储到DDR2中,以及将DDR2中读出的数据转移到CYUSB3014大的内部FIFO中,因而它首要由如图2内部所示模块构成。

3.3.1 USB接口模块

USB接口模块首要处理读写指令。读写指令需求核算机通过USB操控传输,传递到CYUSB3014中,再由CYUSB3014将详细的指令转化为电平信号送到FPGA的IO口。USB接口模块依据UART_RX上的电平信号,判别出是读指令仍是写指令,终究发生CYUSB3014的片选CS、使能OE、读/写操控等有用信号。

当为写指令时,CYUSB3014需求将从DDR2中读取的数据发送出去;当为读指令,读取CYUSB3014传递过来的数据,流程图如图4所示。

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

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中进行剖析。

CYPRESS官方开发包中自带了streamer软件进行速度测验。在Endpoint选项中挑选Bulk in endpoint端点(Bulk Out对应的是PC机向FPGA写数据)。因为批量传输时的最大包为1024字节,因而需求将Packets perXfer设置为256或以下,Xfers to Queue置为4.不同的USB3.0操控器,速度的测验成果会有所不同。如图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的基础上,对USB3.0进行了开发运用。鉴于本文的体系架构,尽管测验数据都是FPGA内部发生,可是关于实践运用高采样率AD的数据收集体系具有很大的学习含义。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/fangan/241222.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部