首页 > 代码库 > AC6102开发板USB3.0测试和使用说明

AC6102开发板USB3.0测试和使用说明

AC6102开发板USB3.0测试和使用说明

概述

AC6102上集成了一颗Cypress 推出的高性能USB3.0传输芯片CYUSB3014,Cypress称之为EZ-USBFX3。该芯片性能强劲,功能强大,接口简单,非常适合用于各种需要高速数据传输的场合,以下为摘自EZ-USBFX3数据手册中关于该芯片的介绍:

 

赛普拉斯EZ-USBFX3是新一代USB3.0外设控制器,具有高度集成的灵活特性,可帮助开发人员为任何系统添加USB3.0功能。EZ-USBFX3具有一个可进行完全配置的并行通用可编程接口GPIFII,它可与任何处理器、ASIC或FPGA连接。这个通用可编程接口GPIFII是赛普拉斯旗舰USB2.0产品FX2LP中的GPIF的增强版本。它可轻松无缝地连接至多种常用接口,比如异步SRAM、异步和同步地址数据复用式接口、并行ATA等等。

EZ-USBFX3集成了USB3.0和USB2.0物理层(PHY)以及32位ARM926EJ-S微处理器,具有强大的数据处理能力,并可用于构建定制应用。该产品采用了一种巧妙的架构,使从GPIFII到USB接口的数据传输速度可达320MBps[1]。通过集成的USB2.0OTG控制器,可以实现需要双角色使用场合的应用。例如,EZ-USBFX3可以作为MSC和HID级设备的OTG主机使用。EZ-USBFX3配有用于存储代码和数据的512KB片上SRAM。EZ-USBFX3还具有可连接至UART、SPI、I2C和I2S等串行外设的接口。

EZ-USBFX3附带易用的EZ-USB工具,为快速应用开发提供完整的解决方案。软件开发工具包中附带应用示例,可缩短上市时间。

EZ-USBFX3完全符合USB3.0规范1.0版,并可向下兼容USB2.0。本设备还符合电池充电规范v1.1和USB2.0OTG规范2.0版。

 

从该介绍中,摘选出我们所关心的以下信息:

1、 USB3.0外设控制器,兼容USB2.0协议

2、 对外是一个GPIFII接口,可以灵活的与FPGA连接

3、 片上集成ARM926EJ-S微处理器(ARM9处理器)

4、 用户接口(GPIFII)到USB接口的数据传输速度可达320MBps

5、 支持USB2.0 OTG功能,可以作为海量存储器控制器(MSC,如U盘)或人机接口设备(HID,如鼠标、键盘)的主机

6、 片上512K字节SRAM用于存储程序和数据

7、 UART、SPI、I2C、I2S串行外事接口。

8、 提供方便易用的EZ-USB开发

 

通过以上介绍可知,EZ-USBFX3的功能还是非常强大的。因此,如何高效快速的学会使用该芯片也就显得非常有意义了。

本文作为AC6102开发板的第一期配套资料,仅对AC6102上的USB3.0电路功能和性能测试进行简单的介绍。关于更加详细的开发教程,将在第二期或第三期资料推出。

本实验需要用到以下器件:

1、 芯航线AC6102型FPGA开发板一块

2、 带USB3.0接口的PC机一台

3、 Micro USB3.0数据线一根

4、 5V/2A电源适配器一个

5、 USB Blaster下载器一个

 技术分享

 

安装SDK

开发EZ-USBFX3,需要用到Cypress提供的开发工具,该软件已经经历了多次更新,目前最新版本的叫做FX3_SDK_Windows_v1.3.3.exe。该软件以及EZ-USBFX3的其他所有相关文档都可以从以下地址下载得到。下载需要注册,注册非常简单,仅需要邮箱就能成功注册,这里就不给大家介绍注册方法了。

 

CYUSB3014开发套件官方资料下载地址:

http://www.cypress.com/documentation/software-and-drivers/ez-usb-fx3-software-development-kit

 

下载好之后,即可安装该软件,该软件实际是一个集成包,里面包含了开发EZ-USBFX3的软硬件所需的全部内容,包括开发软件、DEMO、文档等。安装过程也非常简单,以下对其中需要注意的地方进行简单说明。

1、 双击FX3_SDK_Windows_v1.3.3.exe以开设运行软件

2、 安装路径选择,建议选择默认,这可以帮我们在开发初期避免路径不通带来的差异,可以省不少事。点击Next。

 技术分享

3、 下一个界面要求选择安装的模式,典型的,还是用户自定义安装,第一次接触,建议按照典型方式安装。

 技术分享

4、 接下来,就是各种接受协议,各种下一步。接受了所有的协议后,点击next就可以开始正式安装,以下为安装过程

 技术分享

安装最后的一个界面是反馈信息,默认finish是灰色的无法选中,我们选择Continue Without Contact Information即可,然后点击Finish。

 技术分享

至此,EZ-USBFX3开发套件就安装完成了

 

安装完成后,在系统的开始菜单下,会出现一个叫做Cypress的文件夹,里面包含以下内容:

 技术分享

Cypress Update Manager:Cypress的更新管理器,如果开发套件有更新版本,使用该管理器可以检查并更新到最新版本。

EZ-USB FX3 SDK:EZ-USB的开发套件相关组件。

 

连接USB3.0到PC

以上,我们完成了EZ-USB FX3的开发套件的安装,只有安装了该套件,才能在后续将AC6102的USB3.0接口连接到PC机时,成功的安装驱动。

1、 使用配套的5V电源给开发板供电,打开电源开关,插上USB Blaster下载器。

2、 使用配套的USB3.0数据线连接PC和AC6102的USB3.0接口。如下图所示:

技术分享 

插上USB线并打开开发板电源以后,PC会自动识别到设备,设备名称为“WestBridge”,如下图所示,由于此时设备没有安装驱动,因此还是带黄色“!”,表明设备不可用。

 技术分享

 

安装EZ-USB芯片驱动

当开发板和PC机连接完成后,我们就可以为设备安装驱动了。选中设备,单击鼠标右键,选中更新驱动程序,选则浏览计算机以查找驱动程序软件。

技术分享 

技术分享 

定位驱动路径到以下文件夹(以实际的 SDK 安装路径为准)。C:\Program Files (x86)\Cypress\EZ-USB FX3 SDK\1.3\driver,并勾选上“包括子文件夹”选项。然后点击下一步。

技术分享 

 

如果弹出以下界面则表明驱动安装成功。

技术分享 

此时,回到设备管理器中,可以发现如下设备:

技术分享 

 

到此我们就完成了所有软硬件的连接,接下来,就可以对设备进行测试了。

 

关于EZ-USB的启动方式

在进行测试之前,需要补充介绍下EZ-USBFX3的启动方式,EZ-USBFX3芯片总共支持7种引导方式,所谓引导,就是EZ-USBFX3芯片上电以后,片上的ARM9处理器从何处开始读取程序并运行。其支持的7种启动方式如下所示:

2  从 USB 引导

2  从 I2C 引导

2  从 SPI (支持的 SPI 器件为 M25P16 (16 Mbit)、M25P80(8 Mbit) 和 M25P40 (4 Mbit))或同类器件引导

2  从 GPIF II 异步 ADMUX 模式引导

2  从 GPIF II 同步 ADMUX 模式引导

2  从 GPIF II 异步 SRAM 模式引导

 

那么究竟EZ-USBFX3芯片上电后从哪里开始启动呢?芯片提供了3个启动配置引脚,通过设置启动引脚不同的值,来选择不同的启动方式。这三个引脚名叫PMODE脚。

 技术分享

这三个配置引脚,每个引脚都有三种状态,1(接高电平)、0(接低电平)、F(浮空,既不接高电平,也不接低电平),三个配置引脚的不同状态与对应的启动方式如下表所示:

技术分享

    其中,对于FPGA和USB3.0组成的系统,我们很少用到第1、2、4种启动方式。第7种启动方式,即使用SPI引导,主要用在EZ-USBFX3作为整个系统的主机层,片上的处理器需要运行复杂的程序的情况下,使用片外的大容量SPI FLASH存储器启动。FPGA + EZ-USBFX3,使用最多的是SlaveFifo接口,因此,可以选择EEPROM存储器,即I2C方式启动。同时,为了保证系统在IIC接口的EEPROM存储器失效的情况下,能够有其他方式可以恢复,所以,AC6102上的启动方式设置为了方式5,即默认从I2C引导,如果从I2C引导失败,则启用从USB引导。对应的PMODE[2:0]的配置为F1F,在原理图上,即电阻R51使用0R电阻,其他电阻全部不焊接即可。

 

EZ-USB测试方案分析

由于AC6102上的USB3.0电路更像是一个桥,一端,使用USB总线连接到PC机的USB端口上,另一端,使用GPIFII连接到FPGA芯片上。所以,为了测试整个链路是否通畅,可以分成两步测试,第一步,测试EZ-USBFX3和PC间的USB3.0总线是否稳定,第二步,再测试FPGA通过EZ-USBFX3到PC的链路是否稳定。

 

为了测试EZ-USBFX3和PC间的USB总线是否可靠,可以采用内部回环传输的方式进行测试,所谓内部回环传输,就是PC发数据给EZ-USBFX3,EZ-USBFX3将接收到的数据再发回给PC,以实现通信USB总线的测试。

 

为了使EZ-USB能够工作在回环模式,需要有相应的固件支持。对于EZ-USBFX3,由于我们将其引导方式设置为I2C -> USB,即默认会从EEPROM上启动。但是我们的EEPROM中目前没有烧写任何固件,因此一定会引导失败,引导失败后,则会选择从USB引导。所以,我们可以在系统上电后,通过PC直接将固件下载到EZ-USB的RAM中并运行。

 

块传输模式测试

下载EZ-USB固件

在开始菜单中找到Control Center,如下图X1所示,打开后软件会自动扫描到我们的USB设备,如下图X2所示。

技术分享

技术分享

 

这里,我们选中设备(Cypress FX3 USB BootLoader Device),然后点击菜单栏中的Program,依次选择FX3 -> RAM。

技术分享

在打开的文件选择窗口中,我们定位到我们提供的DEMO目录下的..\AC6102\demo_release\ez_usb\01_USBBulkLoopAutoEnum文件夹,选择USBBulkLoopAutoEnum.img文件,点击打开,如下图X1所示,则软件会自动读取该文件并通过USB总线下载到EZ-USBFX3芯片的RAM中,此时,我们再看USB Control Center,发现此时的设备名称已变成了Cpress USB BulkloopExample,左下角显示Programming Succeeded。如下图X2所示。(关于USBBulkLoopAutoEnum.img文件的生成,将在第二期资料中提供详细的开发教程)。

技术分享 

图X1

 

技术分享 

图X2

 

基本回环测试

USB Control Center软件提供了一个基本的回环测试功能,这里,我们依次点开Cpress USB BulkloopExample前面的+号,找到Bulk outendpoint (0x01),选中该项,在右侧 “Data Transfers” 的“Data to send (Hex)”中输入需要从 PC 发送到 FX3 的数据。然后点击 Transfer Data-OUT 即可实现数据发送。如下图X所示。

技术分享 

发送完成后,在下方信息窗口,可以看到提示信息,表明发送已经完成。

 技术分享

那么此时,这些发送出去的数据在哪里呢?本例烧写的固件是基于内部DMA的回环测试,所谓内部DMA回环,就是EZ-USBFX3会自动将out端点发送的数据搬运到in端点,所以,我们刚刚发出去的这13个数据,已经被EZ-USBFX3芯片搬运到了in端点了。这样,当电脑读取in端点,就能读取到刚刚发出去的这13个数据。

在左侧选中Bulk in endpoint(0x81)端点,然后右侧窗口中,点击Transfer Data-IN按钮,即可将0x81端点中的数据读出来,如下图所示。

技术分享 

可以看到,读取回来的数据与我们发出去的数据完全一致。因此可知USB总线能够正常的收发数据。

使用Bulk Loop工具测试

上述测试需要我们手工输入待测试数据并手动点击发送和读取按钮,因此效率十分低下,无法测试USB3.0在搞强度传输时候的稳定性。接下来,我们就使用EZ-USBFX3的开发套件中提供的一个专用的回环测试软件来进行测试。

 

在开始菜单中找到Bulk Loop软件,如图X1所示,点击打开,打开后界面如图X2所示:

 技术分享技术分享

打开之后,直接默认设置即可,点击Start即可开始测试。发送和接受数据统计窗口会显示实时发送和接收的数据总数,通过比对发送和接收的数据是否一致,即可了解EZ-USBFX3和PC间的USB总线性能是否可靠。

 技术分享

至此,我们就完成了USB总线可靠性的测试。之所以要进行此测试,是因为USB3.0串行总线数据线的传输速度高达Gbps,AC6102这几根串行数据线在布线时需要完成阻抗匹配和差分布线,只有阻抗匹配和差分布线都满足USB3.0协议的要求,才能够稳定长期的传输数据不出错。

小梅哥

2016年12月8日于成都市电子科技大学

 

流模式数据吞吐量测试

上一节,我们介绍了使用EZ-USBFX3的片上回环方式测试USB总线的可靠性。该种方式虽然能够测的USB总线的传输是否可靠,但是却无法体现USB3.0的高传输速率。本节,我们将通过另一种方式——流传输方式,来测试我们的USB3.0总线的传输速率。

下载EZ-USB固件

在开始菜单中找到Control Center,如下图X1所示,打开后软件会自动扫描到我们的USB设备,如下图X2所示。

技术分享技术分享 

这里,我们选中设备(Cypress FX3 USB BootLoader Device),然后点击菜单栏中的Program,依次选择FX3 -> RAM。

技术分享 

在打开的文件选择窗口中,我们定位到我们提供的DEMO目录下的AC6102\demo_release\ez_usb\ 02_USBBulkSourceSink,选择USBBulkSourceSink.img文件,点击打开,如下图X1所示,则软件会自动读取该文件并通过USB总线下载到EZ-USBFX3芯片的RAM中,此时,我们再看USB Control Center,发现此时的设备名称已变成了Cypress USB StreamerExample,左下角显示Programming Succeeded。如下图X2所示。(关于USBBulkSourceSink.img文件的生成,将在第二期资料中提供详细的开发教程)。

技术分享 

图X1

 

 技术分享

图X2

 

基本Streamer测试

接下来,我们就使用EZ-USBFX3的开发套件中提供的一个专用的steamer测试软件来进行测试。

在开始菜单中找到Bulk Loop软件,如图X1所示,点击打开,打开后界面如图X2所示:

 

 

技术分享技术分享 

 

选择Endpoint为0x01,Packets per Xfer为8、Xfers to Queue为64,然后点击Start开始测试,界面上的能量条会实时显示当前传输速度,也会同时显示成功(Successes)和失败(Failures)的数据包个数。可以看到,传输速度为395800KB/S左右,即386MB/S。速度可谓相当的高。

 

点击stop停止传输,切换Packets per Xfer为256、Xfers to Queue为64,然后再次点击Start,测试速度如下所示。可以看到,传输速度稳定在389000KB/S左右,也就是380MB/S,这个速度已经相当的高了。

 技术分享技术分享

 

SlaveFifo模式测试

EZ-USBFX3的套件提供了对GPIFII配置的一个快捷工具,叫做GPIF II Designer,使用该工具,可以快速创建GPIF II的配置信息,然后提交给Eclipse编译以得到对应的固件。

 技术分享

 技术分享

 

AC6102开发板USB3.0测试和使用说明