[发明专利]基于FPGA的USB 3.0接口模块在审
申请号: | 201510324325.X | 申请日: | 2015-06-12 |
公开(公告)号: | CN104881388A | 公开(公告)日: | 2015-09-02 |
发明(设计)人: | 彭宇;马云彤;蒙春城;李攀;潘大为;彭喜元 | 申请(专利权)人: | 哈尔滨工业大学 |
主分类号: | G06F13/40 | 分类号: | G06F13/40 |
代理公司: | 哈尔滨市松花江专利商标事务所 23109 | 代理人: | 岳泉清 |
地址: | 150001 黑龙*** | 国省代码: | 黑龙江;23 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 fpga usb 3.0 接口 模块 | ||
技术领域
本发明涉及一种USB 3.0接口模块。
背景技术
计算机是常用的数据存储与显示设备,但是其数据处理能力较弱,不利于大数据处理。随着信息技术的飞跃发展,爆炸性增长的数据给数据处理与传输提出了新的挑战。而FPGA以其处理速度快、处理数据量大等特点,成为数据处理的理想平台。为了实现计算机与FPGA之间的数据传输,需要设计实现一种基于FPGA的高速接口。
计算机常用接口有USB 2.0、USB 3.0、PCI以及以太网等。由于USB 2.0传输速率较低,最高仅为480Mbps,PCI总线不支持热插拔且仅限于台式计算机,而以太网传输时延非常大。USB 3.0以其5Gbps的超高速、较低传输时延以及便携等特点,成为了一种广泛应用的数据传输接口。
基于以上原因考虑,我们希望设计一种基于FPGA的USB 3.0高速接口,便于计算机等设备与FPGA之间的数据传输。
发明内容
本发明是为了实现兼容USB2.0高速接口、实现计算机与FPGA之间的高速数据传输,从而提出一种基于FPGA的USB 3.0接口模块。
基于FPGA的USB 3.0接口模块,该接口模块采用FPGA实现逻辑控制,并通过芯片FX3内部同步从设备FIFO的数据读写操作实现高速数据传输;
该接口模块控制逻辑包括USB 3.0发送模块、USB 3.0接收模块、用于跨时钟域操作的发送先入先出队列FIFO模块和用于跨时钟域操作的接收先入先出队列FIFO模块;
所述USB 3.0发送模块包括如下状态:
USB_out_idle状态:该状态下,初始化所有寄存器与信号;
USB_out_flagc_rcvd状态:当检测到标志位flagc=1时,发送线程生产者USB插座为满,即:检测到USB发送的数据,则启动对数据的发送;
USB_out_wait_flagd状态:延迟一个时钟周期,等待检测发送线程生产者同步从设备FIFO满;
USB_out_read状态:当检测到标志位flagd=1时,发送线程同步从设备FIFO为满,激活读控制信号,FPGA读取同步从设备FIFO数据;
USB_out_read_rd_oe_delay状态:当标志位flagd=0时,芯片FX3对处于激活状态的读信号进行三个时钟周期的采样,读信号和输出使能信号始终有效;
USB_out_read_oe_delay状态:芯片FX3完成对处于激活状态的读信号采样后,输出使能信号需要保持四个时钟周期后跳转到USB_out_idle状态;
所述USB 3.0接收模块包括如下状态:
USB_in_idle状态:该状态下,初始化所有寄存器与信号;
USB_in_wait_flagb状态:当标志位flaga=1时,接收线程消耗者USB插座为空,即:USB未发送数据,则启动对数据的接收;
USB_in_write状态:当检测到标志位flagb=1时,接收线程生产者同步从设备FIFO为空,FPGA将数据写入同步从设备FIFO;
USB_in_write_wr_delay状态:当检测到标志位flagb=0时,芯片FX3对处于激活状态的写信号进行两个时钟周期的采样,之后跳转到USB_in_idle状态。
芯片FX3的型号CYUSB3014。
FPGA通过GPIF II接口与CYUSB3014芯片相连,CYUSB3014芯片的USB接口与Micro B接口连接,采用I2C接口引导启动,若I2C配置失败,则使用USB接口方式配置启动。
CYUSB3014芯片中还嵌入有JTAG接口,用于作为调试接口。
在进行FX3固件设计时,首先将GPIF II接口配置为同步从设备FIFO接口;采用GPIF II Designer工具实现GPIF II接口配置。
FX3固件程序、FX3固件框架、FX3API库和RTOS模块;
所述RTOS模块:用于创建多个线程;
FX3API库:用于提供与FX3硬件实现控制与数据传输的接口;
FX3固件框架:用于开发用户定制的固件程序,包括启动与初始化代码以及USB、GPIF II等模块驱动程序;
FX3固件程序包括初始化子程序与应用子程序。
初始化子程序的具体执行方法为:
FX3固件程序首先调用函数CyU3PFirmwareEntry()实现MMU与堆栈初始化,并消除无效缓存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于哈尔滨工业大学,未经哈尔滨工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510324325.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种面向电网调控运行的数据血统分析方法
- 下一篇:BH总线供电及数据读取系统