公司动态

033、像素内ADC与列并行ADC:读出电路架构对噪声与速度的影响

📅 2026/7/16 16:20:31
033、像素内ADC与列并行ADC:读出电路架构对噪声与速度的影响
033、像素内ADC与列并行ADC读出电路架构对噪声与速度的影响去年夏天我在调试一款车规级全局快门传感器时遇到了一个诡异的问题——暗电流噪声在低增益下表现正常一旦切换到高增益模式画面底部三分之一区域就会出现明显的水平条纹而且条纹的周期恰好对应着列读出时钟的倍数关系。当时团队里有人怀疑是电源纹波有人说是温度漂移折腾了两周才发现问题出在列并行ADC的参考电压缓冲器驱动能力不足上。这个坑让我重新翻出了十年前做手机CMOS传感器时的设计笔记发现像素内ADC和列并行ADC这两条技术路线在噪声与速度的博弈中各自藏着不少反直觉的细节。从像素到数字读出路径的两种哲学先说说这两种架构最本质的区别。像素内ADC顾名思义每个像素内部集成了完整的模数转换电路像素输出直接就是数字信号。这种架构在工业视觉和某些高端安防相机里比较常见因为它的读出速度可以做到非常快——所有像素同时转换不存在逐行扫描的等待时间。但代价是像素面积会显著增大因为每个像素里除了光电二极管和复位晶体管还得塞进比较器、计数器甚至斜坡发生器。我见过一款200万像素的工业相机用像素内ADC后芯片面积比同分辨率的列并行方案大了将近40%这直接推高了晶圆成本。列并行ADC则是目前手机影像和车载摄像头的主流选择。每个像素列共享一条读出总线列底部布置一组ADC电路通常是单斜率积分型或逐次逼近型。像素信号通过列总线逐行传输到ADC进行转换。这种架构的像素面积可以做得非常小因为像素内只需要少数几个晶体管但代价是读出速度受限于列ADC的转换时间——假设一帧有1000行每行转换需要10微秒那帧率就被限制在100fps左右。当然可以通过增加列ADC的并行度来提升速度比如每列一个ADC但这样芯片面积和功耗会急剧上升。噪声的源头不是所有噪声都来自像素很多人以为读出噪声主要来自像素本身的光电二极管和复位管实际上读出电路的架构对噪声的贡献往往被低估。我在调试那款车规传感器时用示波器抓了列ADC的参考电压波形发现高增益模式下参考电压的纹波达到了2.3mV而低增益模式下只有0.4mV。问题出在参考电压缓冲器的负载特性上——列并行ADC工作时所有列同时采样参考电压瞬间电流需求非常大。如果缓冲器的驱动能力不足参考电压就会在转换过程中发生跌落导致不同列的转换结果出现系统性偏差这就是水平条纹的根源。这里踩过坑列并行ADC的参考电压设计不能只看静态精度必须考虑动态负载下的瞬态响应。我后来在参考电压输出端加了一组去耦电容电容值不是随便选的要根据列ADC的采样电容总和和转换时间来算。别这样写随便加个100nF就完事了。正确的做法是先估算所有列同时采样时的总电荷需求然后选择电容使得电压跌落小于0.5LSB。比如12位ADC满量程1VLSB是244μV那参考电压的纹波必须控制在122μV以内这可不是随便一个电容能搞定的。像素内ADC的噪声特性则完全不同。因为每个像素独立完成转换不存在列总线上的串扰问题但像素内部的比较器噪声和计数器量化噪声会成为新的瓶颈。我见过一款医疗内窥镜用的像素内ADC传感器它的暗电流噪声比同代列并行方案低了将近6dB但代价是像素内比较器的失调电压会导致固定模式噪声FPN。为了校正这个FPN芯片内部需要集成校准电路每次上电后先做一次暗场校准这又增加了系统启动时间。速度的代价帧率与分辨率的博弈速度方面列并行ADC的瓶颈非常明确行读出时间决定了帧率上限。假设传感器有1080行每行转换时间10μs那帧率就是1/(1080×10μs)≈92.6fps。如果想提升到240fps要么减少行数降低分辨率要么缩短每行转换时间。缩短转换时间意味着提高ADC的时钟频率或者改用更快的ADC架构比如从单斜率积分型换成逐次逼近型。但逐次逼近型ADC的功耗会显著增加而且对布局布线的要求更高——列与列之间的匹配性必须非常好否则会出现列间增益差异。这里有一个很多人忽略的细节列并行ADC的转换时间并不是均匀分布的。单斜率积分型ADC的转换时间与输入信号幅度成正比暗像素转换快亮像素转换慢。这意味着如果场景中有大面积高亮区域整行的读出时间会被拉长。我在调试一款车载前视摄像头时就遇到过这个问题——夏天正午对着太阳拍摄画面顶部几行因为过曝导致转换时间翻倍结果帧率从30fps掉到了22fps直接影响了ADAS系统的响应速度。解决方案是在ADC中引入自适应转换时间控制或者干脆改用逐次逼近型ADC虽然功耗高一点但转换时间是固定的。像素内ADC的速度优势在于并行性。所有像素同时转换理论上帧率只受限于转换时间和数字读出带宽。比如每个像素的转换时间是10μs那帧率就是100fps与分辨率无关。但实际中数字读出带宽会成为新的瓶颈——200万像素同时输出数字信号数据量是200万×12bit24Mbit如果数字总线速度是1Gbps那读出时间也需要24ms帧率反而被限制在41fps。所以像素内ADC的真正优势在于低分辨率高帧率场景比如工业视觉中的高速检测640×480分辨率下可以轻松做到1000fps以上。功耗与面积的权衡没有免费的午餐功耗方面列并行ADC的优势非常明显。因为ADC电路是共享的每列只需要一个ADC功耗与列数成正比。以1080P传感器为例1920列每列ADC功耗1mW总功耗约1.92W。而像素内ADC每个像素都消耗功耗假设每个像素的ADC功耗10μW200万像素就是20W这显然不可接受。所以像素内ADC通常只用于低分辨率或特殊应用比如某些工业相机用FPGA实现像素内ADC的读出控制通过时分复用降低功耗。但列并行ADC的功耗分布也有陷阱。我见过一个设计为了追求低功耗把列ADC的偏置电流设得很低结果在高温下85°CADC的转换精度严重下降DNL微分非线性从0.3LSB恶化到了1.2LSB。别这样写以为低功耗就是好事。实际上列ADC的偏置电流必须根据工作温度范围和转换速度来优化通常需要留出20%的余量。我在那款车规传感器上最终把偏置电流提高了30%功耗增加了不到5%但高温下的DNL稳定在了0.4LSB以内。面积方面列并行ADC的像素面积可以做到1.4μm×1.4μm甚至更小适合高分辨率传感器。而像素内ADC的像素面积通常在5μm×5μm以上所以同样芯片面积下像素内ADC的分辨率会低很多。但像素内ADC有一个隐藏优势——它不需要列总线上的模拟信号传输因此可以避免长距离模拟信号传输带来的衰减和串扰。这在超大尺寸传感器比如全画幅中尤其重要因为列总线长度可能达到20mm以上模拟信号在这么长的走线上传输寄生电容和电阻会导致信号衰减和噪声耦合。实战中的选择场景决定架构回到实际项目选型我总结了几条经验法则不是教科书上的教条而是踩过坑之后的血泪教训。如果你做的是手机摄像头追求高分辨率和小像素尺寸列并行ADC是唯一选择。但要注意列ADC的匹配性特别是高增益模式下的FPN校正。我建议在芯片设计阶段就加入列级增益和失调校准寄存器量产时通过测试数据写入OTP。别想着靠算法后期校正因为列间差异在低照度下会放大算法校正会引入额外的噪声。如果你做的是车载摄像头特别是ADAS用的全局快门传感器列并行ADC的参考电压设计是重中之重。参考电压缓冲器必须用高速运放带宽至少是ADC转换时钟的10倍输出阻抗要低于1Ω。另外建议在参考电压路径上加一个RC低通滤波器截止频率设在转换时钟的1/10左右可以有效抑制高频噪声。我上次那个水平条纹问题最终就是靠一个精心设计的参考电压网络解决的。如果你做的是工业视觉或医疗内窥镜对帧率要求极高500fps或者对噪声要求极低1e-像素内ADC值得考虑。但要做好面积和功耗的心理准备。另外像素内ADC的校准非常关键建议在芯片内部集成暗像素参考阵列实时监测比较器失调和计数器偏移。我见过一个医疗方案用像素内ADC实现了0.5e-的读出噪声但代价是芯片面积是同等分辨率列并行方案的3倍。最后说一个容易被忽视的点无论哪种架构读出电路的电源完整性设计都直接影响噪声性能。我习惯在PCB设计阶段就给模拟电源和数字电源分配独立的LDO并在传感器附近放置足够的去耦电容——每个电源引脚至少一个100nF再加一个10μF的钽电容。别相信芯片手册上说的“内部已经集成了去耦”那只是针对理想情况。实际项目中电源噪声往往是读出噪声的最大贡献者特别是列并行ADC工作时数字电路的开关噪声会通过电源耦合到模拟部分。做影像系统架构这么多年我越来越觉得读出电路的选择没有绝对的好坏只有适合不适合。关键是要理解每种架构的物理限制和工程代价然后在噪声、速度、功耗、面积之间找到那个平衡点。这个平衡点往往不是理论计算出来的而是在实验室里一次次调试、一次次踩坑之后用手摸出来的。