基于fpga的usb3.0接口模块的制作方法_3

文档序号:8905198阅读:来源:国知局
断传输与批量传输。其中,批量传输数据流,主要是利用USB总线的空闲带宽进行数据传输,可以在不确定的时间内传输大量数据,适合于数据量大、数据传输正确性要求高的场合,本设计在FX3固件中将USB 3.0数据传输模式设置为批量传输。在进行FX3固件配置时,增大U2P通道缓冲区大小,适当降低P2U通道缓冲区大小。本设计中,每个DMA缓冲区大小设置为16KB,U2P通道DMA缓冲区计数为8,P2U通道DMA缓冲区计数为4。FX3固件程序DMA通道设置如图10所示。
[0110]由于USB 2.0与USB 3.0的固件程序主要差异是DMA缓冲区大小,为了兼容USB2.0接口,在设计固件程序时对连接接口进行判断,判断为USB 3.0或USB 2.0接口后设置相应的DMA缓冲区。
[0111]具体实施例:
[0112]1、发送通道:
[0113]I)、CYPRESS公司提供的主机软件发送数据;
[0114]2)、FX3芯片固件程序接收主机软件发送的数据并写入从设备FIFO中;
[0115]3)、USB 3.0固件程序输出发送状态到USB 3.0接口逻辑;
[0116]4)、USB 3.0接口逻辑发送模块进入状态转换,并检测FX3固件状态;
[0117]5)、USB 3.0接口逻辑发送模块从FX3芯片从设备FIFO中读取数据;
[0118]2、接收通道:
[0119]I)、CYPRESS公司提供的主机软件发送接收请求;
[0120]2)、USB 3.0固件程序输出接收状态到USB 3.0接口逻辑;
[0121]3)、USB 3.0接口逻辑接收模块进入状态转换,接收数据;
[0122]4)、USB 3.0接口逻辑接收模块将接收数据写入FX3芯片从设备FIFO中;
[0123]5)、USB 3.0驱动读取FX芯片从设备FIFO中的数据并传递给主机软件。
[0124]本发明达到的效果:
[0125]1、实现超高速USB 3.0接口,传输速率可达到2.5Gbps ;
[0126]2、兼容USB 2.0接口,可实现计算机与FPGA之间USB 2.0接口通讯;
[0127]3、由控制芯片FPGA逻辑实现USB 3.0控制器FX3芯片的读写时序控制;
[0128]4、将接口逻辑发送FIFO与接收FIFO对接,可实现环路传输。
【主权项】
1.基于FPGA的USB3.0接口模块,其特征是:该接口模块采用FPGA实现逻辑控制,并通过芯片FX3内部同步从设备FIFO的数据读写操作实现高速数据传输; 该接口模块控制逻辑包括USB 3.0发送模块、USB 3.0接收模块、用于跨时钟域操作的发送先入先出队列FIFO模块和用于跨时钟域操作的接收先入先出队列FIFO模块; 所述USB 3.0发送模块包括如下状态: USB_out_idle状态:该状态下,初始化所有寄存器与信号; USB_out_flagc_rcvd状态:当检测到标志位flagc = I时,发送线程生产者USB插座为满,即:检测到USB发送的数据,则启动对数据的发送; USB_out_wait_flagd状态:延迟一个时钟周期,等待检测发送线程生产者同步从设备FIFO 满; USB_out_read状态:当检测到标志位flagd = I时,发送线程同步从设备FIFO为满,激活读控制信号,FPGA读取同步从设备FIFO数据; USB_out_read_rd_oe_delay状态:当标志位flagd = O时,芯片FX3对处于激活状态的读信号进行三个时钟周期的采样,读信号和输出使能信号始终有效; USB_out_read_oe_delay状态:芯片FX3完成对处于激活状态的读信号采样后,输出使能信号需要保持四个时钟周期后跳转到USB_out_idle状态; 所述USB 3.0接收模块包括如下状态: USB_in_idle状态:该状态下,初始化所有寄存器与信号; USB_in_wait_fIagb状态:当标志位flaga = I时,接收线程消耗者USB插座为空,即:USB未发送数据,则启动对数据的接收; USB_in_write状态:当检测到标志位flagb = I时,接收线程生产者同步从设备FIFO为空,FPGA将数据写入同步从设备FIFO ; USB_in_write_wr_delay状态:当检测到标志位flagb = O时,芯片FX3对处于激活状态的写信号进行两个时钟周期的采样,之后跳转到USB_in_idle状态。2.根据权利要求1所述的基于FPGA的USB3.0接口模块,其特征在于芯片FX3的型号CYUSB3014。3.根据权利要求2所述的基于FPGA的USB3.0接口模块,其特征在于FPGA通过GPIFII接口与CYUSB3014芯片相连,CYUSB3014芯片的USB接口与Micro B接口连接,采用I2C接口引导启动,若I2C配置失败,则使用USB接口方式配置启动。4.根据权利要求3所述的基于FPGA的USB3.0接口模块,其特征在于CYUSB3014芯片中还嵌入有JTAG接口,用于作为调试接口。5.根据权利要求4所述的基于FPGA的USB3.0接口模块,其特征在于在进行FX3固件设计时,首先将GPIF II接口配置为同步从设备FIFO接口 ;采用GPIF II Designer工具实现GPIF II接口配置。6.根据权利要求5所述的基于FPGA的USB3.0接口模块,其特征在于FX3固件程序、FX3固件框架、FX3API库和RTOS模块; 所述RTOS模块:用于创建多个线程; FX3API库:用于提供与FX3硬件实现控制与数据传输的接口 ; FX3固件框架:用于开发用户定制的固件程序,包括启动与初始化代码以及USB、GPIFII等模块驱动程序; FX3固件程序包括初始化子程序与应用子程序。7.根据权利要求6所述的基于FPGA的USB3.0接口模块,其特征在于初始化子程序的具体执行方法为: FX3固件程序首先调用函数CyU3PFirmWareEntry()实现MMU与堆栈初始化,并消除无效缓存; CyU3PToolChainInit()函数用于初始化工具链,实现堆栈和C语言库的初始化; 设备初始化:依次执行以下四步操作: 步骤A、设备初始化:通过调用CyU3PDeViceInit O函数设置CPU时钟、初始化VIC以及配置PLL ; 步骤B、设备缓存配置:FX3设备有8KB数据缓存和8KB命令缓存,只需使能命令缓存;步骤C、I/O配置:配置FX3的接口,包括:GPIF II接口、SPI接口、I2C接口、I2S接口、GP1 接口和 UART 接口,调用 CyU3PDeviceConf igurelOMatrix O 对 I/O 矩阵数据结构进行初始化; 步骤D、调用RTOS:通过CyU3PKerneIEntry O调用ThreadX OS操作系统,完成ThreadXOS初始化并设置OS时钟; 创建应用线程Jl^WtThreadX OS后,通过调用CyFxApplicat1nDefineO创建应用程序线程。8.根据权利要求7所述的基于FPGA的USB3.0接口模块,其特征在于初始化子程序的具体执行方法为: Debug模块初始化:调用CyFxSlFifoApplnDebuglnitO实现Debug模块初始化,首先初始化并配置UART状态,之后再调用CyU3roebugInit()初始化Debug应用; 定制应用初始化:应用初始化包括两部分,GPIF II初始化与USB初始化,在GPIF II初始化中将从设备FIFO描述符加载到GPIF II寄存器中并启动GPIF II状态机,在USB初始化中设置USB描述符、创建USB连接与事件并设置USB描述符; 处理USB请求:译码USB请求信号,处理建立USB连接请求与清除USB连接请求; USB事件处理:USB包括配置请求、复位与断开连接3种事件,当检测到配置请求时启动USB传输应用,否则,停止USB应用; 启动USB传输应用:检测到配置请求,固件启动USB传输应用,根据USB传输速率确定数据包大小与DMA缓冲区大小,创建DMA传输通道; 停止USB应用:检测到复位/断开连接请求,释放内存、关闭DMA通道; USB to Processor 通道/Processor to USB 通道:调用 DMA 函数传输数据,U2P/P2U通道实现自动DMA通道。9.根据权利要求8所述的基于FPGA的USB3.0接口模块,其特征在于在FX3固件中设置两个DMA通道:发送通道为U2P通道,接收通道为P2U通道,该两个DMA通道设置为传输速率更高的自动DMA通道。10.根据权利要求9所述的基于FPGA的USB3.0接口模块,其特征在于该USB 3.0接口模块的数据传输模式为批量传输,在进行FX3固件配置时,增大U2P通道缓冲区大小,降低P2U通道缓冲区大小。
【专利摘要】基于FPGA的USB 3.0接口模块,涉及一种USB 3.0接口模块。本发明是为了实现兼容USB2.0高速接口、实现计算机与FPGA之间的高速数据传输。该接口模块采用FPGA实现逻辑控制,并通过芯片FX3内部同步从设备FIFO的数据读写操作实现高速数据传输;该接口模块控制逻辑包括USB 3.0发送模块、USB 3.0接收模块、用于跨时钟域操作的发送先入先出队列FIFO模块和用于跨时钟域操作的接收先入先出队列FIFO模块;本发明提出了一种基于FPGA的USB 3.0超高速接口,并且兼容USB2.0高速接口,实现计算机与FPGA之间的高速数据传输。
【IPC分类】G06F13/40
【公开号】CN104881388
【申请号】CN201510324325
【发明人】彭宇, 马云彤, 蒙春城, 李攀, 潘大为, 彭喜元
【申请人】哈尔滨工业大学
【公开日】2015年9月2日
【申请日】2015年6月12日
当前第3页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1