现代智能汽车系统——车载Serdes2
本文摘要:
SerDes技术中的PixelMode和TunnelMode是两种主要数据传输模式。PixelMode以像素为单位传输,保持原始时序,适用于传统并行接口;TunnelMode则透传协议包,支持CSI-2等现代协议。VirtualChannel(VC)实现逻辑通道复用,支持多数据流聚合。DaisyChain拓扑通过串联节点减少线缆,但需权衡带宽累积和延迟问题。Multi-Stream技术可在单物理链路上传输多个独立数据流,配合Multi-Control实现多设备管理。这些技术广泛应用于车载摄像头、显示屏等场景,需根据带宽、延迟和可靠性需求选择合适方案。




一、数据传输模式
1.1 Pixel Mode(像素模式)
1.1.1 基本概念
Pixel Mode是SerDes中一种逐像素级别传输的工作模式,数据在传输过程中以像素为基本单位进行处理和路由。
text
┌─────────────────────────────────────────────────────────────────────┐
│ Pixel Mode 工作原理 │
│ │
│ Camera Sensor Output (Parallel RGB/YUV) │
│ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │
│ │ P0 │ P1 │ P2 │ P3 │ P4 │ P5 │ P6 │ P7 │ ... │
│ │R G B│R G B│R G B│R G B│R G B│R G B│R G B│R G B│ │
│ └──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┴──┬──┘ │
│ │ │ │ │ │ │ │ │
│ ▼ ▼ ▼ ▼ ▼ ▼ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Serializer (Pixel Mode) │ │
│ │ │ │
│ │ 并行像素输入 → 逐像素串行化 → 输出 │ │
│ │ │ │
│ │ P0[23:0] → P1[23:0] → P2[23:0] → ... │ │
│ │ ↓ │ │
│ │ 串行比特流: R0G0B0 R1G1B1 R2G2B2 ... │ │
│ └─────────────────────────────────────────────┘ │
│ │ │
│ SerDes Link │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────┐ │
│ │ Deserializer (Pixel Mode) │ │
│ │ │ │
│ │ 串行输入 → 逐像素解串 → 并行像素输出 │ │
│ │ │ │
│ │ → P0[23:0], P1[23:0], P2[23:0] ... │ │
│ └─────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
1.1.2 Pixel Mode的特点
| 特性 | 描述 |
|---|---|
| 数据单位 | 以单个像素为最小传输单元 |
| 输入接口 | 通常是并行RGB/YUV(如24-bit RGB888) |
| 时序透明 | 保持原始像素时序(HSYNC/VSYNC/DE) |
| 延迟 | 极低(像素级流水线) |
| 适用场景 | 传统并行接口摄像头/显示器 |
| 典型芯片 | MAX96705/MAX96706(GMSL1)、DS90UB925/DS90UB926 |
1.1.3 Pixel Mode的时序保持
text
原始视频时序(Camera端):
HSYNC ──┐ ┌──────────────────────────────┐ ┌──
└─────┘ └─────┘
VSYNC ──┐ ┌──
└──────────────────────────────────────────┘
DE ────────┐ ┌────────
└──────────────────────────────┘
DATA ────────┤ P0 P1 P2 P3 ... Pn-1 ├─────────
经Pixel Mode SerDes传输后(Deserializer输出):
HSYNC' ──┐ ┌──────────────────────────────┐ ┌──
└─────┘ └─────┘
VSYNC' ──┐ ┌──
└──────────────────────────────────────────┘
DE' ────────┐ ┌────────
└──────────────────────────────┘
DATA' ────────┤ P0 P1 P2 P3 ... Pn-1 ├─────────
↑
│ 延迟仅增加固定offset(通常<1μs)
│ 时序波形完全保持
1.1.4 Pixel Mode多路聚合
当多个Pixel Mode输入需要聚合到单一输出时:
text
┌───────────────────────────────────────────────────────────────────┐
│ Pixel Interleaving(像素交织) │
│ │
│ Camera A: A0 A1 A2 A3 A4 A5 ... │
│ Camera B: B0 B1 B2 B3 B4 B5 ... │
│ │
│ 聚合后输出: │
│ ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ │
│ │ A0 │ B0 │ A1 │ B1 │ A2 │ B2 │ A3 │ B3 │ A4 │ B4 │ A5 │ B5 │ │
│ └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘ │
│ │
│ 接收端分离: │
│ 识别像素ID → 偶数位置→Camera A,奇数位置→Camera B │
│ │
└───────────────────────────────────────────────────────────────────┘
┌───────────────────────────────────────────────────────────────────┐
│ Line Interleaving(行交织) │
│ │
│ Camera A: Line A0: A0_0 A0_1 A0_2 ... │
│ Line A1: A1_0 A1_1 A1_2 ... │
│ │
│ Camera B: Line B0: B0_0 B0_1 B0_2 ... │
│ Line B1: B1_0 B1_1 B1_2 ... │
│ │
│ 聚合后输出(逐行交替): │
│ ┌─────────────────────────────────────┐ │
│ │ Line A0: A0_0 A0_1 A0_2 ... │ │
│ │ Line B0: B0_0 B0_1 B0_2 ... │ │
│ │ Line A1: A1_0 A1_1 A1_2 ... │ │
│ │ Line B1: B1_0 B1_1 B1_2 ... │ │
│ │ ... │ │
│ └─────────────────────────────────────┘ │
│ │
└───────────────────────────────────────────────────────────────────┘
1.2 Tunnel Mode(隧道模式)
1.2.1 基本概念
Tunnel Mode是一种协议透传的工作模式,SerDes不解析原始协议内容,而是将整个协议包作为"黑盒"封装后传输。
text
┌─────────────────────────────────────────────────────────────────────┐
│ Tunnel Mode 工作原理 │
│ │
│ │
│ ┌──────────────────┐ 原始协议完全透传 ┌──────────────────┐
│ │ Source Device │ │ Sink Device │
│ │ (CSI-2 TX) │ │ (CSI-2 RX) │
│ │ │ │ │
│ │ ┌────────────┐ │ ┌───────────────┐ │ ┌────────────┐ │
│ │ │CSI-2 Packet│ │ │ │ │ │CSI-2 Packet│ │
│ │ │┌──────────┐│ │ │ ┌───────────┐ │ │ │┌──────────┐│ │
│ │ ││ Header ││──│───→│ │ Tunnel │ │────→│ ││ Header ││ │
│ │ │├──────────┤│ │ │ │ Wrapper │ │ │ │├──────────┤│ │
│ │ ││ Payload ││──│───→│ │ │ │────→│ ││ Payload ││ │
│ │ │├──────────┤│ │ │ │ 封装/解封装│ │ │ │├──────────┤│ │
│ │ ││ Footer ││──│───→│ │ │ │────→│ ││ Footer ││ │
│ │ │└──────────┘│ │ │ └───────────┘ │ │ │└──────────┘│ │
│ │ └────────────┘ │ │ │ │ └────────────┘ │
│ │ │ │ SerDes Link │ │ │
│ └──────────────────┘ └───────────────┘ └──────────────────┘
│ │
│ 关键点: │
│ - SerDes不解析CSI-2包内容 │
│ - Header/Payload/Footer原样传输 │
│ - 接收端输出与发送端输入完全一致 │
│ - 支持任意CSI-2数据类型 │
│ │
└─────────────────────────────────────────────────────────────────────┘
1.2.2 CSI-2 Tunnel详解
CSI-2 Tunnel是最常见的隧道模式应用:
text
┌─────────────────────────────────────────────────────────────────────┐
│ CSI-2 over SerDes Tunnel │
│ │
│ CSI-2原始协议栈: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ PHY Layer │ Lane Management │ Low Level Protocol │ Pixel/Data│ │
│ │ (D-PHY/ │ (Lane Merging/ │ (SoT/EoT/Sync/ │ Unpacking │ │
│ │ C-PHY) │ Distribution) │ Error Detection) │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Tunnel后的协议栈: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ SerDes │ SerDes │ Tunnel │ CSI-2 │ │
│ │ PHY │ Link Layer │ Encapsulation │ Packet │ │
│ │ (GMSL/ │ (8b10b/ │ (CSI-2 Packet → │ (原样) │ │
│ │ FPD) │ Scrambling) │ SerDes Payload) │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ CSI-2包在Tunnel中的封装: │
│ │
│ 原始CSI-2短包(Short Packet): │
│ ┌──────┬────────────┬─────┐ │
│ │ DI │ Data Field │ ECC │ (4 bytes) │
│ │ (1B) │ (2B) │(1B) │ │
│ └──────┴────────────┴─────┘ │
│ │
│ 原始CSI-2长包(Long Packet): │
│ ┌──────┬──────┬─────┬─────────────────────────┬──────────┐ │
│ │ DI │ WC │ ECC │ Payload │ Checksum │ │
│ │ (1B) │ (2B) │(1B) │ (WC bytes) │ (2B) │ │
│ └──────┴──────┴─────┴─────────────────────────┴──────────┘ │
│ │
│ Tunnel封装后: │
│ ┌────────────┬────────────────────────────────┬────────────┐ │
│ │ Tunnel Hdr │ CSI-2 Packet (原样) │ Tunnel CRC │ │
│ │ (SerDes │ │ (可选) │ │
│ │ specific) │ │ │ │
│ └────────────┴────────────────────────────────┴────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
1.2.3 多协议隧道传输
现代SerDes支持同时隧道传输多种协议:
text
┌─────────────────────────────────────────────────────────────────────┐
│ Multi-Protocol Tunneling │
│ │
│ Camera Module SoC │
│ ┌───────────────────┐ ┌───────────────────┐ │
│ │ Image Sensor │ │ │ │
│ │ ┌───────────┐ │ │ CSI-2 RX │ │
│ │ │ CSI-2 TX │─────│── Tunnel 1 ────→│ ┌─────────────┐ │ │
│ │ └───────────┘ │ (Video Data) │ │ Video Pipe │ │ │
│ │ │ │ └─────────────┘ │ │
│ │ ┌───────────┐ │ │ │ │
│ │ │ I2C Slave │─────│── Tunnel 2 ────→│ I2C Master │ │
│ │ └───────────┘ │ (Control) │ (Sensor Config) │ │
│ │ │ │ │ │
│ │ ┌───────────┐ │ │ │ │
│ │ │ SPI Slave │─────│── Tunnel 3 ────→│ SPI Master │ │
│ │ └───────────┘ │ (Debug/FW) │ (Firmware DL) │ │
│ │ │ │ │ │
│ │ ┌───────────┐ │ │ │ │
│ │ │ GPIO×N │─────│── Tunnel 4 ────→│ GPIO Controller │ │
│ │ └───────────┘ │ (Trigger/ │ (FSYNC/LED) │ │
│ │ │ Status) │ │ │
│ │ │ │ │ │
│ │ ┌───────────┐ │ │ │ │
│ │ │ Interrupt │─────│── Tunnel 5 ────→│ IRQ Handler │ │
│ │ └───────────┘ │ (Alert) │ (Error/Event) │ │
│ │ Serializer │ │ Deserializer │ │
│ └───────────────────┘ └───────────────────┘ │
│ │
│ ╔═══════════════════════════════════════╗ │
│ ║ Single SerDes Physical Link ║ │
│ ║ (所有Tunnel复用同一物理链路) ║ │
│ ╚═══════════════════════════════════════╝ │
│ │
└─────────────────────────────────────────────────────────────────────┘
1.2.4 Tunnel Mode带宽分配
text
┌─────────────────────────────────────────────────────────────────────┐
│ Tunnel带宽分配示例 │
│ │
│ 总链路带宽: 6 Gbps (GMSL2) │
│ 有效数据带宽: ~4.8 Gbps (除去8b10b编码开销) │
│ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 6 Gbps 总带宽 │ │
│ ├────────────────────────────────────────────┬───────────────┤ │
│ │ Forward Channel (5.9 Gbps) │ Reverse (100M)│ │
│ ├────────────────────────────────────────────┼───────────────┤ │
│ │ │ │ │
│ │ ┌──────────────────────────────────────┐ │ ┌───────────┐ │ │
│ │ │ Video Tunnel (~4.5 Gbps) │ │ │ I2C │ │ │
│ │ │ (CSI-2 Video Data) │ │ │ (~10Mbps) │ │ │
│ │ │ ████████████████████████████████ │ │ │ █ │ │ │
│ │ └──────────────────────────────────────┘ │ ├───────────┤ │ │
│ │ ┌──────────────────────────────────────┐ │ │ GPIO │ │ │
│ │ │ Embedded Data Tunnel (~200 Mbps) │ │ │ (~1Mbps) │ │ │
│ │ │ (Sensor Metadata) │ │ │ │ │ │
│ │ │ ███ │ │ └───────────┘ │ │
│ │ └──────────────────────────────────────┘ │ │ │
│ │ ┌──────────────────────────────────────┐ │ │ │
│ │ │ Control Tunnel (~50 Mbps) │ │ │ │
│ │ │ (SPI/UART) │ │ │ │
│ │ │ █ │ │ │ │
│ │ └──────────────────────────────────────┘ │ │ │
│ │ │ │ │
│ └────────────────────────────────────────────┴───────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
1.3 Pixel Mode vs Tunnel Mode 对比
| 特性 | Pixel Mode | Tunnel Mode |
|---|---|---|
| 数据单位 | 像素 | 协议包 |
| 输入接口 | 并行RGB/YUV/RAW | CSI-2/DSI等串行协议 |
| 协议感知 | 感知像素格式 | 不感知原始协议 |
| 时序处理 | 保持HSYNC/VSYNC/DE | 封装原始时序 |
| 灵活性 | 固定像素格式 | 支持任意CSI-2数据类型 |
| 元数据支持 | 有限 | 完全支持(Embedded Data) |
| 延迟 | 极低(像素级) | 低(包级) |
| 主要应用 | 传统并行接口 | 现代CSI-2摄像头 |
| 芯片代际 | 主要GMSL1/FPD-II | GMSL2/3、FPD-III/IV |
二、Virtual Channel(虚拟通道)
2.1 基本概念
Virtual Channel(VC)是CSI-2协议中的一种逻辑通道复用机制,允许在同一物理链路上传输多个独立的数据流。
text
┌─────────────────────────────────────────────────────────────────────┐
│ Virtual Channel 概念图 │
│ │
│ 物理层面:单一CSI-2物理链路 (例如4-Lane D-PHY) │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Physical CSI-2 Link │ │
│ │ ┌─────────┬─────────┬─────────┬─────────┐ │ │
│ │ │ Lane 0 │ Lane 1 │ Lane 2 │ Lane 3 │ │ │
│ │ │ (Data) │ (Data) │ (Data) │ (Data) │ │ │
│ │ └─────────┴─────────┴─────────┴─────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 逻辑层面:多个Virtual Channel共享物理链路 │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌─────────────┐ │ │
│ │ │ VC0: RGB │ ──→ Camera 0 主图像数据 │ │
│ │ │ (RAW12) │ │ │
│ │ └─────────────┘ │ │
│ │ ┌─────────────┐ │ │
│ │ │ VC1: Meta │ ──→ Camera 0 元数据/Embedded Data │ │
│ │ │ (Embed) │ │ │
│ │ └─────────────┘ │ │
│ │ ┌─────────────┐ │ │
│ │ │ VC2: RGB │ ──→ Camera 1 主图像数据 │ │
│ │ │ (RAW12) │ │ │
│ │ └─────────────┘ │ │
│ │ ┌─────────────┐ │ │
│ │ │ VC3: IR │ ──→ Camera 1 IR通道/DMS红外 │ │
│ │ │ (RAW8) │ │ │
│ │ └─────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 时分复用传输: │
│ ┌────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┬────┐ │
│ │VC0 │VC0 │VC1 │VC2 │VC2 │VC3 │VC0 │VC0 │VC1 │VC2 │VC2 │VC3 │ │
│ │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │Pkt │ │
│ └────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┴────┘ │
│ Time → │
│ │
└─────────────────────────────────────────────────────────────────────┘
2.2 CSI-2 VC编码
text
┌─────────────────────────────────────────────────────────────────────┐
│ CSI-2 包头中的VC字段 │
│ │
│ CSI-2 Packet Header (4 bytes): │
│ │
│ Byte 0 (Data Identifier - DI): │
│ ┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┐ │
│ │ VC1 │ VC0 │ DT5 │ DT4 │ DT3 │ DT2 │ DT1 │ DT0 │ │
│ └─────┴─────┴─────┴─────┴─────┴─────┴─────┴─────┘ │
│ │←─VC─→│←─────── Data Type (6-bit) ─────────→│ │
│ │
│ CSI-2 v1.x/v2.x: VC[1:0] → 支持 VC0 ~ VC3 (4个虚拟通道) │
│ CSI-2 v3.0: VC[3:0] → 支持 VC0 ~ VC15 (16个虚拟通道) │
│ (VC[3:2]通过扩展包头传递) │
│ │
│ 常用Data Type (DT): │
│ ┌────────────┬───────────┬─────────────────────────────────────┐ │
│ │ DT Value │ 名称 │ 描述 │ │
│ ├────────────┼───────────┼─────────────────────────────────────┤ │
│ │ 0x00 │ FS │ Frame Start │ │
│ │ 0x01 │ FE │ Frame End │ │
│ │ 0x02 │ LS │ Line Start │ │
│ │ 0x03 │ LE │ Line End │ │
│ │ 0x10 │ Generic 8 │ Generic 8-bit Data │ │
│ │ 0x12 │ Embed │ Embedded 8-bit Non-Image Data │ │
│ │ 0x28 │ RAW6 │ RAW6 │ │
│ │ 0x2A │ RAW8 │ RAW8 │ │
│ │ 0x2B │ RAW10 │ RAW10 │ │
│ │ 0x2C │ RAW12 │ RAW12 │ │
│ │ 0x2D │ RAW14 │ RAW14 │ │
│ │ 0x1E │ YUV420-8 │ YUV420 8-bit │ │
│ │ 0x1F │ YUV420-10 │ YUV420 10-bit │ │
│ │ 0x22 │ RGB888 │ RGB888 │ │
│ └────────────┴───────────┴─────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
2.3 SerDes中的VC管理
2.3.1 单摄像头多VC输出
text
┌─────────────────────────────────────────────────────────────────────┐
│ 单摄像头输出多VC(典型HDR/DMS场景) │
│ │
│ Image Sensor Serializer Deserializer │
│ ┌──────────────┐ ┌──────────┐ ┌──────────┐ │
│ │ │ │ │ │ │ │
│ │ Long Exp ──→│── VC0(RAW) ─→│ │ │ │──→VC0
│ │ (主曝光) │ │ Tunnel │ GMSL2 │ Tunnel │ │
│ │ │ │ Mode │═════════│ Mode │ │
│ │ Short Exp ─→│── VC1(RAW) ─→│ │ │ │──→VC1
│ │ (短曝光HDR) │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ │ Metadata ──→│── VC2(Emb) ─→│ │ │ │──→VC2
│ │ (曝光参数) │ │ │ │ │ │
│ │ │ │ │ │ │ │
│ └──────────────┘ └──────────┘ └──────────┘ │
│ │
│ HDR合成在SoC ISP中进行: │
│ ISP接收VC0+VC1+VC2 → 合成HDR图像 │
│ │
└─────────────────────────────────────────────────────────────────────┘
2.3.2 多摄像头VC聚合
text
┌─────────────────────────────────────────────────────────────────────┐
│ 多摄像头SerDes聚合中的VC重映射 │
│ │
│ Camera 0 Camera 1 Camera 2 │
│ (VC0输出) (VC0输出) (VC0输出) │
│ │ │ │ │
│ │ GMSL2 │ GMSL2 │ GMSL2 │
│ ▼ ▼ ▼ │
│ ┌───────────────────────────────────────────────────────────────┐ │
│ │ Deserializer (如 MAX96724) │ │
│ │ │ │
│ │ Port A ─→ 接收VC0 ─→ 重映射为 VC0 ─┐ │ │
│ │ Port B ─→ 接收VC0 ─→ 重映射为 VC1 ─┼─→ CSI-2 输出 (VC0-VC3) │ │
│ │ Port C ─→ 接收VC0 ─→ 重映射为 VC2 ─┤ 到 SoC │ │
│ │ Port D ─→ (未使用) ─→ ─┘ │ │
│ │ │ │
│ │ VC重映射寄存器配置: │ │
│ │ REG_VC_REMAP_A = 0x00 (保持VC0) │ │
│ │ REG_VC_REMAP_B = 0x01 (VC0→VC1) │ │
│ │ REG_VC_REMAP_C = 0x02 (VC0→VC2) │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
│ SoC CSI-2 RX 接收: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ VC0 → Camera 0 数据 → ISP Pipeline 0 │ │
│ │ VC1 → Camera 1 数据 → ISP Pipeline 1 │ │
│ │ VC2 → Camera 2 数据 → ISP Pipeline 2 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
2.3.3 复杂VC映射场景
text
┌─────────────────────────────────────────────────────────────────────┐
│ 复杂场景:多摄像头+多数据流+HDR的VC管理 │
│ │
│ 原始输入: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Camera 0 (前视主摄,HDR): │ │
│ │ VC0 = Long Exposure RAW12 │ │
│ │ VC1 = Short Exposure RAW12 │ │
│ │ VC2 = Embedded Data │ │
│ │ │ │
│ │ Camera 1 (前视窄角): │ │
│ │ VC0 = RAW12 │ │
│ │ VC1 = Embedded Data │ │
│ │ │ │
│ │ Camera 2 (DMS,RGB+IR): │ │
│ │ VC0 = RGB RAW10 │ │
│ │ VC1 = IR RAW8 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ VC冲突问题: │
│ - 3个Camera都使用VC0/VC1,若直接合并会冲突 │
│ │
│ 解决方案 - VC重映射后输出: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ CSI-2 Output (to SoC): │ │
│ │ │ │
│ │ VC0 = Camera 0 Long Exp ─┐ │ │
│ │ VC1 = Camera 0 Short Exp ─┼─ Camera 0 HDR Group │ │
│ │ VC2 = Camera 0 Embed ─┘ │ │
│ │ │ │
│ │ VC4 = Camera 1 RAW ─┐ │ │
│ │ VC5 = Camera 1 Embed ─┘─ Camera 1 Group │ │
│ │ │ │
│ │ VC8 = Camera 2 RGB ─┐ │ │
│ │ VC9 = Camera 2 IR ─┘─ Camera 2 DMS Group │ │
│ │ │ │
│ │ (需要CSI-2 v3.0支持16 VC,或分两个CSI-2端口输出) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
2.4 VC vs 物理端口
text
┌─────────────────────────────────────────────────────────────────────┐
│ VC数量 vs CSI-2物理端口权衡 │
│ │
│ 方案A: 单CSI-2端口 + 多VC │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Deserializer ─────→ CSI-2 Port 0 (4-Lane) ─────→ SoC │ │
│ │ │ │ │
│ │ ├─ VC0: Camera 0 (1.5Gbps) │ │
│ │ ├─ VC1: Camera 1 (1.5Gbps) │ │
│ │ ├─ VC2: Camera 2 (1.5Gbps) │ │
│ │ └─ VC3: Camera 3 (1.5Gbps) │ │
│ │ │ │
│ │ 总带宽需求: 6Gbps │ │
│ │ 4-Lane CSI-2 带宽: ~7.2Gbps @1.8Gbps/Lane │ │
│ │ ✓ 带宽满足 │ │
│ │ │ │
│ │ 优点: SoC只需1个CSI-2端口 │ │
│ │ 缺点: 单端口成为瓶颈;ISP需要处理4路VC │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 方案B: 多CSI-2端口 + 少VC │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Deserializer ─────→ CSI-2 Port 0 (4-Lane) ─→ SoC Port 0 │ │
│ │ ├─ VC0: Camera 0 │ │
│ │ └─ VC1: Camera 1 │ │
│ │ │ │
│ │ ─────→ CSI-2 Port 1 (4-Lane) ─→ SoC Port 1 │ │
│ │ ├─ VC0: Camera 2 │ │
│ │ └─ VC1: Camera 3 │ │
│ │ │ │
│ │ 优点: 带宽充裕,ISP处理分散 │ │
│ │ 缺点: SoC需要2个CSI-2端口 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 选择依据: │
│ ┌────────────────┬──────────────────┬──────────────────────────┐ │
│ │ 考虑因素 │ 选择多VC单端口 │ 选择多端口少VC │ │
│ ├────────────────┼──────────────────┼──────────────────────────┤ │
│ │ 总带宽需求 │ < 单端口最大带宽 │ > 单端口最大带宽 │ │
│ │ SoC CSI端口数 │ 有限 │ 充足 │ │
│ │ ISP VC处理能力 │ 支持多VC并行处理 │ 有限 │ │
│ │ 软件复杂度 │ 中等 │ 较低 │ │
│ └────────────────┴──────────────────┴──────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
三、Daisy Chain(菊花链)拓扑
3.1 基本概念
Daisy Chain是一种串联式拓扑结构,多个节点依次连接形成链式结构,数据从一端进入,经过各节点转发,最终到达终端。
text
┌─────────────────────────────────────────────────────────────────────┐
│ Daisy Chain 基本拓扑 │
│ │
│ │
│ Node 0 Node 1 Node 2 Node 3 Node 4 │
│ (终端) (中继) (中继) (中继) (始端/主控) │
│ │
│ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │ │←───│ │←───│ │←───│ │←───│ │ │
│ │ │ │ │ │ │ │ │ │ │ 前向数据 │
│ │ │───→│ │───→│ │───→│ │───→│ │ (可选) │
│ └─────┘ └─────┘ └─────┘ └─────┘ └─────┘ │
│ │
│ 与星型拓扑对比: │
│ │
│ 星型拓扑 (Star): 菊花链拓扑 (Daisy Chain): │
│ │
│ N0 N0 │
│ │ ↑ │
│ N1──┐ N1 │
│ │ │ ↑ │
│ N2────┼───┼──HPC N2 │
│ │ │ ↑ │
│ N3──┘ N3 │
│ │ ↑ │
│ N4 HPC │
│ │
│ 线缆数量: 5条 线缆数量: 4条 │
│ 总线长: N×平均长度 总线长: 链式累加 │
│ │
└─────────────────────────────────────────────────────────────────────┘
3.2 SerDes Daisy Chain实现
3.2.1 GMSL Daisy Chain模式
text
┌─────────────────────────────────────────────────────────────────────┐
│ GMSL Daisy Chain 配置 │
│ │
│ 摄像头节点 HPC │
│ │
│ Camera 0 Camera 1 Camera 2 ┌──────────┐ │
│ ┌─────────┐ ┌─────────┐ ┌─────────┐ │ │ │
│ │ Sensor │ │ Sensor │ │ Sensor │ │ │ │
│ │ ↓ │ │ ↓ │ │ ↓ │ │ │ │
│ │┌───────┐│ │┌───────┐│ │┌───────┐│ │┌────────┐│ │
│ ││ Ser ││ ││ Ser ││ ││ Ser ││ ││ Deser ││ │
│ ││MAX9629││ ││MAX9629││ ││MAX9629││ ││MAX96712││ │
│ ││ ││ ││ ││ ││ ││ ││(4-port)││ │
│ ││ ↓ ↓ ││ ││ ↓ ↓ ││ ││ ↓ ││ ││ ││ │
│ ││Out In││ ││Out In││ ││ Out ││ ││Port A ││ │
│ │└─┬───┬─┘│ │└─┬───┬─┘│ │└───┬───┘│ │└────┬───┘│ │
│ └──│───│──┘ └──│───│──┘ └────│────┘ │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ └─────────┘ └───────────┴──────────│─────┘ │ │
│ │ │ │ │
│ └────────────────────────────────────────│──(备用) │ │
│ │ │ │
│ GMSL Link 0 GMSL Link 1 GMSL Link 2 └──────────┘ │
│ │
│ 数据流: │
│ Camera 0 → Ser → Link 0 → 透传 → │
│ Camera 1 Ser → Link 1 → 透传 → │
│ Camera 2 Ser → Link 2 → Deser │
│ │
│ 优势: │
│ - 只需要1条线缆从最远Camera连到中间Camera │
│ - 减少长距离线缆数量 │
│ - 适合车身一侧的多摄像头串联(如左侧后视镜→B柱→C柱) │
│ │
│ 限制: │
│ - 链路总带宽受最后一跳限制 │
│ - 链路故障影响后续所有节点 │
│ - 延迟累加 │
│ │
└─────────────────────────────────────────────────────────────────────┘
3.2.2 FPD-Link Daisy Chain(Hub级联)
text
┌─────────────────────────────────────────────────────────────────────┐
│ FPD-Link DS90UB964 Daisy Chain Hub │
│ │
│ 远端摄像头组 中间Hub节点 主控端 │
│ │
│ Camera 0 ──FPD──┐ ┌───────────────┐ │
│ Camera 1 ──FPD──┤ │ DS90UB964 │ ┌───────────┐ │
│ Camera 2 ──FPD──┼────────→│ 4-to-1 Hub │──FPD──│DS90UB960 │ │
│ Camera 3 ──FPD──┘ │ │ │(4-port │ │
│ │ 接收4路 │ │ Deser) │→SoC
│ │ 聚合为1路 │ │ │ │
│ │ FPD-Link输出 │ │ │ │
│ └───────────────┘ └───────────┘ │
│ │
│ 支持多级级联: │
│ │
│ Cam0-3 ──→ Hub0 ──┐ │
│ │ │
│ Cam4-7 ──→ Hub1 ──┼──→ Hub_Main ──→ Deser ──→ SoC │
│ │ │
│ Cam8-B ──→ Hub2 ──┘ │
│ │
│ 最多支持: 3级级联 × 4端口 = 64个Camera (理论值,实际受带宽限制) │
│ │
└─────────────────────────────────────────────────────────────────────┘
3.3 Daisy Chain的带宽与延迟分析
text
┌─────────────────────────────────────────────────────────────────────┐
│ Daisy Chain 带宽约束 │
│ │
│ 场景: 4个摄像头Daisy Chain │
│ │
│ Cam0 ──→ Cam1 ──→ Cam2 ──→ Cam3 ──→ Deser │
│ Link01 Link12 Link23 Link3D │
│ │
│ 假设每个摄像头输出: 1.5 Gbps │
│ 每段链路带宽: 6 Gbps (GMSL2) │
│ │
│ 带宽累积: │
│ ┌─────────┬────────────────┬──────────────┬───────────────────┐ │
│ │ 链路 │ 承载的Camera │ 所需带宽 │ 剩余带宽 │ │
│ ├─────────┼────────────────┼──────────────┼───────────────────┤ │
│ │ Link01 │ Cam0 │ 1.5 Gbps │ 4.5 Gbps │ │
│ │ Link12 │ Cam0+Cam1 │ 3.0 Gbps │ 3.0 Gbps │ │
│ │ Link23 │ Cam0+1+2 │ 4.5 Gbps │ 1.5 Gbps │ │
│ │ Link3D │ Cam0+1+2+3 │ 6.0 Gbps │ 0 Gbps ⚠️ │ │
│ └─────────┴────────────────┴──────────────┴───────────────────┘ │
│ │
│ 结论: 4路1.5Gbps摄像头刚好用满6Gbps链路 │
│ 若增加第5个摄像头,需要升级到GMSL3(12Gbps)或分链路 │
│ │
└─────────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────────┐
│ Daisy Chain 延迟累积 │
│ │
│ 每个节点透传延迟: ~0.5-1μs │
│ │
│ Cam0数据延迟 = Link01 + Node1转发 + Link12 + Node2转发 │
│ + Link23 + Node3转发 + Link3D + Deser │
│ = 4×(传输延迟) + 3×(节点转发延迟) + Deser延迟 │
│ ≈ 4×0.05μs + 3×0.7μs + 0.5μs │
│ ≈ 2.8μs (相比直连的~1μs,增加约1.8μs) │
│ │
│ Cam3数据延迟 = Link3D + Deser │
│ ≈ 0.05μs + 0.5μs │
│ ≈ 0.55μs │
│ │
│ 延迟差异: Cam0延迟 - Cam3延迟 ≈ 2.25μs │
│ 注意: 这会影响多摄像头同步精度,需要软件补偿 │
│ │
└─────────────────────────────────────────────────────────────────────┘
3.4 Daisy Chain的可靠性考量
text
┌─────────────────────────────────────────────────────────────────────┐
│ Daisy Chain 故障影响分析 │
│ │
│ 故障场景: Link12断开 │
│ │
│ Cam0 ──→ Cam1 ──X──→ Cam2 ──→ Cam3 ──→ Deser │
│ ↑ │
│ 链路故障 │
│ │
│ 影响: │
│ - Cam0, Cam1 数据丢失 ❌ │
│ - Cam2, Cam3 正常工作 ✓ (如果是独立供电) │
│ │
│ 对比星型拓扑: │
│ - 星型: Link1故障只影响Cam1 │
│ - Daisy Chain: Link故障影响上游所有Camera │
│ │
│ 缓解措施: │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ 1. 冗余环路: │ │
│ │ Cam0 ─→ Cam1 ─→ Cam2 ─→ Cam3 ─→ Deser │ │
│ │ ↑ │ │ │
│ │ └────────────────────────────────┘ │ │
│ │ 备用反向链路,形成环形冗余 │ │
│ │ │ │
│ │ 2. 旁路功能: │ │
│ │ 中间节点支持物理旁路,故障时自动bypass │ │
│ │ │ │
│ │ 3. 降级模式: │ │
│ │ 检测到故障时,自动切换到部分Camera工作模式 │ │
│ │ │ │
│ │ 4. ASIL分解: │ │
│ │ 安全关键Camera不使用Daisy Chain,独立直连 │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
3.5 车载Daisy Chain应用场景
text
┌─────────────────────────────────────────────────────────────────────┐
│ 车载Daisy Chain典型应用场景 │
│ │
│ 场景1: 车身侧面摄像头串联 │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 前保险杠摄像头 A柱摄像头 B柱摄像头 C柱摄像头 后视摄像头 │ │
│ │ │ │ │ │ │ │ │
│ │ └────────────┴───────────┴───────────┴──────────┘ │ │
│ │ │ │ │
│ │ ↓ │ │
│ │ Zone Controller │ │
│ │ │ │
│ │ 优势: 沿车身一侧布线,减少横跨车身的长线缆 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 场景2: 环视摄像头串联(不推荐用于ASIL-B+应用) │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ 前视 │ │
│ │ │ │ │
│ │ 左视───┼───右视 │ │
│ │ │ │ │
│ │ 后视 │ │
│ │ │ │ │
│ │ ↓ │ │
│ │ 控制器 │ │
│ │ │ │
│ │ 如果用Daisy Chain: 前→左→后→右→控制器 │ │
│ │ 问题: 任一链路故障导致多路丢失 │ │
│ │ 建议: 环视使用星型拓扑(每路独立) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 场景3: 显示屏串联 │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ HPC → 仪表盘显示 → 中控显示 → 副驾显示 → 后排显示1 → 后排2 │ │
│ │ │ │
│ │ 前向数据: 视频内容 │ │
│ │ 反向数据: 触摸/按键反馈 │ │
│ │ │ │
│ │ 带宽分析: │ │
│ │ 5×1080P@60Hz = 5×3Gbps ≈ 15Gbps │ │
│ │ 需要GMSL3(12G)×2或FPD-Link IV │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
四、Multi-Stream / Multi-Control
4.1 Multi-Stream(多流传输)
4.1.1 基本概念
Multi-Stream指在单一SerDes物理链路上同时传输多个独立的数据流,每个Stream具有独立的时序、格式和控制。
text
┌─────────────────────────────────────────────────────────────────────┐
│ Multi-Stream 概念图 │
│ │
│ 发送端 (Serializer) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ Stream 0 (Camera A - 8MP RAW12) ─┐ │ │
│ │ ┌──────────────────────────────┐ │ │ │
│ │ │ 3840×2160 @ 30fps │ │ │ │
│ │ │ RAW12, VC0 │ ├───┐ │ │
│ │ │ Embedded Data, VC1 │ │ │ │ │
│ │ └──────────────────────────────┘ │ │ │ │
│ │ │ │ ┌───────────┐ │ │
│ │ Stream 1 (Camera B - 2MP YUV) ──┤ ├──→│ Multi- │ │ │
│ │ ┌──────────────────────────────┐ │ │ │ Stream │ │ │
│ │ │ 1920×1080 @ 60fps │ ├───┤ │ Mux │──│────→ SerDes
│ │ │ YUV422, VC2 │ │ │ │ │ │ │ Link
│ │ └──────────────────────────────┘ │ │ └───────────┘ │ │
│ │ │ │ │ │
│ │ Stream 2 (Radar Data) ──────────┤ │ │ │
│ │ ┌──────────────────────────────┐ │ │ │ │
│ │ │ Point Cloud, 100Mbps │ ├───┘ │ │
│ │ │ Custom Format, VC3 │ │ │ │
│ │ └──────────────────────────────┘ │ │ │
│ │ │ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ 接收端 (Deserializer) │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ ┌───────────┐ │ │
│ │ SerDes ───────────────→│ Multi- │───→ Stream 0 → SoC │ │
│ │ Link │ Stream │ (CSI-2 Port A) │ │
│ │ │ Demux │ │ │
│ │ │ │───→ Stream 1 → SoC │ │
│ │ │ │ (CSI-2 Port B) │ │
│ │ │ │ │ │
│ │ │ │───→ Stream 2 → MCU │ │
│ │ └───────────┘ (SPI/I2C) │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
4.1.2 Multi-Stream vs Multi-VC
text
┌─────────────────────────────────────────────────────────────────────┐
│ Multi-Stream 与 Multi-VC 的区别 │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Multi-VC (Virtual Channel) │ │
│ │ │ │
│ │ - CSI-2协议层面的逻辑通道 │ │
│ │ - 同一CSI-2物理端口内的复用 │ │
│ │ - 所有VC共享相同的CSI-2 PHY时序 │ │
│ │ - 同步: VC间天然同步(同一Frame Start/End) │ │
│ │ - 数量: CSI-2 v2限制4个,v3支持16个 │ │
│ │ │ │
│ │ 适用场景: │ │
│ │ - 同一Sensor的多重曝光(HDR) │ │
│ │ - 主图像+元数据 │ │
│ │ - RGB+IR双通道 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Multi-Stream │ │
│ │ │ │
│ │ - SerDes链路层面的独立数据流 │ │
│ │ - 可能来自不同物理源(不同Sensor/设备) │ │
│ │ - 每个Stream可有独立的时序和帧率 │ │
│ │ - 同步: 需要额外的同步机制(FSYNC) │ │
│ │ - 数量: 取决于SerDes芯片设计(通常2-8个) │ │
│ │ │ │
│ │ 适用场景: │ │
│ │ - 多个独立Camera聚合 │ │
│ │ - Camera + Radar融合传输 │ │
│ │ - 视频 + 控制数据复用 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 关系: │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Multi-Stream可以包含Multi-VC │ │
│ │ │ │
│ │ Stream 0: Camera A │ │
│ │ ├─ VC0: Long Exposure ← Multi-VC within Stream 0 │ │
│ │ ├─ VC1: Short Exposure │ │
│ │ └─ VC2: Embedded Data │ │
│ │ │ │
│ │ Stream 1: Camera B │ │
│ │ └─ VC0: RGB Image │ │
│ │ │ │
│ │ Stream 2: Control Data │ │
│ │ └─ (非视频流,无VC概念) │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
4.1.3 Multi-Stream带宽调度
text
┌─────────────────────────────────────────────────────────────────────┐
│ Multi-Stream 带宽调度策略 │
│ │
│ 总链路带宽: 12 Gbps (GMSL3) │
│ │
│ 策略1: 静态带宽分配 │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 12 Gbps │ │
│ ├──────────────────────┬─────────────────┬────────────────────┤ │
│ │ Stream 0: 6 Gbps │ Stream 1: 4 Gbps │ Stream 2: 2 Gbps │ │
│ │ (8MP Camera) │ (2MP Camera) │ (Radar/Control) │ │
│ │ 50% │ 33% │ 17% │ │
│ └──────────────────────┴─────────────────┴────────────────────┘ │
│ │
│ 策略2: 动态优先级调度 │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 高优先级 Stream (Safety-Critical): │ │
│ │ - 前视摄像头数据 → 保证带宽,低延迟 │ │
│ │ - 触发条件下优先传输 │ │
│ │ │ │
│ │ 中优先级 Stream (Normal): │ │
│ │ - 环视摄像头数据 → 尽力传输 │ │
│ │ │ │
│ │ 低优先级 Stream (Best-Effort): │ │
│ │ - 诊断数据/日志 → 空闲时传输 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ 策略3: 时分复用(TDM) │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ 时间片: 100μs │ │
│ │ │ │
│ │ ┌──────┬──────┬──────┬──────┬──────┬──────┬──────┬──────┐ │ │
│ │ │ S0 │ S0 │ S1 │ S0 │ S0 │ S2 │ S0 │ S0 │ │ │
│ │ │ 50μs │ 50μs │100μs │ 50μs │ 50μs │100μs │ 50μs │ 50μs │ │ │
│ │ └──────┴──────┴──────┴──────┴──────┴──────┴──────┴──────┘ │ │
│ │ ↑______ 400μs cycle ______↑ │ │
│ │ │ │
│ │ S0获得: 200μs/400μs = 50%带宽 │ │
│ │ S1获得: 100μs/400μs = 25%带宽 │ │
│ │ S2获得: 100μs/400μs = 25%带宽 │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
4.2 Multi-Control(多控制通道)
4.2.1 基本概念
Multi-Control指在SerDes链路上同时支持多个独立的控制通道,用于管理和配置链路两端的多个设备。
text
┌─────────────────────────────────────────────────────────────────────┐
│ Multi-Control 架构 │
│ │
│ HPC / SoC 端 远端模块 │
│ ┌─────────────────────────┐ ┌─────────────────────┐ │
│ │ │ │ │ │
│ │ I2C Master 0 ─────────│──Control 0──→│── I2C Slave │ │
│ │ (Sensor 0配置) │ │ (ISP Sensor 0) │ │
│ │ │ │ │ │
│ │ I2C Master 1 ─────────│──Control 1──→│── I2C Slave │ │
│ │ (Sensor 1配置) │ │ (ISP Sensor 1) │ │
│ │ │ │ │ │
│ │ I2C Master 2 ─────────│──Control 2──→│── I2C Slave │ │
│ │ (EEPROM/其他) │ SerDes │ (EEPROM) │ │
│ │ │ Link │ │ │
│ │ SPI Master ───────────│──Control 3──→│── SPI Slave │ │
│ │ (Firmware下载) │ │ (Flash) │ │
│ │ │ │ │ │
│ │ GPIO Controller ──────│──Control 4──→│── GPIO Pins │ │
│ │ (FSYNC/LED/Reset) │ │ (Trigger/LED) │ │
│ │ │ │ │ │
│ │ Interrupt Handler ←───│──Control 5──←│── IRQ Pins │ │
│ │ (Error/Event) │ │ (Alert/Status) │ │
│ │ │ │ │ │
│ │ Deserializer │ │ Serializer │ │
│ └─────
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐


所有评论(0)