作者:Fisher Yang,文章来源:FPGA FAE技术分享选集
前言
MIPI(Mobile Industry Processor Interface)联盟制定的物理层接口标准是现代移动设备和嵌入式视觉系统的核心互联技术。在摄像头、显示屏等高速图像传输场景中,MIPI接口凭借其低功耗、高带宽、差分信号抗干扰等优势,已成为智能手机、汽车摄像头、工业视觉等领域的事实标准。
开普勒KPL3858评估板基于AMD Versal AI Edge Series Gen 2器件2VE3858,在官方VEK385评估板的基础上,挪用了少量FMC+接口的IO资源,扩展出MIPI C-PHY接口,可配合MIPI C-PHY接口的图像传感器模组,实现了图像数据的高速采集与验证。本文将介绍MIPI C-PHY的技术原理、Versal Gen2 X5IO对C-PHY的支持机制、KPL3858的硬件设计,以及在Vivado中通过JTAG调试抓取MIPI C-PHY图像传感器(IMX586)模组图像数据的完整测试过程。
一、MIPI PHY标准概述
1.1 MIPI PHY家族
MIPI联盟定义了多种物理层(PHY)规范,针对不同的应用场景和带宽需求。用于摄像头和显示接口的主要有D-PHY和C-PHY两种,二者在信号编码、通道结构和带宽上各有侧重。

1.2 C-PHY技术特点
C-PHY是MIPI联盟于2014年发布的物理层规范,其最大创新在于采用三线制Trio通道和3相符号编码,在不增加引脚数量的前提下,相比D-PHY实现了更高的带宽效率。
C-PHY的核心技术特点:
• 三线制Trio通道:每个C-PHY通道由3根信号线(A、B、C)组成,三线之间两两差分,任意时刻三线电平各不相同,形成6种有效状态(+AB、-AB、+BC、-BC、+CA、-CA)。这3根线在任意时刻的总电流/电位和为零,这种差分特性保证了良好的EMI抑制。
• 3相符号编码:C-PHY规范定义每16 bit映射为7个symbol,即每个symbol携带16/7 ≈ 2.286 bit有效数据,相比D-PHY的1 bit/UI,信息密度提升约128%。
• 嵌入式时钟:时钟信息编码在数据符号的状态转换中,无需独立时钟通道,节省了引脚资源,同时消除了时钟-数据偏斜问题。C-PHY编码保证在每一个symbol切换时,至少有一根线的极性或相位会发生改变,这使得接收端的CDR(时钟数据恢复)能够稳定锁定。
• 低功耗模式:支持LP(Low Power)模式和ALP(Asynchronous Low Power)模式,在非传输期间大幅降低功耗。
• 高带宽效率:单Trio最高符号速率4.5 Gsps,数据带宽 = 4.5 × 16/7 ≈ 10.28 Gbps,3-Trio总带宽可达约30.8 Gbps。相比D-PHY需要独立时钟通道,C-PHY以相同引脚数实现更高带宽。
二、Versal Gen2 X5IO对C-PHY的支持
2.1 X5IO概述
Versal AI Edge Series Gen 2引入了全新的X5IO(X5 I/O)Bank,这是Versal系列区别于传统XPIO和HDIO的第三类IO资源。X5IO在XPIO的基础上新增了MIPI C-PHY、DDR5和LPDDR5支持,专为高速接口设计。

2.2 X5IO Bank结构
X5IO Bank由32个IO引脚组成,分为4个Octad(八元组),每个Octad包含8个IO引脚(4对差分对)。每个Octad对应一个CMPHY_OCTAD原语,提供PL Fabric接口,并负责协调与其他X5IO PHY原语之间的通信;每个Octad内有4个X5PHIO_XCVR_X2原语,每个XCVR_X2管理1对差分引脚(2个IO)。
X5IO Bank关键原语:
• CMPHY_OCTAD:Octad级控制原语,提供PL Fabric接口,包含独立的TX/RX FIFO(10深度),支持2/4/8/16 bit序列化/反序列化。
• X5PHIO_XCVR_X2:2-bit收发器原语,管理1对差分引脚,支持序列化比1:2/1:4/1:8,内置输入/输出延迟(最多512 tap)。
• X5PHIO_CMU:提供偏置和阻抗校准码,提供偏置和阻抗校准码,为X5IO PHY提供偏置和阻抗校准。
• X5PLL:X5IO专用PLL,每2个Bank配备2个X5PLL,可连接至这2个Bank的任意Octad,为X5IO PHY提供时钟。
2.3 X5IO对MIPI C-PHY的支持机制
X5IO PHY通过专用的CPHY接收电路实现C-PHY的嵌入式时钟恢复。由于C-PHY每个Trio需要3根信号线(A、B、C),而X5IO的基本单元是2-bit差分对,因此一个C-PHY Trio需要占用一个Octad内的特定BIT位置。

图2-1 Octad的MIPI C-PHY引脚映射规则
每个Octad最多支持2个C-PHY Trio(接口组A和接口组B),但BIT3和BIT5不能用于C-PHY,只能工作在bypass模式。

图2-2 X5IO Bank(4 Octad)支持的C-PHY Trio数量
C-PHY使用注意事项:
• X5PLL输出时钟与C-PHY恢复时钟共享相同的路由资源,因此在C-PHY应用中,并非所有X5PLL输出都可用,需通过Vivado MIPI IP进行实例化。
• C-PHY仅支持单向接口(RX或TX),支持HS模式(高速,含时钟恢复)、LP模式(低功耗)和ALP模式(异步低功耗)。
• X5IO IOB在1.2V Bank电压下支持MIPI C-PHY,支持内置100Ω差分终端电阻(通过DIFF_TERM_ADV=TERM_100启用)。
• CTLE均衡:X5IO IOB提供多级CTLE均衡,可根据信号质量调整至LEVEL0~LEVEL8,默认CTLE_EQ_NONE(不启用均衡)。
2.4 C-PHY管脚分配示意
根据AMD提供的参考文档,X5IO Bank中C-PHY RX的管脚分配,各MIPI C-PHY IP实例可能的配置可参考以下两张图:

图2-3 X5IO Bank(4 Octad)C-PHY管脚分配

图2-4 X5IO Bank(4 Octad)C-PHY管脚分配
三、开普勒KPL3858 C-PHY硬件设计
3.1 KPL3858 C-PHY接口
官方VEK385评估板的FMC+连接器提供了大量的X5IO引脚,用于连接子卡扩展板。开普勒KPL3858在此基础上,从FMC+连接器上挪用了部分X5IO Bank 707的引脚,直接在评估板上引出MIPI C-PHY x3 trios接口,可用来连接MIPI C-PHY摄像头模组。
这样无需额外的FMC子卡,直接在评估板上集成摄像头接口,降低了使用MIPI C-PHY的系统复杂度和成本。
注意:KPL3858 MIPI C-PHY接口占用了部分FMC+的IO资源。
3.2 Bank 707 C-PHY原理图
KPL3858的C-PHY接口使用X5IO Bank 707,该Bank工作在1.2V电压下,满足MIPI C-PHY的电气规范要求。原理图如下所示:

图3-1 Bank 707 MIPI C-PHY原理图
3.3 C-PHY接口原理图
C-PHY接口连接器侧原理图C-PHY x3 Trio信号和端接设计:

图3-2 C-PHY接口连接器原理图
3.4 IMX586模组连接
IMX586是Sony推出的4800万像素CMOS图像传感器,通过3-Trio MIPI C-PHY接口与KPL385评估板连接。

图3-3 KPL3858评估板连接IMX586 C-PHY摄像头模组实物图
四、MIPI C-PHY Vivado工程
4.1 MIPI CSI-2 RX Subsystem IP配置
在Vivado中,MIPI C-PHY接收通过AMD官方的MIPI CSI-2 Receiver Subsystem IP实现。该IP封装了C-PHY PHY层、CSI-2协议层和AXI4-Stream输出接口,支持C-PHY和D-PHY两种物理层模式。
IP主要配置参数:


图4-1 Vivado中MIPI CSI-2 RX Subsystem IP配置界面
4.2 IMX586模组配置
通过I2C接口将IMX586输出配置成4K@30fps RAW10的数据量 = 3840 × 2160 × 10 bit × 30 fps ≈ 2.49 Gbps。
4.3 PDI烧录
工程编译完成后,通过Vivado Hardware Manager将PDI烧录到KPL3858评估板,烧录界面如下:

图4-2 Vivado PDI烧录界面
五、Vivado下ILA验证
5.1 MIPI CSI-2 RX IP中video_out信号说明
MIPI CSI-2 RX Subsystem IP的video_out接口采用AXI4-Stream协议,主要信号包括tdata(像素数据)、tuser(帧/行控制信息)、tdest(虚拟通道和数据类型)、tlast(行结束)和tvalid/tready(握手)。
5.1.1 video_out_tuser信号位定义
video_out_tuser宽度为128bit。各bit含义如下:

5.1.2 video_out_tdest信号位定义
video_out_tdest宽度为11 bit(bit[10:0]),各bit含义如下:

注意:TDEST值在整行传输过程中保持不变。
5.2 ILA抓取video_out_tuser和video_out_tdest
烧录PDI后,使用Vivado Hardware Manager的ILA抓取video_out接口的波形数据,验证C-PHY接收是否正常工作。可看到video_out_tuser和video_out_tdes相应bit信息。

图5-1 Vivado中ila抓取界面

图5-2 Vivado中ila抓取界面
5.3 tuser/tdest ILA抓取结果分析
根据ila抓取的波形数据,对关键字段进行解析:

5.4 video_out_tdata数据验证
用强光对着IMX586模组照射,使传感器接收到强光,此时RAW10像素值应接近满量程(0x3FF = 1023)。通过ila抓取video_out_tdata,验证数据是否溢出(饱和)。

图5-3 强光照射时ila抓取video_out_tdata(数据溢出/饱和)
tdata数据格式说明:
配置为RAW10、4像素/时钟时,video_out_tdata宽度为40 bit,每个时钟周期包含4个RAW10像素。
强光照射IMX586模组时,像素值均接近0x3FF(1023),表明传感器正常工作,C-PHY数据接收正确,数据溢出(饱和)现象符合预期。
5.5 行时序验证
IMX586输出图像分辨率为3840×2160,数据格式为RAW10,每时钟4像素。理论上每行的有效数据时钟数为:
每行时钟数 = 3840像素 ÷ 4像素/时钟 = 960个时钟
通过ila抓取video_out_tlast信号,统计相邻两次tlast之间的tvalid有效时钟数,实测结果恰好为960个时钟,与理论计算完全吻合,验证了C-PHY接收时序的正确性。

图5-4 ila抓取video_out_tlast,每行960个有效时钟

总结
本文介绍了MIPI C-PHY的技术原理及其与D-PHY对比,重点说明了Versal Gen2 X5IO Bank对C-PHY的原生支持机制,包括Octad结构、C-PHY管脚映射规则(BIT0/1/2和BIT4/6/7)以及嵌入式时钟恢复特性。
开普勒KPL3858通过挪用FMC+的X5IO Bank 707引脚,在评估板上直接集成了MIPI C-PHY接口,配合IMX586摄像头模组,实现了4K 30fps RAW10图像数据的高速采集。
通过ILA调试验证,video_out_tuser和video_out_tdest各字段解析正确,每行960个有效时钟与理论值完全吻合,强光下像素数据饱和至0x3FF,证明C-PHY接口工作正常,数据链路完整可靠,下一步可将RAW数据通过KPL3858板上丰富的接口(10G网口/PCIe等)传到电脑上看图或者通过Versal Gen2的ISP做完ISP后直接用HDMI接口显示出来,VersalAI EdgeGen2集成ISP模块。
如果您对Versal Gen2及KPL3858开发板感兴趣,欢迎联系您身边的科通FAE及Sales,也欢迎邮件联系:
simonyang@comtech.cn
charlesxu@comtech.cn