FPGA驱动FT601实现USB3.0通信测速试验 提供工程源码和QT上位机源码

news2024/12/25 13:22:44

目录

  • 1、前言
  • 2、FT601芯片解读和时序分析
    • FT601功能和硬件电路
    • FT601读时序解读
    • FT601写时序解读
  • 3、我这儿的 FT601 USB3.0通信方案
  • 4、vivado工程详解
  • 5、上板调试验证
  • 6、福利:工程代码的获取

1、前言

目前USB3.0的实现方案很多,但就简单好用的角度而言,FT601应该是最佳方案,因为它电路设计简单,操作时序简单,软件驱动简单,官方甚至提供了包括FPGA驱动在内的丰富的驱动源码和测试软件;

本设计用FPGA驱动FT601芯片实现USB3.0数据通信,使用同步245模式通信,在FPGA里设置了一个计数器,在写操作时计数器每个时钟累加1,此间QT上位机会读取FT601发给上位机的数据实现读操作测速,此外,QT上位机会主动写数据到FT601,但此时FPGA并不接收数据,如此也可以实现写操作测速;代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的USB3.0通信和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式以及上板调试的演示视频放在了文章末尾,请耐心看到最后;

2、FT601芯片解读和时序分析

FT601功能和硬件电路

FT600/601Q 的技术参数如下:
FT600&601Q 芯片是 FT 最新推出的 USB3.0 to FIFO interface IC,实现 USB3.0 与 16/32bit 并行 IO 接口之间的数据传输。
整个 USB 通信协议全部由芯片驱动自行完成,开发者无须考虑 USB 底层固件的编程。
兼容支持 USB3.0(5Gbps),向下兼容 USB2.0(480Mbps and 12Mbps)传输。
高达 8 个可配置 Endpoint. >>支持 2 种 FIFO 传输协议,最大传输可达 400MB/s。
芯片内部有 16K 字节的缓冲区,可以进行数据的大吞吐量操作。
支持远程唤醒功能。
芯片支持多种 IO 电压:1.8V,2.5V.3.3V。
通过 16bit D[O:15]或 32bit D[0:31]并行数据线和读写状态/控制线 RXF、TXE、RD、WR,加上时钟 CLK,使
能 OE 信号线就可实现与 CPU/FPGA 的数据交换。
该芯片内部集成 1.0V LDO,可提供给芯片核心部分使用。
工业级芯片,工作温度范围-40 to 85℃。
芯片框架如下:
在这里插入图片描述
外围电路设计参考如下:
在这里插入图片描述
FT600/601Q 支持的多种传输模式,其中 245 Synchronous FIFO 模式和 Multi-Channel FIFO 模式是我们最常用的模式。我们这里介绍的 demo 以 245 Synchronous FIFO 模式为例;传输模式通过GPIO引脚高低电平配置,配置真值表如下:
在这里插入图片描述

FT601读时序解读

245 Synchronous FIFO 模式读时序如下:
在这里插入图片描述
RXF_N为读数据状态信号,RXF_N为低电平期间FPGA可以读取FT601数据;
检测到RXF_N低电平后,拉低OE_N和RD_N,然后开始读数据;
检测到RXF_N高电平后,拉高OE_N和RD_N,然后退出读数据状态;

FT601写时序解读

245 Synchronous FIFO 模式写时序如下:
在这里插入图片描述
TXF_N为读数据状态信号,RXF_N为低电平期间FPGA向FT601写入数据;
检测到TXF_N低电平后,拉低WR_N,然后开始向FT601写入数据;
检测到TXF_N高电平后,拉高WR_N,然后退出写数据状态;

3、我这儿的 FT601 USB3.0通信方案

我这儿现有的FPGA基于FT601的USB3.0通信方案主要有简单的测速方案、图像传输方案,图像传输方案包括简单的彩条传输采集、OV5640摄像头传输采集、HDMI视频采集,HDMI视频采集抓拍等等,所有工方案均包括FPGA工程和QT上位机源码;感兴趣的可以去我的FT601 USB3.0通信专栏阅读,专栏地址如下:
https://blog.csdn.net/qq_41667729/category_12339160.html?spm=1001.2014.3001.5482

4、vivado工程详解

开发板FPGA型号:xc7k325tffg900-2;
开发环境:vivado2022.2;
输入输出:USB3.0接口;
应用:USB3.0数据测速试验;
代码架构如下:
在这里插入图片描述
综合编译完成后的FPGA资源消耗和功耗预估如下:
在这里插入图片描述

5、上板调试验证

测试很简单,将USB先连接FPGA开发板和电脑即可,测试结果如下;
在这里插入图片描述

6、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式1:私,或者文章末尾的V名片。
网盘资料如下:
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【见微知著】Android Jetpack - Navigation的架构设计

前言:人总是理所当然的忘记,是谁风里雨里,一直默默的守护在原地。 前言 Navigation 作为 Android Jetpack 组件库中的一员,是一个通用的页面导航框架。为单 Activity 架构而生的端内路由导航,用来管理 Fragment 的切换…

使用IDEA使用Git:Git使用指北——实际操作篇

Git使用指北——实际操作 🤖:使用IDEA Git插件实际工作流程 💡 本文从实际使用的角度出发,以IDEA Git插件为基座讲述了如果使用IDEA的Git插件来解决实际开发中的协作开发问题。本文从 远程仓库中拉取项目,在本地分支进行开发&…

数据结构-Redis(一)

Redis除了性能强外,还有数据结构丰富多彩。 一、String 单值缓存 SET key value GET key 存对象 相信大家都存过,我们一般都是把对象value转json,获取的时候,再json转对象 SET user:1 value(json值) 但当我们需要对对象某…

推荐一款可匹敌国际大厂的国产企业级低无代码平台

文章目录 前言:亟待转型的软开创业者什么是低/无代码居高不下的企业级软件搭建成本1. 开发周期较长2. 在需求明确、软件修改、系统集成等方面存在多种卡点3. 数据管理混乱 无代码/低代码开发,时代的潮流无代码平台 smardaten1. smardaten 简介2. smardat…

ATK-MD0096-V21使用手册

ATK-0.96’ OLED_V2.0(V2.0 是版本号,下面均以 OLED 表示该产品)是 ALIENTEK 推出的一款高性能 OLED 显示模块,,尺寸小巧(27mm26mm),结构紧凑,模块通过一个28P的排针与外部连接。 8080并口模式…

「Win」Windows环境变量介绍与操作

✨博客主页:何曾参静谧的博客 📌文章专栏:「Win」Windows程序设计 相关术语 Windows环境变量:是一组用于存储系统和应用程序配置信息的变量,在Windows操作系统中起着非常重要的作用。本文将详细介绍Windows环境变量的概…

机器学习常识 22: 循环神经网络

摘要: 循环神经网络 (Recurrent Neural Network, RNN) 用于处理序列数据. 本贴以前的算法, 我都用 Java 代码实现过. 很遗憾, 从本贴开始, 就只知道一点概念了. 1. 动机 序列数据中, 前后数据之间不是独立的, 而是会产生上下文影响. 如: 文本, 机器翻译一个句子的时候, 不是…

寻访 | 北京量子信息研究院

前言:为了普及科学技术知识、传播科学思想,光子盒特开启「寻访」专栏,带领各位读者探访全球的量子工厂和实验室。 2023年5月30日下午,为期6天的“2023中关村论坛主会期”落下帷幕。 量子计算、区块链、脑机接口、新能源材料——围…

最优化简明版(下)

最优化方法 牛顿法和拟牛顿法都是求解无约束最优化问题的常用方法,具有收敛速度快的优点。牛顿法是迭代算法,每一步需要求解目标函数的海森矩阵的逆矩阵,计算比较复杂,而且有时候海森矩阵不一定存在逆阵。拟牛顿法通过正定矩阵近…

【软件测试】测试经验:「测试用例」设计、审查、管理

目录 一、测试用例的设计 (1)测试用例 ① 测试用例的概念 ② 测试用例的功能 ③ 良好测试用例的特征 ④ 测试用例设计的概念 (2)测试用例设计考虑因素 ① 测试用例设计的主要影响因素 ② 测试用例设计的基本思想 &…

C#,码海拾贝(36)——求“实对称矩阵““特征值与特征向量“的“雅可比过关法“之C#源代码

using System; namespace Zhou.CSharp.Algorithm { /// <summary> /// 矩阵类 /// 作者&#xff1a;周长发 /// 改进&#xff1a;深度混淆 /// https://blog.csdn.net/beijinghorn /// </summary> public partial class Matrix {…

【SpringBoot+MyBatis】项目的Invalid bound statement (not found)错误

一、注意&#xff1a;我的mapper.xml在静态资源resources文件夹下 二、报错原因&#xff1a; 1、没有在 MyBatis 配置文件中正确配置 Mapper.xml 文件的位置或者配置了错误的位置 (本人出现的问题) 解决方案&#xff1a;在application.yml中添加 mapper-locations。 mybatis:…

MongoDB 基本介绍和操作

目录 1、mongodb 简介 2、mongodb 概念解析 3、mongodb 连接 4、mongodb 数据库操作 5、mongodb 文档操作 6、mongodb 条件操作符 7、mongodb Limit与Skip 方法 8、mongodb 排序 9、mongodb 索引 10、mongodb 聚合 11、mongodb 复制&#xff08;副本集&#xff09; …

chatgpt赋能python:Python字符串非空——为何重要?

Python字符串非空——为何重要&#xff1f; 在Python编程中&#xff0c;我们经常要处理字符串。而有时候我们需要判断一个字符串是否为空&#xff0c;这个需要在处理输入、文件读写等场景下进行。本文将介绍如何在Python中判断字符串是否为空&#xff0c;并探讨字符串非空的重…

java并发编程:CAS与原子操作

文章目录 乐观锁与悲观锁CASUnsafe类AtomicInteger类CAS实现原子操作的三大问题ABA问题循环时间长开销大只能保证一个共享变量的原子操作 乐观锁与悲观锁 锁可以从不同的角度分类。其中&#xff0c;乐观锁和悲观锁是一种分类方式。 悲观锁就是我们常说的锁。对于悲观锁来说&a…

全网最详细的商业智能BI知识讲解

有一点可能很多人没有想到&#xff0c;实际上商业智能BI的相关概念已经有了数十年的发展历史。在这段发展过程中&#xff0c;商业智能BI形成了一套成熟的理论和产品体系&#xff0c;并且在现代的信息化、数字化加成下&#xff0c;成为了各行各业企业的成熟产品。 一、商业智能…

剑指offer打卡

这里写目录标题 day1 二叉树和为某一路径day2复杂链表的复刻day3二叉搜索树与双向链表day4数字排列day5找出出现次数超过一半的次数day6 二进制中1的个数day7 二叉树的最近公共祖先day8 字符串转换为整数day9 构建乘积数组day10不用加减乘除的加法day11求12....nday11 股票的最…

7.1「实战」图书录入和修改API --如何优雅处理校验逻辑?

文章目录 前言一、service层BookServiceImpl.saveBook()BookBO 二、web层BookAdminControllerBookVO 最后 前言 在做了这么多架构铺垫之后&#xff0c;一位订阅同学非常期待我能更新主线API&#xff0c;我觉得他的想法非常合理&#xff0c;所以今天就来安排~~~ 我主要考虑的是…

数据库期末复习(10)数据库规范化理论

函数依赖(概念):FD 范式分解(评估准则): 模式分解(工具): 函数依赖 如何衡量一个数据库好不好:准确 高效如果一个数据库设计的不好的话的&#xff0c;会带来哪些问题 删除异常 数据冗余为什么会导致出现上方的问题:数据依赖数据依赖的分类:完全依赖&#xff0c;部分依赖&am…

OpenCV实战(26)——视频序列处理

OpenCV实战&#xff08;26&#xff09;——视频序列处理 0. 前言1. 读取视频序列2. 处理视频帧2.1 视频处理2.2 自定义视频处理类 VideoProcessor2.3 处理一系列图像2.4 使用帧处理器类 3. 存储视频序列3.1 存储视频文件3.2 修改 VideoProcessor 类3.3 编解码器四字符编码 4. 完…