OV7670千兆网图像传输|FPGA帧缓存与UDP不丢帧设计

介绍OV7670 VGA图像通过FPGA和千兆以太网传输时的数据量、帧缓存、UDP分包、序号设计及丢帧排查方法。

OV7670 分辨率不高,却非常适合用来验证一条完整的“摄像头—FPGA—以太网—上位机”链路。它把像素时钟、行场同步、跨时钟、缓存、网络协议和软件显示集中在一个成本较低的平台上。很多项目出现的花屏和丢帧并不是千兆网带宽不足,而是边界识别、缓存调度或 UDP 分包设计不完整。

*图 1:OV7670像素经采集、跨时钟、帧缓存和UDP分包后由千兆以太网发送到上位机。*

GW5A + OV7670 + 千兆以太网开发板 集成 OV7670 摄像头接口和 RTL8211EG 千兆以太网 PHY,可用于图像采集与网络传输验证。需要注意,RTL8211EG 是以太网 PHY,MAC、帧缓存、UDP/IP 数据通路和控制逻辑仍需由 FPGA 设计实现或调用相应 IP。

明德扬GW5A OV7670千兆以太网开发板实物

*图 2:CP9171-41 开发板集成 GW5A FPGA 模块、OV7670 摄像头接口与千兆以太网接口,可用于搭建从图像采集到网络传输的完整验证链路。*

VGA 30帧到底有多少数据

OV7670 官方资料给出的最高模式为 VGA 640×480、30 fps,并支持 YUV/YCbCr 4:2:2、RGB565/555 和 Raw RGB 等 8 位输出格式。以常用 RGB565 或 YUV422 的每像素 16 bit 计算:

640 × 480 × 30 × 16 = 147,456,000 bit/s

即纯像素有效载荷约 147.5 Mbit/s,每帧为 640×480×2 = 614,400 byte。加上 UDP/IP/Ethernet 头、帧间隙和应用头后,仍明显低于千兆以太网能力。因此在单路 VGA 场景中持续丢帧,应优先查采集与缓存,而不是笼统归因于“网口不够快”。

摄像头端先把一帧收完整

OV7670 通过 XCLK 工作,并输出 PCLK、VSYNC、HREF 和 8 位数据。FPGA 应在 PCLK 域内采样数据,依据 VSYNC 建立帧号、依据 HREF 或行有效信号统计每行字节,并检查每帧行数和每行像素数。SCCB 只负责配置寄存器,不承载像素数据。

建议在采集模块增加四类错误计数:行长度不符、帧行数不符、帧中断和 FIFO 溢出。这样花屏发生时可以判断错误是在摄像头输入端还是网络输出端,而不是只看上位机画面猜测。

PCLK 与以太网/内存时钟不同,数据应通过异步 FIFO 或帧缓存跨域。VSYNC、帧完成和缓冲区所有权也需要可靠握手,不能直接把一个时钟域的脉冲接到另一个时钟域。

双缓冲比单个大FIFO更容易控制

单帧 RGB565 约 600 KiB。如果板上有足够外部存储,可以采用 ping-pong 双缓冲:采集模块写 A 帧时,网络模块读取 B 帧;一帧完成后交换所有权。若上位机或网络偶尔暂停,可使用三缓冲并明确丢弃策略。

缓存已满时不能悄悄覆盖正在发送的帧。实时预览通常选择“保留最新帧、丢弃旧帧”;测量和存档则可能选择“阻塞或报警,不允许无记录丢帧”。策略应写入需求,而不是由 FIFO 溢出偶然决定。

UDP 包必须能让接收端重组

标准 MTU 1500 byte 下,IPv4 和 UDP 头通常占 28 byte,UDP 负载理论上限为 1472 byte。还要放置帧号、包序号、行号、有效长度、时间戳和校验字段时,可以把图像数据块设为 1400~1440 byte,避免 IP 分片。Jumbo Frame 只有在 FPGA、PHY、交换机、网卡和操作系统全部支持时才能使用,不能作为默认前提。

每个 UDP 包至少应带有:固定协议标识、版本、帧号、帧内偏移或包序号、有效长度和像素格式。接收端发现序号跳变时应明确标记该帧不完整,而不是把下一帧数据拼到当前帧。UDP 校验和是否启用可按系统要求决定,但应用层仍应保留长度和顺序检查。

如何定位“偶尔花一下”

先让 FPGA 生成固定彩条绕过摄像头。如果网络接收仍丢包,问题在 MAC、UDP、缓存或主机;如果彩条稳定而摄像头图像异常,再检查 SCCB 配置、PCLK 采样、HREF/VSYNC 极性和数据位序。

随后分别比较四个计数:摄像头完整帧数、进入网络队列的帧数、FPGA 发包数和上位机收包数。只有把计数放在不同边界,才能知道帧在哪一层消失。长时间测试还应覆盖网线插拔、上位机暂停、窗口切换和摄像头重新初始化。

总结

OV7670 的 VGA 30 fps 数据量并不会压满千兆网,稳定性的关键在于正确识别行场边界、可靠跨时钟、明确缓冲区所有权和可重组的 UDP 包头。把每一层的计数器做完整,比不断加大 FIFO 更有效,也能为后续升级到更高分辨率摄像头建立可复用架构。

相关产品与方案