图像sensor的特性和驱动解析

 

并口,LVDS,MIPI,GMSL

1、并口

(1)OV9712和AR0130都是并口的
(2)并口的接口定义:参考AR0130的原理图pdf
(3)并口传输的是CMOS电平信号(重点是非差分)
(4)并口sensor属于较低端老旧的,新型高像素的都是MIPI/LVDS/HISPI等差分信号的


2、LVDS

(1)low voltage differential signal,低电压差分信号
(2)接口由1组差分clock和若干组差分信号线组成,输出串行数据信号
(3)LVDS主要用于视频传输的2个领域:camera和主控、LCD和主控
(4)LVDS利用差分抗干扰能力,提升clock频率从而提升带宽,传输距离也更远
(5)LVDS的数据线组数越多带宽越大、clock频率越高带宽越大(牺牲抗干扰和距离)
(6)并口和LVDS之间可以互转,但是需要专门的电平转换芯片(类似于232和485)


3、MIPI(MIPI-CSI2)

CSI -- 相机串行接口   DSI -- 显示串行接口
(1)MIPI: mobile industry processor interface,移动工业处理器接口
(2)MIPI接口由1组差分clock和1-4组差分信号线组成
(3)MIPI和LVDS虽然都是差分对信号,但是不兼容,不能直接对接
(4)MIPI的架构层次更分明,广泛应用在手机平板等领域中,可以认为MIPI是LVDS的升级版
(5)MIPI的数据线组数越多带宽越大、clock频率越高带宽越大(牺牲抗干扰和距离)
(6)MIPI和LVDS和并口之间均可以互相转换,但是需要专门的电平转换芯片

4、GMSL

GMSL(Gigabit Multimedia Serial Link),是串行器和解串器构成的传输链路。
串行器是为了将ISP处理过的并行信号传输到远端(域控制器)。解串器在接收端(域控制器)。
并行传送要求同一时序输出与接收信号,而过分提升时钟频率会导致时序错乱,信号线间干扰。因此,并行方式难以实现高速化。只有将并行数据串行化,才能够远距离且高速的传输数据。

5、总结

(1)老旧的、低端的、数据量小的就用电平信号;新的、高端的、数据量大的都用差分信号
(2)要通信,物理层、协议层、应用层都得能对接才行。
(3)因为历史原因,很多行业会使用不同的接口标准,必要时需要去互相转换


Sensor接口引脚复用设置
查看引脚定义框图,找到相应设置寄存器,使用himm工具写寄存器

在编译文件系统时,会在加载驱动的脚本中对sensor的寄存器进行设置,使用himm工具直接写寄存器,比如设置管脚复用(MIPI,i2c),时钟频率(sensor,I2c, vi...)等

什么是sensor?

sensor是一个很多功能模块的集合。sensor接收光子,通过光电转换,将光信号转化为模拟量的电信号,然后通过模数转换模块,将模拟信号转换为电信号。如果sensor内置isp模块,会将数字信号做简单的处理。处理过的信号通过sensor的接口(比如,并口,LVDS,MIPI, GMSL)将数据传输到SOC。

ISP

ISP模块:ISP的实现可以在sensor内置,主SOC内置或外接ISP芯片。
ISP的作用:去坏点(去掉sensor中坏点数据),去噪(去除噪声),demosaic(raw数据转为RGB数据),3A(自动白平衡,自动对焦,自动曝光),gamma(亮度映射曲线,优化局部与整体对比度),旋转(角度变化),锐化(调整锐度)等。

ISP的图像质量调节及控制逻辑:

 

 

 

海思的sensor驱动框架

海思平台的sensor驱动主要工作在应用层,特定类型的sensor驱动会以库的形式链接进应用程序中。(好处是灵活,对sensor进行更换或修改时,不需要重新编译内核。当然效率没有内核层驱动高。)
在系统初始化时,使用注册回调的机制,都向 ISP 库和 3A 算法库注册sensor控制函数,这些函数都以回调函数的形式存在。通过接口来初始化sensor,控制sensor,比如调节曝光时间,模拟增益,数字增益等。这些回调函数是底层的i2c驱动读写sensor寄存器来操作硬件的。

海思的体系中把sensor和3A、ISP实现为:指针挂接注册的各自独立模块

 

海思ISP质量调节

Hi3518 + AR0130

确认硬件,确保sensor电源干净
这一步非常重要,这一步没有搞好, 后面都是白费力气。因为电压纹波比较大会影响sensor像素点电荷波动,导致噪点变大,出现亮暗横纹竖纹。

原理:sensor的AVDD电压是sensor像素点电荷积累的供给电压,这个电压纹波比较大的话直接影响sensor像素点电荷积累波动,导致图像噪点大,亮暗横纹,竖纹。
测试方法:
1)用示波器测量sensor AVDD输入电压,纹波要在100mv内,电压值等于sensor手册标称值。
2)把曝光值设置到最大,增益设为64倍,把镜头盖在桌上,使图像变黑,此时画面是全黑的,如果上面有闪白点,那么说明sensor电源有问题。
3)慢慢的把镜头翘起一点,让一点点光通过,此时画面变亮,这个过程中仔细观察是否有亮暗横纹闪烁。

 硬件没问题了,那么就可以使用PQ工具调软件了。

 低照度效果调试:

     夜视效果要求:在无城市光源的夜间环境下,在50米开外,能识别出人的轮廓,在通过图像增强后,通过神经网络能识别出人形。
     首先布置一个黑环境,由于没有实验室环境,只能等到下班后,将灯光关闭,调试。实际调试在远郊测试。
    1、然后把曝光打到最大(一帧最大行-2),提高sensor模拟增益和ISP增益,使亮度比别人亮一点,一般模拟增益在16到32倍之间,然后再考虑ISP增益,总增益一般不超过64倍。增益太高等下后面噪点很难压下去。
     2、现在满屏都是噪点
     3、调整Sharpen,调整到一个比较高的清晰度,还有噪点没关系,清晰度优先。
     4、调整3D NR参数,可以先调节空域滤波相关参数,使静态画面下的雨点噪声安静下来,单数画面出现移动物体就会出现拖影。适当降低空域滤波,增强时域滤波。控制变量,最终能调节到一个无拖影,去噪效果最优的3D参数。
     5、选一个通透性好的Gamma曲线,把DCI功能开到最大,
     6、如果图像暗的地方有偏色可以调整sensor的黑电平或者ISP的黑电平改善
         (当光线很暗时,模拟信号很弱,有可能不会被AD转换出来,因此丢失细节。所以在AD转换前,会给模拟信号一个固定的偏移量(即黑电平),以此来保留更多细节。调节黑电平不影响信号的放大倍数,而仅仅是对信号进行偏移)

     7、此时图像一般还有噪点,接下来就是微调各个模块的参数,无限循环上面2到7步,优先保证清晰度无噪点,通透度,亮度可以放低点。

以上参考: Hi3518EV200图像调试经验分享

 

posted @ 2022-03-20 02:39  朱果果  阅读(2373)  评论(0编辑  收藏  举报