• 图像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图像调试经验分享

  • 相关阅读:
    jQuery动态效果
    10.嗖嗖移动业务大厅
    10.IDEAD 的xml中配置DTD
    浏览器缓存相关的Http头介绍:Expires,Cache-Control,Last-Modified,ETag
    nginx 重启
    fiddler 路由设置
    JavaScript Source Map 详解
    xdebug.var_display_max_data
    PHP输出当前进程所有变量 / 常量 / 模块 / 函数 / 类
    PHP中文件包含的路径问题
  • 原文地址:https://www.cnblogs.com/y4247464/p/16028864.html
Copyright © 2020-2023  润新知