05_MIPI摄像头驱动程序分析#
参考资料:
内核源码:
drivers\media\usb\uvc\uvc_driver.c
全志 芯片 Linux MIPI CSI摄像头接口开发指南:https://blog.csdn.net/thisway_diy/article/details/128459836
瑞芯微rk3568平台摄像头控制器MIPI-CSI驱动架构梳理:https://zhuanlan.zhihu.com/p/621470492
MIPI、CSI基础:https://zhuanlan.zhihu.com/p/599531271
全志T7 CSIC模块:https://blog.csdn.net/suwen8100/article/details/116226366
全志在线文档:https://v853.docs.aw-ol.com/soft/soft_camera/
参考源码: https://gitee.com/juping_zheng1/v85x-mediactrl
1. 术语#
术语 |
解释 |
---|---|
AE(Auto Exposure) |
自动曝光 |
AF(Auto Focus) |
自动对焦 |
AWB(Auto White Balance) |
自动白平衡 |
3A |
指自动曝光(AE)、自动对焦(AF)和自动白平衡(AWB)算法 |
Async Sub Device |
在Media Controller结构下注册的V4L2异步子设备,例 |
Bayer Raw(或Raw Bayer) |
Bayer是相机内部的原始图片,一般后缀为.raw |
CIF |
Rockchip芯片中的VIP模块,接收Sensor数据并保存到内存中,仅转存数据,无ISP功能 |
DVP(Digital Video Port) |
一种并行数据传输接口 |
Entity |
Media Controller架构下的各节点 |
Frame |
帧 |
HSYNC |
行同步信号,HSYNC有效时,接收到的信号属于同一行 |
IOMMU(Input Output Memory Management Unit) |
Rockchip芯片中的IOMMU模块,用于将物理上分散的内存页映射成CIF、ISP可见的连续内存 |
IQ(Image Quality) |
指为Bayer Raw Camera调试的IQ xml,用于3A tunning |
ISP(Image Signal Processing) |
图像信号处理 |
Media Controller |
Linux内核中的一种媒体框架,用于拓扑结构的管理 |
MIPI-DPHY |
Rockchip芯片中符合MIPI-DPHY协议的控制器 |
MP(Main Path) |
Rockchip芯片ISP驱动的一个输出节点,一般用来拍照和抓取Raw图 |
PCLK(Pixel Clock) |
指Sensor输出的Pixel Clock |
Pipeline |
Media Controller架构的各Entity之间相互连接形成的链路 |
SP(Self Patch) |
Rockchip芯片ISP驱动的一个输出节点 |
V4L2(Video4Linux2) |
指Linux内核的视频处理模块 |
VICAP(Video Capture) |
视频捕获 |
VIP(Video Input Processor) |
在Rockchip芯片中,曾作为CIF的别名 |
VSYNC |
场同步信号,VSYNC有效时,接收到的信号属于同一帧 |
2. 硬件框架#
2.1 接口#
本文参考:https://zhuanlan.zhihu.com/p/599531271,作者”一口Linux”。
MIPI包含有很多协议,比如显示设备接口、摄像头设备接口、存储设备接口等等。
经常用到的有显示设备接口、摄像头设备接口。
显示设备接口又可以分为:并行接口、串行接口。并行接口又可以分为DBI、DPI。串行接口简称DSI。
摄像头设备接口常用串行接口CSI,它可分为CSI-2、CSI-3,目前常用的是CSI-2。对于CSI-2,它的物理接口分为D-PHY、C-PHY,目前常用的是D-PHY。(DSI使用的物理接口也是D-PHY)。
D-PHY接口引脚示例如下:
2.2 硬件结构#
D-PHY接口典型图例如下:
对于摄像头,D-PHY接口仅仅是用来传递数据:
摄像头发送数据,它被称为:CSI Transmitter
主控接收数据,它被称为:CSI Receiver
主控通过I2C接口发送控制命令,它被称为:CCI Master(CCI名为Camera Control Interface)
摄像头接收控制命令,它被称为:CCI Slave
摄像头通过CSI接口,仅仅是传递数据给主控,主控还需要更多处理,如下图:
有哪些处理?
根据全志V853芯片资料,可以看到下图:
它的处理过程分为:
输入Parser:格式解析
ISP:Image Signal Processor,即图像信号处理器,用于处理图像信号传感器输出的图像信号
VIPP: Video Input Post Processor(视频输入后处理器),能对图片进行缩小和打水印处理。VIPP支持bayer raw data经过ISP处理后再缩小,也支持对一般的YUV格式的sensor图像直接缩小。
摄像头数据处理的完整硬件框图如下(以全志为例):https://v853.docs.aw-ol.com/soft/soft_camera/
可以跟瑞芯微的对比一下:https://zhuanlan.zhihu.com/p/599531271