FPGA多路MIPI相机转10GbE|带宽同步与缓存设计
从像素格式、帧率和协议开销出发,说明多路 MIPI CSI-2 相机汇聚到 10GbE 的 FPGA 架构、时间同步、缓存与丢包验证。
多相机系统从“能看到画面”走向“可以稳定采集”,难点会从接口接通转移到带宽、同步和异常恢复。行业最新演示已经出现四路 MIPI CSI-2、HDMI 或 GMSL 数据经 FPGA 聚合到 10GbE,并通过时间同步和 RDMA 接入边缘计算主机的架构。对工程落地而言,第一步不是选接口数量,而是把每一路的数据率算清楚。多路 MIPI 到 10GbE 数据流
先算有效数据率
未压缩图像的近似有效数据率可按以下公式估算:
宽 × 高 × 每秒帧数 × 每像素位数
以 1920×1080、60 fps、RAW10 为例,单路有效载荷约为 1.24 Gbit/s;四路约为 4.98 Gbit/s。实际链路还包含行列消隐、CSI-2 包头、以太网帧、时间戳和应用层封装,因此不能按 10 Gbit/s 标称值把带宽用满。还要考虑突发流量、主机抖动和错误重传策略。
如果采用 RAW12、4K 或更高帧率,数据量会快速上升。此时可以在 FPGA 内做裁剪、抽取、格式转换或无损/有损压缩,也可以升级到多路 10GbE、25GbE 或 PCIe。
同步不等于同时收到数据
多个摄像头即使帧率相同,也可能因触发、曝光和传输延迟产生偏差。FPGA 需要明确同步来源:外部触发、共享参考时钟、帧同步信号,还是仅在接收端附加时间戳。
用于拼接、立体视觉或传感器融合时,推荐为每帧记录相机编号、帧序号、硬件时间戳和错误状态。若系统采用 PTP,应区分网络时间同步精度与相机曝光同步精度,两者不能互相替代。
缓存解决速率波动,不创造带宽
每路输入应有独立 FIFO 或帧缓存,避免一只相机异常阻塞全部通道。片上 RAM 适合短突发和行缓存,外部 DDR 适合完整帧缓存与较长时间吸收。缓存深度应根据主机最长不可服务时间计算,而不是凭经验设置。
当输出持续带宽小于输入持续带宽时,再大的缓存最终也会溢出。设计必须明确溢出后的行为:丢整帧、丢最旧帧、停止采集或向上位机上报背压。
10GbE 输出的封装重点
以太网发送端需要选择合适的分包大小,并在包头中保留帧号、通道号、片段序号和校验信息。使用巨帧可以降低包率,但要求交换机、网卡和操作系统全链路支持。上位机必须能检测丢包、乱序和帧不完整,而不是只依靠画面是否正常判断。
官网 5 路 CSI/1 路 DSI FPGA 开发板 可用于 MIPI 接口和多路视频逻辑验证;需要 SFP/PCIe 输出时,可结合 Kintex-7 4SFP PCIe 平台 评估后端链路。两者是否能直接组成目标系统,应以具体接口电气、IP 和带宽验证为准。
推荐测试方法
先用单路固定图案验证 CSI-2 解包,再增加到多路并检查帧序号。随后进行满带宽连续发送,统计 MAC、UDP/自定义协议、DDR 和相机端的错误计数。最后加入拔插、短帧、CRC 错误、主机暂停和网络拥塞,确认系统能够记录并恢复异常。
总结
多路 MIPI 到 10GbE 的核心不是接口转换,而是保持数据的时间关系和完整性。带宽要按真实像素格式计算,同步要从曝光源头定义,缓存要按最坏阻塞时间设计,协议要让上位机能够发现丢包。完成这四项,系统才从演示进入可验证的工程平台。
参考资料
• Lattice:多传感器 10GbE 与多相机边缘 AI 聚合演示