0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样通过FPGA软件去读取USB2.0模块的数据

FPGA设计论坛 来源:未知 2023-10-08 10:05 次阅读

首先来说一下USB这个大家都知道的东西吧:
USB通用串行总线,是应用在计算机领域的接口技术。USB接口具有传输速度快,可以广泛地应用在各类的高速数据传输当中,相比于大家熟悉的串口数据传输要快出不知道多少倍了。
我们最常见的当属USB2.0和USB3.0,这两个之间可以通用,但是也有区别:
1.USB3.0的速率是5Gbps,而USB2.0的速率是480Mbps。
2.从USB外观上来看,USB2.0通常是白色或黑色,而USB3.0则改为蓝色接口。
3.从USB插口引脚上来看,USB2.0采用4针脚设计,而USB3.0则采取9针脚设计,相比而言USB3.0功能更强大。
总结来说就是USB2.0很通用,因为很多电脑上可能没有USB3.0的接口,但是一定有USB2.0的接口,而且USB2.0的传输速度也能满足一般条件下的高速数据传输。
1.先附上所设计的实物图(想要电路pcb文件咨询博主),然后针对实物图一点点展开:
所选用的芯片Cypress 公司的EZ-USB FX2 是世界上第一款集成USB2.0 的微处理器,它集成了USB2.0 收发器、SIE(串行接口引擎)、增强的8051 微控制器和可编程的外围接口。FX2 这种独创性结构可使数据传输率达到480MBit/s。在FX2中,智能SIE 可以硬件处理许多USB1.1 和USB2.0 协议,从而减少了开发时间
和确保了USB 的兼容性。该器件具有如下特性:
(1)内嵌480MBit/s 的收发器,锁相环PLL,串行接口引擎SIE集成了整个USB 2.0 协议的物理层。
(2)内嵌可工作在48MHz 的增强型8051,该8051 控制器具有以下特征:
具有256Byte寄存器空间,两个串口,三个定时器,两个数据指
针。
四个机器周期(工作在48MHz 下时为83.3ns)即组成一个指令周
期。
特殊功能寄存器(包括I/O 口控制寄存器)可高速访问。
应用USB 向量中断,具有极短的ISR 响应时间。
只用作USB 事务管理,控制,不参与数据传输,较好地解决了
USB 高速模式的带宽问题。
(3) “软配置”——USB 固件可由USB 总线下载,片上不需集成ROM
(4) 拥有四个FIFO 接口,可工作在内部或外部时钟下。端点和FIFO 接口
的应用使外部逻辑和USB 总线可高速连接。
(5) 一种单片USB 2.0 外设解决方案,不需要外部的协议物理层,FX2 把所有的功能集成在一个芯片上。
然后下面这幅图片是FX2 控制器的内部结构图(参照了小梅哥的图片,在此安利一波小梅哥的FPGA,真的很好)。

对于FX2 来说,可以通过两个不同的模式将 FX2 连接至 FPGA。这两个模式分别为通用可编程接口( GPIF)模式和从设备 FIFO 模式。
(1)GPIF 模式:在该模式下, FX2 作为外部系统的主设备使用,它所生成的所有控制信号用于对外部系统进行读和写操作。当外部系统不能作为 FX2 的主设备(例如,图像传感器与 FX2 相连接的 USB 摄像机应用)时,通常优先使用 GPIF 模式。在这种情况下,接口实现的复杂操作将由 FX2 执行。
(2)从设备 FIFO 模式(通常所用的模式,注重了解):在该模式下,连接至 FX2 的外部系统能够生成读和写控制信号,因此,它能作为FX2 的主设备使用。在基于FPGA 的应用中,FX2 一般被配置为从设备 FIFO 模式。下图为FX2 使用从设备FIFO 接口与外部FPGA 连接时的系统框图。

简单地说,在从设备FIFO模式下,FX2 中的8051 固件只是配置Slave FIFO 相关的寄存器。配置完成之后FPGA就可以按照Slave FIFO 的时序与主机进行通讯,通讯过程中不需要8051 固件。就相当于FPGA控制一个外设(比如就像控制一个串口一样简单)
通讯原理搞明白之后就是根据引脚设计电路,原理图如下图所示:

2.下面就介绍如何具体控制USB2.0模块了:
Cypress 提供了一个基本的开发工具包,供用户开发USB 应用,名为ySuiteUSB3.4,网上关于USB2.0开发的资料也有很多,包括安装 FX2 的开发软件以及安装USB2.0模块的驱动程序,并且很重要的是在使用FPGA 控制USB2.0模块之前要对 USB2.0 芯片烧写固件(不同的应用模式下,所烧写的固件是不一样的)。想要资料可以咨询博主。
在配置完成之后可以通过官方网站提供的例程和上位机软件,使用FX2 芯片上的8051 完成数据在OUT 和 IN 端点间的搬运工作,在整个数据传输的过程中不需要有外部的设备(FPGA和STM32等控制器),通过USB2.0模块内部就可以完成数据的传输。但是实际工程中往往是将下位机采集到的数据通过USB2.0模块传输到上位机中,所以只通过USB2.0模块自身的数据回环实验是没有多大意义的,所以接下来就介绍如何通过FPGA来控制数据的传输。
测试USB2.0模块辅助了AD模块(点击这里),将AD模块采集回来的数据通过FPGA送到USB2.0模块上,然后USB2.0模块将数据传输到电脑上,完成数据的高速采集,如下图所示是程序的RTL视图,从RTL视图可以直观地看到USB2.0模块的使用方法:

其中关于读取USB2.0模块的数据可以直接通过FPGA软件中的Signal Tap II逻辑分析仪来进行抓取,如图所示:




有你想看的精彩



至芯科技FPGA就业培训班——助你步入成功之路、9月23号北京中心开课、欢迎咨询!
基于FPGA的CAN总线通信节点设计
基于FPGA的图像实时处理系统设计






扫码加微信邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

点个在看你最好看





原文标题:怎样通过FPGA软件去读取USB2.0模块的数据

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1624

    文章

    21608

    浏览量

    601086

原文标题:怎样通过FPGA软件去读取USB2.0模块的数据

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    TUSB121x USB2.0电路板指南

    电子发烧友网站提供《TUSB121x USB2.0电路板指南.pdf》资料免费下载
    发表于 10-25 10:10 0次下载
    TUSB121x <b class='flag-5'>USB2.0</b>电路板指南

    ARK3399 USB2.0 PC摄像头控制器规格书

    电子发烧友网站提供《ARK3399 USB2.0 PC摄像头控制器规格书.pdf》资料免费下载
    发表于 09-30 14:43 0次下载

    德州仪器USB2.0设备用晶体的选择和规格

    电子发烧友网站提供《德州仪器USB2.0设备用晶体的选择和规格.pdf》资料免费下载
    发表于 09-29 10:18 0次下载
    德州仪器<b class='flag-5'>USB2.0</b>设备用晶体的选择和规格

    FPGA + USB2.0 PHY USB3300 实现高速USB2UART

    本帖最后由 jf_73911065 于 2024-9-23 16:23 编辑 Malogic FPGA + USB2.0 PHY CY7C68000或USB3300 实现高速USB
    发表于 09-02 18:01

    USB 2.0信号质量测试

    对于电子测试工程师来说,USB2.0的信号质量测试可以确保数据传输的可靠性,并且减少噪声和干扰。今天我们一起学习一下具体操作过程。Chrent整体连接USB2.0最高速率HighSpeed是480兆
    的头像 发表于 08-30 12:57 787次阅读
    <b class='flag-5'>USB</b> <b class='flag-5'>2.0</b>信号质量测试

    CYUSB3014是否会自动调整工作模式USB3.0还是USB2.0

    CYUSB3014是否会自动调整工作模式USB3.0还是USB2.0?它的工作模式是否可以或怎么通过FLAG传输给FPGA?
    发表于 08-14 08:00

    请问ESP32-S3 USB HOST是否支持USB2.0?

    规格书介绍ESP32-S2指定USB HOST支持的USB1.1,ESP32-S3的USB HOST支持USB2.0? 请问ESP32-S3 USB
    发表于 07-19 06:53

    FCX3 OV5640 usb2.0下添加1200*1200 15fps会出现空间不足错误,如何解决?

    你好 我现在可以在USB3.0 下1200*1200显示15fps,或者12-13fps图像。现在需要USB2.0下显示。有以下问题需要确认和解决。 1 我使用软件image sensor
    发表于 07-05 07:26

    Fcx3 usb2.0摄像头分辨率问题求解

    你好:现在的项目能在USB3.0的基础上实现OV5640的1200*1200分辨率传输,大约15fps。现在想在usb2.0的情况下同样使用1200*1200分辨率传输,现在usb2.0默认的640
    发表于 07-03 08:25

    矽力杰USB2.0接口ESD保护方案

    随着PC、智能手机等通讯设备对于数据传输需求不断增加,USB2.0被广泛应用于这些场景。USB2.0凭借其用户友好性和可提供高速数据传输的能力,在PC、消费电子和移动设备中成为不可或缺
    的头像 发表于 06-19 08:19 507次阅读
    矽力杰<b class='flag-5'>USB2.0</b>接口ESD保护方案

    源码系列:基于 FPGAUSB2.0 设计

    前面,高位显示到了后面,我们一个包是1024字节,后面的数自动补零,读出数据后可以看到我们的led灯亮,验证出我们的设计正确。 以上就是我们的基于FPGAusb2.0设计了,希望能给各位大侠起到参考学习作用,
    发表于 05-30 16:48

    USB2.0型号模拟转换USB3.0输出

    通过模拟信号转换,将原本输入进来的USB2.0变成USB3.0,使其插到USB3.0的HUB上不会出现2.0降速的问题
    发表于 05-14 08:47

    stm32f302在调试USB的时候发现USB只支持USB2.0的高速设备,为什么?

    最近开发一款新产品使用的stm32f302,产品的原版本使用的nxp的芯片,USBHID协议为低速设备USB1.1协议,在调试USB的时候发现USB只支持USB2.0的高速设备。原来的
    发表于 04-29 06:10

    基于FPGA技术的USB2.0接口设计实践

    本次设计我们选择一款开发设备,一块廉价的开发板,其中的USB芯片是Cypress的FX2LP系列中的CY7C68013A代,详细的介绍大家可以Cypress的官网查询。下面简述一下设计思路。
    发表于 04-25 10:01 1255次阅读
    基于<b class='flag-5'>FPGA</b>技术的<b class='flag-5'>USB2.0</b>接口设计实践

    CY7C63803不能接在USB2.0或3.0的端口使用是为什么?

    即用CY7C63803模拟的键鼠不能接在USB2.0或3.0的端口,只能接在一般的USB口上才能使用,为什么??
    发表于 02-29 06:26