fpga_feixiang 发表于 2025-4-1 14:19:56

一文搞懂 FPGA 与 USB3.0,开发不迷路!

# 一文搞懂FPGA与USB3.0,开发不迷路!
最近在研究FPGA与USB3.0相关知识,发现这里面的门道可真多,今天就来给大家分享分享,希望能帮到正在学习或者准备学习的小伙伴!

咱们先来说说USB,它的全称是Universal Serial Bus,也就是通用串行总线,主要用于规范电脑和外部设备的连接与通讯,是PC领域超重要的接口技术 。从发展历程来看,USB1.0和USB1.1支持低速1.5Mb/s和全速12Mb/s模式,到了USB2.0就支持480Mb/s的高速模式,而USB3.0更是将速度提升到了一个新高度,这速度的提升,让数据传输效率大大提高,大家应该都有体会,从以前慢悠悠地传文件,到现在快速拷贝大文件,USB技术的发展功不可没。

说到USB设备供电方式,有自供电和总线供电两种。总线供电又分低功耗和高功耗设备,不同标准下的最大电流也不一样,像USB 1.x和2.0最大电流是500mA,USB 3.0就提高到了900mA,USB 3.1更是能达到1.5A甚至3A(取决于配置) 。还有USB Type-C接口,它不只是个接口标准,按照Power Delivery (PD)规范,能支持高达20V和5A的电源输出,不过实际电流还是得看设备和电缆的能力。

再讲讲USB的OTG功能,通过对比micro usb数据线和OTG线的连接图就能发现,二者内部线芯一样,只是micro usb数据线接头的ID针悬空。手机用micro usb数据线连电脑或充电器时,因为ID针悬空,就工作在外设DEVICE模式。

USB的拓扑模型很有意思,它的传输类型有好几种。Bulk Transfers适用于大容量数据通信,像打印机、扫描仪、大容量存储设备等,数据能占用任意带宽,还能容忍延迟;Interrupt Transfers用于允许有限延迟的通信,比如鼠标、键盘这类人机接口设备;Isochronous Transfers用于与时效相关的信息传输,像音频视频设备,对实时性要求高,少量数据错误能接受,等时传输不保证数据100%正确,数据错误也不再重传;Control Transfers则用于命令和状态的传输。

重点来啦,USB3.0相比之前的版本,变化可不小。它的接口设计、信号传输都有独特之处,包头包含链路管理包、事务包、数据包、ITP等。而且,它在速度、供电能力等方面都有显著提升,大大拓展了应用场景。

要是想进行USB3.0开发,cypressFX3.0套件是个不错的选择。在搭建FX3开发环境时,得去官网(http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit )下载相关软件,安装过程中要注意填写公司信息,安装完最好重启系统,不然可能无法正常使用。

在实际开发中,板卡循环测试和FPGA接口设计很关键。板卡循环测试包括固件生成和吞吐量测试,分别要编译不同目录的工程。FPGA接口设计里,设计FifoSlave接口、生成配置文件、定位工程、替换文件再Build工程,每一步都得细心操作。

我在学习过程中,也遇到过不少难题,比如开发环境搭建时软件冲突,还有在理解不同传输类型特点时有些迷糊。不过多查阅资料、多实践,慢慢就搞懂了。大家要是在学习过程中有问题,欢迎在评论区留言,咱们一起交流,共同进步!

#FPGA #USB3.0 #硬件开发 #技术分享

zhangyukun 发表于 2025-4-1 15:40:01

一文搞懂 FPGA 与 USB3.0,开发不迷路!

lihongkun16 发表于 2025-4-2 08:45:28

一文搞懂 FPGA 与 USB3.0,开发不迷路!
页: [1]
查看完整版本: 一文搞懂 FPGA 与 USB3.0,开发不迷路!