AN-2615: GMSL2升级至GMSL3

摘要

本文详细介绍了将现有GMSL2™设计升级为GMSL3™设计时的考量因素。在具体示例中,使用了一对GMSL2传感器(MAX96717MAX96716A)及一对引脚兼容的GMSL3传感器(MAX96793MAX96792A)。本文讨论了GMSL3的优势,并解释了从GMSL2升级到GMSL3时的设计考量因素。

引言

GMSL™技术的主要优势之一在于实现了同一代器件之间的跨代兼容。GMSL2向后兼容GMSL1™,GMSL3向后兼容GMSL2;通过数据手册,可验证器件的兼容性。这种灵活性还意味着,可以通过保留相同的引脚和封装去复用现有的兼容器件设计,从而节省开发时间。

GMSL3概述

GMSL3的主要不同之处是链路上的GMSL数据速率翻倍,达到12Gbps。GMSL2通常足以应对大多数应用,但传感器和显示器的带宽仍在不断提高。GMSL3旨在实现更高的数据速率,同时保留GMSL的所有优势,包括自适应均衡(AEQ)、ASIL-B功能安全性和强大的错误监控诊断。

GMSL2 使用非归零(NRZ)调制,其奈奎斯特频率为传输数据速率的一半。因此,对于6Gbps链路,该频率为3GHz(或对于3Gbps链路,该频率为1.5GHz)。在仍然使用NRZ调制的情况下,数据速率翻倍意味着对于12Gbps链路,奈奎斯特频率为6GHz。然而,使用更高频率会带来一些问题,例如线缆、连接器和PCB的插入损耗增加,导致应用中线缆的总长度必须缩短。

为了避免在数据速率翻倍的情况下使用更高频率,GMSL3采用脉冲幅度调制4级(PAM4),以保持与GMSL2 相同的奈奎斯特频率。较低的通道工作频率会给系统带来许多好处:

  • GMSL2和GMSL3使用相同的时钟链路速率,支持原理图和布局复用,工作在FR-4 PCB上。
  • 线缆和连接器的插入损耗更低。
  • 通过翻倍带宽并保持相同的链路速率,可以获得更高的频谱效率。

GMSL3 同时支持6Gbps (NRZ)和12Gbps (PAM4)。

设计考量因素

这里以CSI-2至GMSL3串行器MAX96793和GMSL3至CSI-2解串器MAX96792A为例进行说明。一般来说,升级所需的改动很少,但针对每一个具体的系统应用仍然需要进行评估。

引脚兼容性

GMSL2代和GMSL3代的GMSL器件被设计为引脚兼容,以支持设计复用。串行器封装为5mm x 5mm TQFN。图1详细展示了MAX96717和MAX96793的引脚排列:

图1. MAX96717 和MAX96793 引脚排列比较

在这些器件上使用反向信道参考时钟(RoR)功能时,应将一个20nF±10%的电容连接在VREF引脚(引脚7)和接地端之间。为了保持最优反向链路裕量,此连接对使用RoR的GMSL3模式是必须的,但对GMSL2模式并非强制要求。

如果在GMSL3上不使用RoR,则不需要此电容。

解串器封装为7mm x 7mm TQFN。图2详细展示了MAX96716A和MAX96792A的引脚配置:

图2. MAX96716A 和MAX96792A 引脚排列比较

功耗

这些器件的功耗是在物理层接口满负荷运行状态下进行测定的,运行条件在表1的配置列详细列出。

表1. 串行器功耗比较
器件 配置 IDD18 IDD (VDD = 1.2V) PTOTAL
MAX96717 6Gbps前向链路速率
(GMSL2模式)
RGB888彩条图案
4通道CSI-2 DPHY输入
每通道1.3Gbps
46mA (25°C)
53mA (105°C)
98mA (25°C)
232mA (105°C)
~210mW (25°C)
~393mW (105°C)
MAX96793 12Gbps前向链路速率
(GMSL3模式)
RGB888彩条图案
4通道CSI-2 DPHY输入
每通道2.5Gbps
46mA (25°C)
53mA (105°C)
170mA (25°C)
340mA (105°C)
~301mW (25°C)
~529mW (105°C)

这两款器件使用相同的电源输入电压,以简化电源拓扑要求。MAX96717和MAX96793 GMSL器件系列的 VDD18轨使用相同的电源。VDD核心轨的最大电流仅有轻微增加,幅度约为70mA (25°C)或110mA (105°C)。检查电源,确保供电轨上有足够的裕量以适应电流增加。

如前所述,这些器件的特点是其配置旨在充分发挥物理层接口能力,即解串器同时支持双GMSL输入和双MIPI-CSI2输出。这些器件可以仅使用单个GMSL输入和/或单个MIPI-CSI2输出,以降低总功耗。

此外,摄像头解串器具有MIPI-CSI2供电轨 VTERM,用于MIPI-CSI2 PHY。

表2. 解串器功耗比较
器件 配置 IDD18 IDD (VDD = 1.2V) ITERM PTOTAL
MAX96716A 6Gbps前向链路速率
(GMSL2模式)
2x 6Gbps输入
2x 4通道CSI-2 DPHY
输入
每通道1.3Gbps
196mA (25°C)
245mA (105°C)
197mA (25°C)
460mA (105°C)
27mA (25°C)
40mA (105°C)
~654mW (25°C)
~1095mW (105°C)
MAX96792A 12Gbps前向链路速
率(GMSL3模式)
2x 12Gbps输入
2x 4通道CSI-2 DPHY
输入
每通道2.5Gbps
210mA (25°C)
250mA (105°C)
365mA (25°C)
850mA (105°C)
31mA (25°C)
40mA (105°C)
~898mW (25°C)
~1596mW (105°C)

这两款器件使用相同的电源输入电压,以简化电源拓扑要求。MAX96716A和MAX96792A GMSL器件系列的VDD18 轨使用大致相同的电源。VDD核心轨的最大电流有所增加,幅度增加约为160mA (25°C)或390mA (105°C)。检查电源,确保供电轨上有足够的裕量以适应电流增加。

此外,两款器件的静态电流消耗和最大电源噪声容差相同,以使这两个系列遵循一致的系统要求。

配置引脚设置

这些器件的配置引脚差异很小。务必根据器件数据手册确认配置引脚值,这将决定器件每次启动时的配置状态。

图3和图4展示了配置引脚的详细信息,这里以MAX96717和MAX96793为例进行说明。所有配置引脚的设置都取决于具体器件,详细信息请参考各自的数据手册。

配置0引脚(CFG0)用于配置UART和 I2C之间的信道接口,选择使用RoR还是晶振,以及器件地址。

配置1引脚(CFG1)用于配置线缆类型(STP还是同轴线缆)、GMSL数据速率,以及选择隧道模式还是像素模式。CFG1在设置GMSL数据速率方面有细微差异。这些器件的像素模式数据速率相同。隧道工作模式支持GMSL3的6Gbps和12Gbps,以及GMSL2的3Gbps和6Gbps。

图3. MAX96717(左)和MAX96793(右)配置引脚比较
图4. MAX96716A(左)和MAX96792A(右)配置引脚比较

PAM4调制方案

PAM4是GMSL针对严苛的汽车环境所采用的一种成熟调制方案。NRZ使用两个电压电平表示1位符号,而PAM4使用四个电压电平表示2位符号,使得GMSL3能够以与GMSL2相同的波特率运行,同时将所传输数据的比特率翻倍。

然而,数据速率翻倍并非没有代价:PAM4的眼图开度较小,约为NRZ眼图开度的1/3。

图5. NRZ(左)和PAM4(右)的调制比较

图5中,“A”被定义为NRZ眼图开度,这意味着如果NRZ以A的SNR每个周期传输1位(1/T),则PAM4以A/3的SNR每个周期传输2位(2/T)。

前向纠错

为了克服 PAM4 固有的噪声敏感性,GMSL3 具备前向纠错(FEC)功能,可为链路增加数据冗余和纠错能力。FEC 可以显著降低SNR要求,并有助于降低链路的误码率(BER),使得GMSL链路在整个生命周期内只有一个位错误。

GMSL FEC采用Reed-Solomon 编码,这种编码广泛用于CD、二维码,甚至旅行者航天器[1]。此外,FEC信息可通过寄存器实时监控,或在GMSL GUI中方便地监控。

图6. GMSL GUI 中的GMSL链路BER状态窗口

FEC 是GMSL3的强制要求,因此在确认用例是否具有足够的带宽时,需要考虑FEC对带宽的影响。为了增强BER鲁棒性,在GMSL链路上使用FEC会产生6.67% (128/120)的额外开销。GMSL GUI中的GMSL带宽计算器在计算中包括了这一开销。此开销使得GMSL3链路的实际可用带宽大约为9.7Gbps。

图7. FEC 对GMSL3可用带宽的影响

错误报告

在GMSL3链路上使用FEC时,需要根据系统监控要求,调整错误监控策略。FEC可以检测并纠正链路上发生的错误,器件会报告纠正情况,这称为“FEC可纠正位”。“FEC不可纠正位”是不被允许的,因为它意味着GMSL3器件无法修复链路上发生的错误。

因此,需要根据错误的定义,调整错误监控策略。对于GMSL2 模式,解码和空闲错误用于报告链路上发生的错误。对于GMSL3模式,FEC不可纠正错误用于报告链路上的错误;FEC纠正的位也会被报告。

默认情况下,FEC错误标志用于检查可纠正和不可纠正的位,并报告给ERRB引脚。可纠正位的FEC阈值必须根据系统要求进行调整。有关错误监控变更的详细信息,请参阅软件差异部分。

通道规格

GMSL2 和 GMSL3 之间的一个显著区别是GMSL通道规格。请勿认为符合规范的GMSL2系统与GMSL3通道规范兼容,因为后者的预算限制更严格。请参考www.analog.com/cn上提供的最新GMSL2通道规范和GMSL3通道规范。

复用设计时,务必重新评估PCB布局和布线需求。

GMSL3 (12Gbps)和 GMSL2 (6Gbps)均以 3GHz 链路基频运行。

GMSL3 的插入损耗要求额外规定了长通道(高损耗)和短通道(低损耗)两种情况。短通道的插入损耗(IL) 更严格,但回波损耗(RL)较宽松。

GMSL3 的回波损耗要求也额外规定了长通道(高损耗)和短通道(低损耗)两种情况。短通道的RL较宽松,但IL更严格。

S-参数数据在与 GMSL3 IL 和 RL 限值进行比较之前,必须进行滤波。在全部范围内对S-参数应用100MHz滤波器。从最低捕获频率到50MHz,应用未滤波的数据。超过50MHz时,使用经滤波的数据与限值进行 比较。

寄存器设置差异

在软件方面,这些器件之间有两大差异:GMSL3工作模式和错误监控。

对于GMSL3模式,表3和表4中详细列出的以下所有更改都通过CFG引脚处理。这些引脚用于正确配置器 件的发送和接收速度,以及PAM4调制。表3和表4列出了当软件对CFG引脚进行编程或覆写操作时需使 用的寄存器,但此类操作通常不建议采用。

注:如果使用CFG引脚配置GMSL模式,则表3和表4中显示的以下更改不是必需的。

编程步骤需要按照特定顺序进行。先从远程器件开始,然后再处理本地器件。“远程”和“本地”指的是 I2C控制器的位置。对本地器件进行编程时,会阻止其与远程器件的通信。在此示例中,MAX96793是远程器件,而MAX96792A(连接到 I2C控制器)是本地器件。

表3. 从6Gbps GMSL2 变为12Gbps GMSL3的编程步骤
步骤 位置 器件 说明 寄存器
1 远程 MAX96793 将Tx速率更改为12Gbps 0x0001 REG1[3:2] = 0b11
2 远程 MAX96793 使能FEC 0x0028 TX0[1] = 0b1
3 远程 MAX96793 禁用GMSL2模式并使能GMSL3模式 0x0006 REG6[7] = 0b0
4 本地 MAX96792A 使GMSL链路保持RESET(复位)状态 0x0010 CTRL0[6] = 0b1
5 本地 MAX96792A 将Rx速率更改为12Gbps 0x0001 REG1[1:0] = 0b11
6 本地 MAX96792A 使能FEC 0x0028 TX0[1] = 0b1
7 本地 MAX96792A 禁用GMSL2模式并使能GMSL3模式 0x0004 REG4[7:6] = 0b11*
8 本地 MAX96792A 使GMSL链路离开RESET(复位)状态 0x0010 CTRL0[6] = 0b0
*这会将两个链路都设置为GMSL3。每个链路可以单独配置。
表4. 从12Gbps GMSL3变为6Gbps GMSL2的编程步骤
步骤 位置 器件 说明 寄存器
1 远程 MAX96793 将Tx速率更改为6Gbps 0x0001 REG1[3:2] = 0b10
2 远程 MAX96793 禁用FEC 0x0028 TX0[1] = 0b0
3 远程 MAX96793 使能GMSL2模式并禁用GMSL3模式 0x0006 REG6[7] = 0b0
4 本地 MAX96792A 使GMSL链路保持RESET(复位)状态 0x0010 CTRL0[6] = 0b1
5 本地 MAX96792A 将Rx速率更改为6Gbps 0x0001 REG1[1:0] = 0b10
6 本地 MAX96792A 禁用FEC 0x0028 TX0[1] = 0b0
7 本地 MAX96792A 使能GMSL2模式并禁用GMSL3模式 0x0004 REG4[7:6] = 0b00*
8 本地 MAX96792A 使GMSL链路离开RESET (复位)状态 0x0010 CTRL0[6] = 0b0
*这会将两个链路都设置为GMSL3。每个链路可以单独配置。

错误报告部分所述,错误监控策略需要根据FEC报告进行更改。

表5. 未使能FEC情况下的GMSL2错误报告
MAX96793 MAX96792A
位名称 寄存器 寄存器
DEC_ERR_OEN_A 0x001A INTR2[0] = 0b1 0x001A INTR2[0] = 0b1
DEC_ERR_OEN_B 0x001A INTR2[1] = 0b1
IDLE_ERR_OEN 0x001A INTR2[2] = 0b1 0x001A INTR2[2] = 0b1
IDLE_ERR_OEN_B 0x5010 INTR10[6] = 0b1
FEC_RX_ERR_OEN 0x001C INTR4[5] = 0b0*
FEC_RX_ERR_OEN_B 0x5010 INTR10[5] = 0b0*
*每个链路可以单独配置。
表6. 使能FEC情况下的GMSL3错误报告
MAX96793 MAX96792A
位名称 寄存器 寄存器
DEC_ERR_OEN_A 0x001A INTR2[0] = 0b0 0x001A INTR2[0] = 0b0
DEC_ERR_OEN_B 0x001A INTR2[1] = 0b0
IDLE_ERR_OEN 0x001A INTR2[2] = 0b0 0x001A INTR2[2] = 0b0
IDLE_ERR_OEN_B 0x5010 INTR10[6] = 0b0
FEC_RX_ERR_OEN 0x001C INTR4[5] = 0b1*
FEC_RX_ERR_OEN_B 0x5010 INTR10[5] = 0b1*
*每个链路可以单独配置。

使能FEC后,FEC统计信息可以根据应用要求单独配置。MAX96792A拥有许多寄存器,寄存器块地址从0x2000开始,支持读取统计信息及设置两个链路的错误阈值。

例如,应用可能允许在触发报警之前存在一定数量的可纠正位错误,则可以将CORRECTED_THRESHOLD_ 0/1/2/3 设置为允许的纠正位数量。不可纠正位错误更令人担忧,表明系统存在更大的问题。

凭借丰富的统计信息,用户可全面了解GMSL链路的健康状态。

结论

GMSL2 和GMSL3器件系列能够随设计同步扩展,文中所述细节说明了升级系统时需要考虑的变更。一般来说,GMSL2和GMSL3器件尽可能保持一致,以减轻升级时的设计负担。尽管本文详细介绍了两款特定器件的升级方法,但在进行其他GMSL2和GMSL3设备升级时,您必须查阅对应的设计文档。然而,无论是何种 GMSL器件,GMSL带宽的计算和GMSL通道的规格均遵循统一标准。

参考文献

[1] Canterbury, “QR codes - Coding - Error control - Computer Science Field Guide,” Csfieldguide.org.nz, 2024. https://www.csfieldguide.org.nz/en/chapters/coding-error-control/qr-codes.