1-FPGA-USB3.0-FT601Q简单理论
1-FPGA-USB3.0-FT601Q简单理论
前言
最近有一个FPGA项目中需要使用USB3.0完成高速数据收发,通过USB3.0数据线、母座、FT601Q芯片实现主从设备之间的数据传输。学习资料是米联客的USB3.0 MicroB,而为了提高稳定性和可靠性实物采用的是USB3.0 StandB,那么这篇博客针对USB3.0三种母座接口进行分析,同时对FT601Q芯片进行介绍。
USB规范协议:https://www.usbzh.com/article/detail-385.html
USB3.0协议及引脚定义
下图是从USB规范协议中文版中截取的,可以看出在采用了3路差分信号,传输速率有明显的提升。
USB3.0 StandA、USB3.0 StandB、USB3.0 MicroB
原理图对比
PCB封装对比
实物对比
VBUS | 供电,由外部设备提供 |
---|---|
D- | 高速USB收发器差分对- |
D+ | 高速USB收发器差分对+ |
SSTX- | 超高速USB发射器差分对- |
SSTX+ | 超高速USB发射器差分对+ |
SSRX- | 超高速USB接收器差分对- |
SSRX+ | 超高速USB接收器差分对+ |
GND | GND |
通过查阅USB3.0接口的厂商文档和USB规范协议得出,除了USB3.0 MicroB多了一个ID引脚外(数据传输可以不用),因此上述三种母座是通用。
FT601Q
FT601Q控制结构图
米联客极简外围电路设计
FT601Q控制引脚说明
下表对编程控制需要使用的引脚进行记录
CLK | O | FIFO总线时钟,注意看是输出66M或者100M |
---|---|---|
DATA[31:0] | I/O | FIFO数据输入输出 |
BE[3:0] | I/O | FIFO数据使能 |
TXE | O | 245同步FIFO模式:输出FIFO的空信号,表明可以写数据 |
多通道FIFO模式:输出有效信号 | ||
RXE | O | 245同步FIFO模式:接收FIFO的满信号,表明可以读数据 |
多通道FIFO模式:确认接收信号 | ||
SIWU | I | 保留引脚,正常使用时拉高 |
WR | I | 写,低有效 |
RD | I | 读,低有效 |
OE | I | 245同步FIFO模式输出使能,低有效 |
WAKEUP | I/O | 应用程序驱动这个引脚低在USB挂起时产生一个远程唤醒信号给USB主机 |
GPIO[1:0] | I/O | 两个引脚用来选择FIFO协议和通道 |
FIFO协议选择
两种FIFO协议,一种是245同步FIFO,另一种是多通道FIFO。
后者适用于FT232H/FT2232H设备输入的数据,FT232H/FT2232H是高速单通道UART/FIFO芯片,这里我们使用的是FPGA的FIFO IP核,所以采用第一种245同步FIFO。
多通道模式支持FIFO的4进4出,245同步模式支持FIFO的单入单出,二者的时钟均由芯片的CLK提供。
通过查阅数据手册得知,多通道模式是针对多从设备的情况进行设计的,因此后文对245同步模式展开介绍。
GPIO[1:0]用于FIFO协议、通道的选择,原理图上标位SCL和SDA(不知道为什么这么标注)。
这里针对GPIO功能进行记录,不对BCD功能记录。
245FIFO模式读写时序图