GMSL2升級至GMSL3
GMSL2升級至GMSL3
摘要
本文詳細介紹將現有GMSL2™設計升級為GMSL3™設計時的考量因素。在具體範例中,使用了一對GMSL2感測器( MAX96717和MAX96716A)及一對腳位相容的GMSL3感測器(MAX96793和MAX96792A)。本文同時也討論了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的接腳排列:
在這些元件上使用反向通道參考時脈(RoR)功能時,應將一個20nF±10%的電容連接在 VREF接腳(接腳7)和接地端之間。此連接對於使用RoR的GMSL3模式是必需的,而對於GMSL2模式則是可選的,以保持最優反向鏈路餘裕。
如果在GMSL3上不使用RoR,則不需要此電容。
解串器封裝為7mm x 7mm TQFN。圖2詳細展示了MAX96716A和MAX96792A的接腳配置:
功耗
這些元件的功耗是基於表1的配置 列所示條件,在實體層介面滿負荷運行狀態下進行測定。column of Table 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。
| 元件 | 配置 | IDD18 | IDD (VDD = 1.2V) | ITERM | PTOTAL |
| MAX96716A | 6Gbps前向鏈路速率 (GMSL2模式) 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。
PAM4調變方案
PAM4是GMSL針對嚴苛的汽車環境所採用的一種成熟調變方案。NRZ使用兩個電壓位準表示1位元符號,而PAM4使用四個電壓位準表示2位元符號,使得GMSL3能夠以與GMSL2相同的串列傳輸速率運行,同時將所傳輸資料的位元速率加倍。
然而,資料速率加倍並非沒有代價:PAM4的眼圖開度較小,約為NRZ眼圖開度的1/3。
圖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、QR codes,甚至航海家太空船[1]。此外,FEC資訊可透過暫存器即時監控,或在GMSL GUI中方便地進行查看。
FEC是GMSL3的強制要求,因此在確認案例是否具有足夠的頻寬時,需要考慮FEC對頻寬的影響。為了增加BER的穩固性,在GMSL鏈路上使用FEC會產生6.67% (128/120)的額外開銷。GMSL GUI中的GMSL頻寬計算器在計算中包括了此一開銷。此開銷使得GMSL3鏈路的實際可用頻寬大約為9.7Gbps。
錯誤報告
在GMSL3鏈路上使用FEC時,需要根據系統監控要求,調整錯誤監控策略。FEC可以檢測並糾正鏈路上發生的錯誤,元件會報告糾正情況,這稱為「FEC可糾正位」。「FEC不可糾正位」是不被允許的,因為它代表GMSL3元件無法修復鏈路上發生的錯誤。
因此,需要根據錯誤的定義,調整錯誤監控策略。對於GMSL2模式,解碼和空閒錯誤用於報告鏈路上發生的錯誤。對於GMSL3模式,FEC不可糾正錯誤用於報告鏈路上的錯誤;FEC糾正的位也會被報告。
預設情況下,FEC錯誤標誌用於檢查可糾正和不可糾正的位,並報告給ERRB接腳。可糾正位元的FEC閾值必須根據系統要求進行調整。有關錯誤監控變更的詳細資訊,請參閱軟體差異部分。
通道規格
GMSL2和GMSL3之間的一個顯著區別是GMSL通道規格。請勿認為符合規範的GMSL2系統與GMSL3通道規範相容,因為後者的預算限制更嚴格。請參考analog.com上提供的最新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控制器)是本地元件。
| 步驟 | 位置 | 元件 | 說明 | 暫存器 | 值 |
| 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 | GMSL3 mode 禁用GMSL2模式並致能GMSL3模式 | 0x0004 | REG4[7:6] = 0b11* |
| 8 | 本地 | MAX96792A | 使GMSL鏈路離開RESET(重定)狀態 | 0x0010 | CTRL0[6] = 0b0 |
| *這會將兩個鏈路都設定為GMSL3。每個鏈路可以單獨配置。 | |||||
| 步驟 | 位置 | 元件 | 說明 | 暫存器 | 值 |
| 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報告進行更改。
| 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* |
| **每個鏈路可以單獨配置。 | ||||
| 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.






