1 基于FPGA的FT232H接口通信开发方案-德赢Vwin官网 网
0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

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

3天内不再提示

基于FPGA的FT232H接口通信开发方案

FPGA之家 来源:FPGA之家 2023-07-05 09:56 次阅读

概述

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

接口芯片FT232H

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

ad9bb44c-1ace-11ee-962d-dac502259ad0.png

ada40e94-1ace-11ee-962d-dac502259ad0.png

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模式,已达到最快的传输速率。

adaf19b0-1ace-11ee-962d-dac502259ad0.png

FIFO模式下的拓扑结构

软件设计

芯片工作模式配置

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

adc28c34-1ace-11ee-962d-dac502259ad0.png

adccc762-1ace-11ee-962d-dac502259ad0.png

adeb5c72-1ace-11ee-962d-dac502259ad0.png

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

代码设计

adf71c10-1ace-11ee-962d-dac502259ad0.png

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

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

ae16c0b0-1ace-11ee-962d-dac502259ad0.png

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

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

ae203226-1ace-11ee-962d-dac502259ad0.png

FIFO常规模式下时序图

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

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

ae321f68-1ace-11ee-962d-dac502259ad0.png

First_word Fall through模式的时序

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

ae442f96-1ace-11ee-962d-dac502259ad0.png

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

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

ae5cb278-1ace-11ee-962d-dac502259ad0.png

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

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

    关注

    1629

    文章

    21729

    浏览量

    602953
  • 芯片
    +关注

    关注

    455

    文章

    50711

    浏览量

    423105
  • 接口通信
    +关注

    关注

    0

    文章

    9

    浏览量

    13395
收藏 人收藏

    评论

    相关推荐

    【紫光同创国产FPGA教程】【第二十八章】USB双向测速例程

    如何使用FTDI公司的FT232H驱动芯片进行USB数据传输,文中从底层FPGA、驱动层固件(FT232H固件)及上位机测试软件设计方面阐述了USB开发的整个流程。
    的头像 发表于 04-09 10:46 2.2w次阅读
    【紫光同创国产<b class='flag-5'>FPGA</b>教程】【第二十八章】USB双向测速例程

    完美高性能USB解决方案1

    R, FT232H, FT230X, FT231XUSB 转 FIFO :FT245B, FT245R,
    发表于 03-29 11:43

    UM232H-B是FT232H高速到串行/并行接口转换器的开发模块

    UM232H-B-01,用于FT232H单通道USB至串行/并行接口分线板的开发模块,带有母头。 UM232H-B是
    发表于 04-04 11:42

    FT232H单通道USB至串行/并行接口分线板开发模块UM232H-B-WE

    UM232H-B-WE,用于FT232H单通道USB至串行/并行接口分线板的开发模块,带有6条悬空引线,连接到信号焊盘。 UM232H-B是
    发表于 04-08 11:03

    用于FT232H单通道USB至串行/并行接口分线板的开发模块UM232H-B-NC

    UM232H-B-NC,用于FT232H单通道USB至串行/并行接口分线板的开发模块,仅带焊盘。 UM232H-B是
    发表于 04-09 09:20

    采用FT245BM和FPGA实现USB接口设计

    协议的细节,并编写出固件程序。固件的运行要占用微控制器的时间和空间资源,实际通信效率不会很高。也有人用FPGA实现固件的功能,但这种方案开发和调试的难度很大。本人在实际工作中用
    发表于 04-22 07:00

    接口转换芯片-FT232RL

    小编最近对FT232RL这颗转换芯片做了大概了解,各位朋友有更多好的资料跟内容可以分享大家一起讨论下。FT232RL为接口转换芯片,可以实现USB到串行UART接口的转换,也可转换到同
    发表于 09-21 15:51

    PIC32MX与FTDI FT232H接口如何同步并行

    有可能将PIC32MX(目前我有一个运行@50Mhz)与FTDI FT232H接口。同步FIFO-并行(高达40MB/s)在这种模式下,FT232H输出一个60Mhz的时钟,这样对于我所有
    发表于 04-29 07:16

    用于FT232RL USB-to-UART接口的串行UART开发模块

    UM232R,开发模块,使用FT232RL USB到UART接口的集成电路器件。 FT232RL是USB转串行UART
    发表于 08-19 07:02

    USB2.0高速至MPSSE SPI模块VA800A-SPI是一个小型电子电路板

    板,使用FT232H。该设备处理所有USB信号和协议。该模块提供了一种快速、简单的方式将具有3.3伏数字接口的设备连接到USB。有关集成电路的全部详细信息,请参阅FT232H数据表DS-FT2
    发表于 10-14 16:55

    基于FT8U232BM的USB-HART通信接口开发

    基于FT8U232BM的USB-HART通信接口开发 Development of FT8U232BM Based USB-HART C
    发表于 03-16 11:04 60次下载

    基于FT232BL的USB接口快速设计

    FT232BL 的主要功能是进行USB 和串行UART 口之间的协议转换。文章详细介绍了FT232BL 芯片的工作原理、内部结构;给出基于FT232BL 接口电路的典型设计及驱动和应用
    发表于 10-01 01:54 325次下载
    基于<b class='flag-5'>FT232</b>BL的USB<b class='flag-5'>接口</b>快速设计

    基于FT8U232BM的USB-HART通信接口开发

    基于FT8U232BM的USB-HART通信接口开发
    发表于 09-04 14:24 15次下载
    基于<b class='flag-5'>FT8U232</b>BM的USB-HART<b class='flag-5'>通信</b><b class='flag-5'>接口</b><b class='flag-5'>开发</b>

    FT232R 的串行 UART 接口解析

    FT232 这颗器件最基本的应用功能,当然是 USB 转 RS232 接口了,其硬件电路设计如下图所示。
    发表于 07-16 16:05 3.5w次阅读
    <b class='flag-5'>FT232</b>R 的串行 UART <b class='flag-5'>接口</b>解析

    一种基于FPGAFT232H接口通信开发方案

    从图1中我们可以了解到,FT232H芯片内部可以划分为UTMI_PHY、USB_protocol and FIFO ctrol、Tx/Rx Buffer、MPSSE/Multi_purpose
    的头像 发表于 07-05 09:56 1411次阅读
    一种基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>FT232H</b><b class='flag-5'>接口</b><b class='flag-5'>通信</b><b class='flag-5'>开发</b><b class='flag-5'>方案</b>