4. 雪崩光电二极管(APD)工作模式

TCSPC,说白了就是给每个光子打时间戳。

你想想看,单光子探测器只能告诉你「来了个光子」,但它说不清这个光子是在激光脉冲后的第几纳秒到达的。TCSPC 就是干这个的——把光子到达时间精确记录下来,然后统计出荧光衰减曲线。

我刚开始接触这个技术时,总觉得它跟普通光子计数差不多。后来踩了坑才明白,这两者完全是两码事。普通光子计数只管「有没有」,TCSPC 管的是「什么时候到」。

4.1 TCSPC 原理

TCSPC 的核心思想很简单:重复测量、统计分布。

你给样品打一个短脉冲激光,样品发出荧光。荧光光子的到达时间相对于激光脉冲有一个概率分布。你重复这个实验几百万次,把每个光子的到达时间记录下来,最后画成直方图——这就是荧光衰减曲线。

关键前提:每个激光脉冲周期内,最多只检测一个光子。如果来了两个,TCSPC 电路只记录第一个,第二个就丢了。这叫「死区时间效应」。

为什么会这样?因为 TCSPC 电路需要时间来处理一个光子事件。处理期间,它不响应新来的光子。所以你要控制光强,让每个脉冲周期内检测到光子的概率远小于 1(通常控制在 5% 以下)。

我记得第一次搭系统时没注意这个,光强调得太高,结果测出来的荧光寿命偏短——因为总是记录到早到的光子,晚到的光子被丢掉了。嗯,这是个经典坑。

4.2 时间幅度转换器(TAC)与 TDC

TCSPC 的核心硬件有两个流派:TAC 和 TDC。

4.2.1 TAC:时间幅度转换器

TAC 的工作原理是:光子到达时,开始给一个电容充电;下一个时钟脉冲到来时,停止充电。电容上的电压与充电时间成正比。然后 ADC 把这个电压转换成数字值。

流程是这样的:

  1. 激光脉冲触发 TAC 开始
  2. 光子到达触发 TAC 停止
  3. 电容电压被 ADC 量化
  4. 数字值存入直方图存储器
  5. TAC 复位,等待下一个周期

TAC 的优点是线性度好,时间分辨率高(可以做到几个皮秒)。缺点是转换时间长,死区时间大。

4.2.2 TDC:时间数字转换器

TDC 直接测量时间间隔,输出数字值。没有电容充电那一步。

现代 TDC 常用两种架构:

  • 延迟线法:用一串延迟单元,光子信号在延迟线中传播,锁存器记录传播位置
  • 游标法:用两个不同频率的振荡器,通过相位差来测量时间

TDC 的优点是死区时间短,适合高计数率应用。缺点是分辨率受工艺限制,通常几十皮秒量级。

参数 TAC TDC
时间分辨率 ~1 ps ~10 ps
死区时间 ~1 μs ~10 ns
线性度 优 良
最大计数率 ~1 MHz ~100 MHz
功耗 中 低
成本 高 中

我的建议:如果你做荧光寿命成像(FLIM),需要高时间分辨率,选 TAC。如果你做高速光子计数,比如量子密钥分发,选 TDC。我个人的习惯是,实验室里两种都备着,看需求切换。

4.3 TCSPC 系统搭建

搭一套 TCSPC 系统,你需要这些模块:

  • 脉冲激光器:重复频率从几 kHz 到几十 MHz,脉宽要远小于荧光寿命
  • 单光子探测器:SPAD 或 PMT,暗计数要低
  • TCSPC 模块:TAC 或 TDC 核心,加上直方图存储器
  • 同步信号:激光器的触发输出,作为 TCSPC 的时间参考
  • 光学系统:滤光片、透镜、光纤耦合
  • 数据处理:计算机和拟合软件

连接顺序是这样的:

  1. 激光器触发信号分两路:一路去样品激发,一路去 TCSPC 模块的 START 输入
  2. 探测器输出接 TCSPC 模块的 STOP 输入
  3. TCSPC 模块输出直方图数据到计算机

注意:我曾经因为同步信号线没做阻抗匹配,导致时间抖动大了好几倍。后来换了 50 欧姆同轴电缆,问题才解决。高频信号传输,线缆质量直接影响时间分辨率。

下面是我常用的系统结构图:

TCSPC 系统结构图 脉冲激光器 分束器 样品 单光子探测器 TCSPC 模块 (TAC/TDC + 直方图) 计算机 同步信号 (START) 光子信号 (STOP) 直方图数据 说明: 虚线为同步信号路径,实线为光子信号路径。TCSPC 模块需要同时接收 START(激光同步)和 STOP(光子)信号。

4.4 时间分辨率与动态范围

这两个参数是 TCSPC 系统的核心指标,直接决定你能测什么、测多准。

4.4.1 时间分辨率

时间分辨率决定了你能分辨多小的寿命差异。它受以下几个因素限制:

  • 探测器抖动:SPAD 的抖动一般在 30-100 ps,PMT 在 100-300 ps
  • TCSPC 模块的 TDC 分辨率:通常 10-50 ps
  • 激光器抖动:好的皮秒激光器抖动 < 5 ps
  • 时钟抖动:同步信号传输引入的抖动

系统总时间分辨率是这些因素的平方和开根号:

Δt_total = sqrt(Δt_detector² + Δt_TDC² + Δt_laser² + Δt_clock²)

举个例子,如果你用 SPAD(50 ps 抖动)、TDC(20 ps 分辨率)、激光器(5 ps 抖动),总分辨率大约是:

Δt_total = sqrt(50² + 20² + 5²) ≈ 54 ps

嗯,这里要注意,实际系统中还有温度漂移、电源噪声等因素,实测值通常会比理论值大一些。

4.4.2 动态范围

动态范围指的是 TCSPC 系统能测量的最大时间范围。它由两个因素决定:

  • TAC/TDC 的量程:TAC 通常 10 ns - 100 μs,TDC 通常 10 ns - 1 μs
  • 直方图存储器的深度:常见 1024、2048、4096 个时间通道

时间分辨率与动态范围是矛盾的。你想想看,总时间范围固定,通道数固定,每个通道的时间宽度就是动态范围除以通道数。通道宽度越小,分辨率越高,但动态范围越小。

通道数 动态范围 10 ns 动态范围 50 ns 动态范围 100 ns
1024 9.8 ps 48.8 ps 97.7 ps
2048 4.9 ps 24.4 ps 48.8 ps
4096 2.4 ps 12.2 ps 24.4 ps

我的经验:测荧光寿命时,动态范围设为荧光寿命的 5-10 倍比较合适。比如寿命 5 ns,动态范围设 50 ns。通道数选 2048,这样每个通道约 24 ps,分辨率够用,数据量也不太大。

4.4.3 避坑指南

我曾经犯过一个低级错误:测一个寿命约 100 ps 的样品,用了 100 ns 的动态范围。结果直方图上只有几个通道有数据,根本拟合不出寿命。后来把动态范围调到 1 ns,通道宽度 1 ps,才看清衰减曲线。

反过来,测长寿命样品时,动态范围设太小也不行。有一次测一个微秒级寿命的磷光材料,用了 100 ns 动态范围,结果只看到衰减曲线的开头一小段。嗯,后来换了 TAC 模式,动态范围调到 10 μs,才拿到完整曲线。

总结一下:时间分辨率和动态范围是跷跷板。你要根据样品的荧光寿命来选。短寿命(ps 级)用小动态范围、高分辨率;长寿命(μs 级)用大动态范围、低分辨率。没有万能设置,每次实验前都要算一下。