1. 项目概述
在工业机器视觉和高速图像采集领域,Camera Link协议因其高带宽和低延迟特性成为行业标准。传统方案依赖专用编解码芯片实现协议转换,但存在成本高、灵活性差等局限。本项目基于Xilinx 7系列FPGA的SerDes技术,原生实现了Camera Link收发器功能,支持最高100MHz并行数据传输速率,相比传统方案具有显著性能优势。
关键创新点:通过FPGA内部逻辑直接处理Camera Link协议,省去了外置DS90CR287/288等编解码芯片,不仅降低BOM成本,还实现了更灵活的配置和更高带宽。
2. 系统架构设计
2.1 整体框架
系统采用双通道独立设计,包含完整的接收和发送链路:
接收链路核心模块:
- 顶层接收控制器(cmlk_7to1_sdr_rx)
- 延迟控制引擎(delay_controller_wrap)
- 多通道解串器(n_x_serdes_1_to_7_mmcm_idelay_sdr)
- 单通道解串器(serdes_1_to_7_mmcm_idelay_sdr)
发送链路核心模块:
- 顶层发送控制器(cmlk_7to1_sdr_tx)
- 时钟生成器(clock_generator_pll_7_to_1_diff_sdr)
- 串行化引擎(serdes_7_to_1_diff_sdr)
2.2 时钟域管理
系统涉及三个关键时钟域:
- 高速串行时钟(rxclk):7倍像素时钟频率,用于SerDes采样
- 像素时钟(rxclk_div):图像数据处理时钟
- 系统参考时钟(refclk):200/300MHz,用于IDELAYCTRL
时钟域间通过FIFO和握手信号实现安全跨时钟域传输,避免亚稳态问题。
3. 接收链路实现细节
3.1 信号接收与预处理
接收端采用差分输入缓冲处理Camera Link的LVDS信号:
verilog复制IBUFDS_DIFF_OUT #(
.DIFF_TERM("TRUE") // 启用片内差分终端
) data_in (
.I(datain_p[i]), // 正相输入
.IB(datain_n[i]), // 反相输入
.O(r
