学习笔记(1):使用FPGA和CYUSB3014实现USB3.0数据传输

简单介绍

        赛普拉斯将CYUSB3014简称为EZ-USB FX3,该芯片用于USB3.0的外设控制。 

        
EZ-USB FX3 集成了 USB 3.0 和 USB 2.0 物理层 (PHY) 以及 32 位 ARM926EJ-S 微处理器,具有强大的数据处理能力,并可用于构建定制应用。 本产品采用了一种巧妙的架构,使从 GPIF II 到USB 接口的数据传输速度可达 320 MBps。

        FX3有一个用于并行传输的通用接口:GPIF II。该接口可以与FP GA直接连接。

        FX3功能及其强大,它集成了USB3.0 PHY物理层还有ARM核,i2c,uart等。

        FX3主要功能是传输USB主机与外设之间的数据,可实现对高带宽数据的传输。

接口介绍

        如图就是与FPGA,PC端的连接示意图。通过GPIF II接口的实现实例是异步和同步从器件FIFO的接口。如下图所示。FX3相当于是FPGA与上位机之间的桥梁,FX3内部会将收到的数据打包成usb3.0协议的数据包。

        接口频率可高达 100 MHz。提供 256 种固件可编程状态 。支持 8 位、16 位和 32 位并行数据总线。

            

        对上图接口功能简单介绍:D是32bit数据线,A是选择用内部的哪个缓冲区,每个缓冲区16kb

        上图是同步读FIFO 时序图(FPGA读FX3),当SLRD#有效延迟的两个周期数据输出。SLRD#是FIFO读使能,这个使能的开启一定非空,通过FX3的输入信号来判断是否为空,这个信号就是flaga,只有当FX3输出了有效信号,才可以使SLRD#有效。

        从FIFO中的地址读出数据到总线延迟三个周期。即片选有效以后的三个时钟周期以后数据才会出现在总线上。

        当FLAGA拉低证明FIFO读空,该信号与SLRD#延迟两个时钟周期。

        同步读和异步读的区别:同步读的FIFO指针是跟着时钟上升沿变的。而异步读FIFO的指针是随着SLRD#从有效至无效变化的。

 上图是同步写数据时序图。

        PKTEND:包结束信号,外部逻辑控制,在正常情况下,外部逻辑向FX2的FIFO中写数,当写入FIFO端点的字节数等于FX2固件设定的包大小时,数据将自动被打成一包进行传输,但有时外部逻辑可能需要传输一个字节数小于FX2固件设定的包大小的包,这时,它只需在写入一定数目的字节后,声明此信号,此时FX2硬件不管外部逻辑写入了多少字节,都自动将之打成一包进行传输。

        当SLWR#有效时,在时钟上升沿数据被写入FIFO.在vivado写的时候可以认为写使能和数据是同时的不需要提前拉起(和一般fifo一样)。

———————————————————————————————————————————

EZ-USB FX3
器件可以使用:

1) 19.2 MHz
晶振或

2)
频率为
19.2 MHz

26 MHz

38.4 MHz

52 MHz
的时钟作为时钟源。

物联沃分享整理
物联沃-IOTWORD物联网 » 学习笔记(1):使用FPGA和CYUSB3014实现USB3.0数据传输

发表评论