文档库 最新最全的文档下载
当前位置:文档库 › USB3.0-ALTERA-DDR2开发板入门指南

USB3.0-ALTERA-DDR2开发板入门指南

USB3.0-ALTERA-DDR2开发板入门指南v1.2

目录

一、USB3.0-ALTERA-DDR2开发板简介 (1)

1 FX3概述 (1)

2 FX3 SDK概述 (2)

二硬件说明 (4)

三软件说明 (7)

四 SDK开发包安装 (8)

1 FX3 SDK组件 (8)

2 安装目录结构 (8)

五 SDK使用 (11)

1 对开发板进行编程测试 (11)

2 固件建立 (11)

3 FX3芯片启动配置 (11)

4 安装电脑驱动 (11)

5 固件下载 (12)

6 开发板测试 (13)

六固件示例概述 (19)

1 USB Bulk数据循环示例 (19)

2 USB同步数据循环示例 (19)

3 USB视频类示例 (19)

4 SLA VE FIFO应用举例 (19)

5 串行接口(Serial Interface)示例 (20)

5.1 UART示例 (20)

5.2 I2C示例 (20)

5.3 SPI示例 (20)

5.4 GPIO示例 (20)

6 USB Bulk/ISO数据源示例 (20)

7 USB Bulk数据流示例 (21)

8 huanor_examples示例 (21)

联系方式 (22)

一、USB3.0-ALTERA-DDR2开发板简介

usb3.0-altera-ddr2开发板是开发板中心(https://www.wendangku.net/doc/4d6640535.html,)精心设计的一款USB3.0开发板,主芯片架构为:CYUSB3014(FX3系列USB3.0芯片)+EP3C40F484/EP3C16F484(FPGA芯片,2选1)+MT47H64M16HR(1Gbits 16位DDR2芯片,2片)。

usb3.0-altera-ddr2开发板的电路板采用8层电路,按工业标准精心设计,两片DDR2芯片可以稳定跑到200MHz(等效DDR2 800,FPGA采用-6等级),FPGA与USB3.0芯片及FPGA跟外部IO之间的走线均采用等长设计,保证高速信号的可靠传输。两片1Gbits 的DDR2芯片采用独立的地址、控制总线和数据总线,支持采用乒乓倒的数据传输模式。

usb3.0-altera-ddr2开发板是在Cypress官方SDK开发包基础上进行二次开发,外接了FPGA芯片,使之更接近实际应用场合。我们提供的实例在官方SDK的基础上进行了优化,使数据传输速度提高到220Mbytes/s(不错数、不丢数的平均传输速度)。

1 FX3概述

赛普拉斯的EZ-USB FX3是新一代的USB3.0外设控制器,具有高综合性、高灵活度,允许系统设计者将USB3.0添加至任何系统。

EZ-USB FX3系统示意图

它有一个完全可配置的、并行控制的,通用可编程接口GPIF II,它可以连接到其它处理器,例如:ASIC,DSP或者FPGA。为满足客户的强大数据处理需要,它集成了一个USB PHY和一个32位微控制器(ARM926EJ-S)。片载512KB RAM适合代码和数据存储。它有一个inter-port DMA架构,可以实现超过400MBps的数据传输能力。

FX3是完全兼容USB3.0 V1.0和USB 2.0规范的,集成的USB2.0 OTG控制器允许芯片作为主从设备使用,当然它也兼容USB1.1规范。

它还支持一些常用外设接口,例如:UART,SPI,I2C和I2S可以跟板载外设通信(例如I2C接口可以跟EEPROM连接)。

综合编程接口GPIF Ⅱ是Cypress旗舰产品USB2.0的FX2LP GPIF的升级版。GPIF Ⅱ控制器基于一个或多个用户可配置的状态机,驱动GPIF Ⅱ接口的行为及时间。它提供了与当前通用接口简易且无缝的连接,如异步SRAM、同步SRAM、多路地址数据接口和并行ATA,并可编程实现其他大多数的通信协议。

2 FX

3 SDK概述

Cypress提供了FX3完整的软件及固件包,从而可以轻松的将所有USB应用与内嵌系统环境结合。软件开发包与应用实例一并列出,帮助加速应用发展进程。

FX3软件开发包的组成部分如下图所示。

FX3软件方法(SDK)

从设备方面看,FX3固件包具有完整的API库及复杂的固件框架。一个通过充分验证的API库可以使用户更好地使用FX3的硬件功能。SDK也包括代码形式的将不同用途模型接合在一起的应用举例。用户也可利用固件框架并对其进行修改,从而开发新的应用。用户利用固件框架来开发常用应用具有很强的灵活性。RTOS库内嵌在固件包中,允许用户执行需要固件执行多线程的复杂应用。

除SDK外,还包括一系列开发工具,包括GPIF Ⅱ设计器、第三方工具箱和IDE。

固件开发环境将帮助用户对FX3的固件应用进行扩展、建立及调试。第三方ARM开发工具提供了内置开发环境,包括编译器、连接器、汇编器及JTAG调试器。Cypress最近提供了免费的面向ARM处理器的GNU工具箱和基于Eclipse的IDE。

FX3的USB主机开发包(Microsoft Windows 应用程序开发)包括以下部分:

●赛普拉斯通用的USB3.0驱动程序(WDF)支持Windows 7(32/64位)和Windows Vista

(32/64位)和Windows XP(32位)。

●C++和C#可以通过便利的API函数来调用通用USB驱动函数。

●Cypress usb控制面板程序,一个Windows实用程序,可以采用低级别接口形式实

现设备互联,例如配置数据,数据传输等等。

●Bulkloop应用程序,使用户可以采用Bulk方式进行数据循环。

●Streamer应用程序,使用户可以采用Bulk或ISO方式对数据流进行操作。

二硬件说明

usb3.0-altera-ddr2开发板硬件框架如下图所示。

usb3.0-altera-ddr2开发板硬件框图

从上图可以看到,开发板以FPGA作为主控制器,借助FPGA强大的并行处理能力,完成FX3芯片跟DDR2及外部扩展接口直接的数据传输。

开发板同时兼容EP3C40F484和EP3C16F484两种容量的FPGA芯片,满足不同的用户需求。在usb3.0-altera-ddr2原理图.pdf 展示的原理图中使用的EP3C40F484,其IO管脚分配同时适用于EP3C16F484的芯片。

下载接口说明。FPGA程序通过JTAG接口即可将sof程序下载到FPGA内部或将jic程序固化到配置芯片中。FX3芯片的固件程序通过USB口即可直接下载,不需要别的接口下载程序。如果需要仿真其内部的固件程序,则需要使用J-LINK仿真器通过ARM-JTAG接口进行仿真调试。这些接口都需要通过相应的转接板连接下载器和下载接口。

FPGA JTAG下载接口FX3 仿真接口

扩展IO接口说明。所有的IO均采用等长设计,为接口高速传输提供有效的保障。各个接口使用的电压需要注意:J4中有32个IO固定为3.3V电压,有16个为3.3V/2.5V可选电压,

J10的24个IO则固定为1.8V电压。如下图

3.3V 及3.3V/2.5V 可配置IO扩展接插件

1.8V 扩展接插件

考虑到开发板使用的灵活性,有以下几个可选项需要注意:

●电源选择。开发板既可以通过USB口J3供电,也可以通过电源座J9供电。单独开发板

工作,不接外部设备,采用USB口供电即可(USB3.0提供高达900mA的电流),一般能满足需求。如果通过开发板还外接了其它设备,则需要从电源座供电,以免烧坏USB 口。如果将开发板嵌入到用户的产品系统中,直接将产品中的5V电源通过J4的3和4脚给开发板供电即可。如果采用USB口供电,将J4的3脚和5脚短接。如果采用直流电源座供电,则将J4的1脚和3脚短接。如下图

开发板供电方式选择

●扩展IO-A-B电源选择。扩展IO接插件J4中有一部分IO是可以选择为3.3V或者2.5V电平

的。默认选择为3.3V电平。如果选择2.5V电平,则需要将电阻R68去掉,焊上R69即可。

IO-A-B电源选择UART/SPI接口选择

●FX3芯片的UART/SPI选择。由于FX3芯片中UART和SPI接口的IO共用,故需要通过跳

线选择使用FX3的UART还是SPI接口。开发板默认选择UART口,并将UART口连接至

FPGA。如果需要使用SPI接口,则将RN13去掉,焊上1K的RN14即可。

FX3芯片还有一些别的可选配置项,在开发板中都有相应的电阻,通过电阻的焊与不焊即可完成相应的配置。如Boot选项和时钟选项等,具体参考原理图usb3.0-altera-ddr2原理图.pdf。

三软件说明

软件包括三大部分:PC机应用程序、FX3固件程序、FPGA程序。其中PC机应用程序位于光盘\vc\ 目录下,FX3固件程序位于光盘\firmware \ 目录下,FPGA程序位于光盘\fpga \ 目录下。

这三部分程序只有配合起来,数据才能在FPGA和PC机之间正常传输,三者中有一个配合不好,将导致数据传输异常。

PC机应用软件包含C++和C#两种语言的示例源码。Cypress提供的C++示例源码包括bulkloop 和streamer,而C#示例源码则C++示例的基础上,额外增加了controlcenter示例。Huanor提供的Fx3Client示例为C++语言源码。Cypress提供的PC机应用软件源码包含在SDK开发包中,SDK安装完毕后,位于安装目录的application文件夹下。两种语言需要不同的库文件支持,位于安装目录的library文件夹下。C#编程接口可以参考帮助文件https://www.wendangku.net/doc/4d6640535.html,.chm,位于安装目录\library\c_sharp\目录下,而C++编程接口的帮助文件CyAPI.chm 则位于安装目录\library\cpp\目录下。

FX3固件程序包含Cypress提供的SDK开发包中的固件程序和Huanor提供的固件程序huanor_examples两个部分。SDK包含的固件安装完SDK包后位于安装目录\firmware\ 目录下,编程接口帮助文件FX3APIGuide.pdf位于安装目录\doc\目录下。Huanor提供的固件程序位于光盘\firmware\目录下。Cypress提供的绝大部分固件示例可以直接在

usb3.0-altera-ddr2开发板上运行,少部分稍作修改(包括对应的FPGA程序)也可以在开发板上运行。Huanor提供的huanor_examples示例可以直接下载到开发板上运行(有对应的FPGA程序)。

FPGA程序主要为ep3c16_usb_ddr2_ext(企业版为ep3c40_usb_ddr2_ext)工程,

位于光盘\fpga\ 目录下。该示例中将DDR2虚拟成一个FIFO,完成FPGA到PC机之间的高速数据传输。PC机发给FPGA的数据则由FPGA直接输出给外部的扩展IO。工程目录下的fpga.tcl为管脚分配文件。

新建FPGA工程时,一定要将不用的IO设置为输入,否则有可能使FPGA芯片跟外部设备管脚造成冲突,严重的情况有可能烧毁芯片!

Huanor提供的示例在程序源码中都有相应的注释。接下来重点对SDK开发包的安装使用等进行相应的介绍。

四 SDK开发包安装

1 FX3 SDK组件

FX3 SDK以多重MSI的形式提供,支持以下功能:

1.FX3_SDK_xxx.msi:包括FX3固件库,头文件,示例代码和固件转换功能。

2.ARM_GCC_xxx.msi:包括ARM GNU工具箱。

3.Eclipse_xxx.msi:Eclipse IDE及所需插件(plug-in)和Java运行时间。

4.CySuiteUSB3_xxx.msi:包括windows主机驱动,C++、C# API库,控制中心,Bulkloop

和Streamer。其中共有两个MSI,其中一个可用于32位平台(Windows XP,Vista

和Windows 7),另一个适用于64位平台(Windows Vista和Windows 7)。

以前beta版本的SDK运行每个MSI并根据指导完成安装。ARM GCC和Elipse IDE的默认安装路径为C:\Program Files\Cypress。FX3固件和USB Suite默认安装路径为C:\Cypress。

新的Realse版本可以直接运行cyautorun.exe(位于光盘\ez_usb_fx3_sdk_1.0\ 目录中)进行安装,就可以将以上4种安装包都进行安装了。安装时,Installation Type建议选择Custom,其中CySuiteUSB3是安装CySuiteUSB3_x86还是CySuiteUSB3_x64需要根据电脑的操作系统来,如果是64位的则选择CySuiteUSB3_x64,32位的则选择CySuiteUSB3_x86,选择一个即可,别多选了。否则有可能导致用不了,还得卸载重装!安装路径建议选择到

D:\Cypress,这样将我们提供的固件直接拷贝到相应目录下即可。安装完后路径如下D:\Cypress\EZ-USB FX3 SDK\1.0。

官方SDK安装完毕后,还需要做以下三件事:

●将VC源代码文件夹Fx3Client从光盘\:vc\ 目录下拷贝到D:\Cypress\EZ-USB FX3

SDK\1.0\application\cpp\ 目录下。

●将firmware固件源码文件夹huanor_examples从光盘\:firmware\ 目录下拷贝到

D:\Cypress\EZ-USB FX3 SDK\1.0\firmware\目录下。

●将驱动程序文件夹bin从光盘\:driver\ 目录下拷贝到D:\Cypress\EZ-USB FX3

SDK\1.0\driver\ 目录下,覆盖相应的文件即可。该步骤主要将驱动相应的.inf文件

进行替换,便于操作系统安装驱动程序。

拷贝完毕后目录结构见“安装目录结构”。这样VC和固件源码等的环境参数就不需要修改了,直接使用即可。

2 安装目录结构

安装完成的FX3 SDK目录结构如下所示(由于目录太多,我们只提取了部分关键目录):路径:D:\Cypress\EZ-USB FX3 SDK\1.0\

├─application PC机应用程序源代码目录

│├─cpp C++源代码目录

││├─bulkloop

││├─Fx3Client huanor提供的C++实例源码,需要从光盘中拷贝到该目录││└─streamer

│└─c_sharp C#源代码

│├─bulkloop

│├─controlcenter 官方控制面板软件源码

│└─streamer

├─doc 官方SDK开发文档目录,官方相关开发文档在该目录下

├─driver 驱动程序目录

│├─bin 驱动文件目录

││├─win7 WIN7驱动

│││├─x64 将huanor提供的cyusb3.inf拷贝到该目录覆盖原文件即可│││└─x86 将huanor提供的cyusb3.inf拷贝到该目录覆盖原文件即可││└─wxp WINXP驱动

││└─x86 将huanor提供的cyusb3.inf拷贝到该目录覆盖原文件即可│└─inc

├─firmware 固件程序源代码目录

│├─basic_examples

││├─cyfxbulklpautoenum

││├─cyfxbulksrcsink

││├─cyfxbulkstreams

││├─cyfxflashprog

││├─cyfxisolpauto

││├─cyfxisolpmaninout

││└─cyfxisosrcsink

│├─boot_fw

││├─include

││├─lib

││├─src

│││└─Debug

││└─src_rvds

│├─common

│├─dma_examples

││├─cyfxbulklpauto

││├─cyfxbulklpautomanytoone

││├─cyfxbulklpautoonetomany

││├─cyfxbulklpautosig

││├─cyfxbulklpmandcache

││├─cyfxbulklpmaninout

││├─cyfxbulklpmanmanytoone

││├─cyfxbulklpmanonetomany

││├─cyfxbulklpmanual

││├─cyfxbulklpmanual_rvds

││└─cyfxbulklpmulticast

│├─huanor_examples huanor提供的固件程序,需要从光盘中拷贝到该目录││└─HuanorFx3Example 固件实例

│├─serialif_examples

││├─cyfxgpioapp

││├─cyfxgpiocomplexapp

││├─cyfxuartlpdmamode

││├─cyfxuartlpregmode

││├─cyfxusbi2cdmamode

││├─cyfxusbi2cregmode

││├─cyfxusbspidmamode ││└─cyfxusbspiregmode

│├─slavefifo_examples

││├─slfifoasync

││└─slfifosync

│├─u3p_firmware

││├─inc

││└─lib

│└─uvc_examples

│└─cyfxuvcinmem

└─library PC机应用程序包含库├─cpp C++库文件目录

│├─inc

│└─lib

│├─x64

│└─x86

└─c_sharp C#库文件目录

└─lib

五 SDK使用

1 对开发板进行编程测试

采用Fx3Client软件并在usb3.0-altera-ddr2开发板上进行测试。以下为安装及使用步骤:

a)安装cypress官方SDK开发包,再拷贝相应文件到相应的目录,参考三.1节。

b)将usb3.0-altera-ddr2开发板连接到电脑,通过跳线帽将J4的3和5脚短接,采用

USB口供电的方式给开发板供上电。这时D3~D5将同时变亮。

c)开发板上电后,操作系统将提示安装驱动程序。驱动程序位于SDK安装目录\

driver\bin\目录下,再根据操作系统选择相应的文件夹即可,如win7 64位系统则选

择SDK安装目录\ driver\bin\ win7\x64。驱动安装完毕后在设备管理器的“通用串

行总线控制器”中将看到Cypress USB BootLoader这个设备。

d)打开Eclipse IDE,导入固件示例文件并编译工程。Eclipse IDE使用可以参考FX3

Programmers Manual.pdf 的第11.2章节或者Eclipse IDE工程使用手册.pdf。

e)打开Fx3Client.exe软件,位于光盘pub文件夹中。

f)利用Fx3Client.exe软件“固件下载”功能,将光盘\pub\文件夹中

HuanorFx3Example.img文件下载到FX3设备中。

g)固件下载完毕后,需要重新安装驱动程序,参考步骤c。驱动安装完毕后在设备管

理器的“通用串行总线控制器”中将看到Cypress USB3.0 Generic Driver F1这个设

备。

h)到此就可以对开发板进行读写速度等一系列测试了。

下面的部分将对以上步骤进行更详细的阐述。

2 固件建立

在FX3 SDK的每个固件示例中都有与它相关的一个Eclipse工程,可用于建立和调试应用程序。利用Eclipse IDE和GNU工具链来建立和调试固件程序的示例在FX3 Programmers Manual.pdf(FX3编程手册)的第11.2.2节中有详细介绍。本节详细介绍了如何导入工程、配置工程的设置、调试和用GNU仿真器运行示例。

将SDK中的所有固件示例导入到Eclipse IDE中。导入时这些示例应用程序将自动生成ELF二进制文件。这些二进制文件在Eclipse工程中利用elf2img工具可以被转换成二进制img格式。这种二进制img格式可以直接编程到FX3芯片中。Elf2img二进制转换工具是FX3 SDK的一部分(<安装文件夹\util\elf2img\)。利用下面的命令转换步骤可以生成Eclipse工程。

ef2img.exe – i HuanorFx3Example.elf – o HuanorFx3Example.img

3 FX3芯片启动配置

FX3芯片有多种启动选项,由三个PMODE引脚配置选择,详细配置见CYUSB3014 datasheet.pdf (器件手册)第7页的PMODE设置部分。usb3.0-altera-ddr2开发板采用I2C 配置失败则用USB接口配置的方式。由于出厂时I2C 接口的EEPROM芯片没有配置信息,故将从USB接口载入配置信息。

4 安装电脑驱动

在不同的Windows平台安装和绑定主机驱动程序,在主机驱动帮助文件CyUSB.pdf(位于光盘\driver\ 目录下)的第三部分有详细介绍。

当开发板连接到PC主机,FX3将以VID=0x04B4和PID=0x00F3的USB2.0设备进行

枚举和驱动安装。(别忘了用跳线帽将J4的3和5脚短接)

选择“Install from a specific location”,将安装目录指向

SDK安装目录\ driver\bin\ \ \cyusb3.inf文件,将设备与Cypress CyUsb3.sys驱动绑定。如win7 64位系统则选择SDK安装目录\ driver\bin\ win7\x64。驱动安装完毕后在设备管理器的“通用串行总线控制器”中将看到Cypress USB BootLoader这个设备。

5 固件下载

当Cypress USB BootLoader驱动安装绑定完毕,打开Fx3Client.exe软件(位于光盘\pub\文件夹中),点击“刷新”按钮则可以看到Cypress USB BootLoader设备。

利用Fx3Client软件的固件编程选项,可将建立固件中产生的HuanorFx3Example.img文件或pub文件夹中的HuanorFx3Example.img文件直接下载到FX3设备的RAM中。

固件下载也可以使用cypress 的控制面板Control Center 程序(位于:开始->所有程序->Cypress->CypressSuperSpeedUSBSuite->Control Center)进行控制。在软件左侧窗口选择Cypress USB BootLoader,然后在菜单中选Program->FX3->RAM,然后再选择相应固件下载即可,如下图

通过Control Center下载固件到RAM 配置图

6 开发板测试

当HuanorFx3Example.img固件下载完成,会有新的USB设备运行并请求驱动安装。参照上面的驱动安装步骤重新安装一遍驱动即可,安装完毕后将显示为Cypress USB3.0

Generic Driver F1设备。

重新刷新器件列表,将显示Cypress USB3.0 Generic Driver F1。

这时就可以采用Fx3Client软件进行速度测试等操作了。

测试对应的FPGA源码为ep3c16_usb_ddr2_ext(企业版为ep3c40_usb_ddr2_ext,

位于光盘\fpga\ 目录下),出厂时已经固化到FPGA的配置芯片M25P64中了,直接使用即可,不需要下载。

如果使用我们提供的Fx3Client软件进行读写速度测试等操作就不用参考下面的设置操作了,软件中已经将数据传输方向控制等操作都集成进去了,自动完成。

如果使用cypress官方的Control Center软件或Streamer软件测试,在测试时需要控制fpga配合测试(主要控制数据传输方向),否则有可能导致测试失败。

fpga出厂固化程序的功能如下:

FPGA->PC数据传输控制:FPGA产生测试数据(32位数据,高16位为0,低16位中的高4位在0~15->0~15之间循环变化,低12位在0~4095->0~4095之间循环变化),产生测试数据后,数据传输流程为DATA->FIFO->DDR2->FIFO->FX3->USB3.0->PC。用户可以轻松的将外部数据(通过扩展接插件)写入FIFO来代替测试数据,实现将外部数据上传到PC机的功能(在FPGA程序中已经包含,将注释去掉,稍作修改即可)。在数据缓存方面,采用我们提供的DDR2虚拟FIFO模块,为批量(BULK)传输时提供足够的缓存,不用为缓存不够电脑来不及取数据造成数据丢失而烦恼了。

PC->FPGA数据传输控制:FPGA从FX3接口读取数据,然后直接发送到外部(通过扩展接插件)。

FX3跟FPGA通讯:FX3通过UART接口跟FPGA通讯。下面的按键控制、LED控制、数据传输方向控制等控制数据都是通过UART传输的。

按键:KEY4为FPGA程序复位按钮,KEY1~KEY3对应到软件Fx3Client中的三个灯。按键状态FPGA通过UART口发送给FX3,然后再上传到PC机。

LED:D6对应KEY4按下指示,当KEY4按下时,D6将变亮。D3~D5对应Fx3Client 中的3个按钮。LED灯控制PC机先传给FX3,然后FX3再通过UART口传给FPGA。

数据传输方向控制:PC机软件通过控制端点(Control Center软件中的Control endpoint 端点)发送指令经FX3传给FPGA,其中参数设置如下:Direction=Out, Req Type=Class, Target=Interface, Req Code=0x01, wvalue和wIndex都为0x0000。数据为一个字节,低3位

有效(某位为1,则对应的LED灯亮,0则灭),最低位同时控制数据传输方向(0对应FPGA 发送数据到PC机,1对应PC机发送数据到FPGA)。

利用Control Center软件及Streamer进行读速度测试操作说明。测试读速度(对应FPGA发送数据到PC机),首先设置数据传输方向:在Control Center的左侧窗口选择Control endpoint (0x00),然后在右侧窗口选择Data Transfers标签,在该标签页下配置相应参数:Direction=Out, Req Type=Class, Target=Interface, Req Code=0x01, wvalue和wIndex都为0x0000,然后在Data to send(Hex)中输入00。设置完毕后如下图

数据传输方向设置图

然后点Transfer Data按钮,这时LED灯D3~D5都灭了,表示FPGA这边已经开始产生测试数据,并传给FX3以便上传到PC机。

这时可以打开Streamer,Endpoint选择***Bulk in endpoint***端点(关键要有“Bulk in”字样,而“Bulk out”对应的是PC->FPGA的端点)。将Packets per Xfer设置为256 或以下的值,建议为256,再将Xfers to Queue设置为4。点击“Start”按钮开始进行测试。测试结果将实时显示到Througput (KB/s)中,单位为K字节/s。不同的USB3.0控制器,其速度测试测试结果将不同,整体来说笔记本的测试速度会低些。如下图是我们用笔记本(华硕N53XI241SN,Fresco FL1000系列的USB3.0控制器)在64位WIN7下的测试结果

读速度测试结果图

当然,也可以利用查看FPGA上传给PC机的数据。选择Interface 0中的“Bulk in”端点,然后在Data Transfers标签页中点击Transfer Data-IN按钮,就可以接收16K字节的测试数据。如下图

查看传输数据图

如上图所示,经过长时间的速度测试后(如速度测试结果图的27680个成功包,0失败),读取到的数据仍然正确,没有发生丢数或错数的情况。

六固件示例概述

FX3 SDK包含的固件示例如下所述。这些示例以独立的Eclipse工程呈现。

1 USB Bulk数据循环示例

这些示例展示了在2或3个USB Bulk端点之间的数据循环传输机制。示例由2或3的Bulk端点Vendor Class USB列举描述符组成。DMA多通道示例由3个端点组成循环。

下面是不同类型的Bulk数据循环。这些例子以Eclipse文件的形式给出。

●cyfxbulklpauto:该例利用DMA AUTO Channel形成端点间的循环。

●cyfxbulklpautosig:该例利用DMA AUTO Channel及信号(Signaling)形成端点间

的循环。

●cyfxbulklpmanual:该例利用DMA MANUAL Channel形成端点间循环。

●cyfxbulklpmaninout:该例利用DMA MANUAL IN与DMA MANUAL OUT形成端

点间循环。

●cyfxbulklpautomanytoone:该例利用Multichannel DMA AUTO MANY TO ONE形成

端点间循环。

●cyfxbulklpautoonetomany:该例利用Multichannel DMA AUTO ONE TO MANY形成

端点间循环。

●cyfxbulklpmanonetomany:该例利用Multichannel DMA MANUAL ONE TO MANY

形成端点间循环。

●cyfxbulklpmanmanytoone:该例利用Multichannel DMA MANUAL MANY TO ONE

形成端点间循环。

所有以上示例都可在USB2.0和USB3.0速度下执行。

2 USB同步数据循环示例

这些示例展示了在两个USB同步端点间的循环机制。由2个同步端点的Vendor Class USB列举描述符组成。

以下是同步数据循环的不同类型。这些例子以Eclipse文件形式给出。

●cyfxisolpauto:该例利用DMA AUTO Channel形成端点间循环。

●cyfxisolpmaninout:该例利用DMA MANUAL IN和DMA MANUAL OUT形成端点

循环。

以上示例都可在USB2.0和USB3.0速度下执行。

3 USB视频类示例

cyfxuvcinmem:该例在适当的USB列举描述符协助下,执行了USB视频类驱动。根据这些描述符,FX3设备可在电脑主机下起到USB视频类设备的作用。通过DMA Manual Out channel的传输方式形成视频流。视频特征信息储存在连续的内存位置,为一不变的阵列。这些视频特征信息的在视频流中实时的加入在电脑主机上就形成了视频。

该例可在USB2.0和USB3.0速度下执行。

4 SLA VE FIFO应用举例

SLA VE FIFO应用举例说明了在USB主机和FPGA控制器间的数据循环。示例由USB 主机和FPGA间的两个数据通道组成。数据循环至FPGA,可在电脑上观察到。在同步和异步模式下(16和32位配置),对GPIF Ⅱ接口进行设置来实现SLA VE FIFO协议。

相关文档
相关文档 最新文档