adc传感器 浅谈图像传感器中的SS ADC
浅谈图像传感器中的SS ADC
来源:易百纳技术社区
本文主要介绍手机用图像传感器中的SS-ADC技术(single-slope analog-to-digital converter,单斜率模数转换器)。ADC基本功能介绍
ADC的作用顾名思义--将模拟信号转换为数字信号。
对图像传感器而言,入射光子在 photo diode中发生光电转换,成为模拟电信号,模拟信号再经ADC转换为数字信号输出。
图1是cmos image sensor(以下简称CIS)的基本架构图。Pixel array产生的模拟信号串行通过ADC转换为数字信号输出。并且每一列pixel都会共享一个ADC。
图1column parallel ADC CIS 基本架构
从实现方法而言, ADC有多种类型:逐次逼近型、积分型、压频变换型、∑-Δ型ADC,等。
SS-ADC(single slope ADC)属于 逐次逼近型,由于其结构简单、占用面积小、功耗低的特点被广泛使用在CIS中。
SS-ADC工作原理
SS-ADC的基本结构如图2所示,包括数模转换器(D-to-A Rampgenerator)、比较器、digital counter、存储器RAM。
图2 SS-ADC基本结构
Digital counter的输出信号传送给ramp generator,ramp的值会随着counter的增加而单调增大;ramp的输出连接到比较器的'+'输入端。Pixel的输出信号与ramp的电压不断进行比较,当pixel信号值和ramp的输出信号相等时,比较器被触发转换到输出状态。这样,pixel的模拟信号就被表征为digital counter的数字信号,数值被锁存在n-bit RAM中,如图3所示。
因为所有列的AD转换都需要在一个ADC周期内完成,RAMP值会继续增加,直到counter达到最大值‘11...11’,一整排的column模拟信号全部被转换为数字信号,锁存在RAM 1到RAM k中,等待读出电路将数值读出。
SS-ADC缺点和解决方案
SS-ADC最大缺点是速度慢,特别是bit位宽增加时。Digital counter必须从最小值遍历到最大值,当bit位宽增加时,转换时间会随之增加。比如ADC clockf=100MHz,8bit时需要转换时间为0.256us,10bit时1.02us, 12bit时为8.2us。
Multi-slope ADC和Mulit-ramp ADC在一定程度上可以改善速度问题。
Multi-slope ADC
如上所述SS-ADC的转换速度是由ramp的速度决定的,从最小遍历到最大(10bit为例,从0到1023)。当ADC的采样分辨率高,ADC精度变高,但是速度会变慢。可以考虑牺牲一部分噪声特性来提高ADC的速度。
亮光时,CIS主要是shot noise占主导,SNR约等于信号的平方根。因此在亮光环境,ADC的量化噪声可以适当放松,可以考虑适当RAMP的step(减小采样分辨率),量化噪声增大。
暗光时,CIS的噪声主要是来自read noise,暗光时,为了减小量化噪声对画质影响,维持ADC的高采样分辨率,量化噪声小。
利用multi-slope ADC,可以维持一定SNR的基础上加快ADC速度。
Multi-Ramp ADC
Multi-Ramp SS-ADC的原理类似于二分法。例如先用最高2位(4段)选择信号在下面4个的哪个区间00…0 ~ 01…0,01…0 ~ 10…0, 10…0 ~ 11…0, 11…0 ~ 11…1。然后在每个区间内再进行高采样转换。通过这样的方法,转换时间减小为原来的1/4。
Multi-Ramp ADC这种方法也有缺陷。4个ramp会有不同的offset;并且对于不同的区间,offset带来的影响不一样。
总结:SS-ADC因其电路简单、面积小、功耗低被广泛应用于商用cmos图像传感器中,它的工作原理限制了其转换速度、精度与分辨率。
更多内容请前往:易百纳技术社区
使用Simulink学习STM32-(3)温度传感器ADC实验
实验环境
Matlab版本: 2021b
操作系统 :Win10专业版
硬件平台 :YF-STM32-ALPHA 1R4
实验内容 :读取温度传感器电压值并转换成实际℃温度显示出来
模型与原理图
本次实验所用到的simulink模型如图5.1所示,电路原图如图5.2所示,其中温度传感器在开发板中的位置如图5.3所示,实验效果为读取NTC温度传感器所在引脚PA4的电压值,然后通过查表算法将其转换成实际℃温度值并通过仪表或“display”模型控件显示出来。
图5.1 NTC温度传感器采集simulink模型
图5.2 温度传感器电路图
图5.3 温度传感器在电路板中位置
基础模型介绍与分析
本次实验所用到的NTC(负温度系数)传感器外观如图5.4所示,因其低廉的价格和使用方便的特性,被广泛应用于家庭与工业电子设备中(空调、电饭锅、洗衣机等)。表5.1为该温度传感器基本使用参数,详细的温度电阻特性参考其特性表链接,里面详细整理了该传感器电阻值与温度的对应关系。电压采集原理图采用“分压式”接法,如图5.5所示,单片机端采集电压公式计算方法 MCU_ADC = Rt*3.3V/(10+Rt)。
图5.4 温度传感器外观
表5.1 基本参数表
型号
B值
使用温度范围
MF52-103/3435 10K ±1%
3435 1%
-55℃~125℃
温度阻值特性表:https://pan.baidu.com/s/1dF19CoL?_at_=1700414024610
图5.5 NTC温度传感器“分压”测电压接法
“Analog Input”模型外观如图5.6所示,通过更改“Pin”栏参数可以读取该引脚的电压值,读取的数值范围为0~1,⚠️需要注意的是“Pin”栏参数只有该芯片引脚支持模拟量功能 才能使用⚠️
图5.6 "Analog Input"模型
为方便读者以往单片机使用习惯和计算方便性,实验中使用到乘法模型“Product”将读取的ADC值乘以3.3倍放大处理,得到的最终值范围为0~3.3,如图5.7所示。
图5.7 "Product"模型使用方法
查表法转换温度值
这是本次实验中的关键算法部分,也是在嵌入式开发中针对A/D方式读取原始传感器数据参数常用的转换方法,即大家熟知的“以空间换时间“法,“ Lookup with Linear Lagrange Interpolation ”模型与参数设置窗口如图5.8所示。
图5.8 " Lookup with Linear Lagrange Interpolation"模型
我们首先通过“温度阻值特性表”得到温度电压表关系,考虑到在单片机中不占用太大存储空间,这里采取每5℃间隔制作表格,一般对于精度要求不是特别高的场合,我们可以大致认为5℃内的温度变化是线性的,其中“V”的电压值计算公式为V = R*3.3V/(10+R),将其中的R值代入,就可以得到V的最终值,详情请参考表5.2。
NTC_Value_table.xlsx
表 5.2 温度-阻值-分压表
T
R
V
-40
190.5562
3.135457592
-35
151.5975
3.09578892
-30
116.3519
3.038824663
-25
90.0326
2.970107545
-20
70.5811
2.890474689
-15
55.7284
2.797933922
-10
44.1201
2.690245029
-5
35.0362
2.567256118
0
28.0170
2.431967278
5
22.6597
2.289580431
10
18.5600
2.144537815
15
16.2797
2.044277903
20
12.6900
1.845614808
25
10.0000
1.65
30
8.1600
1.482819383
35
6.8133
1.337268115
40
5.7340
1.202631244
45
4.8286
1.074570762
50
4.065
0.953750444
55
3.4146
0.839993738
60
2.825
0.726900585
65
2.5076
0.661604145
70
2.135
0.580593325
75
1.8225
0.508712201
80
1.586
0.451734852
85
1.4006
0.405415504
90
1.236
0.363011748
95
1.0744
0.320154591
100
0.918
0.277468401
105
0.787
0.240762028
110
0.713
0.219630356
点击“Lookup with Linear Lagrange Interpolation”模型参数设置窗口中的“编辑表和断点...”如图5.9所示,弹出的查找表参数设置如图5.10所示,将表5.2中的温度T和电压值V填入该表中的“表数据”和“断点 1”处,⚠️注意数据的升降序和填写位置
图5.9 表格参数设置按钮
图5.10 查找表参数填好效果
点击“线性图”按钮查看填写的数据对应的曲线是否正确,如图5.11所示,最终填写好的数据效果如图5.12所示。
图5.11 点击查看线性图曲线
图5.12 填写好查找表数据的模型参数设置部分效果
✏️总结
本次实验以一个基本的温度传感器为例,通过在其中加入查表算法将其转换成我们熟知的摄氏度(℃)温度值,但是在实际场景中经常会出现一些杂波电压或采集的数据与我们所需要的数据稳定的情况,读者朋友可以思考下面对这种问题该如何去解决?以往使用C代码方式一般是在前面加入杂波滤除算法然后再求平均值,simulink中又该如何使用呢?
拓展延申
1、本次实验又用到一个数据显示仪表,但是文章中并没有做过多介绍,其位于“Dashboard”库中,里面又很多显示仪表和按钮开关,在实际模型测试中非常方便,读者朋友可以多去尝试使用。
图5.13 “Dashboard”库位置
2、在查表法建立表格过程中,有一个操作非常繁琐,复制到表格中的数据非常不方便,如果有多种传感器需要建立表格,那工作量是不可想象的,其实这里有个更方便的方法,可以先建立一个excel表格,然后使用matlab打开并导入到matlab中,如图5.14和图5.15所示,然后在matlab中直接定义两个数组变量,然后在“表数据”和“断点1”中引入即可,如图5.16所示,至于该方式更深入的用法,大家可以积极去探索下,这里暂时不做过多介绍。
图5.14 打开Excel表格
图5.15 将Excel表格的数据导入为变量表
图5.16 通过变量数组引入查找表
QQ交流群 :673339180
相关问答
stm32 adc 有哪些主要参数?ADC,Analog-to-DigitalConverter(模数转换器),其应用非常广泛,比如温度、湿度、压力、声音等传感器领域。ADC的类型很多,STM32内部集成的ADC为逐次逼近型...
烟雾器MQ2?AD转换芯片 ADC 0832?温度 传感器 DS18B20_汽配人问答[最佳回答]1、spi是一个通信协议,spi器件其实就是一个电平转换器不是单片机2、按键去抖就是按键加延时3、ad是电压信号采集4、最小系统是单片机能运作起来...
adc 是什么?ADC大部分都是远程射手英雄,因为远程英雄比较容易利用射程优势安全的输出。2、远程英雄比较容易利用射程优势安全的输出,在整个团...1、ADC通常指物理输出核...
adc 各个管脚的定义?ADC芯片引脚说明有以下几点:1.ADC芯片的引脚通常包括输入引脚和输出引脚。输入引脚一般用于接收模拟信号,输出引脚则用于将模拟信号转换为对应的数字信号输出...
传感网包括哪些硬件设备?一个典型的无线传感器网络节点的硬件结构包括:传感器接口、ADC、微处理器、电源以及无线收发装置。传统的传感器正逐步实现微型化、智能化、信息化、网络化,...
单片机如何通过 ADC 模块采集模拟信号?我将以STM32F103RCT6单片机,作为本文参考芯片,此芯片有3个12位的ADC,我选择其中一个ADC,实现采集电池供电电压功能的过程。第一步,配置对应的引脚,ADC功...那...
碰撞 传感器 怎么替代?一般是不可以替代的。1、先找到一些常用的霍尔电流传感器的型号,然后在Proteus里面查找。没有的话,就根据霍尔电流传感器的原理用可变电阻或电流源等代替,不...
自动驾驶汽车上面有哪些 传感器 ?目前来看,企业应用于自动驾驶汽车的传感器主要有以下几种:图像传感器、激光雷达、毫米波雷达、超声波雷达以及生物传感器。它们依据各自不同的产品属性,在自...
三阳tini参数?三阳Tini是一款基于ARMCortex-M3内核的微型开发板,具有丰富的功能和参数。以下是三阳Tini的一些主要参数:处理器:ARMCortex-M3内核,主频为72MHz存储器:F...
将一测力 传感器 连接到计算机上就可以测量快速变化的力,图甲...[最佳回答](1)小球在一个周期内两次经过最低点,根据该规律,知T=0.4πs.(2)由单摆的周期公式T=2πLg,得:L=gT24π2=0.4m.在最高点A,有:Fmin=mgcosθ=0.495N在最...