3. 图像传感器与高速采集原理

工业相机的高速采集能力,最终由图像传感器的物理结构与读出时序共同决定。理解 CCD 与 CMOS 的差异、曝光与读出的先后关系,以及帧率、行频、像素时钟、数据吞吐量之间的换算约束,是判断一台相机能否满足产线节拍、如何配置采集卡与接口带宽的基础。本节从传感器内部信号链出发,把这些参数串成一条可计算的链路。

一、CCD 与 CMOS:曝光与读出的两种组织方式

CCD(电荷耦合器件)的核心是电荷转移。曝光期间,光子在各像素势阱中积累电荷;曝光结束后,电荷包在时钟驱动下逐行、逐列转移到输出放大器,再串行转换为电压。CCD 的曝光是全局的——所有像素同时开始、同时结束积分,因此运动物体不会产生行间错位,这就是全局快门(Global Shutter)的天然优势。代价是读出必须等曝光结束后串行进行,且需要多相时钟与较高驱动电压,功耗和读出速度受限。

CMOS(互补金属氧化物半导体)则把电荷-电压转换放在每个像素内部,像素阵列通过行选、列选逐行读出。早期 CMOS 采用卷帘快门(Rolling Shutter):不同行在不同时刻开始曝光,逐行推进。拍摄高速运动物体时,行与行之间存在时间差,会产生倾斜、果冻效应。现代工业 CMOS 通过增加全局复位与存储节点,实现了全局快门,同时保留了 CMOS 低功耗、高集成度、易做高帧率的优点。当前高速工业相机绝大多数采用全局快门 CMOS。

判断快门类型不能只看“CCD/CMOS”字样:CMOS 也有全局快门型号,CCD 也有行转移结构。选型时应直接查数据手册中的 Shutter Type 字段。

二、曝光、读出与帧周期的关系

一帧图像的时间由曝光时间和读出时间共同构成。对全局快门传感器,帧周期 T_frame 至少为:

T_frame ≥ T_exposure + T_readout + T_overhead

其中 T_exposure 是曝光时间,T_readout 是把整帧像素数据从传感器读出所需时间,T_overhead 包括行消隐、帧消隐、触发延迟等。若曝光时间很短,帧率主要受读出时间限制;若曝光时间很长(如弱光下延长积分),帧率则被曝光时间压低。因此“最高帧率”通常是在最小曝光、最短读出条件下的标称值,实际使用中必须按上式重新核算。

读出时间又由像素阵列规模与像素时钟决定。设分辨率为 H 行 × V 列,像素时钟为 f_pix(单位 Hz),每个像素时钟周期输出一个像素,则理想读出时间为:

T_readout ≈ (H × V) / f_pix

例如 2048 × 2048 的传感器,像素时钟 80 MHz,理想读出时间约为 2048×2048 / 80e6 ≈ 52.4 ms,对应理论帧率约 19 fps。实际还要加上消隐与开销,通常低于该值。这说明:像素时钟是读出速度的“节拍器”,分辨率越高,同样像素时钟下读出越慢。

三、行频、帧率与像素时钟的换算

行频(Line Rate)表示每秒读出的行数,单位 kHz。对逐行读出的传感器,行频与像素时钟、行像素数满足:

f_line = f_pix / (H_pixels + H_blank)

其中 H_pixels 为有效行像素数,H_blank 为行消隐像素数。帧率则为:

f_frame = f_line / (V_lines + V_blank)

把两式合并,可得到帧率与像素时钟的直接关系:

f_frame = f_pix / [(H_pixels + H_blank) × (V_lines + V_blank)]

这个公式是高速采集配置的核心。它告诉我们:想提高帧率,可以降低分辨率(ROI 裁剪)、提高像素时钟、减少消隐,或采用多通道并行读出。工业相机常见的“ROI 提升帧率”正是通过减少 V_lines 和 H_pixels 实现的;而“像素合并(Binning)”则通过合并相邻像素降低有效像素数,同时提高灵敏度,但会牺牲空间分辨率。

图像传感器高速采集信号链与参数关系 传感器像素阵列 曝光积分:光子→电荷 T_exposure 决定运动模糊 读出转移:电荷→电压 T_readout 决定帧率上限 读出时序参数 像素时钟 f_pix 行频 f_line 帧率 f_frame 行消隐 H_blank 帧消隐 V_blank 数据输出 像素位深 b(8/10/12 bit) 吞吐量 = H×V×b×f_frame 接口带宽必须 ≥ 吞吐量 GigE / USB3 / CXP 约束 丢帧、溢出判断依据 核心换算关系 T_readout ≈ (H × V) / f_pix  f_line = f_pix / (H_pixels + H_blank) f_frame = f_pix / [(H_pixels + H_blank) × (V_lines + V_blank)]  Throughput = H × V × b × f_frame 示例(假设参数,非实测):2048×2048,12 bit,f_pix = 80 MHz T_readout ≈ 2048×2048 / 80e6 ≈ 52.4 ms → 理论帧率约 19 fps 吞吐量 ≈ 2048×2048×12×19 ≈ 957 Mbps,需接口带宽留 20% 余量

四、数据吞吐量:从传感器到主机的带宽账

数据吞吐量(Throughput)是单位时间需要传输的像素数据量,计算公式为:

Throughput = H × V × b × f_frame

其中 b 为像素位深(bit)。以 2048×2048、12 bit、19 fps 为例,吞吐量约为 2048×2048×12×19 ≈ 957 Mbps。这意味着接口有效带宽必须大于该值,并留出协议开销余量。GigE Vision 千兆网有效载荷约 950~1000 Mbps,几乎被占满;USB3.0 约 3.2 Gbps,余量充足;CoaXPress、Camera Link 则面向更高吞吐。若接口带宽不足,会出现丢帧、缓冲溢出、采集卡报错等现象。

实际工程中,吞吐量还受编码方式影响。例如 10 bit 数据打包成 16 bit 传输会浪费带宽,而采用 8 bit 截断或无损压缩可降低负载。此外,多相机同步采集时,总吞吐量是各相机之和,必须按系统级带宽核算,而不是单台相机的标称值。

五、参数联动与配置思路

这些参数不是孤立的,而是相互制约。提高帧率的手段包括:降低分辨率(ROI)、提高像素时钟、减少消隐、增加读出通道、降低位深。但每一种都有代价:ROI 缩小视场,像素时钟提高可能增加噪声与功耗,位深降低损失灰度层次。因此配置时应先明确节拍要求与视场精度,再反推所需帧率与分辨率,最后核算吞吐量与接口带宽。

参数符号典型单位对帧率的影响工程取舍
曝光时间T_exposureμs越长帧率越低弱光需延长,运动需缩短
像素时钟f_pixMHz越高读出越快受功耗与噪声限制
行频f_linekHz决定逐行读出速度与行像素数、消隐相关
分辨率H×Vpixel越大读出越慢ROI 可提升帧率
位深bbit影响吞吐量而非帧率8/10/12 bit 按需选择
接口带宽BWGbps不足则丢帧需大于吞吐量并留余量
标称最高帧率通常是在最小曝光、最小 ROI、最低位深下测得。实际配置后必须用公式重新核算,并以采集软件的丢帧计数、时间戳间隔作为验证依据。