Camera和Image sensor技术基础笔记(10) -- sensor器件适配需要注意的地方

        本篇笔记为一个简单总结,主要为了说明一下在软件项目中对于新的sensor器件适配所需要注意的点(个人经验,仅供参考)。

数据手册

        一般通过FAE拿到器件手册。拿到手册后重点查看:

        sensor的管脚描述,主要是时钟,GPIO,电源等重要管脚描述

        sensor的硬件上电时序,一般来说sensor会有一个XSHUTDOWN或类似的信号线来控制芯片的power up,这根信号线通过主机端来控制。

        sensor的启动流程。重点关注sensor内部的状态机,如何切换状态机。

        sensor的寄存器。很多sensor的寄存器都会划分为静态配置访问和动态配置访问两大类,部分sensor会分的更细,比如boot read和standby状态下能访问的寄存器也不一样。分清除哪些是静态,哪些是动态,什么情况下哪些寄存器的值会生效对于软件代码非常重要。一般来说,对于行长,PLL等的设置都是静态的,动态的配置一般针对积分时间,模拟增益,数字增益等。

        sensor的工作时序。了解sensor的工作时序,理清楚如何设置行长,帧长,以及它们和帧率的关系等,曝光参数和增益参数的上下限等。每个厂家的sensor这块都会略有不同。本笔记总结几个常见的概念:

行长(line length)

表示一行的长度,一般按照像素为单位。

有些sensor厂家会用HTS相关参数表示,具体意义需要和厂家确认

注意:行长包括了实际一行的有效像素以及horizontal blanking

从原理上讲,控制帧率可以通过对行长控制来实现,但是通过这个参数控制帧率比较麻烦,一般来说手册里会建议用户配置行长为一个推荐的最小值(根据ADC的精度而定),帧率的控制一般通过帧长来实现较为容易。

帧长(frame length)

表示一帧的长度,以行为单位。

某些sensor厂家会用VTS相关参数表示,具体意义需要和厂家确认

注意:帧长包含了实际的有效行数以及vertical blanking

行时间(line time)

一行数据的时间,和行长相关,其关系如下:

line_time = line_length / pixel_clock

pixel clock是像素时钟频率

1/pixel_clock就是扫描一个像素的时间

积分时间(integration time)

一般可以认为是曝光行数(exposure lines)的表达,

用来控制曝光时间

曝光时间(exposure time)

有些sensor厂家也写为exposure interval

表示一帧数据曝光的总时间,sensor里配置曝光时间的寄存器,一般以行为单位计算。

因此

exposure time

   = line_time *  integration_time

   = line_length / pixel_clock * integration_time

        另外,对于有多sensor同步需求的场景(如作为slave角色的sensor),需要从数据手册里找到相关控制寄存器(一般是GPIO或I2C命令同步)。如果要控制闪光灯,找到strobe相关控制的寄存器。

原理图

        原理图中对软件来讲,最重要的关注点有:

        控制sensor电源开关的信号线,一般为GPIO控制,需要理清连接关系以便写sensor的上下电代码。

        如果有做多sensor同步需求的场景,搞清楚trigger方式,如果使用GPIO做触发,搞清楚使用的GPIO管脚。

软件接口实现

        根据原理图,配置好相关的GPIO管脚功能。

        初始化好sensor的输入时钟。

        按照sensor上电要求编写代码,一般是通过对电源开关GPIO管脚进行控制,完成硬件上电操作。

        配置好sensor的时钟相关参数(如PLL分频、倍频参数)

        加载默认模式下的(例如800*600, 30fps,HDR on)sensor参数配置,一般来说FAE会提供不同分辨率,不同模式下的预设寄存器配置表。

        编写上层需要提供start/stop sensor的接口,目的是让sensor进入和退出streaming状态

        编写曝光控制,增益控制,白平衡,暗电流相关控制接口

        

  • 0
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亦枫Leonlew

希望这篇文章能帮到你

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值