教程目的
基于 ALINX FPGA 开发板 与 FL2010 USB3.2 子卡 实现高速数据通信。
介绍子卡硬件特性、主控芯片功能、FMC 接口连接方式、数据传输模式,为后续基于 USB3.2 的实际应用开发提供基础。
FL2010 USB3.2 子卡
ALINX FL2010 子卡是 USB3.2 FMC 通信模块,与 ALINX FPGA 开发板配合使用,可实现 USB3.2 数据通信。
- 主控芯片 :采用英飞凌 CYUSB4024-FCAXI 芯片,内部集成 ARM 架构 CPU 和 USB 控制器,负责 USB3.2 数据传输。
- 连接方式 :通过 FMC 接口与 FPGA 载板相连,通过 16 对 LVDS 数据通道与 FPGA 进行通信。
- 供电方式:可通过 USB3.2 接口供电。
- 调试接口:板载 Debug 口,用于输出串口调试信息。
- 产品官网 :www.alinx.com(FL2010)
- 开发资源 :更多开发信息请参考英飞凌官网:www.infineon.cn
FL2010 与 FPGA 开发板的连接
FL2010 子板通过 FMC 接口与 FPGA 开发板连接,支持两种数据通信模式:
| 模式 | 差分数据通道数 | Lane 速率 |
|---|---|---|
| Wide Link | 16 对 | 594 Mbps |
| Narrow Link | 8 对 | 594 Mbps |
- 数据恢复方式 :可通过原语
ISERDES3或BITSLIP实现数据传输。 - 工程实现 :示例工程中例化了 High Speed SelectIO IP 核,用于统一管理上述原语。

(CYUSB4024-FCAXI 与 FPGA 连接的接口示意图)
FL2010 子卡接口信号说明
1. LVDS 数据与控制信号
| 信号名 | 方向 | 功能描述 |
|---|---|---|
| P0D0P ~ P0D7P | FPGA → CYUSB4024 | Port0 的 8 对差分数据线 |
| P1D0P ~ P1D7P | FPGA → CYUSB4024 | Port1 的 8 对差分数据线 |
| P0CP, P1CP | FPGA → CYUSB4024 | 控制字符输入 |
2. LVDS 模式下的控制信号
- p0ctl0 ~ p0ctl4:LVDS 模式下不使用。
- p0ctl5 :CYUSB4024 → FPGA,
link_ready信号,用于数据链路训练。 - p0ctl6 :CYUSB4024 → FPGA,
buffer_ready信号,用于数据传输控制。
Port1 的控制信号(p1ctl0 ~ p1ctl6)定义与 Port0 相同。
3. 信号使用规则
- Wide Link 模式:仅使用 Port0 的控制信号(p0ctl)。
- Narrow Link 模式 :
- 若选择 Port0,使用 p0ctl;
- 若选择 Port1,使用 p1ctl。
FPGA 作为从机工作
在 demo 中,FPGA 作为 CYUSB4024-FCAXI 的 从机 工作。两者之间还需要 I2C 通信,FPGA 作为 I2C 从机,响应读写请求并访问内部寄存器。寄存器的内容由 CYUSB4024 执行的固件(firmware)决定。
I2C 两根控制线的连接位置如图示:

上电复位要求
FL2010 子卡上电时,FPGA 需要提供一个 低电平有效 的复位信号,具体引脚位置如图示。

硬件设计约束
- 差分对的数据线必须连接到 FPGA 的 HP Bank。
- 一个 Port 的所有差分线(数据线+控制字符线)必须位于 同一 Bank。
FPGA 工程介绍
FPGA 工程包含三个主要部分:
-
时钟模块
根据 Lane 速率 594 Mbps 计算,参考时钟应为 74.25 MHz。
-
FL2010 对接模块
实现 LVDS 通信的逻辑。
-
High Speed SelectIO IP
由于 demo 基于 Z7-P 开发板,Port0 位于 Bank64,Port1 位于 Bank65,需例化 两个 High Speed SelectIO IP(单个 IP 只能配置一个 Bank)。
工程结构如图示:

FL2010 对接模块也包含三个部分:
- 图像生成
- I2C 从机应答模拟
- FL2010 软件协议解析
图像通过控制 test_pattern_generator 生成彩条,FL2010 接收到彩条之后模拟成相机传输图像给 USB 3.2 的 host 设备。
FL2010 子卡对接模块包含以下几个子控制模块:
1. Device Selection DSM
- 功能:设备选择,最多支持 8 路设备通过 LVDS 信号线串行传输。
- 工作流程 :
- 工程烧录后,先进行 PHY 训练 ,完成后进行 Link 训练。
- 训练完成后进入设备遍历状态,以帧为单位遍历设备。
状态机切换方式如图示:

注:对于 Low Power 状态,实际未做任何操作,因为 demo 使用 LVDS 模式;demo 中仅使用一路输入。
2. PHY and Link Training FSM
- 功能:实现 PHY 训练和 Link 训练。
- 流程 :
- FL2010 通过 I2C 下发 4 字节训练数据(写入寄存器)。
- 本模块按顺序发送训练数据,无需等待子卡反馈。
- 训练完成时通过 I2C 下发
complete信号。
状态机切换方式如图示:

3. Frame Data Transmitter FSM
- 功能:帧数据打包传输。
- 触发条件 :收到 Device Selection 模块的
device_serve信号。部分状态切换取决于 FL2010 子卡的固件配置。

4. Initial Socket Sequence FSM
- 功能:决定初始化顺序,分配初始的线程和 socket 地址。
- 工作 :在 Frame Data Transmitter FSM 的
init_socket_seq状态下工作。
状态机切换方式如图示:

5. Frame Header Transmitter FSM
- 功能:配置帧头部信息。
- 工作 :在 Frame Data Transmitter FSM 进入
TX_FRAME_HEADER_INFO后开始工作。
状态机切换方式如图示:

6. LVDS Data Packet Transmitter FSM
- 功能:实现数据的组包传输。
状态机如图示:

7. Frame End Sequence FSM
- 功能:每帧结尾时发送帧结尾信号。
状态机如图示:

FL2010 部分固件 (Firmware) 编译步骤
- 打开 Eclipse,选择工作空间(Workspace)。

- 选择 New Application。

- BSP 这里选择 FX20。

- 在下一个页面选择 UVC_UAC_4K_camera。

- 打开该工程的
makefile文件。

- 设置模式参数:
WL_EN = 1:表示开启 Wide Link 模式(此时需将port1_en设为 0)。
Demo 复现
固件下载到 FL2010 子卡(通过 USB 烧录)
- 工程编译后,在
build文件夹中找到生成的.hex文件,将这个文件通过FX Control Center 软件下载到板子上。

- FMC 子卡上插入跳帽。

- TypeC 口插入 USB 线连接电脑,按下子卡上的 KEY1 ,再按下 Key2,然后先松开 Key1 再松 Key2。出现软件界面如下:

- 单击 EZ_USB FX BOOT LOADER。
- 选择 Program → Internal Flash。

- 选择编译生成的
.hex文件,等待烧录完成。

上板运行
- 将 FL2010 FMC 子板连接到 ALINX 开发板,Debug 口链接串口,TypeC 口链接电脑,板卡上电。

-
从 Vitis 烧录 FPGA 程序。
注:如果 Windows 相机未打开,会打印相应提示:

此时打开 Windows 相机应用,显示彩条画面。
