光电效应

光电效应的现象是赫兹(频率的单位就是以他命名的)发现的,但是是爱因斯坦正确解释的。简单说,光或某一些电磁波,照射在某些光敏物质会产生电子,这就是光电效应。

这就将光变为了电,光信号的改变会带来电信号的改变,因此,人们利用这个原理,发明了感光元件。

我们熟知的感光元件有两种,一种是CCD,一种是CMOS。早期的CMOS比CCD差的非常多,但随着工艺的发展,现在CMOS的质量已经发生了质的飞跃,并且CMOS价格便宜,功耗性能好。

sensor 结构技术

传统(前照式)CMOS、背照式(Back-illuminated)CMOS、堆叠式(Stacked)CMOS

工艺差异

最大最基础的差别就在于其结构。影响最终成像效果不仅仅靠CMOS,还需要考虑镜头以及拍照算法等。其实并不是越先进的结构也一定更好,这得看用了什么工艺(比如180nm沉浸式光刻还是500nm干刻)和技术(比如索尼“Exmor”每列并列独立的模拟CDS+数模转换+数字CDS的标志性的降噪读出回路)。

优异的工艺和技术可以使得即便不使用更新结构的CMOS,同样拥有更好的量子效率、固有热噪声、增益、满阱电荷、宽容度、灵敏度等关键型指标。在相同技术和工艺下,底大一级的确压死人。人类的进步就是在不断发现问题,解决问题。背照式以及堆栈式CMOS的出现,也是为了解决之前CMOS的种种问题。

传统(前照式)CMOS

对比一下前照式和背照式的横剖对比图示:

传统的CMOS是图中左边的“前照式”结构,一般的CMOS像素都由以下几部分构成:片上透镜(microlenses)、彩色滤光片(On-chip color filters)、金属排线(电路层)、光电二极管(Photodiodes)以及基板。当光线射入像素,经过了片上透镜和彩色滤光片后,先通过金属排线层,最后光线才被光电二极管接收。

微透镜是在每个CMOS的物理像素上的极小的凸透镜,用来汇聚光线。

彩色滤光片能将入射光颜色以RGB的模式分解,我们有时听到的拜耳排列,就是这些滤镜的排列方式。如最经典的RGGB排列等。

金属排线,通常有好几层,主要是传输信号用的。

光电二极管,也就是对于CMOS,真正的发生光电效应的感光部分。

大家都知道金属是不透光的,而且还会反光。所以,在金属排线这层光线就会被部分阻挡和反射掉,由于工艺限制,光在穿过金属电路层后,到达光电二极管时只有70%或更少;而且这反射还有可能串扰旁边的像素,导致颜色失真。(目前中低档的CMOS排线层所用金属是比较廉价的铝(Al),铝对整个可见光波段(380~780nm)基本保持90%左右的反射率。)

背照式(Back-illuminated)CMOS

由于前照式有这些缺点,那么背照式(Back-Illuminated CMOS)的设计就应运而生了。它将电路层放到了光电二极管后面,这样,光线就能直接照到光电二极管上,光线几乎没有阻挡和干扰地就下到光电二极管,光线利用率极高,所以背照式CMOS传感器能更好的利用照射入的光线,在低照度环境下成像质量也就更好了。

背照式CMOS能够具有更高的光线利用效率,这样,在低照度环境下,就具有更高的灵敏度。同时,由于电路不会影响光电二极管接收光线,因此,电路层可以做得更厚,这样就能放置更多的处理电路,这有助于提高信号的处理速度。

相比起普通的前照式传感器,搭载背照式传感器的设备能够在弱光环境下,提高约30%—50%的感光能力,因此能够在弱光下拍摄更高的质量的照片或视频,噪点更小。而更丰富的处理电路,能做更大数据量的原始图像信号处理。

堆叠式(Stacked)CMOS

堆叠式CMOS最先出现在索尼推出的移动终端用CMOS上,堆叠式出现的初衷其实不是为了减少整个镜头模组的体积,这个只是其附带好处而已。

CMOS的制作和CPU的制作类似,需要特殊的光刻机对硅晶圆进行蚀刻,形成像素区域(Pixel Section)和处理回路区域(Circuit Section)。像素区域就是种植像素的地方,而处理回路是另一块整体的控制电路,用来管理这一群像素的电路。

[1]为像素区域
[2]为处理电路

在蚀刻时,会有一个问题,以索尼用于手机等的小CMOS为例,它对于像素区域的制造工艺,可以使用65nm的制程(可简单理解为制造精度),但对于处理电路的区域,65nm的制程是不够的,如果能用45nm的制程制造,那么在处理电路上的晶体管数量就能翻倍,这样,图像从像素处理出来的速度就更快,画质就能更好。但因为在同一片硅片上进行蚀刻,没法使用两个制程来制造。

所以很容易想到,如果将这两个区域分开,像素区域放在一个硅片上,用65nm制程制造,处理电路放在另一个硅片上,用45nm制程制造,再将它们堆叠拼起来,那这个矛盾就解决了。这就是堆栈式CMOS。

[1]为像素区域
[2]为处理电路
[3]为高速缓存

有了堆栈式的结构,我们能在处理电路得到更多的晶体管,拥有更快的速度,因此,原来不容易实现的HDR、升格等,现在变得很常见。读出速度也变得更快,因此果冻效应更小。而且,由于将像素区域和处理电路区域堆叠,像素区域能做得更大。

而且,使用堆栈式能带来一些特殊的技术。如我们常见的拜耳排列大多是RGGB的,画面的亮度是通过亮度方程(Y=0.299R+0.587G+0.114B),由RGB色光的值算出来的。但使用堆栈式技术,人们研究出了一种新的拜耳排列RGBW,其中,RGB对应常见的红绿蓝,W对应白,对亮度感光。这样,传感器的低光感光能力就大大提升。

堆栈式,背照式,前照式,这三个类型是单独的,不存在从属关系。我们可以使用背照式的技术,再用堆栈式的结构,发挥最大优点。

退火

为了提高像素集合光的效率,需要引入光波导管。光波导管的干刻过程中,硅晶圆和像素区域会有损伤,此时则要进行一个叫做“退火(annealing process)”的热处理步骤,让硅晶圆和像素区域从损伤中恢复回来,这时候需要将整块CMOS加热。好了,问题来了,这么一热,同在一块晶圆上的处理回路肯定有一定的损伤了,原先已经“打造”好了的电容电阻值,经过退火后肯定改变了,这种损伤必定会对电信号读出有一定影响。这么一来,处理回路躺着都中枪,像素区域的“退火”是必须的。

还有一个问题,索尼目前建有的移动终端用CMOS的制程是65纳米干刻,这个65纳米的工艺对于CMOS的像素区域的“种植”是完全足够的。但是处理回路区域的“打造”,65纳米是不够的,如果能有30纳米(实际提升至45nm制程)的工艺去打造电路,那么处理回路上的晶体管数量就几乎翻番,其对像素区域的“调教”也就会有质的飞跃,画质肯定相应变好。但因为是在同一块晶圆上制作,像素和回路区域需要在同一个制程下制作。处理回路:“怎么吃亏的总是我!” 如此鱼和熊掌不可兼得的事情,假如解决了多好!于是索尼的工程师打起了晶圆的基板 (BOSS登场)的主意。先来看这张结构图。原来处理回路是和像素区域在同一块晶圆上打造的。

那么不妨把处理回路放到那里去?

首先利用SOI和基板的热传导系数差异,通过加热将两者分开。 像素区域放到65纳米制程的机器上做,处理回路则放到制程更高(45nm)的机器上做。 然后在拼在一起,堆栈式CMOS也就这样诞生了。上边遇到的两个问题: ①像素“退火”时回路区域躺着中枪。 ②在同一块晶圆上制作时的制程限制。均迎刃而解! 堆叠式不仅继承了背照式的优点(像素区域依然是背照式),还克服了其在制作上的限制与缺陷。由于处理回路的改善和进步,摄像头也将能提供更多的功能,比如说硬件HDR,慢动作拍摄等等。像素与处理回路分家的同时,摄像头的体积也会变得更小,但功能和性能却不减,反而更佳。像素区域(CMOS的尺寸)可以相应地增大,用来种植更多或者更大的像素。处理回路也会的到相应的优化(最重要不会在“退火”中枪了)。


参考:https://www.zhihu.com/question/23295693/answer/30214135
https://www.bilibili.com/read/cv5310048/

###我的个人博客主页,欢迎访问
###我的CSDN主页,欢迎访问
###我的GitHub主页,欢迎访问

堆栈式 CMOS、背照式 CMOS 和传统 CMOS 传感器的区别的更多相关文章

  1. COGS 1944. 背驮式行走

    ★   输入文件:piggyback.in   输出文件:piggyback.out   简单对比时间限制:1 s   内存限制:256 MB [题目描述] Bessie和她妹妹Elsie白天都在牧场 ...

  2. Python的列表推导式,字典推导式,集合推导式使用方法

    推导式分为列表推导式(list),字典推导式(dict),集合推导式(set)三种 1.列表推导式也叫列表解析式.功能:是提供一种方便的列表创建方法,所以,列表解析式返回的是一个列表格式:用中括号括起 ...

  3. 转】C#接口-显式接口和隐式接口的实现

    [转]C#接口-显式接口和隐式接口的实现 C#中对于接口的实现方式有隐式接口和显式接口两种: 类和接口都能调用到,事实上这就是“隐式接口实现”. 那么“显示接口实现”是神马模样呢? interface ...

  4. 流式布局&固定宽度&响应式&rem

    我们现在在切页面布局的使用常用的单位是px,这是一个绝对单位,web app的屏幕适配有很多中做法,例如:流式布局.限死宽度,还有就是通过响应式来做,但是这些方案都不是最佳的解决方法. 1.流式布局: ...

  5. Scala 深入浅出实战经典 第61讲:Scala中隐式参数与隐式转换的联合使用实战详解及其在Spark中的应用源码解析

    王家林亲授<DT大数据梦工厂>大数据实战视频 Scala 深入浅出实战经典(1-87讲)完整视频.PPT.代码下载: 百度云盘:http://pan.baidu.com/s/1c0noOt ...

  6. 位置式PID与增量式PID算法

    位置式PID与增量式PID算法  PID控制是一个二阶线性控制器     定义:通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能.     优点             ...

  7. python的各种推导式(列表推导式、字典推导式、集合推导式)

    推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的数据序列的结构体. 共有三种推导,在Python2和3中都有支持: 列表(lis ...

  8. html响应式布局,css响应式布局,响应式布局入门

    html响应式布局,css响应式布局,响应式布局入门 >>>>>>>>>>>>>>>>>>& ...

  9. 阻塞式和非阻塞式IO

    有很多人把阻塞认为是同步,把非阻塞认为是异步:个人认为这样是不准确的,当然从思想上可以这样类比,但方式是完全不同的,下面说说在JAVA里面阻塞IO和非阻塞IO的区别 在JDK1.4中引入了一个NIO的 ...

  10. 共享式以太网与交换式以太网的性能比较(OPNET网络仿真实验)

      一.实验目的 比较共享式以太网和交换式以太网在不同网络规模下的性能. 二.实验方法 使用opnet来创建和模拟网络拓扑,并运行分析其性能. 三.实验内容 3.1   实验设置(网络拓扑.参数设置. ...

随机推荐

  1. Java与Mysql锁相关知识总结

    锁的定义 在计算机程序中锁用于独占资源,获取到锁才可以操作对应的资源. 锁的实现 锁在计算机底层的实现,依赖于CPU提供的CAS指令(compare and swsp),对于一个内存地址,会比较原值以 ...

  2. UnrealEngine - 网络同步之连接篇

    1 连接过程 - 握手 传统的 C/S 架构下,Client 和 Server 通常会建立一条抽象的 Connection,用来进行两端的通信. UE 的官方文档中提供了 Client 连接到 Ser ...

  3. #Python 文本包含函数,pandas库 Series.str.contains 函数

    一:基础的函数组成 '''Series.str.contains(pat,case = True,flags = 0,na = nan,regex = True)'''测试pattern或regex是 ...

  4. 2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存。

    2023-02-22:请用go语言调用ffmpeg,保存mp4文件的视频帧,每帧用ppm图片保存. 答案2023-02-22: 使用 github.com/moonfdd/ffmpeg-go 库. 先 ...

  5. 2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1、2、3、...入口房间的序号为1 任意序号为正整数x的房间,都与序号 2*x 和 2*x + 1

    2022-12-30:某天小美进入了一个迷宫探险,根据地图所示,这个迷宫里有无数个房间 序号分别为1.2.3.-入口房间的序号为1 任意序号为正整数x的房间,都与序号 2x 和 2x + 1 的房间之 ...

  6. 2022-12-13:游戏玩法分析 I。写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期。 +-----------+-------------+ | player_id | first_l

    2022-12-13:游戏玩法分析 I.写一条 SQL 查询语句获取每位玩家 第一次登陆平台的日期. ±----------±------------+ | player_id | first_log ...

  7. 2022-10-24:以下go语言代码输出什么?A:3 3;B:3 4;C:0 0;D:0 1。 package main func main() { m := make(map[int]int

    2022-10-24:以下go语言代码输出什么?A:3 3:B:3 4:C:0 0:D:0 1. package main func main() { m := make(map[int]int, 3 ...

  8. 2021-04-21:手写代码:Dijkstra算法。

    2021-04-21:手写代码:Dijkstra算法. 福大大 答案2021-04-21: Dijkstra算法是一种基于贪心策略的算法.每次新扩展一个路程最短的点,更新与其相邻的点的路程.时间紧,未 ...

  9. [MAUI程序设计]界面多态与实现

    目录 需求一:在不同设备上使用不同 UI 外观 定义控件 UI 外观 基于平台自定义配置 需求二:在不同数据类别中使用不同的 UI 外观 定义视图 UI 外观 创建数据模板 创建选择器 定义数据 需求 ...

  10. vue全家桶进阶之路31:Vue3 数据和方法的双向绑定ref、reactive、toRefs

    ref 在 Vue 3 中,你可以使用 setup 函数来定义组件的数据和方法.在 setup 函数中,你可以使用 ref.reactive 和 computed 等 Vue 3 的响应式 API 来 ...