USB3.0调试手册

  • 格式:docx
  • 大小:9.97 MB
  • 文档页数:59

宁波舜宇车载光学技术有限公司USB3.0数据采集系统FPGA+USB3.0韩斌2017/6/9USB3.0数据采集系统用户手册批准:审核:作成:日期一、USB协议概述关于USB的协议在《IFLabs USB3.0核心板开发手册V1.4》介绍的很详细,接下来主要介绍我在此间所学的一些总结和概括。

每个USB设备都可以包含一个或多个配置,不同的配置使设备表现出不同的功能组合,配置由多个接口组成。

在USB 协议中,接口代表一个基本的功能,一个功能复杂的USB设备可以具有多个接口, 而接口是端点的汇集。

端点的作用类似于寄存器。

每个端点在设备内部有唯一的端点号。

主机和设备通讯需要通过端点作为媒介。

端点的特点是单向性(即在某一时间只读或只写)。

设备的逻辑结构和组织结构见下图所示:PC机识别USB设备通过设备枚举来实现,而设备枚举首要步骤就是获取设备描述符。

在每一个USB设备内部,包含了固定格式的数据,通过这些数据,USB主机就可以获取USB 设备的类型、生产厂商等信息。

这些固定格式的数据,我们称之为USB设备描述符。

标准的USB设备有5种USB描述符:设备描述符、配置描述符、接口描述符、端点描述符合字符串描述符。

USB数据通讯模型的传输有四种传输方式,分为中断传输、批量传输、同步传输、控制传输。

如下就是控制传输的模型图:USB四个传输方式一般又分为三个事务:IN事务、OUT事务和SETUP事务,见下图所示:事务又分为令牌包(setup)、数据包(data)、握手包(ACK)、特殊包,如下图所示:一个包分为同步域(SYNC),标识域(PID),地址域(ADDR),端点域(ENDP),帧号域(FRAM),数据域(DATA)和校验域(CRC),见下图所示:USB正常工作之前,第一件事就是设备枚举,目的就是让主机认得这个USB设备,并且为这个设备配置资源,建立好主机与设备之间的数据传输通道。

设备枚举分为如下8个步骤:1,获取设备描述符2,复位3,设置地址4,再次获取设备描述符5,获取配置描述符6,获取端点、配置描述符7,获取字符串描述符8,选择设备配置二、CYUSB3014的SDK概述2.1介绍CYUSB3014的开发支持包由Cypress支持和提供,取名为FX3 SDK。

框架如下图所示,其内包含整套软件的开发环境,如调试软件IDE,编译器GNU,固件例程firmware及上位机应用开发库等。

2.2. SDK包含内容软件安装成功后,打开安装如下安装路径:2.3. 固件示例概述(firmware)FX3 SDK 包含的固件示例如下所述:B Bulk数据循环示例这些示例展示了在2或3个USB Bulk端点之间的数据循环传输机制。

示例由2或3的Bulk端点Vendor Class USB列举描述符组成。

DMA多通道示例由3个端点组成循环。

下面是不同类型的Bulk 数据循环。

这些例子以Eclipse 文件的形式给出。

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

2)cyfxbulklpautosig:该例利用DMA AUTO Channel及信号(Signaling)形成端点间的循环。

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

4)cyfxbulklpmaninout:该例利用DMA MANUAL IN 与DMA MANUAL OUT 形成端点间循环。

5)cyfxbulklpautomanytoone:该例利用Multichannel DMA AUTO MANY TO ONE形成端点间循环。

6)cyfxbulklpautoonetomany:该例利用Multichannel DMA AUTO ONE TO MANY 形成端点间循环。

7)cyfxbulklpmanonetomany:该例利用Multichannel DMA MANUAL ONE TO MANY形成端点间循环。

8)cyfxbulklpmanmanytoone:该例利用Multichannel DMA MANUAL MANY TO ONE形成端点间循环。

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

B同步数据循环示例这些示例展示了在两个USB同步端点间的循环机制。

由2个同步端点的Vendor Class USB列举描述符组成。

以下是同步数据循环的不同类型。

这些例子以Eclipse文件形式给出。

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

2)cyfxisolpmaninout:该例利用DMA MANUAL IN 和DMA MANUAL OUT 形成端点循环。

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

B视频类示例cyfxuvcinmem:该例在适当的USB 列举描述符协助下,执行了USB 视频类驱动。

根据这些描述符,FX3设备可在电脑主机下起到USB视频类设备的作用。

通过DMA Manual Out channel的传输方式形成视频流。

视频特征信息储存在连续的内存位置,为一不变的阵列。

这些视频特征信息的在视频流中实时的加入在电脑主机上就形成了视频。

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

4.SLAVE FIFO应用举例SLAVE FIFO应用举例说明了在USB主机和FPGA控制器间的数据循环。

示例由USB主机和FPGA间的两个数据通道组成。

数据循环至FPGA,可在电脑上观察到。

在同步和异步模式下(16和32位配置),对GPIF Ⅱ接口进行设置来实现SLAVE FIFO 协议。

cyfxslaveasync:异步模式SLAVE FIFO 举例;cyfxslavesync:同步模式SLAVE FIFO 举例。

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

5.串行接口(Serial Interface)串行接口示例说明了串行IO、I2C、SPI 和UART 间的数据通道。

5.1 UART示例在UART 示例中,数据通过FX3 设备在PC 主机间循环,可在PC 主机上观察到。

示例包括DMA 和寄存器模式的UART 数据传输。

1)cyfxuartlpdmamode:该例利用DMA MANUAL Channel,通过UART 在PC 主机间循环。

DMA 缓冲器为32 字节。

2)cyfxuartlpregmode:该例每次循环一个字节的数据。

5.2 I2C示例在I2C示例中,通过I2C从动设备,在两个USB同步端口间实现USB I2C 数据循环。

同步端口用到DMA MANUAL IN和DMA MANUAL OUT通道。

循环数据每次为一个I2C页,即64字节。

示例在USB2.0速度下运行。

cyxusbi2cdmamode:该例在I2C DMA途径中用到DMA MANUAL IN 和DMA MAUNUAL OUT 通道。

1)cyxusbi2cdmamode:该例在I2C DMA途径中用到DMA MANUAL IN DMA MAUNUAL OUT 通道。

3)cyxusbi2cregmode:该例利用寄存器模式途径,每次读或写I 2 C 设备的一页数据量。

5.3 SPI示例该示例默认情况下无效,因为FX3芯片的SPI和UART管脚复用,开发板认为是使用UART接口,如果需要SPI通讯,需要开发板上的跳线帽进行转接。

在SPI示例中,通过SPI从动设备,在两个USB同步端口进行USB SPI 数据循环。

在同步端口间用到DMA MANUAL IN和DMA MANUAL OUT通道。

数据循环量每次为一页,即16字节。

示例在USB2.0速度下运行。

1)cyxusbspidmamode:该例在SPI DMA 途径中用到DMA MANUAL IN 和DMA MAUNUAL OUT 通道;2)cyxusbspiregmode:该例利用寄存器模式途径,每次读或写SPI设备的一页数据量。

5.4 GPIO示例该例为GPIO应用的简单示例,说明了在输入和输出GPIO协助下的GPIO 操作。

cyfxgpioapp:该例执行输出GPIO的Set操作和输入GPIO的Get操作。

同样执行输入GPIO的GPIO中断。

6.USB Bulk/ISO数据源示例这些示例说明利用两个USB Bulk/ISO端口的数据源和数据汇集机制。

该例包括两个Bulk/ISO 端口的Vendor Class USB列举描述符。

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

cyfxbulksrcsink:该例利用DMA MANUAL IN 通道收集来自Bulk OUT端口的数据,利用DMA MANUA OUT 通道将数据发送至Bulk IN 端口。

cyfxisosrcsink:该例利用DMA MANUAL IN通道收集来自ISO OUT 端口的数据,利用DMA MANUAL OUT 通道将数据发送至ISO IN端口。

B Bulk数据流示例该例说明利用Bulk 数据流技术,通过两个USB Bulk端口进行数据发送、收集的机制。

每个端口(Out 和In)都定义了一系列数据流。

数据的发送和收集通过这些数据流执行、数据流只支持USB3.0速度。

当连接至USB2.0时,示例与Bulk 发送收集示例(cyfxbulksrcsink)类似。

cyfxbulkstreams:该例利用DMA MANUAL IN 通道收集来自Bulk OUT 端口的数据流,利用DMA MANUAL OUT 通道将数据流发送至Bulk IN 端口。

2.4. SDK安装步骤1.双击FX3_SDK_Windows_v1.3.3.exe以开设运行软件;2.安装路径选择,建议选择默认,这可以帮我们在开发初期避免路径不通带来的差异,可以省不少事,建议不修改安装路径和盘符,点击Next;3.典型方式安装;4.接下来,就是各种接受协议,各种下一步。

接受了所有的协议后,点击next就可以开始正安装,以下为安装过程5.安装最后的一个界面是反馈信息,默认finish是灰色的无法选中,我们选择Continue Without Contact Information即可,然后点击Finish。

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

安装完成后,在系统的开始菜单下,会出现一个叫做Cypress的文件夹,里面包含以下内容:三、USB3.0硬件连接和驱动安装USB主芯片使用的是塞普拉斯(Cpress)芯片CYUSB3014,该芯片具有一个可进行完全配置的的并行通用可编程接口GPIF II,它能与任何处理器、ASIC或FPGA连接,可以轻松无缝连接到多种常用接口,如异步SRAM、异步和同步地址数据复用式接口以及并行ATA。