欢迎FPGA工程师加入官方微信技术群

点击蓝字关注我们FPGA之家-中国最好最大的FPGA纯工程师社群

概述

本文主要介绍一种基于FPGA的FT232H接口通信开发方案。传统的USB通信开发对工程人员的要求比较高,除了上层应用软件以外,还需要掌握一定的USB传输协议、固件编程以及底层驱动等等。对于FPGA固件开发人员来说,我只关心数据如何可以正确的收发,说白了就是给我说清楚接口交互时相关信号之间的时序关系即可,其他的内容并不是这么关心。FTDI公司的FT232H应运而生,他把USB的相关协议封装在芯片内部,只把数据端口部分开发给工程开发人员。与市面上另外一款USB芯片(cypress的CY7C68013)相比,FT232H在模式配置上,有官方提供的工具软件直接进行模式配置,而不需要像前者那样,还要编写模式配置的相关代码,从而大大提高开发效率。

接口芯片FT232H

FT232H是一款单通道的高速USB转UART/FIFO芯片,支持USB2.0协议。通过配套的软件可以配置成不同的应用模式,如下图所示:

FT232H的内部结构

从图1中我们可以了解到,FT232H芯片内部可以划分为UTMI_PHY、USB_protocol and FIFO ctrol、Tx/Rx Buffer、MPSSE/Multi_purpose UART/FIFO controler以及EEPROM_interface这几部分。其中MPSSE/Multi_purpose UART/FIFO controler是面向用户设计的IO,通过配置成不同的模式,管脚对应的定义不一样。

我们通过把FT232H配置成同步FIFO模式,已达到最快的传输速率。

  1. FIFO模式下的拓扑结构

软件设计

芯片工作模式配置

FT232H在出厂的时候,默认是UART模式,配置长同步FIFO模式,需要通过官方提供的配置软件FT_PROG进行配置,配置过程十分简单,如下:

如上图所示,配置过程大体上可以分为上述3个步骤。需要注意的是在进行第一步之前,PC上需要安装好相应的驱动,才能够识别出芯片;还有一个需要注意的地方是,Property中product_desc里面的值可以自己修改,但是上位机一定要与之对应,否则编写的上位机软件有可能打不开设备。

代码设计

  1. 同步FIFO模式下的读写时序关系

发送端(FPGA--->USB--->PC)

通常来说,为了处理好异时钟域数据传输问题,都会在FPGA端例化一个FIFO来作为与USB接口交互的缓存。在数据发送有个需要注意的地方,当发送速率比USB传输速率快,FT232H内部缓存被填满的时候(TXE#被拉高),会出现丢数据情况。在处理的时候需要特别注意一下。

我们画一下相关时序就知道怎么回事了。

FIFO常规模式下时序图

从图中可以看出,FIFO的读使能持续了5个clk,由于FIFO的输出最少都有1个clk的延迟,所以这次数据传输只传输了4个有效数据,剩下一个数据只能由下一次传输,当然这种情况,在传输流式的数据是没有问题的,碰上我之前的项目,读写由上位机发起,并且读写的数据长度也由上位机决定的时候,就会出现上位机会少接收一个数据的现象。

那么有没有办法解决这种现象呢?答案是肯定的,我比较推荐的一种方法如下:

  1. First_word Fall through模式的时序

将例化FIFO的时候,设置成First_word Fall through模式就可以了,至于这种模式是什么,请自行度娘脑补一下。

方法还有很多,只要时序对的上即可。

接收端(PC—>USB--->FPGA)

接收端的设计比较简单,这里就不展开论述了。

欢迎通信工程师和FPGA工程师关注公众号

全国第一大FPGA微信技术群

欢迎大家加入全国FPGA微信技术群,这个群体拥有数万工程师、一群热爱技术的工程师,这里的FPGA工程师相互帮助,相互分享,技术氛围浓厚!赶紧叫上小伙伴一起加入吧!

用手指按住就可以加入FPGA全国技术群哦

FPGA之家元器件芯城

优势元器件服务,有需求请扫码联系群主:金娟 邮箱:293580331@qq.com 欢迎推荐给采购

ACTEL、AD部分优势订货(经营全系列):

XILINX、ALTERA优势现货或订货(经营全系列):

(以上器件为部分型号,更多型号请咨询群主金娟)

服务理念:FPGA之家元器件自营芯城,旨在方便工程师快速方便购买器件服务,经过数年竭诚服务,我们的客服遍布国内大型上市公司、军工科研单位、中小企业、最大的优势是强调服务至上的理念、并且做到快速交货、价格优惠!

直营品牌:Xilinx ALTERA ADI TI NXP ST E2V、镁光 等百余元器件品牌,尤其擅长欧美对华禁运器件,欢迎工程师朋友把我们推荐给采购或者亲自咨询我们!我们将一如既往提供业内最佳服务!

FPGA技术群官方鸣谢品牌:Xilinx、 intel(Altera)、microsemi(,Actel)、LattIC e,Vantis,Quicklogic,Lucent等

altera fpga 型号说明_基于FPGA的USB2.0接口通信相关推荐

  1. 电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计

    电机控制器,FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计,在FPGA实现了伺服电机的矢量控制. 有坐标变换,电流环,速度环,位置环,电机反馈接口,SVPWM. Verilog ID: ...

  2. FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计

    FPGA 硬件电流环 基于FPGA的永磁同步伺服控制系统的设计,在FPGA实现了伺服电机的矢量控制. 有坐标变换,电流环,速度环,位置环,电机反馈接口,SVPWM. Verilog 编号:841000 ...

  3. FPGA项目开发:基于FPGA的伪随机数发生器(附代码)

    FPGA项目开发:基于FPGA的伪随机数发生器(附代码) 今天是画师和各位大侠见面了,执笔绘画FPGA江湖,本人写了篇关于FPGA的伪随机数发生器学习笔记,这里分享给大家,仅供参考. 一.概念 随机数 ...

  4. FPGA设计——全局曝光CMOS图像采集与USB2.0显示

    1. 概述  本设计采用FPGA技术,将CMOS摄像头(LVDS接口)的视频数据经过采集.存储.帧率转换及格式转换,最终通过USB2.0接口显示在电脑屏幕上. 2. 硬件系统框图 CMOS采用一款全局 ...

  5. FPGA 20个例程篇:11.USB2.0接收并回复CRC16位校验

    第五章 外设接口通信,举一反三 11.USB2.0接收并回复CRC16位校验 外设接口通信底层设计也是FPGA广泛应用的领域,常用的外设接口按照通信速度由慢到快排列又有:串口.USB2.0.千兆网口. ...

  6. matlab基于dct的图像压缩编码解码_基于FPGA的扩频系统设计(下)

    大侠好,欢迎来到FPGA技术江湖,江湖偌大,相见即是缘分.大侠可以关注FPGA技术江湖,在"闯荡江湖"."行侠仗义"栏里获取其他感兴趣的资源,或者一起煮酒言欢. ...

  7. comcerter无法识别串口_基于FPGA 的MXN维字符识别的实现

    基于FPGA 的MXN维字符识别的实现 1 概述 本文的灵感来源于杨淑英老师的一张PPT(手写数字识别),在此特别鸣谢杨淑英老师. 一般机器视觉对事物是没有感知的,比如摄像头采集到一张苹果的图片,它本 ...

  8. 人工智能在fpga的具体应用_“基于FPGA的人工智能应用技术师资培训”圆满落幕!...

    "基于FPGA的人工智能应用技术师资培训"在英特尔® FPGA中国创新中心圆满落幕. 2019年12月15日,"基于FPGA的人工智能应用技术师资培训"在英特尔 ...

  9. fir数字滤波器设计与软件实现_基于FPGA低通滤波器的FIR的设计

    基于FPGA低通滤波器FIR的设计 1 滤波器的特征参数介绍 图1 低通滤波器特征参数如图1所示,低通滤波器的通带截止频率为ωp ,通带容限为α1,阻带截止频率为ωs,阻带容限为α2.通带定义为|ω| ...

最新文章

  1. python解释器可以使用什么命令_python解释器用什么写的
  2. 【蓝桥杯官网试题 - 算法提高 】求最大值 (dp,0-1背包)
  3. 2021年最新的Python大厂Python基础编程
  4. (8)Linux内核中的hash与bucket
  5. php 手机端播放器,用JS代码适配电脑端和手机端播放器代码
  6. linux下的chromedriver驱动器配置实例(含代码)
  7. iOS UIPickerView
  8. sqlmap能测试java么_ibatis框架如何测试?ibatis入门解析
  9. 爬虫--Scrapy-CrawlSpider基于CrawlSpide的分布式爬虫
  10. 31.Linux/Unix 系统编程手册(上) -- 线程:线程安全和每线程存储
  11. WARN Error while fetching metadata with correlation id 13 : {test=LEADER_NOT_AVAILABLE}
  12. 在Vue项目中使用LayUI教程且解决laydate无效的问题
  13. 魔数(magic number)
  14. 为什么打开计算机不显示桌面快捷方式,电脑桌面快捷方式不见了的解决办法
  15. 【文献复现】-氧还原反应塔菲尔斜率绘制(文献阅读)
  16. AndroidStudio - - - 点击头像更换头像_菜单选择_相机拍照与相册获取
  17. 老赵很喜欢博士后和小工的故事,于是就编下去了
  18. Hawk: 无编程抓取淘女郎的所有高清照片
  19. 乔尔谈软件终结篇:分布式版本控制…
  20. 关于jxls2.6.0后的版本使用的jexl3学习使用

热门文章

  1. apt-get install用发
  2. Mysql迁移到Oracle方法
  3. Python基础概念_2_基础概念
  4. Qt学习笔记之国际化
  5. Apache 服务器存在高危提权漏洞,请升级至最新版本 2.4.39
  6. dns组件能够删除后恢复
  7. Javascript - Jquery - 事件
  8. [实用]DNS解析命令,静静地学会【转载】
  9. 树莓派2代B model 上手初体验,不用显示器,Python GPIO 点亮一颗LED
  10. Android 图片平铺实现方式