光电效应

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

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

我们熟知的感光元件有两种,一种是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. Springboot整合Flowable6.x导出bpmn20

    项目源码仓库 BPMN2.0(Business Process Model and Notation)是一套业务流程模型与符号建模标准,以XML为载体,以符号可视化业务,支持精准的执行语义来描述元素的 ...

  2. 深度学习--实战 LeNet5

    深度学习--实战 LeNet5 数据集 数据集选用CIFAR-10的数据集,Cifar-10 是由 Hinton 的学生 Alex Krizhevsky.Ilya Sutskever 收集的一个用于普 ...

  3. 使用Ref还是Reactive?

    我喜欢Vue 3的Composition API,它提供了两种方法来为Vue组件添加响应式状态:ref和reactive.当你使用ref时到处使用.value是很麻烦的,但当你用reactive创建的 ...

  4. 云原生时代崛起的编程语言Go基础实战

    @ 目录 概述 定义 使用场景 Go 安全 使用须知 搜索工具 Go基础命令 标准库 基础语法 Effective Go 概览 命名规范 注释 变量 常量(const) 控制结构 数据类型 迭代(ra ...

  5. Prism Sample 10 10-CustomRegistrations

    作用同上节,这里是用修改注册的方式自定义View和ViewModel的关联. protected override void ConfigureViewModelLocator() { base.Co ...

  6. Pwn系列之Protostar靶场 Stack6题解

    源码如下: #include <stdlib.h> #include <unistd.h> #include <stdio.h> #include <stri ...

  7. Django笔记三十九之settings配置介绍

    本文首发于公众号:Hunter后端 原文链接:Django笔记三十九之settings配置介绍 这一篇笔记介绍 Django 里 settings.py 里一些常用的配置项,这些配置有一些是在之前的笔 ...

  8. js数组和字符串方法

    一.数组方法 1.1.可以改变原数组 var arr = [10, 20, 30, 40, 50, 55]; // 1. **** push() --- 在数组的最后添加一项内容 // var ret ...

  9. 2021-03-25:如何把长url转换为短url?

    2021-03-25:如何把长url转换为短url? 福大大 答案2021-03-25: 1.长url和短url一一映射.想采用某种算法,把长url和短url做一一映射.后来发现,这种方法是行不通的. ...

  10. drf——Request源码分析、序列化组件、序列化类的使用(字段类和参数)、反序列化校验和保存

    1.Request类源码分析 # APIView+Response写个接口 # 总结: 1.新的request有个data属性,以后只要是在请求body体中的数据,无论什么编码格式,无论什么请求方式 ...