news 2026/9/28 13:47:25

手机摄像头模组CCM拆解:Sensor、VCM与ISP内部构造与工作原理详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手机摄像头模组CCM拆解:Sensor、VCM与ISP内部构造与工作原理详解

1. 手机摄像头模组CCM拆解:从Sensor到VCM,一文看懂内部构造与工作原理

1.1 为什么我要写这篇拆解

前阵子帮一个做嵌入式视觉的朋友调一块RV1126B的板子,sensor点亮之后图像一直发灰、暗部噪点爆炸,他问我是不是sensor坏了。我让他把模组拆下来,用放大镜看了一遍FPC上的元件布局,又对着datasheet核了一遍供电和MIPI走线,最后发现是VCM的驱动电流设置不对,导致对焦马达一直在微震,长曝光下画面自然糊。这件事让我意识到,很多人天天在代码里调ISP、写CCM矩阵、跑OpenCV的color correction,但对手机摄像头模组CCM里面到底装了些什么、每个部件干什么活,其实是没有物理概念的。

CCM这个词在不同语境下含义不一样。做图像算法的说CCM,通常指Color Correction Matrix,颜色校正矩阵;做硬件和模组的说CCM,指的是Compact Camera Module,紧凑型摄像头模组。这两个概念经常被混着用,热搜里“ccm和dcm怎么选”问的其实是模组选型,而“opencv ccm”问的是颜色校正矩阵怎么算。这篇内容我打算从物理拆解的角度,把CCM模组从外到内扒一遍,顺带把Sensor、VCM、ISP这几个核心角色串起来讲清楚。不管你是刚入行的驱动工程师、还是做图像调试的算法同学,或者只是好奇手机背面那个小凸起里到底塞了什么,看完应该都能建立起一个完整的物理图景。

1.2 一颗模组的基本盘:CCM到底由哪些部分组成

先把结论摆出来。一颗典型的手机摄像头CCM,从下到上大致是这么几层:最底下是FPC柔性电路板,上面贴着连接器和若干被动元件;FPC上面是Sensor芯片,通常用COB或FC工艺绑定;Sensor正上方是支架和IR滤光片;再往上是对焦马达VCM;最顶上才是镜头Lens。有些模组还会集成OIS光学防抖线圈、闭loop霍尔传感器、EEPROM存储校准数据。整个堆叠高度控制在几毫米以内,这也是为什么手机摄像头凸起一直压不下去——物理光学决定了焦距和法兰距,塞不进更薄的机身。

拆解的时候我习惯从FPC那一面入手。先用热风枪在连接器背面均匀加热,温度控制在180到220摄氏度之间,用镊子轻轻挑起连接器。这里有个坑:很多模组的FPC是多层板,加热不均匀容易把焊盘拉掉。我一般会先在边缘涂一点助焊剂,让热量传导更均匀。连接器取下之后,用刀片沿支架边缘划开胶水,注意刀片角度要平,别戳到Sensor表面的微透镜。支架通常是LCP或PPS材料,耐温不错,但脆性大,用力过猛会裂。

取下支架之后就能看到IR滤光片,它一般用点胶固定在支架内框上。IR滤光片的作用是滤掉近红外光,因为硅基Sensor对红外也敏感,不滤掉的话画面会偏红、色彩饱和度下降。有些拆机视频里把IR滤光片拆了当红外摄像头用,就是这个原理。滤光片下面是Sensor的感光面,肉眼能看到一层淡淡的蓝紫色镀膜,那是微透镜阵列。再往下就是Sensor的硅衬底和焊线,这部分不建议继续拆了,焊线直径通常只有十几微米,碰一下就断。

VCM通常套在镜头外面,和支架通过螺纹或卡扣连接。拆VCM的时候要注意,里面有两根细如发丝的弹片,连接着动子和定子。弹片一旦变形,对焦行程就会偏移,表现为近距离对不上焦或者对焦时发出咔咔声。我拆过一颗报废的模组,弹片被我镊子碰了一下,装回去之后对焦直接废了,只能当备件拆Sensor用。

1.3 Sensor:把光子变成电子的第一站

Sensor是整个模组的核心,没有它就没有图像。手机里用的几乎都是CMOS Sensor,主流尺寸从1/3英寸到1英寸不等。Sensor的像素阵列由一个个像素单元组成,每个单元包含光电二极管、传输管、复位管和源极跟随器。光子打到光电二极管上激发出电子,电子被收集起来形成电荷,电荷量正比于光强。曝光结束后,电荷被逐行读出,经过列并行ADC转换成数字信号,再通过MIPI接口送给ISP。

这里要提一个热搜词“cis isp 坏点矫正”。CIS就是CMOS Image Sensor的缩写,坏点矫正是ISP pipeline里很靠前的一步。Sensor制造过程中难免有缺陷像素,表现为永远亮或者永远暗。ISP在去马赛克之前会先做坏点检测和补偿,通常用邻域像素的中值或均值来替换坏点。如果坏点矫正没做好,去马赛克之后坏点会被扩散成彩色斑点,后期很难修。

Sensor的读出方式有 rolling shutter 和 global shutter 两种。手机几乎全是 rolling shutter,逐行曝光,成本低、像素密度高,但拍高速运动物体会有果冻效应。全局快门每个像素同时曝光,适合工业检测,但像素做大之后良率低、成本高,手机里基本见不到。

选Sensor的时候,除了分辨率和尺寸,还要看量子效率、读出噪声、满阱容量、动态范围。量子效率决定弱光下的信噪比,读出噪声决定暗部纯净度,满阱容量决定高光不过曝的能力。这几个参数互相制约,没有哪颗Sensor是全能的。我个人的经验是,弱光优先看量子效率和读出噪声,白天优先看满阱容量和动态范围。

1.4 VCM:让镜头动起来的那只小手

VCM是Voice Coil Motor的缩写,中文叫音圈马达。它的原理和扬声器差不多:通电线圈在永磁场中受到安培力,推动镜头沿光轴方向移动,改变镜头到Sensor的距离,从而实现对焦。手机模组里常见的有开环VCM、闭环VCM和OIS VCM。开环VCM便宜、结构简单,但受重力影响大,手机倒过来拍对焦会变慢。闭环VCM里面加了霍尔传感器,能实时反馈镜头位置,对焦更快更准。OIS VCM除了对焦方向,还能在垂直于光轴的方向上补偿手抖,结构复杂得多,成本也高。

VCM的驱动电流通常在几十到一百多毫安,驱动电压2.8V到3.3V。驱动IC通过I2C接收目标位置,然后输出PWM或DAC电压给VCM线圈。这里有个细节:VCM的行程和电流不是严格线性的,靠近行程两端会有磁滞和饱和。调试的时候要在整个行程上打表,拟合出电流-位置曲线,存到EEPROM里。ISP或驱动在运行时查表输出,才能保证对焦精度。

热搜里“rv1126b sensor”和“利用 ethernetkrl interface (eki) 作为通信桥梁,来启动和控制 robot sensor inte”这两个词,其实指向的是嵌入式平台上的sensor驱动和通信。RV1126B是瑞芯微的一颗视觉芯片,内置ISP,支持多路sensor输入。在机器人或工业视觉场景里,sensor和主控之间可能隔着以太网,这时候就需要一个通信桥梁把控制命令和图像数据传过去。EKI在这里扮演的就是协议转换的角色,把I2C控制命令封装成以太网帧,再把MIPI图像数据打包发送。这种架构在分布式视觉系统里很常见,好处是sensor可以放得很远,坏处是延迟和同步要仔细处理。

1.5 ISP:图像质量的幕后操盘手

ISP是Image Signal Processor的缩写,中文叫图像信号处理器。它接收Sensor输出的RAW数据,经过一系列处理,最终输出YUV或RGB图像。ISP pipeline通常包括:坏点矫正、黑电平校正、镜头阴影校正、去马赛克、白平衡、颜色校正、伽马校正、锐化、降噪。每一步都有大量参数,调好了画面通透,调不好画面发灰、偏色、噪点爆炸。

去马赛克是ISP里最核心的一步。因为每个像素只感应一种颜色(Bayer阵列),需要根据邻域像素插值出另外两种颜色。最简单的双线性插值会带来伪彩和拉链效应,所以实际ISP会用更复杂的算法,比如边缘导向插值、方向滤波。FPGA做ISP去马赛克的时候,通常用流水线结构,每个时钟处理一个像素,保证实时性。我见过一些开源ISP方案,去马赛克用的是梯度检测加中值滤波,效果比双线性好不少,但资源消耗也大。

颜色校正矩阵CCM是ISP里另一个关键模块。Sensor的RGB响应曲线和人眼不一样,需要用一个3x3矩阵把Sensor RGB映射到标准sRGB。这个矩阵通常用24色卡在标准光源下拍一张,然后用最小二乘法拟合出来。OpenCV里可以用cv2.calcColorCorrectionMatrix或者自己写最小二乘。矩阵系数会存在模组的EEPROM里,ISP启动时加载。如果CCM矩阵不对,画面会偏色,比如肤色发青、天空发紫。

“isp调试”和“自动isp图像效果调试”这两个热搜词,反映的是ISP调试的复杂性。一颗Sensor从点亮到画面可用,通常要调几十个参数,跑几百组场景。自动调试工具现在也有,用算法搜索参数空间,但最终还是要人眼判断。我个人的经验是,先调黑电平和白平衡,把画面拉正;再调CCM和伽马,把颜色和对比度做对;最后调锐化和降噪,把细节和纯净度平衡好。顺序不能乱,否则后面调好了前面又歪了。

1.6 从RAW到JPEG:一条完整的图像链路

把前面几个部件串起来,一颗手机摄像头从按下快门到生成照片,大致经过这么几步。光线穿过镜头,经过IR滤光片,打到Sensor的像素阵列上。Sensor曝光、读出,输出RAW数据。RAW数据通过MIPI接口送到ISP。ISP先做坏点矫正和黑电平校正,然后镜头阴影校正补偿边角暗角,接着去马赛克把Bayer变成RGB,再做白平衡和CCM颜色校正,然后伽马校正把线性响应变成人眼舒适的非线性响应,最后锐化和降噪,输出YUV。YUV再送给编码器,压缩成JPEG或HEVC。

这条链路里,任何一个环节出问题都会影响最终画质。镜头解析力不够,画面会肉;IR滤光片漏光,画面会偏红;Sensor读出噪声大,暗部会脏;VCM对焦不准,画面会糊;ISP去马赛克算法差,边缘会有伪彩;CCM矩阵不对,颜色会偏;伽马曲线不对,对比度会怪;锐化过度,画面会有白边;降噪过度,画面会涂抹。所以调一颗模组,本质上是在这条链路上找平衡。

1.7 拆解实操:我一般怎么下手

拆一颗CCM,工具不用太复杂。热风枪、恒温烙铁、精密镊子、刀片、放大镜或显微镜、防静电手环,基本就够了。第一步先拆FPC连接器,用热风枪从背面加热,温度别超过250度,时间别超过30秒。第二步用刀片沿支架边缘划胶,注意刀片要平,别戳到Sensor。第三步取下支架和IR滤光片,这时候就能看到Sensor和VCM了。第四步拆VCM,如果是螺纹连接的,逆时针拧下来;如果是卡扣的,用镊子轻轻撬开。第五步拆Sensor,这一步风险最高,焊线很细,建议用热风枪从背面加热FPC,让Sensor自然脱落,别用镊子硬撬。

拆下来的部件可以单独测试。Sensor可以用FPGA或专用测试板点亮,看RAW输出是否正常。VCM可以用驱动板加电流,看镜头是否移动。IR滤光片可以放在白纸上,用红外遥控器对着照,如果能看到紫光,说明滤光片还在起作用。镜头可以反过来当放大镜用,看解析力。

注意事项有几个。一是防静电,Sensor和VCM都怕静电,操作前一定要戴手环。二是温度控制,热风枪温度太高会烤坏塑料支架和FPC。三是力度控制,镊子夹焊线必断,夹弹片必变形。四是记录顺序,拆之前拍几张照片,记下每个部件的位置和方向,装回去的时候才不会错。

1.8 常见问题与排查思路

模组不亮,先查供电。Sensor通常需要几路电源:模拟电源、数字电源、IO电源。用万用表量一下电压是否正常,再看I2C是否能读到ID。如果ID读不到,可能是I2C地址不对或者上拉电阻没焊。如果ID能读到但不出图,查MIPI时钟和数据线,用示波器看有没有信号。如果MIPI有信号但ISP不出图,查ISP配置和时钟。

画面偏色,先查白平衡和CCM。用标准色卡拍一张,看哪个色块偏得最厉害。如果整体偏红,可能是IR滤光片漏光或者白平衡增益不对。如果肤色偏青,可能是CCM矩阵不对。如果暗部偏绿,可能是黑电平没校正好。

对焦不准,先查VCM驱动。用驱动板给VCM加不同电流,看镜头是否移动。如果不移动,可能是线圈断了或者驱动IC坏了。如果移动但不线性,可能是弹片变形或者磁铁退磁。如果移动正常但对焦还是不准,可能是EEPROM里的校准数据丢了,需要重新打表。

画面有噪点,先查Sensor读出噪声和ISP降噪。如果暗部噪点像雪花,可能是读出噪声大或者增益太高。如果噪点有彩色斑点,可能是坏点矫正没做好。如果噪点有规律条纹,可能是电源纹波或者MIPI干扰。

1.9 选型与调试的一些个人经验

选CCM模组的时候,我一般先看应用场景。如果是手机主摄,优先看Sensor尺寸和量子效率,弱光表现决定用户体验。如果是工业视觉,优先看全局快门和帧率,运动物体不能有果冻效应。如果是机器人视觉,优先看接口和同步,多路sensor要能硬件同步。如果是车载,优先看动态范围和工作温度,隧道进出不能过曝或全黑。

调试ISP的时候,我习惯先跑一遍标准场景,包括室内日光、室外阴天、室外晴天、夜景、逆光、微距。每个场景拍几张,看直方图和色卡。然后针对问题调参数,每次只调一个模块,调完再跑一遍场景。这样虽然慢,但能保证不引入新问题。自动调试工具可以加速搜索,但最终判断还是要人眼。

CCM和DCM怎么选,这个问题其实要看定义。如果DCM指的是Depth Camera Module,那就是另一类模组,通常包含红外投射器和红外接收器,用于深度测量。CCM是彩色成像,DCM是深度感知,两者用途不同,不是替代关系。如果DCM指的是Display Camera Module,那就是屏下摄像头,对透光率和体积要求更高,选型逻辑又不一样。所以问这个问题之前,先明确DCM到底指什么。

1.10 最后分享几个小技巧

拆模组的时候,如果FPC连接器焊盘拉掉了,可以用细铜线飞线,但要注意线长尽量短,否则MIPI信号会变差。如果IR滤光片碎了,可以用手机屏幕的偏光片临时替代,但透光率和截止波长不一样,只能应急。如果VCM弹片变形了,可以用镊子轻轻掰回来,但精度很难保证,最好换新。如果Sensor表面有灰尘,用气吹吹,别用棉签擦,微透镜很脆弱。

调ISP的时候,如果画面发灰,先看黑电平和伽马。黑电平没校正好,暗部会浮起来;伽马曲线不对,中间调会平。如果画面偏色,先看白平衡和CCM。白平衡增益不对,整体会偏;CCM矩阵不对,特定颜色会偏。如果画面噪点多,先看增益和降噪。增益太高,噪点自然多;降噪太强,细节会丢。

这颗模组后续还可以这样扩展:把拆下来的Sensor接到FPGA开发板上,自己写一个简单的ISP pipeline,从RAW到RGB全流程跑一遍,对理解图像处理帮助很大。或者把VCM接到驱动板上,用单片机输出PWM,做一个自动对焦的小装置。或者把IR滤光片拆了,做一个红外摄像头,晚上看小动物很清楚。这些玩法我都试过,踩过不少坑,但也学到了很多。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/28 13:47:00

stable-diffusion.cpp 实战:从零编译到 CPU 量化推理全解析

stable-diffusion.cpp 这个名字,第一次看到的人多半会心一笑:怎么又双叒叕一个“cpp 重写版”?但如果你经历过 llama.cpp 从一个周末玩具变成事实标准的过程,就会明白这个命名背后的分量。它把 Stable Diffusion 的完整推理栈从 P…

作者头像 李华
网站建设 2026/9/28 13:46:30

化妆护理技巧:妆前准备、底妆手法与妆后修护完整指南

化妆和护理从来就是一件事。底妆浮粉、卡纹、暗沉,很多时候不是粉底液不行,而是妆前的皮肤状态没伺候到位;反过来,卸妆不彻底、过度清洁导致的屏障受损,又会让你第二天上妆时脸上处处是雷区。这篇就围绕“化妆护理技巧…

作者头像 李华
网站建设 2026/9/28 13:46:27

Python深度学习猫狗表情识别模型部署到微信小程序全流程

简介:这份资源面向希望入门深度学习与小程序开发的初学者及在校学生,提供一套完整的猫狗表情识别实战方案,帮助读者打通从数据预处理、模型训练到服务端部署的全流程。压缩包共492个文件,约30.88MB,其中468张jpg图片构…

作者头像 李华
网站建设 2026/9/28 13:46:19

财务自由:现金流覆盖率比资产排名更重要

1. 先破个题:为什么"财务自由"和"你的资产排老几"根本不是一回事我接触过不少对"财务自由"这个词有执念的朋友,大家普遍有两个极端。一种是把财务自由等同于一个天文数字,觉得没有几千万上亿就不配谈自由&…

作者头像 李华
网站建设 2026/9/28 13:45:34

Keil MDK5中Peripherals菜单无外设寄存器?三步修复SVD配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/28 13:45:27

Reaper保姆级教程:从下载安装到录音混音导出

我玩数字音频也有些年头了。早年折腾过的DAW里,有的安装包大到能塞满小半个硬盘,有的授权体系复杂到让人劝退,还有的对笔记本自带声卡跟核显电脑简直是一种折磨。后来一个做混音的朋友甩了个Reaper下载链接给我,我记得很清楚&…

作者头像 李华