CMOS图像传感器培训
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• Lag在手机图像上表现: 1.晃动时拖影严重,灯管高亮区域拖出绿色 2.高亮四周较暗区域图像分层明显,暗区域偏绿
14
太阳黑子
• 太阳黑子指的是拍照高亮物体时,在高亮区域反而出现黑 色的斑点,这是由于光照太强pixel不能有效工作引起的, 在sensor中都做相应的校正功能,可以消除该现象。
Sp2508 太阳黑子校正寄存器
800.00 Mean Output (mV) 600.00 400.00 200.00 0.00 0 0.5 1 1.5 2 Exposure (lux*sec) 2.5 3
Gr R B Gb
左图为实际某 sensor 的pixel输 出电压的测试结果
源自文库
3
Pixel结构
• • • •
• 分辨率
VGA,640*480; 2M,1600*1200 5M,2592*1944 · · · · · ·
FSI (Front Side Illumination) BSI (Back Side Illumination) Color filter Micro-lens
• Position(定义颜色位置) • 行 row & 列 column
!
通常长方向为行,短方向为列,在调试中一定要正确区分,因为行列噪声或行列线 出现问题的原因是完全不一致的!
拍照切换
当预览和拍照采用不同参数时,需要注意blacklevel控制寄存器的修改,因为拍照时 间很短,不可能有很多帧来统计blacklevel,因此要求把拍照参数中的blacklevel改为 1帧统计。
13
Image Lag
• Image lag即图像残留,在每个pixel曝光前都需要把上一次曝光产生 的信号抹除(复位),然后再进行新一帧图像的曝光。当复位时间太 短或者其他原因造成复位不完全,那么下一次的曝光读出就包含了上 一帧残留的信号,并且不同亮度区域残留的信号量不同,导致图像反 映的信号量与曝光时间不匹配
11
flicker
• 交流电照明灯发出的光会以一定频率抖动,导致sensor图像出现行方向的水 波纹,称之为flicker。目前主要的交流电频率有50Hz(中国)和60Hz两种。 为了避免出现flicker,要求曝光时间大于base值时必须是base的整数倍。
10000 (行) 行长(us ) 8333 base _ 60hz (行) 行长(us ) base _ 50hz
18 16 14
12
10 8 6 4 2 0
增益的寄存器控制: h’10->1倍 h’20->2倍 ~~ h’f0->15倍 增益调节分为4档 1倍到2倍步长1/16 2倍到4倍步长1/8 4倍到8倍步长1/4 8倍到15.5倍步长1/2 9
频率计算
• PLL频率计算
芯片输入E_clk,通过PLL倍频获得一个很高频率的pll_clk,芯片内部时钟均由pll_clk分频获得, pll_clk的频率由通常由两个寄存器共同配置。
P0:0x2f pll_ctrl_buf 7~0 [6:2] pll_nc [1:0] pll_mc Pll frequency divider control 00--- 1 01--- 2 10--- 4 11--- 8
0x10
P0:0x34
buf_pll_outdiv
1~0
0x01
pll _ clk E _ clk *
!
并口输出时,平台端需要pclk,VSYNC, HSYNC三个信号共同作用来采集 有效的图像数据,并且能准确判断行和帧。
5
Sensor架构及工作流程
• Pixel array
完成光电转换
• 模拟电路
把电信号转换成数字信号
• 数字电路
控制sensor工作,数字信号处理, 根据需要输出不同格式
• MIPI
其中, E _ clk *
pll _ nc 3 (2 pll _ outdiv ) pll _ mc 1
pll _ nc 3 建议在120M~300M之间 pll _ mc 1
!
调试中做降频实验时只需要修改pll_clk即可,内部其它时钟频率 会同步随着pll_clk变化而变化,不能单独修改内部其它时钟频率。
2
光电转换原理
单个pixel结构
PD
图像传感器的作用就是把光信 号转换为电信号并且量化输出
光电转换的输出信号与光照强 度成正比,与曝光时间成正比 Note:光电转换并不是没有限制的,
当电荷累积到一定程度,效率慢慢下降, 最后不再增加,这也是sensor中pixel 有一个最大输出范围的原因。
photo response
如所给参数行长为1158(clk周期个数), 对应clk频率为30M,则
base _ 50hz 10000 10000 (行 ) (行) 259(行) 行长(us) 1158 / 30
!
当出现flicker时,首先要判断曝光时间是否正确,打印曝光寄存器值,看 是否是base的整数倍;如果是base的整数倍,那么就得确认所用的行长和 频率是否正确;如果都正确就需要向研发反映,可能sensor功能异常或者 是行干扰。
Updown和mirror在调试中的另一个作用是用来判断行线和列线产生的原 因,如果是pixel array出现问题,那么行线列线会随着updown和mirror位 置改变,如果是电路工作timing的问题,行线列线位置一般不会变化。
16
Colorbar
• • Colorbar为芯片内部自测试数据,可以用来判断芯片到平台的数据传输正确 性,当出图不正常,颜色异常,偏色,抖动,坏线坏点都应该先看看colorbar 是否正常,判断问题出在哪里 Digital RAW colorbar MIPI也有自己的colorbar
8
Gain
• 增益(gain)分为模拟增益和数字增益
模拟增益指在模拟电路中把pixel输出的电信号进行放大,而数字增益指的电信号完成 模数转换后,把数字信号进行放大(自动增益主要是调节模拟增益)。把信号放大的 作用主要是增加输出图像亮度,而增益越大噪声也会相对更为明显,在实际项目中都 需要根据sensor的具体情况确定最大增益和最小增益。
1使能,0关闭 不同的设置电压
!
如果出现太阳黑子现象,使能寄存器不生效或者 使能后出现列噪时,需要反馈到研发做分析。
15
Updown/mirror
Sensor默认所见即所得,图像显示与人眼看到场景一致。当进行updown 或者mirror时,sensor内部pixel array的输出顺序相应发生变化,第一个 输出pixel颜色发生变化,所以position定义需要调整。
把数字信号以mipi协议格式输出
• 其它辅助电路
如有的sensor带有OTP
6
Sensor的寄存器控制
• Timing
包括sensor内部各个模块的工作时序关系, 时钟频率,工作模式,相关配合关系等
• 模块电路功能控制
包括子模块电路的开关,电气性能调节等
寄存器分为两类,一类为timing控制寄存器,如pll频率控制,hb,vb,全尺 寸或binning等模式选择等等;另外一类寄存器为内部电路性能控制,如 pixel LDO使能,输出电压控制,pad驱动能力等等。
•
帧率计算方法
帧长=有效数据行+vblank行=1225+16=1241行 行长=2316,对应pclk 60M 最大帧率=1/最小帧时间 =1/((2316/60M)*1241)=20.8 fps 当曝光时间大于1帧时,帧率由曝光时间决定,如果曝光时间为200ms,那么帧率就为5 fps。
!
不要单独更改内部clk频率控制寄存器
SP2508 Digital colorbar 使能寄存器
SP2508 MIPI colorbar 使能寄存器
MIPI colorbar
Digital YUV colorbar
17
尺寸和窗口
• Sensor通常都支持比自身全尺寸小的各种格式尺寸输出
如sp2508全尺寸输出为1616*1216,就支持720p(1288*728), 900p(1288*908), 1600HD+(1608*908), 2*2 binning(808*608)等等输出尺寸,通过寄存器控制选择。
12
blacklevel
Blacklevel简单的说就是黑电平,指在dark下pixel的输出值,这个值可能为正亦可能为 负,在正常光照输出时需要减掉blacklevel值。Blacklevel的统计和正常输出时减 blacklevel都在芯片内部实现,可通过寄存器调整。Blacklevel值的统计方法有三种,1 帧统计,4帧统计,8帧统计。
• 默认给出的各尺寸都比标准尺寸大,是为了便于图像的边界处理,有 的平台只需要标准尺寸,就需要同时修改数字输出尺寸寄存器和MIPI 的输出尺寸寄存器
例如之前高通平台认证时要求输出标准尺寸,sp2508全尺寸输出1600*1200; sp5409全尺寸输出2592*1944.
18
尺寸和窗口
sp2508数字尺寸控制寄存器 P2:0x37 P2:0x38 P2:0x39 P2:0x3a P2:0x3b P2:0x3c P2:0x3d P2:0x3e dem_v_start_3msb[2:0] dem_v_start_8lsb dem_v_size_3msb[2:0] dem_v_size_8lsb dem_h_start_3msb[2:0] dem_h_start_8lsb dem_h_size_3msb[2:0] dem_h_size_8lsb 2~0 7~0 2~0 7~0 2~0 7~0 2~0 7~0 Image vertical start 3msb Image vertical start 8lsb Image vertical size 3msb Image vertical size 8lsb Image horizontal start 3msb Image horizontal start 8lsb Image half horizontal size 3msb Image half horizontal size 8lsb 0x00 0x00 0x04 0xc0 0x00 0x00 0x03 0x28
7
ADC
• ADC(Analog to Digital Converter),模数转换器,把模拟信号转换为二进制的数字 信号。如8bit的ADC输出数字码为0~1111 1111(255)。
•
ADC Range即ADC的有效输入范围 如8bit ADC Range=500mv,输入信号大于等于500mv时,转换输出码值为255.
10
帧率计算
• • Pclk,指sensor输出数据的频率,不是pll_clk。通常在给出的usb3.0参数文件名中会包 括pclk的信息,通常说的sp2508 60M参数,就是指pclk 60M。在代码deviceinfo中请注 意填写的频率是否正确。 行长是用来计算曝光时间的,关系flicker和帧率问题,请注意行长对应的频率。如 sp2508 行长1158对应的是内部的dac_clk,如果以pclk计算,则行长为2316,因为所 给sp2508参数中pclk频率为dac_clk的两倍。
2015/03/20
SuperPix Confidential
1
Outline
• • • • • • • • • 光电转换原理 Pixel结构 曝光方式 Sensor架构及工作原理 Sensor的寄存器控制 ADC Gain 频率计算 帧率计算 • • • • • • • • • Blacklevel Flicker Image lag 太阳黑子 尺寸和窗口 Binning PLDO PAD 驱动 实验
Blacklevel引起的图像抖动
通过开关blacklevel来确认。主要可能是blacklevel不稳,如果是单帧统计改为4帧, 8帧统计是否有变化;是否sensor散热不好引起;需要测试ob值的变化。
Blacklevel引起的偏色
通过开关blacklevel来确认。Blacklevel统计值偏大会引起暗态偏绿,而统计值偏小会 引起暗态偏红。
在sensor中ADC Range不能大于pixel的最大输出电压,如pixel最大输出电 压为400mv,而ADC Range为500mv,显然输出图像最亮的部分都不能到 255,会导致图像高亮发粉。 当出现adc range大于pixel最大输出电压时,要么减小adc range,要么放 大pixel信号再做量化。这就是在某些项目中最小增益不是1倍的原因。
4
曝光方式
目前sensor多采用滚动曝光方式,即逐行曝光逐 行读出,每行复位到读出的时间间隔即曝光时 间。曝光控制寄存器中数值代表曝光多少行: 曝光时间=曝光行数*行长。注意:当曝光时间大 于1帧时,会插入vblank来获得较长的曝光时间。
为了便于调试和计算,行长通常用多少个clk表 示,如sp2508行长为1158,指的是1158个 DAC_CLK周期,用时间表示:行长 =1158*T_dac_clk。请注意不同sensor可能用不同 的clk来表示,参数给出时会注明。 帧长=有效数据行+vblank行(单位:行) VSYNC定义一帧的有效数据输出时间 HSYNC定义一行的有效数据输出时间
14
太阳黑子
• 太阳黑子指的是拍照高亮物体时,在高亮区域反而出现黑 色的斑点,这是由于光照太强pixel不能有效工作引起的, 在sensor中都做相应的校正功能,可以消除该现象。
Sp2508 太阳黑子校正寄存器
800.00 Mean Output (mV) 600.00 400.00 200.00 0.00 0 0.5 1 1.5 2 Exposure (lux*sec) 2.5 3
Gr R B Gb
左图为实际某 sensor 的pixel输 出电压的测试结果
源自文库
3
Pixel结构
• • • •
• 分辨率
VGA,640*480; 2M,1600*1200 5M,2592*1944 · · · · · ·
FSI (Front Side Illumination) BSI (Back Side Illumination) Color filter Micro-lens
• Position(定义颜色位置) • 行 row & 列 column
!
通常长方向为行,短方向为列,在调试中一定要正确区分,因为行列噪声或行列线 出现问题的原因是完全不一致的!
拍照切换
当预览和拍照采用不同参数时,需要注意blacklevel控制寄存器的修改,因为拍照时 间很短,不可能有很多帧来统计blacklevel,因此要求把拍照参数中的blacklevel改为 1帧统计。
13
Image Lag
• Image lag即图像残留,在每个pixel曝光前都需要把上一次曝光产生 的信号抹除(复位),然后再进行新一帧图像的曝光。当复位时间太 短或者其他原因造成复位不完全,那么下一次的曝光读出就包含了上 一帧残留的信号,并且不同亮度区域残留的信号量不同,导致图像反 映的信号量与曝光时间不匹配
11
flicker
• 交流电照明灯发出的光会以一定频率抖动,导致sensor图像出现行方向的水 波纹,称之为flicker。目前主要的交流电频率有50Hz(中国)和60Hz两种。 为了避免出现flicker,要求曝光时间大于base值时必须是base的整数倍。
10000 (行) 行长(us ) 8333 base _ 60hz (行) 行长(us ) base _ 50hz
18 16 14
12
10 8 6 4 2 0
增益的寄存器控制: h’10->1倍 h’20->2倍 ~~ h’f0->15倍 增益调节分为4档 1倍到2倍步长1/16 2倍到4倍步长1/8 4倍到8倍步长1/4 8倍到15.5倍步长1/2 9
频率计算
• PLL频率计算
芯片输入E_clk,通过PLL倍频获得一个很高频率的pll_clk,芯片内部时钟均由pll_clk分频获得, pll_clk的频率由通常由两个寄存器共同配置。
P0:0x2f pll_ctrl_buf 7~0 [6:2] pll_nc [1:0] pll_mc Pll frequency divider control 00--- 1 01--- 2 10--- 4 11--- 8
0x10
P0:0x34
buf_pll_outdiv
1~0
0x01
pll _ clk E _ clk *
!
并口输出时,平台端需要pclk,VSYNC, HSYNC三个信号共同作用来采集 有效的图像数据,并且能准确判断行和帧。
5
Sensor架构及工作流程
• Pixel array
完成光电转换
• 模拟电路
把电信号转换成数字信号
• 数字电路
控制sensor工作,数字信号处理, 根据需要输出不同格式
• MIPI
其中, E _ clk *
pll _ nc 3 (2 pll _ outdiv ) pll _ mc 1
pll _ nc 3 建议在120M~300M之间 pll _ mc 1
!
调试中做降频实验时只需要修改pll_clk即可,内部其它时钟频率 会同步随着pll_clk变化而变化,不能单独修改内部其它时钟频率。
2
光电转换原理
单个pixel结构
PD
图像传感器的作用就是把光信 号转换为电信号并且量化输出
光电转换的输出信号与光照强 度成正比,与曝光时间成正比 Note:光电转换并不是没有限制的,
当电荷累积到一定程度,效率慢慢下降, 最后不再增加,这也是sensor中pixel 有一个最大输出范围的原因。
photo response
如所给参数行长为1158(clk周期个数), 对应clk频率为30M,则
base _ 50hz 10000 10000 (行 ) (行) 259(行) 行长(us) 1158 / 30
!
当出现flicker时,首先要判断曝光时间是否正确,打印曝光寄存器值,看 是否是base的整数倍;如果是base的整数倍,那么就得确认所用的行长和 频率是否正确;如果都正确就需要向研发反映,可能sensor功能异常或者 是行干扰。
Updown和mirror在调试中的另一个作用是用来判断行线和列线产生的原 因,如果是pixel array出现问题,那么行线列线会随着updown和mirror位 置改变,如果是电路工作timing的问题,行线列线位置一般不会变化。
16
Colorbar
• • Colorbar为芯片内部自测试数据,可以用来判断芯片到平台的数据传输正确 性,当出图不正常,颜色异常,偏色,抖动,坏线坏点都应该先看看colorbar 是否正常,判断问题出在哪里 Digital RAW colorbar MIPI也有自己的colorbar
8
Gain
• 增益(gain)分为模拟增益和数字增益
模拟增益指在模拟电路中把pixel输出的电信号进行放大,而数字增益指的电信号完成 模数转换后,把数字信号进行放大(自动增益主要是调节模拟增益)。把信号放大的 作用主要是增加输出图像亮度,而增益越大噪声也会相对更为明显,在实际项目中都 需要根据sensor的具体情况确定最大增益和最小增益。
1使能,0关闭 不同的设置电压
!
如果出现太阳黑子现象,使能寄存器不生效或者 使能后出现列噪时,需要反馈到研发做分析。
15
Updown/mirror
Sensor默认所见即所得,图像显示与人眼看到场景一致。当进行updown 或者mirror时,sensor内部pixel array的输出顺序相应发生变化,第一个 输出pixel颜色发生变化,所以position定义需要调整。
把数字信号以mipi协议格式输出
• 其它辅助电路
如有的sensor带有OTP
6
Sensor的寄存器控制
• Timing
包括sensor内部各个模块的工作时序关系, 时钟频率,工作模式,相关配合关系等
• 模块电路功能控制
包括子模块电路的开关,电气性能调节等
寄存器分为两类,一类为timing控制寄存器,如pll频率控制,hb,vb,全尺 寸或binning等模式选择等等;另外一类寄存器为内部电路性能控制,如 pixel LDO使能,输出电压控制,pad驱动能力等等。
•
帧率计算方法
帧长=有效数据行+vblank行=1225+16=1241行 行长=2316,对应pclk 60M 最大帧率=1/最小帧时间 =1/((2316/60M)*1241)=20.8 fps 当曝光时间大于1帧时,帧率由曝光时间决定,如果曝光时间为200ms,那么帧率就为5 fps。
!
不要单独更改内部clk频率控制寄存器
SP2508 Digital colorbar 使能寄存器
SP2508 MIPI colorbar 使能寄存器
MIPI colorbar
Digital YUV colorbar
17
尺寸和窗口
• Sensor通常都支持比自身全尺寸小的各种格式尺寸输出
如sp2508全尺寸输出为1616*1216,就支持720p(1288*728), 900p(1288*908), 1600HD+(1608*908), 2*2 binning(808*608)等等输出尺寸,通过寄存器控制选择。
12
blacklevel
Blacklevel简单的说就是黑电平,指在dark下pixel的输出值,这个值可能为正亦可能为 负,在正常光照输出时需要减掉blacklevel值。Blacklevel的统计和正常输出时减 blacklevel都在芯片内部实现,可通过寄存器调整。Blacklevel值的统计方法有三种,1 帧统计,4帧统计,8帧统计。
• 默认给出的各尺寸都比标准尺寸大,是为了便于图像的边界处理,有 的平台只需要标准尺寸,就需要同时修改数字输出尺寸寄存器和MIPI 的输出尺寸寄存器
例如之前高通平台认证时要求输出标准尺寸,sp2508全尺寸输出1600*1200; sp5409全尺寸输出2592*1944.
18
尺寸和窗口
sp2508数字尺寸控制寄存器 P2:0x37 P2:0x38 P2:0x39 P2:0x3a P2:0x3b P2:0x3c P2:0x3d P2:0x3e dem_v_start_3msb[2:0] dem_v_start_8lsb dem_v_size_3msb[2:0] dem_v_size_8lsb dem_h_start_3msb[2:0] dem_h_start_8lsb dem_h_size_3msb[2:0] dem_h_size_8lsb 2~0 7~0 2~0 7~0 2~0 7~0 2~0 7~0 Image vertical start 3msb Image vertical start 8lsb Image vertical size 3msb Image vertical size 8lsb Image horizontal start 3msb Image horizontal start 8lsb Image half horizontal size 3msb Image half horizontal size 8lsb 0x00 0x00 0x04 0xc0 0x00 0x00 0x03 0x28
7
ADC
• ADC(Analog to Digital Converter),模数转换器,把模拟信号转换为二进制的数字 信号。如8bit的ADC输出数字码为0~1111 1111(255)。
•
ADC Range即ADC的有效输入范围 如8bit ADC Range=500mv,输入信号大于等于500mv时,转换输出码值为255.
10
帧率计算
• • Pclk,指sensor输出数据的频率,不是pll_clk。通常在给出的usb3.0参数文件名中会包 括pclk的信息,通常说的sp2508 60M参数,就是指pclk 60M。在代码deviceinfo中请注 意填写的频率是否正确。 行长是用来计算曝光时间的,关系flicker和帧率问题,请注意行长对应的频率。如 sp2508 行长1158对应的是内部的dac_clk,如果以pclk计算,则行长为2316,因为所 给sp2508参数中pclk频率为dac_clk的两倍。
2015/03/20
SuperPix Confidential
1
Outline
• • • • • • • • • 光电转换原理 Pixel结构 曝光方式 Sensor架构及工作原理 Sensor的寄存器控制 ADC Gain 频率计算 帧率计算 • • • • • • • • • Blacklevel Flicker Image lag 太阳黑子 尺寸和窗口 Binning PLDO PAD 驱动 实验
Blacklevel引起的图像抖动
通过开关blacklevel来确认。主要可能是blacklevel不稳,如果是单帧统计改为4帧, 8帧统计是否有变化;是否sensor散热不好引起;需要测试ob值的变化。
Blacklevel引起的偏色
通过开关blacklevel来确认。Blacklevel统计值偏大会引起暗态偏绿,而统计值偏小会 引起暗态偏红。
在sensor中ADC Range不能大于pixel的最大输出电压,如pixel最大输出电 压为400mv,而ADC Range为500mv,显然输出图像最亮的部分都不能到 255,会导致图像高亮发粉。 当出现adc range大于pixel最大输出电压时,要么减小adc range,要么放 大pixel信号再做量化。这就是在某些项目中最小增益不是1倍的原因。
4
曝光方式
目前sensor多采用滚动曝光方式,即逐行曝光逐 行读出,每行复位到读出的时间间隔即曝光时 间。曝光控制寄存器中数值代表曝光多少行: 曝光时间=曝光行数*行长。注意:当曝光时间大 于1帧时,会插入vblank来获得较长的曝光时间。
为了便于调试和计算,行长通常用多少个clk表 示,如sp2508行长为1158,指的是1158个 DAC_CLK周期,用时间表示:行长 =1158*T_dac_clk。请注意不同sensor可能用不同 的clk来表示,参数给出时会注明。 帧长=有效数据行+vblank行(单位:行) VSYNC定义一帧的有效数据输出时间 HSYNC定义一行的有效数据输出时间