基础域控摄像头部分底软包括环视摄像头、前视摄像头控制,主要基于地平线sdk以及纵目软件进行二次开发
环视摄像头软件设计
需要实现上下电控制,内参获取、热插拔、25fps抽10fps获取温度等诊断信息以及关键的开关流和帧信息。
其中大部分功能在sdk中已经设计好了接口,直接调用并且稍加处理即可。mcu给摄像头上电后,对srdes初始化,并使使能mipi output。接下来便将IIC控制权交给soc。
环视的bypass快速出图就是serdes的映射,实现不经过soc的帧传输。
- 核心技术原理:SerDes 重定向
传统的环视链路通常是:摄像头 -> Deserializer -> SoC (MIPI CSI) -> GPU/硬件合成 -> 显示输出。
在冷启动过程中,SoC的 Linux/QNX 系统启动较慢(通常 10-20s),无法满足法规要求的 2s 内出图。
SerDes 重定向方案利用解串器(Deserializer)芯片的硬件特性:
物理链路分离:Deserializer 拥有多个输出端口或具备数据包复制功能。它将来自摄像头的视频流分为两路:- Main Path:送到 SoC 的 CSI 接口,供正常行车时的算法处理。
- Bypass Path:通过另一组 MIPI 接口直接送到显示控制器(DI)或专用的显示芯片,绕过 SoC 的主 CPU 和系统内核。
- 软件层面的实现细节
实现 Bypass 快速出图,底软通常需要完成以下二个层面的协同:
A. 引导加载阶段(Bootloader/SPL)
- 微秒级配置:在 SoC 的引导程序(如 U-Boot 或更早的 SPL)阶段,通过 I2C/I3C 快速初始化 Deserializer 和后端的串行器。
寄存器预设:直接下发 Hard-coded 的配置参数,不等待 OS 驱动加载。此时只初始化倒车影像所需的单个摄像头(通常是后视)以节省时间。
B. 安全处理器(MCU/Island)介入
控制权接管:现代域控通常带有一个独立的 MCU(如 Infineon TC397 或 SoC 内部的 Safety Island)。
由于主 SoC 未启动,MCU 通过 I2C Proxy 代理或直接总线控制,完成视频显示通道的切换(Mux Switch),将显示器的输入源强制切换到 SerDes 的 Bypass 输出端。