USB3.0 GPIF II接口

赛普拉斯 EZ-USB FX3 为一款USB3.0外设控制器,拥有一个可进行完全配置的并行通用可编程接口GPIF II,可与FPGA连接。

通用可编程接口 GPIF II 总线位宽有32/16/8位总线,最大速度 100MHz,其控制信号可配置;

外设接口有 I2C、I2S、UART、SPI;

逻辑框图:

因为该芯片焊接在FPGA开发板上,所以需要使用FPGA控制的管脚只有GPIF II接口管脚,用户需要做GPIF II接口的编程;

FPGA 通过 GPIF II接口传递数据给FX3,FX3内部将数据打包成带有USB3.0协议的数据包,通过USB 标准接口对外传输;所以只需要按照FX3 芯片的要求编写时序,即可将数据传输到USB3.0 接口的主机上。

GPIF 接口:

FPGA为主设备,GPIF II为从设备,GPIF II选择同步从设备FIFO 接口模式进行使用;

同步从设备FIFO接口:

DQ:从FX3写数据或者从FX3读数据都是共用这一个DQ 数据线,半双工模式;

读写带宽: 100M x 32bit = 3.2Gbps,为最大支持的通信带宽;

GPIF II同步从设备 FIFO 接口读时序:

读取操作:

时钟PCLK稳定保持;

地址A稳定且SLCS信号被激活,表示地址和芯片选中;

激活SLOE,其为一个使能信号,使能后可以驱动数据总线DQ;

激活SLRD,激活后根据时序,在数据输出有效时取走;

关于读时序:

在操作第一拍,SLCS拉低,地址FIFO ADDR赋值,SLOE拉低;第二拍SLRD拉低读取数据DQ;

地址稳定有效到数据能输出延时3个时钟周期,SLRD拉低激活到该数据能输出间隔2个时钟周期;

FLAGA和FLAGB被分别配置为An 地址和Am 地址的空标志,所以数据读空后就拉低,

同时,SLRD与FLAG拉低之间间隔了两个时钟周期;

读操作完毕后,就可以将SLCS、SLOE拉高,SLRD的控制最好是根据后续配置的FLAG状态进行判断,有多少可读的数据就拉低多少拍;

对于读时序图,通道被读空后有2个时钟周期的延迟,空标志才会更新;

GPIF II同步从设备 FIFO 接口写时序:

写入操作:

时钟PCLK稳定保持;

地址A稳定且SLCS信号被激活,表示地址和芯片选中;

外部主设备将数据输出到数据总线上;

激活SLWR 的同时将写数据放到 DQ总线上,数据将被写入FIFO中,FIFO指针在PCLK上升沿变化,FIFO的满标志将会更新;

关于写时序:

激活片选信号,地址稳定,拉低写使能SLWR,同时将数据放入数据总线DQ上,写入到FIFO,

并监测FLAG信号,判断FIFO为空再写,避免出现写溢出问题;

当两个FLAG 在一个地址时,都同时服务于该地址,如果地址是写通道,就配置为满标志和几乎满标志;如果是读通道,就配置为空标志和几乎空标志;

在写操作的最后一排将 PKTEND拉低,科技标志本次写入的结束;写短数据包时,在写入SLWR拉低的最后一拍拉低PKTEND,然后退出写状态即可正常写入该短包;

包长度由FX3固件配置,当缓冲区长度设置为1024,那写长度低于1024的数据包,均为短数据包;

写短数据包时,PKTEND 必须在最后一拍拉低,不然FX3会一直等待下一拍数据而导致卡在这里;

当写长度等于缓冲区长度的数据包,其最后一拍的PKTEND 可拉低也可不拉低,因在这种情况下写入数据,最后一拍数据刚好填满缓冲区,FX3本次写结束,也不再接收后续数据;

零长度写入包,不写入数据,SLWR不需要拉低,只需要工作时拉低一拍PKTEND即可;

通道被写满后有3个时钟周期的延迟,满标志(FLAGB)才会更新;

当主设备对同步从设备FIFO 进行写入时:

时钟沿到来采集到激活的局部标志后,可写入的数据字的数量=水印值-4;

当设置写通道水印值设置为4,那么FPGA 在采集到激活的局部标志后,可写入的数据量就为0,所以在采集到几乎空满标志激活后,立即停止写入;

当主设备对同步从设备FIFO 进行读取时:

时钟沿到来采集到激活的局部标志后,可用于读取的数据字的数量=水印值-1;

读通到水印值设置为3,当FPGA 采集到激活的几乎空满标志后,可读取的数据量就为2,

但是SLRD激活到总线输出数据存在两个周期延迟,所以在采集到局部标志激活后,立即拉高SLRD停止读取,后续数据维持两拍输出;

相关推荐
传感器与混合集成电路14 小时前
伺服数据采集控制模块系统集成实战手册:接口设计要点、上电顺序与开发环境配置全解析
fpga开发
xxLearn1 天前
Vivado 2025.2 下载程序时提示:“ERROR : invalid command name ps7_init“
fpga开发
科恒盛远1 天前
【无标题】
fpga开发·硬件工程·信号处理
千寻xun2 天前
一、理论篇-NVME协议学习笔记
笔记·学习·fpga开发·nvme ssd·nvme协议
AndyHeee2 天前
【PCIe中的BAR、MMIO、MMU、mmap函数与页表】
fpga开发
nuoxin1143 天前
HR4988替代A4988-富利威
网络·人工智能·嵌入式硬件·fpga开发·dsp开发
一口一口吃成大V3 天前
vivado的bit 和 bin的区别
fpga开发
尤老师FPGA3 天前
HDMI数据的接收发送实验(十八)
fpga开发
北京青翼科技4 天前
青翼科技 JFM7K325T FPGA+FT-M6678 DSP 的全国产化信号处理平台丨FPGA开发板
fpga开发·数据采集卡·fmc子卡·fpga开发板·ad采集卡·图像处理卡·dsp信号处理
zlinear数据采集卡4 天前
从0到1硬核拆解:工业级数据采集卡的隔离设计与Modbus通信实战
arm开发·单片机·嵌入式硬件·fpga开发·开源