基于 ZYNQ UltraScale+ OV5640的高速图像传输系统设计,支持国产替代

发布于:2025-06-04 ⋅ 阅读:(33) ⋅ 点赞:(0)
引 言
随着电子信息技术的不断进步,人工智能、医
疗器械、机器视觉等领域都在高速发展 [1] ,工业相机
是机器视觉系统中的一部分 [2] ,对工业相机而言,传
输图像的速率、传输过程的抗干扰能力是其关键,
工业相机需在特定环境下持续工作,高速视频传输
技术在此场景下至关重要。
FPGA Field Programmable Gate Array ),现场
可编程门阵列器件内部含有丰富的可编程逻辑结
构,具有数据并发处理、数据实时处理、高速传输接
口等特点 [3] ,使其在图像采集领域得到了广泛的应
用。国内外在图像传输过程中采用以太网作为传
统传输方案,但该技术存在丢包率高的问题,部分
系统转向非标准化协议导致其不易推广,在缓存方
面,采用 RAM Random Access Memory ),使得传输
速率大大降低。 GTH Gigabit Transceiver )高速串
行收发器具有低功耗、高速数据传输、时钟恢复等
特点 [4] ,可以实现 10 Gbps 以上的传输,因此, GTH
在图像传输、通信等领域得到广泛应用。文中针对
工 业 相 机 传 输 速 度 慢 、传 输 质 量 差 等 问 题 ,采 用
Xilinx ZYNQ UltraScale+ 系列芯片,结合 GTH
发器实现对图像数据的高速采集传输系统。
1 系统总体方案设计
系 统 使 用 Xilinx 公 司 型 号 为 XCZU5EV ⁃
2SFVC784I ZYNQ UltraScale+ 系列芯片。芯片
PS 端 集 成 四 个 ARM Cortex ™ ⁃ A53 和 两 个 ARM
Cortex™⁃R5 处理器 [5]
数据流图如图 1 所示。系统使用 OV5640 作为
图像采集模块,像素配置为 RGB565 格式, PS 端对
SCCB Serial Camera Control Bus )总线进行参数配
置 , FPGA 进 行 DVP Digital Video Port )图 像 采
[6] OV5640 采集的图像数据经过 FIFO First In
First Out )缓存后输出到板载的 GTH 光口,对视频
数据进行回环高速传输,传输结束后,对传输过程
中由于频率误差导致的偏移进行对齐,将对齐后的
数据通过 FIFO 缓存传入 DDR4 Double Data Rate
缓存单元中。根据需要从 DDR4 中读取图像数据到
HDMI High Definition Multimedia Interface )模 块
显示。
2 核心模块设计
2.1  视频采集模块
系 统 使 用 OV5640 采 集 图 像 信 息 ,最 高 具 有
2 592×1 944 的分辨率,最高支持 500 万像素的分辨
率输出,具有白平衡调节、降噪等功能。 OV5640
出 支 持 DVP 接 口 ,选 取 DVP 接 口 时 , AVDD
DOVDD 的供电需求为 2.8 V DVDD 供电需求为
1.5 V [7] 。 控 制 接 口 为 SCCB 接 口(兼 容 IIC )。
SIO_C 为输入管脚, SCCB 的时钟线, SIO_D IO
管脚, SCCB 的数据线。
SCCB 写寄存器的示意图如图 2 所示。 ID Ad⁃
dress 表示器件地址和读写位, Sub⁃address 表示 16
位寄存器地址包含高字节和低字节, Write Data
示写数据[8] 。
DVP 接口时序如图 3 所示。 VSYNC Vertical
Synchronization )为场同步信号, VSYNC 高电平期
间 输 出 一 帧 图 像 数 据 。 HSYNC Horizontal Syn⁃
chronization )为行同步信号, HREF 为高电平时直接
输出像素数据。
2.2  数据编码解码模块
视 频 数 据 以 HS VS DE RGB 格 式 输 入 [9]
GTH 传输的数据为高速串行差分信号,因此需要进
行以下处理。 GTH 的发送入口为 32 位,需要将 24
位的 RGB 数据先转化为 16 位的 RGB 数据,再由 16
位的 RGB 数据转换为 32 位的 RGB 数据。将视频
数据的 VS DE RGB 数据处理为 32 位的并行数据,
并准备输入给 GTH 的发送端口。使用 FIFO 实现
16 位转换 32 位。当 VSYNC 达到上升沿时,发送场
同步开始帧头,编码为 32 h55_00_00_bc 32 h55_
00_01_bc ,当 FIFO 中的数据量没达到要求时发送
无效数据,编码为 32 h55_00_02_bc 32 h55_00_
03_bc ,当 FIFO 中的数据有一定量时,发送有效数
据开始帧,编码为 32 h55_00_04_bc ,当一行数据发
送完成时发送有效数据结束帧,编码为 32 h55_00_
05_bc ,当 VSYNC 达到下降沿时,发送场同步结束
帧 尾 ,编 码 为 32 h55_00_06_bc 32 h55_00_
07_bc
数据解码模块是将进行拼接处理后的数据进
行解析,将解析后的数据存入到 FIFO 中进行缓存,
与数据编码模块相似。
2.3 GTH 模块
系统选用的为 Xilinx ZYNQ UltraScale+
列 的 开 发 版 ,开 发 板 为 AXU5EV ⁃ P ,芯 片 型 号 为
XCZU5EV⁃2SFVC784I ,该芯片具有 4 GTH 串行
高 速 收 发 器 ,最 高 传 输 速 率 可 达 到 16.3 Gbps [10]
AUX5EV⁃P 开发板上,有 2 路光纤接口 SFP1~SFP
2 ,连 接 在 FPGA 芯 片 的 GTH 的 通 道 上 。 其 中
SFP1 光 模 块 接 口 连 接 到 GTH Channel0 上 ,
SFP2 GTH Channl1 相 连 接 。 光 模 块 的
TX_Disable 信 号 和 RX_LOSS 连 接 到 FPGA 的 普
IO 口上。 TX_Disable 信号用来使能光模块的发
射,如果 TX_Disable 信号为低,发送使能,否则发送
关闭,正常使用时信号为低 [11]
GTH 结构图如图 4 所示。发送器由一个 PCS
Physical Coding Sublayer )和 一 个 PMA Physical
Medium Attachment )组成 [12] ,数据从 FPGA 逻辑流
FPGA TX 接口,通过 PCS PMA ,然后作为
高速串口从 TX 驱动器流出。接收器同样由一个
PCS PMA 组成,高速串行数据流入 GTH 收发器
RX PMA ,进入 PCS ,最后流入 FPGA 逻辑。其
PCS 负责串化和解串化, PMA 负责数据流的编
码解码,能够实现时钟恢复、线路编码 (8B10B) 、预加
重等功能 [13] ,可以减小信号衰弱、时钟扭曲。
系统使用 Vivado 内部的 GTH Transceivers IP
核。 GTH 端口支持多种通信协议,包含但不限于
SATA aurora 8B10B 等,文中选择无协议模式自定
义参数,包括通信速率、参考时钟选择、编解码方
式 、 Comma 值 设 定 等 。 GTH 配 置 参 数 如 表 1
所示。
应用程序通过在发送端用户时钟上升沿的时
候将数据写入 TXDATA 端口,通过 GTH 收发器传
输数据。传入的数据经过 8B10B 编码后,进入一个
发送缓存区,该发送缓存主要是将 PMA 层和 PCS
层两个时钟隔离,解决两个子层的时钟速率相位差
异和速率匹配问题,最后经过高速 GTH 进行并串
转换,根据自己的需要选择预加重、去加重、极性转
换等功能,接收端存在弹性缓冲区,具有时钟纠正
和通道绑定功能,其余和发送端类似。
2.4  数据对齐模块
GTH 在高速传输数据的时候,由于不同的系统
时钟之间造成的频率误差,数据可能会发生错位,
例如 32 位数据的低 x 位数据和下一个 32 位数据的
(32- x ) 位数据拼接在一起,从而发生移位的情
况。为了校准,发送端需要发送一个可识别的序
列, Comma 码。接收端在收到 Comma 码时,需要将
Comma 码移动到字节边界,以便接收到的并行字节
和发送的并行字节匹配。 Comma 对齐的并行数据
视图如图 5 所示。
Comma 8B10B 编码中内容,在 8B10B 编码
方案中会有 +1 -1 两种状态,也被称为极性偏
差。当 K 码设为 K28.5 后,由于 8B10B 编码的极性
问题,会出现两种编码结果,互为按位取反关系,分
别 称 为 MCOMMA Minus Comma )和 PCOMMA
Plus Comma )模式,也就是 -1 +1 ,检测器可以
对编码进行对齐, Comma 对齐功能说明如表 2
示。文中选用第四种模式,检测到正、负符号时对
齐到该符号位置。
GTH 收 发 器 外 部 用 户 数 据 接 口 的 宽 度 为 32
位,内部数据宽度为 40 位。在实际测试中,发送的
32 位数据有时候会出现 16 位的数据偏移情况,就是
说发送和接收的数据会出现 16 位的偏移, GTH
移演示如表 3 所示。
信迈提供ZYNQ软硬件控制器定制服务。

网站公告

今日签到

点亮在社区的每一天
去签到