MIPI 详解:XAPP894 D-PHY Solutions
文章目录
- 总结
- 简介
- DSI 和 CSI 简介
- D-PHY 简介
- D-PHY 模拟
- 高速接口
- D-PHY 高速接口规格
- LVDS
- HSTL
- 低功耗接口
- D-PHY 等效
- 部分兼容的解决方案
- 完全符合的解决方案
- PCB 指南
- 组件的位置
- 指南及建议
- 总结
- 参考资料
总结
移动工业处理器接口(MIPI)是由 MIPI 联盟提出的一种串行通信接口规范。FPGA MIPI 实现为摄像机和显示器提供了标准的连接介质,称为摄像机串行接口(CSI)或显示串行接口(DSI)。
两个接口标准都使用称为 D-PHY 的 PHY 规范。D-PHY 规范为移动设备内部组件之间的通信互连提供了灵活、低成本、高速的串行接口解决方案。
FPGA 还没有能够本地支持 D-PHY 的 I/O。连接配备 MIPI 的摄像头和显示组件需要在 FPGA 通道侧外部使用离散组件实现 D-PHY 硬件规范(见图 1)。图 1 所示的 D-PHY 通道控制逻辑设计可以在 FPGA 内部实现。
简介
本应用说明提供使用外部硬件耦合到标准 FPGA I/O(差分和单端)的 FPGA MIPI D-PHY 解决方案,以符合 D-PHY 版本 1.00.00 2009 年 5 月 14 日规范。
DSI 和 CSI 简介
DSI 是外设(如有源矩阵显示模块)和主处理器之间的高速串行接口。DSI 使用 D-PHY 作为物理通信层。在主机和外设之间的信息传输可以由一个或多个串行数据通道和一个时钟通道组成。
在收发器会话之间,差分数据/时钟通道或通道可以切换到低功耗(LP)收发器状态。当接口不主动发送或接收高速数据时,接口应该处于空闲状态。图 2 说明了高速传输的基本结构。一个 DSI 接口可以有 1、2、3 或 4 个数据通道。较宽的接口被分配为 1、2、3 或 4 通道的倍数(例如,8 个数据通道可以被分配为 18 数据通道或 24 数据通道)。
通过低功耗数据传输,只有数据通道 0 才能支持双向数据传输。
主机和显示外设之间的所有链接都是单向的,从主机或主设备到显示外设或从设备。只有数据通道 0 在 LP 状态下是双向的。
CSl 是外设(如相机)和主机处理器之间的高速串行接口。CSI 也使用 D-PHY 作为 MIPI 联盟指定的物理层接口。图 3 显示了 CSI 发送器和接收器接口之间的连接。CSI 接口可以有 1、2、3 或 4 个数据通道。如果需要更多的数据通道,则将接口分配为 1、2、3 或 4 通道的倍数(例如,8 个数据通道可以被分配为 18 数据通道或 24 数据通道)。
CSI 传输接口由多达 8 个单向差分串行通道和一个运行在高速(HS)模式下的时钟通道组成。发送器和接收器支持连续时钟行为,也可选择支持非连续时钟行为。控制接口(在图 3 中称为 CCl)是一个双向控制接口,在 LP 状态下运行。
D-PHY 简介
传统上,印刷电路板(PCB)上组件之间的接口基于低比特率(LVCMOS)的单端并行总线、差分高速串行总线或单差分通道。
D-PHY 通过将低速、低功耗接口转换为高速差分接口的串行格式,从而将两者组合成单个串行接口,为该结构提供了扩展。通过这种方法,D-PHY 为一个产品内组件之间的互连提供了灵活的高速差分和低速,低功耗单端串行接口解决方案。
D-PHY 规范是为 ASSP 设备或 ASIC 实现编写的。
它包括 SLVS(高速)和 LVCMOS(低功耗)I/O,并将它们组合成一对差分线(见图 1),正如前面提到的,FPGA 还不支持本地 D-PHY 兼容的 I/O。
由于 ASSP 和 ASIC 制造商目前在其最新和功能最丰富的设备中实现了 MIPI 接口,并且在 FPGA 具有本机 D-PHY 兼容 I/O 之前,将 FPGA 连接到 MIPI 感知设备需要外部有源和/或无源组件。
物理层 D-PHY 规格如表 1 所示。
D-PHY 的主要操作规则是:
每条数据通道或数据链路用两根线作为差分对,每条时钟通道或时钟链路用两根线作为差分对。
- 四根线组成最小的 PHY 配置(一条数据通道和一条时钟通道)。
- 特征阻抗为 100 差分阻抗,每条线 50 单端阻抗。
每个链路都有一个主端和一个从端。
- 主端向时钟通道提供高速 DDR 时钟信号,是主要的数据来源。
- 从端在时钟通道接收时钟信号,是主要的数据接收器。
- 时钟通道保持正向,从主到从。
- 双向数据通道可以反转。源数据可以从主端传输到从端,也可以从从端传输到主端。
在高速模式下:
- 每个通道都由一个低摆幅差分信号终止和驱动。
- 高速发送器(HS-TX)总是以差分方式驱动通道。
- 高速信号具有低电压摆幅和 200mV 的共模,如 SLVS。
- 高速功能仅用于高速数据传输。
- 高速功能包括一个差分发送器(HS-TX)和一个差分接收器(HS-RX)。
在低功耗模式下:
- 所有线都是单端操作,没有端接。
- 两个 LP-TX 输出在单端配置中独立驱动通道的每条线。
- 低功耗信号有 1.2V 的大摆幅,LVCMOS_12 或类似。
- 低功耗功能主要用于控制,但也可以有其他可选的用例。
- 低功耗功能包括单端发射器(LP-TX)和接收器(LP-RX)。
- 如果一个模块包含一个 LP-RX,LP-RX 始终处于活动状态,并连续监测线路电平,使其能够在 HS 和 LP 模式之间切换。
- 只有在驱动低功耗状态时才使能 LP-TX。
LP-TX、HS-TX 和 HS-RX 在单通道模块中的活动是互斥的,除了一些短暂的交叉期。
对于每一个在通道一侧的 HS-TX、LP-TX 和 HS-RX, LP-RX 功能,在通道的另一侧必须有一个互补的 HS-TX、LP-TX 和 HS-RX, LP-RX 功能。
当一个通道模块包含一个 HS-TX 时,它也包含一个 LP-TX。
当一个通道模块包含一个 HS-RX 时,它也包含一个 LP-RX。
I/O 功能由通道控制和接口逻辑(LCIL)块控制。
时钟通道:
- 高速 DDR 时钟与数据信号以正交相位(移位 90 度)传输,而不是同相位传输。
- 一个时钟通道可以与多个数据通道共享。
D-PHY 模拟
本应用说明提供了一种将 FPGA 连接到 MIPI 兼容设备的解决方案。这是在 FPGA I/O 接口设计之外完成的,以完全或部分模拟 D-PHY 功能。应该根据成本、数量、性能和其他特定的设计标准来决定使用完全或部分支持的 D-PHY 规范。此应用说明仅提供应用的可能性。
虽然基本的 D-PHY 模拟电路可以支持双向数据和时钟通道,但大多数客户和 Xilinx 都选择只支持单向功能。
如图 1 所示,D-PHY 有两个明显的功能:
- 通道控制和接口逻辑(LCIL)
- 通道侧逻辑(LSL)
除了专用的 FPGA 单端和差分输入输出缓冲功能外,LCIL 是在 FPGA 逻辑中构建的。这部分实现不在本应用程序说明的范围内。本应用说明处理在 FPGA 外部使用分立和/或有源元件实现的 LSL 部分。
LSL 将差分和单端通信结合在一个差分对 FPGA I/O 端口、走线、PCB 走线、微同轴或柔性 PCB 上。设置可以是:
- LVDS 或 HSTL 用于高速(HS)接口
- LVCMOS 或 HSUL 用于低速(LP)接口
- D-PHY 兼容的发送器使用无源组件
- D-PHY 兼容的接收器使用无源组件
- D-PHY 感知,具有成本效益的解决方案
- 使用有源组件的 D-PHY 兼容解决方案
- 使用专用 PHY 设备的 D-PHY 兼容解决方案
高速接口
D-PHY 的差分高速部分可以通过 FPGA 使用差分高速 I/O(如 LVDS 和 HSTL)来模拟。在所有情况下,FPGA 的 I/O 电平都需要适应为 D-PHY 指定的低摆幅、SLVS 风格的 I/O。
D-PHY 高速接口规格
表 2 为 MIPI 联盟发布的 MIPI D-PHY 规范文件中规定的 D-PHY 高速规格。这些符合 JEDEC 8-13 SLVS 规范中 SLVS 标准的规格。
当使用 FPGA 模拟 D-PHY 时,所使用的差分 FPGA 标准必须满足这些 SLVS 规范。本节重点介绍可以使用的差分 FPGA 标准,以及一些外部信号整形组件,作为 D-PHY 兼容的解决方案。
重要提示:在 Xilinx FMC-MIPI 开发板上,选择的差分标准是 HSTL。
LVDS
1994 年,美国国家半导体公司推出了低电压差分标准(LVDS),这成为了高速数据传输的事实上的标准。
如图 4 所示,点对点 LVDS 链路由一个电流发送器组成,通过放置在接收端的终端电阻产生压降。端接电阻两端的电压与驱动电流成正比,允许接收器识别有效信号。
差分数据链路提供共模抑制,因此具有高噪声容忍度。由于噪声同时在两条走线上表现为相同极性的电压,因此在差分接收器处往往会被抵消。其结果是对噪音的敏感性自然较低。
差分信号在共模电压附近工作,如表 3 所示,该电压通常是两条走线电压的平均值。对于 LVDS,发送器将该共模电压设置为约 1.25V 的直流偏置。
LVDS 发送器是一个电流驱动器,接收器上的必要电压通过 100Ω 终端电阻产生。
点对点 LVDS 链路的工作电流通常为 3.5mA,而多点或总线 LVDS(B-LVDS)的工作电流可达 12mA。当使用 LVDS 作为 D-PHY 链路的 I/O 标准时,建议使用 LVDS 的 B-LVDS 版本。
LVDS 最初是作为 3.3V 标准引入的。多年来,电子元件的功率要求下降到 LVDS 的共模电压以下,因此需要一个更新但类似的差分标准。
JEDEC8-13 SLVS-400 提供相同的 LVDS 规格,但共模降低到 200mV,摆幅降低到 200mV 或 400mV p-p。
可扩展的低电压信号(SLVS)可用于具有低于 1V 电源的组件。虽然 FPGA 支持 LVDS I/O,但它们不支持 SLVS I/O。幸运的是,有一些方法可以在 SLVS 应用程序中应用 LVDS I/O。这里讨论两个可能的用例。
如图 5 和图 7 所示,为了实现 LVDS 信号与 SLVS 电平之间的接口,可以使用电阻和电容等无源元件,如图 6 所示的基本电平移位电路。
图 7 显示了 SLVS 发送器(右侧)和 LVDS 接收器的电平。FPGA 中的 LVDS 接收器在使用内部片上端接电阻时可以将共模电压降低到 300mV。当使用外部端接电阻时,共模电压可降至 100mv。
重要:在高性能(HP) I/O 组中,必须在 LVDS 配置的 I/O 上使用外部端接电阻。
HSTL
通用高速收发器逻辑(HSTL)是由 IBM (EIA/JESD 8-6)支持的 0V 到 1.5V 总线标准。HTSL 是为电压可扩展和技术独立的 I/O 结构而开发的。本标准要求的 I/O 结构是:
- 差分放大器输入或单端输入(一个输入内部连接到用户提供的输入参考电压的差分输入)。
- 使用输出电源输入(VCCO)的输出可能与设备运行的电压不同。
HSTL 标准包括四个变体或类别:
- Class I(非端接或对称平行端接,用于 D-PHY)
- Class II(串联端接)
- Class III(非对称并联端接)
- Class IV(非对称双并联端接)
注:对称并联端接是指负载端的端接电阻连接到输出缓冲器电源电压的一半。双并联端接是指在传输线两端安装并联端接电阻。
与 LVDS 不同,HSTL 驱动器不是电流驱动器,而是电压驱动器。在传输线的末端和/或开始处终止的唯一目的是终止线路,而不是像 LVDS 那样为接收器产生必要的电压摆幅。HSTL 驱动器可以提供的电流高达 8ma。
要在 HSTL-I-1.8V 和 SLVS 之间进行调整,请参见图 8。
低功耗接口
带 D-PHY 的低功耗(LP)单端 I/O 指定电平为 1.2V。
在 FPGA 中实现 D-PHY 等效电路需要为 D-PHY 的 HS 和 LP 部分使用单独的 I/O 引脚。
建议:建议的和最简单的解决方案是将高速和低功耗信号紧密地放在同一个 I/O bank 中。必须仔细注意哪些 I/O 标准可以在同一个 I/O bank 中共存。
LVCMOS 1.8V 是单端 I/O 标准,可以与 LVDS 和 HSTL 在同一 I/O bank 中共存。对于7系列 FPGA,LVDS,HSTL,LVCMOS_18 和 HSUL_12 输入可以连接在 1.8V 供电的 I/O bank 中。
发送器摆幅超过 D-PHY 1.2V 低功耗输入的输入电平。FPGA LVCMOS 1.8V 至 D-PHY 1.2V 电平如图 9 所示。
谨慎 ! 虽然 D-PHY 规格没有最大值,但在低功耗模式下驱动第三方 D-PHY 设备时请谨慎使用。
接收 1.2V 电平可能是一个问题,因为 1.2V 低功耗 D-PHY 发送器的摆幅并不比 FPGA LVCMOS 输入相应电压的最低要求高多少。当接收器使用 HSUL_12 I/O 标准时,这个问题就消除了。无论 I/O bank 中的 I/O 标准如何,HSUL 接收器都使用 1.2V 电平。因此,建议实现的兼容接收器使用 HSUL 输入。
D-PHY 等效
FPGA 可以成功地连接到 MIPI D-PHY 设备。本应用说明中描述了两种解决方案:
- 对于专有设计和成本优化的系统,只要满足规格要求,并且在所有条件下,链路都运行良好,就不需要完全兼容和/或最高性能。用于传输和接收的低成本电阻网络足以满足设计要求。在兼容解决方案中讨论了这种解决方案,并在 FMC MIPI 开发板上使用了这种解决方案。
- 设计或系统需要完全符合 MIPI 和/或尽可能高的性能或系统没有成本限制,可以使用外部 PHY 组件。然后通过源同步 LVDS 接口将 FPGA 连接到外部 PHY 组件。此设置在兼容解决方案中进行了描述。
部分兼容的解决方案
目前的 FPGA 没有配备完全符合 D-PHY (MIPI)的 I/O,并且提供的单向发送器和接收器解决方案仅供专有使用。该解决方案与 D-PHY 标准兼容,因为它支持 D-PHY 的电气规格,并且可以将 FPGA 直接连接到 MIPI 兼容组件(或者 MIPI 兼容组件可以连接到 FPGA)。
调整信号电平和用不同的电源和信号电平连接不同类型的 I/O 可以通过不同的方式完成。速度、成本和空间是决定使用哪种电路的主要因素。
目标是让 FPGA 在 300mm 的距离上以高达 800Mb/s 的速度与 MIPI 设备通信。图 10(发送器)和图 11(接收器)的电路允许 FPGA 和 MIPI 设备之间高达 800Mb/s 的通信。这些设置还允许在 MIPI 信号级别进行环回连接。D-PHY 兼容f发送器和接收器的仿真结果如下所示。
所提供的示例已在 Hyperlynx 和 SPICE 中进行了仿真,并在 D-PHY FMC 开发板上进行了硬件测试。D-PHY FMC 开发板可通过您当地的技术支持进行评估。原理图和仿真设置可以从以下链接下载:
https://www.xilinx.com/member/forms/download/design-license.html?cid=363874&filename=xapp894.zip.
建议:建议在设计源代码中实例化输入缓冲区(IBUF/IBUFDS)和输出缓冲区(OBUF/OBUFDS)。在 UCF、XDC 和/或源代码中提供诸如 IOSTANDARD、DRIVE(使用提升的驱动器级别)和 LOCation 之类的属性。
IOSTANDARD 可以根据所使用的电路和拓扑,将差分 I/O 设置为 LVDS, BLVDS 或 HSTL,并将单端 I/O 设置为 LVCMOS_1.8V 或 HSUL_1.2V。在 Xilinx 开发板上,使用的 I/O 标准如图 10 和图 11 所示。
图 10 发送电路和图 11 接收电路的仿真结果如图 12 和图 13 所示。
- TX_LP_x: LVCMOS_18 stuck at 0
- TX_HS: DIFF_HSTL_I at 800 Mb/s
- RX uses a MIPI compliant receiver in HS mode
- Circuit topology setup with 100 mm (4-inch) board traces
完全符合的解决方案
该解决方案使用有源元件在 FPGA 级提供高性能 MIPI D-PHY 接口。FPGA 前面的组件执行 D-PHY 规范要求的所有电气功能。D-PHY 线控制和接口功能必须作为 FPGA 中的逻辑提供。这些 PHY 组件由 Meticom 提供。
可用的组件:
- MC20001 和 MC20002:单通道组件。
- MC20901 和 MC20902:五通道(四个数据和一个时钟)组件。这些组件集成度更高,而且由于需要的组件更少,因此可以实现更小、更紧凑的设计。
有关规格和数据表,请参见 Meticom 。
图 14 和图 15 显示了使用单通道 PHY 组件的设计示例。每个示例显示一个时钟和一个数据通道。TS3USB221 MOSFET 开关可用于提供的示例中。
FPGA 到 MIPI D-PHY
- 来自 FPGA 的 LVDS 和 LVCMOS 信号由 Meticom 器件转换成 MIPI D-PHY 兼容流。
- PHY 支持最高 2.5Gb/s 的 LVDS(D-PHY HS)信号和最高 20Mb/s 的 LVCMOS(D-PHY LPDT)信号。
- PHY 将 LVDS 转换为 SLVS,最高可达 2.5Gb/s,无需电平转换器。
MIPI D-PHY 到 FPGA
- D-PHY 兼容流被转换为 FPGA 的 LVDS 和 LVCMOS 信号。
- PHY 支持最高 2.5Gb/s 的 LVDS(D-PHY HS)信号和最高 20Mb/s 的 LVCMOS(D-PHY LPDT)信号。
- D-PHY 终端自动切换。
PCB 指南
组件的位置
不同的电路元件应按引脚排列,尽可能彼此靠近,并靠近 PCB 上的 FPGA。组件的定位应尽量减少转弯、拐角和过孔的数量。FPGA 引脚的灵活性有助于优化 PCB 布线。
直、短连接改善了 PCB 布局的所有可能参数:
- 信号完整性
- 传输线效应
- 电容和电感
- 工作频率
当组件之间的距离较长时,传输线的影响很重要。所有传输线都应适当端接以控制反射。
指南及建议
PCB 设计人员的主要指导方针是:
- 布置组件时要花足够的时间。
- 保持走线长度尽可能短。
- 尽可能靠近 FPGA 放置必要的电阻和电容。
- 花时间确定 PCB 层的数量以及层堆叠是如何实现的。
- 如果可能的话,在 PCB 布局期间,保持走线的长度短于走线上信号的行程和反射时间。如果这是不可能的,考虑传输线理论。
- 匹配所有差分走线(数据和时钟)的长度。
- 当用差分走线转弯时,平衡左、右转弯的次数。
- 当用差分走线转弯时,内走线比外走线短。当在一个方向上使用更多转弯时,差分对的一条走线比另一条走线长(没有直接校正的可能性)。
- 不要走线成 90° 或 180° 转弯。这样的转弯增加了走线的有效宽度,增加了寄生电容。在非常快的边缘速率下,这些不连续会导致显著的信号完整性问题。相反,使用圆形的转弯。如果这是不可能的,使用 45° 角。
- 布线后在 PCB 的可用空间上散布走线,以尽量减少串扰。
- 考虑信号返回路径的指导方针!
- 必要时添加 Guard traces。
- 记住地面平面的重要性。
- 使用专用的和分开的平面来供电和接地。
- 在 PCB 的外层运行高速信号。信号在外部 PCB 层上运行得更快。
- 如果高速信号布置在内层 PCB 上,请在外层提供模拟走线的空间(见图 16)。
- 差分走线对之间要有足够的空间,信号走线与同一层附近的接地面之间要有足够的空间(见图 17)。
- 限制走线中的过孔数量。
- 将过孔视为垂直走线;对于差分走线,计算过孔、反过孔和过孔距离的大小。
- 采用高品质去耦电容(NPO、X7R、OSCON 等)
将高频陶瓷电容器按球栅布局放置在 FPGA 下方。
每个 I/O 组使用中档陶瓷或钽电容器,并将它们放置在靠近封装边界的地方。
在 PCB 上每个组件使用几个散装电容器(见图 18)。
总结
外部电路的使用,例如在本应用程序中呈现的那些,使得通过 MIPI 接口将 FPGA 连接到 ASSP 设备成为可能。兼容或专有解决方案使用配置为 BLVDS 或 DIFF_HSTL_I_18 的 FPGA I/O 用于 HS 传输,LVCMOS_18 和/或 HSUL_12 用于 LP 传输,而兼容解决方案使用配置为 LVDS 的 FPGA I/O 连接到外部提供的 PHY 组件。
参考资料
XAPP894