- 需求分析
赛格导航项目需要利用GM620s模组上实现同时打开4个摄像头进行预览,摄像头不是通用的MIPI接口,而是CVBS接口,中间需要经过N4芯片将模拟CVBS信号转换成MIPI信号输出。每个摄像头最大像素200万,本身不需要I2C控制,由于自带ISP,只要上电,就会有数据输出。
- 总体设计
通过需求,设计出整体框图如下,N4的4路视频输入,每个摄像头200万,摄像头自带ISP;4路输出全部是mipi接口,连接到GM620s上。
视频输出采用mipi dsi,使用芯片LT8912将mipi转换成HDMI进行显示。
本文主要介绍整体方案的前端的视频采集部分。
- 软件实现
由于高通本身框架只支持raw sensor的点亮,并且在该框架下,摄像头连接在2组mipi总线上,最多只能同时打开两个摄像头,而将4路摄像头接到一组mipi总线上,高通本身的框架并不支持。因此需要借助mipi的虚拟通道,来实现图像数据的读取。
由于摄像头本身只需要上电就会输出,而不需要和普通raw sensor一样去写寄存器,因此,无法使用高通的框架直接去控制摄像头。因此,需要将N4芯片当做一个sensor去点亮,而且只能点亮一路摄像头。
由于N4芯片在整机上电后就会上电,因此不需要单独上电。而对应的4个CVBS摄像头需要单独上电,因此上电时序可以加入到camera流程中。具体硬件原理图如下所示:
从上图可以看到,摄像头上电是通过GPIO控制,因此只需要在设备树填入对应的gpio pin number。由于mipi接口连接在CSI2上面,所以设备树配置信息需要配置在slot2上,具体如下: