GPIF II designer使用说明+CYUSB3014芯片基本信息介绍——英文文档学习记录

这篇文章是基于之前FX3实现FPGA与USB3.0通信的内容。本人新手,写的不好如有错误请原谅。今天来记录一下官方文档的学习。

 

一、基本信息讲解

1.1 GPIF II Designer和CYUSB3014芯片是什么?

①GPIF II Designer是一个用来配置FX3的GPIF II接口的软件,如图所示,通过正确的配置,使遵从GPIF II接口协议的 外部处理器(如FPGA) 和 FX3通信,进而通过USB3.0与外部设备通信。比如AD采集数据经FPGA、FX3、通过USB3.0将数据传输至PC机。

②FX3芯片内部集成了200MhzARM9内核,具有一个可进行完全配置的并行通用可编程接口 GPIF II,它可与任何处理器、ASIC 或 FPGA 连接,从 GPIF II 到 USB 接口的数据传输速度可达 320 MBps。EZ-USB FX3同时还支持I2C、UART、SPI、I2S串行设备接口,EZ-USB FX3 配有用于存储代码和数据的 512 KB 片上 SRAM。EZ-USB FX3 能在多种外设(如 USB、GPIF II、I2 S、SPI、UART) 之间实现高效灵活的的 DMA 连接固件只需配置外设间数据访问,这些外设随后由 DMA 结构进行管理。

③EZ-USB FX3典型应用:主处理器和协处理器

 之前记录过的USB3.0和FPGA通讯的例程中就是作为协处理器的应用,是不能主动访问外部处理器(如FPGA)的寄存器这些东西的。

1.2  GPIF II 接口是什么?

①GPIF II 是一种可编程状态机。可编程接口GPIF II 的特性总结如下:可用作主控或从器件(我猜意思是FX3可作为主处理器和协处理器);提供 256 种固件可编程状态;支持 8 位、16 位和 32 位并行数据总线;接口频率可高达 100 MHz;使用 32 位数据总线时支持 14 根可配置控制引脚,所有控制引脚可作为输入 / 输出或双向引脚;使用 16/8 位数据总线时支持 16 根可配置控制引脚,所有控制引脚可作为输入 / 输出或双向引脚。

②GPIFII 状态转换和GPIF II 描述符有关。GPIFII Designer 工具可实现 GPIFII 描述符的快速开发。

③可编程接口GPIF II的典型应用:从器件 FIFO 接口

前面记录的例程就是用的这种接口方式。通过从器件 FIFO 接口,实现数据在FPGA与PC之间的传递。

二、介绍GPIF II Designer

2.1基本概念

 ①EZ_USB FX3芯片有个重要的特点就是它拥有灵活且可编程的通用可编程接口GPIF II。前文所述,GPIF II可以看作是一个可编程的状态机,通过操作这个状态机配置FX3,进而与其它处理器接口相连。之前介绍的一些例程里面比如lookback实验,实现数据读取写入,让数据在FPGA与PC之间往返,核心代码其实就是一个verilog状态机的编写。

②GPIF II状态机是由 一系列可编程存储器映射的 寄存器 组成的。这些寄存器又是由 运行在FX3芯片内部的firmware配置的。这些配置都能通过软件工具GPIF II Designer完成。

2.2使用GPIF II Designer配置FX3的步骤

我这里只是根据自己的摸索写的...

2.2.1第一步:建工程

我这里是直接在Cypress Supplied Interfaces栏目中选择。

2.2.2第二步:Interface Customization、查看State Machine

由于建立工程时使用的是官方提供的接口模板,所以这一栏很多参数已经把帮你定义好了,现在可以调整的选项不多。并且状态机也已经自动生成了。

如果想做其他设置,可以File > Save Project as Editable。这样,可以将该项目保存为新一个名称,重新打开这个新名称,从而可以对新保存的项目进行更改。如下图所示:

 这里将FLAGB设置为Current_Thread_DMA_WaterMark

2.2.3第三步:build project+生成img文件

 build之后文件夹的状态,生成了一个.h文件

接着在C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\firmware\slavefifo_examples下复制文件夹slfifosync到自己的文件夹去,如图所示:

 

然后将刚刚生成的.h文件覆盖到slfifosync文件夹中去 

紧接着在SDK开发包中找到ezUsbSuite.exe

再打开SDK开发包中的ezUSBSuite.exe,并且导入slfifosync文件 

 finish确认导入,然后build project,可以看到编译之后产生了img文件,用于烧录到FX3中。

如果因为自己的工程要求需要修改.c,也是在这个ezUSBSuite中进行的。

三、穿插一下DMA、套接字、GPIF线程的概念

我这一块还没仔细了解,我尝试从表面意思去解释一下这个事情。

如图FX3芯片结构图里面标明了DMA Interconnect,表明内部是有DMA通道的,DMA 传输是将数据从一个地址空间复制到另外一个地址空间。【百度百科:在实现DMA传输时,是由DMA控制器直接掌管总线,因此,存在着一个总线控制权转移问题。即DMA传输前,CPU要把总线控制权交给DMA控制器,而在结束DMA传输后,DMA控制器应立即把总线控制权再交回给CPU。一个完整的DMA传输过程必须经过DMA请求、DMA响应、DMA传输、DMA结束4个步骤。通过硬件为RAM与I/O设备开辟一条直接传送数据的通路,使CPU的效率大为提高。】

下面我从表面浅显地描述一下我的理解:

\bullet“套接字”这个概念抽象成一个连接点。如图有GPIF套接字,USB套接字。

\bullet通过 FX3 固件,可将部分RAM 空间作为 DMA 缓冲区使用用于暂时存储通过 FX3 器件传输的数据。

\bulletDMA FLAG也是一组位于FX3内部的寄存器。它可以标记或使能和套接字有关的中断。

\bulletGPIF 线程是 GPIF II 模块内的专用数据路径,用来将外部数据引脚连接至套接字。

综合以上概念,大概的流程就像是数据流从FPGA出来到GPIF套接字,作为发送套接字将数据缓存到DMA缓冲区,USB套接字作为接收套接字读取DMA缓冲区数据送到PC端。整个数据的流动都是有一个DMA结构在控制。而DMA FLAG正是DMA控制的关键部分。

 

  • 15
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值