自动驾驶中camera方案(三)max96712
本文为本人调试过程中记录,如果不对地方欢迎讨论:853906167@qq.com
概述:
- 将GMSL2/GMSL1的串行输入转换成MIPI CSI-2 的D-PHY/C-PHY接口输出
- 正向视频传输正在进行中时,同时允许每个链路传输双向控制通道数据
- MAX96712可以接收多达四个远端传感器,使用行业标准的同轴电缆(COAX)或双绞线(STP)互连
- 每一个GMSL2串行链路以固定正向速率3Gbps或6Gbps,反向187.5Mbps运行
- 在GMSL1模式下,MAX96712可以与第一代3.12Gbps或1.5Gbps GMSL1序列化器配对,或在GMSL1模式下与GMSL2序列化器一起运行在3.12Gbps速率
- MAX96712支持视频数据的聚合和复制,使来自多个远程传感器的流能够被组合并路由到一个或多个可用的CSI-2输出
- 数据也可以基于虚拟通道ID路由,使得来自单个GMSL输入的多个流可以独立路由到不同的CSI-2输出
- 来自多个传感器的数据也可以同步并组合在一个单一的使用帧拼接的复合超帧中并输出到该CSI-2流中
- CSI-2接口支持2个4通道和4个2通道配置(C-PHY或D-PHY)
- 多种通信接口支持,i2c/uart/spi
- 支持高达15m的同轴电缆
- 支持RAW8/10/12/14/16/20,RGB565/666/888,YUV422 8/10位格式
- 符合ASIL-B标准(GMSL2)
简要框图:

note:
- 四条链路各自独立配置
- 例如将 Link A 设置为 GMSL2、Link B/C/D 设置为 GMSL1
- 输入端口通常连接 PORTA 至 PORTD 的四条链路;此外这些链路也可统称为 linkA 至 linkD
- 输出 CSI-2 共8条通道;根据之前的设置方式可以分为两种:一种是将 PORTA 和 PORTB 分别连接到两个 GMSL1(共 4 条通道);另一种是将 PORTC 和 PORTD 连接到一个 GMSL1 和 PORTE/PORF 连接到另一个 GMSL1
- 关于控制与视频数据路由器的详细信息将在后续部分分别介绍 GMSL1 和 GMSL2 方面的内容
1.CFG0/CFG1起始默认配置
CFG0 Input Map: ----i2c地址起始配置
**

**
note : R1 connects to VDDIO, R2 connects to GND
详细配置信息如图所示。具体来说, 其device_address设置为**{D6}**(二进制形式: 110\!P\!4\!Q\!S\!R), 取其高位七位后得到的地址即为{6B}(二进制形式: 8!D!P!S)。
specifically,在i2c协议中, start signal的下一个字节包含了特定信息,其中前7 bits用于地址编码,末位是read/write bit,0表示写入操作;1则表示读取操作。

CFG₀配置设定了上电时的默认I₂C地址。通过在Default Address寄存器( DEV_ADDR )中设置当前值(当前值为 ) ,可以修改I₂C总线地址。本项目的实际操作中使用的数值设定为 ** (十进制:) ,因此在完成上述操作后, 实际连接到系统中的I₂C总线设备将使用新的Default Address值(即 ** (十进制:) ,十六进制表示:$ )。
CFG1 Input Map: ----GMSL模式默认配置
**

**
可参考上方所示的CFG1电路图。可以看出我们的上电预设配置如图中标示。COAX/GMSL1/HIM Eanbled
COAX : Coaxial Cable,同轴电缆线,是一种电线及信号传输线
STP : Shielded Twisted Pair,屏蔽双绞线,是一种被广泛应用于数据传输的高性能的铜制双绞线
2.典型应用场景框图
4个传感器聚合,一个CSI-2输出: 我们使用该场景方案
**

**
GMSL1与GMSL2的视频管道框图设计:对于GMSL1的视频管道线路布局来说,并不具备可重新配置的特点,在实际应用中必须按照固定的连接方式进行设置;其中port A连接到 PIPE 0, port B连接到 PIPE 1,依此类推;而 GMSL2 的视频管道配置相对更为灵活复杂,在设计初期建议参考 MAX96712 手册进行深入研究以确保系统性能达到最佳状态
**

**
note:
GMSL1:
GMSL1 video pipe线路固定,不可随意组合,portA对应PIPE0,依次类推
GMSL1,GMSLA----PIPE0,GMSLB----PIPE1,GMSLC----PIPE2,GMSLD----PIPE3
GMSL2:
内部的链路具有灵活的组合能力,并且其配置方案较为复杂;然而,在遵循相关标准(如ASIL-B)时,则必须严格限定在GMSL2模式下进行配置。
incoming pipes:
每个GMSL2输入最多可连接4个 incoming PIPES(PIPEX, PIPEY, PIPEZ, PIPEU),然而总的 incoming pipes最大为8个
internal data pipes:
整个系统支持最多8个internal data pipes,任何incoming pipes能够路由到任何一个internal pipe
All pipes can route to any aggregator
each aggregator can feed any csi controller
3.重要寄存器配置
1.REG0 (0X00) 设备i2c地址配置
设备地址:0x6b 寄存器地址:0x00 0x00 配置值:0x90
通过上图可知,在CFG0配置下,默认地址设置为0x6b;经过对0x90地址的转换处理后变为0x48。因此,在后续操作中将依赖于该转换后的有效地址位置(即0x48)。

2.REG6 (0X06) PORT A/B/C/D GMSL模式和使能配置
设备地址:0x48 寄存器地址:0x00 0x06 配置值:0x00前期,后期使能相应的位,如使能portA,0x01

第4至第7位:需要对-linkA至-linkD进行配置以确定它们的工作状态是处于gmsl1还是gmsl2的位置,并且可以选择独立设置其中-linkA的位置于gmsl2位置,其余链接则分配至gmsl1位置
根据需求分别控制第0、1、2、3位的状态,在前期阶段所有位均处于禁用状态,在后期阶段可以选择全部启用这些位或者仅启用特定的位如PORTA,并将它们设置为0x01
**3.REG26 (0X10),****REG27 (0X11)**PORT A/B/C/D 数据和控制信号速率配置
设备地址:0x48 寄存器地址:0x00 0x10 配置值:0x11

将reg26与reg27分别设置为十六进制数0x11后,在此基础之上可得出结论:由此导致PORT A、B、C、D各端口的数据接收速率达到30.48 Gbps(即3Gbps),而控制信号发送速率为每秒约187.5 Mbps;若某一路link需配置为gmsl类型,则其相应的数据接收速率为60.48 Gbps
**4.GMSL1_6(0xB06,0xC06,0xD06,0xE06)**PORT A/B/C/D工作模式配置
设备地址:0x48 寄存器地址:0x0B 0x06 配置值:0xef


因为我们的96712是和96705串行器搭配,所以这三位配置为111
GMSL2的通道不能配置这个寄存器
5.VIDEO_PIPE_EN(0xF4)PIPE通道使能配置
设备地址:0x48 寄存器地址:0x00 0xF4 配置值:0x0F


因为我们使用的是4路link,所以使能PIPE0-PIPE3
**6.BACKTOP15/BACKTOP16(0x40E,0x40F,0x410)**PIPE0-PIPE3通道数据格式配置
设备的地址设置为 0x48;寄存器的起始地址至结束地址设定为 0x40E 至 0x410;配置值部分建议设置为 YUV422 8 bits。

这三个传感器除了 soft_dt_1_h 位于地址 0x40E 的前五位外(其中 soft_dt_1_h = 0x5e ),即前五位对应的是YUV422 8bits的形式;其他如 PIPE_1 等传感器则需要将两个寄存器结合起来查看数据格式
0x40E: 我们配置为0x5e


0x40F: 我们配置为0x7e


0x410: 我们配置为0x7a


**7.BACKTOP12/BACKTOP18/BACKTOP19(0x40B,0x411,0x412)**PIPE0-PIPE3通道bpp(bits per pixel)格式配置

必须确保bpp设置与数据类型一致,并举例说明我们采用的数据类型是0x1e(即YUV422 8-bit),因此对应的bpp值应为0x10(每个像素占用16个bit位)。
8.MIPI_PHY0(0x8A0)MIPI PHY工作模式配置
设备地址:0x48 寄存器地址:0x08 0xA0 配置值:0x04

如上图0x04的配置对应为MIPI PHY配置为2个4 lane phy模式
