基于单光子探测的时间相关计数TCSPC设计实现

电子说

1.3w人已加入

描述

1 . TCSPC技术原理

TCSPC时间相关单光子计数技术是一种成熟且通用的单光子计数技术,是一种功能强大的分析方法,目前广泛应用于荧光寿命测量、时间分辨光谱、荧光寿命成像、飞行时间测量等众多领域,尤其是在生命科学和基础物理学中使用。

TCSPC技术使用高重复频率的脉冲激光器作为光源,使用高灵敏度探测器对信号多次重复测量,计量离散光子脉冲实现甄别信号,把探测器探测到的信号看成单个光子形成的脉冲序列,每当探测器输出一个脉冲则代表探测到一个光子,不是记录脉冲强度,而是记录脉冲密度来实现测量。

单光子探测器的输出信号是对应于探测到单个光子的随机分布的脉冲序列。一般情况下,一个信号周期内探测到多于一个光子的几率是很小的,有些信号周期会探测到一个光子,也有可能许多信号周期内没有检测到光子。

当探测到一个光子时,就可以在信号周期内测得与探测器脉冲对应的时间。每记录一次这样的事件(光子),就在对应的存储单元中加“1”,该存储单元的地址与探测时间对应。在记录了许多光子之后,就可以根据存储器中各个单元的光子数,得到探测时间的分布,即光脉冲的波形。

TCSPC技术将多个激光脉冲周期采集到的光子信号累积,光子信号与激光同步信号之间具有时间相关性,会在时域上形成光子计数峰,同时剔除随机分布在各个时刻,计数值较少的暗计数。如图1所示为TCSPC计数原理。

上位机

图1 TCSPC计数原理

2 .TCSPC计数FPGA实现

在普通的激光测距系统中,可以将经过TDC时间数字转换技术求取的时刻值通过传输接口,传输给上位机软件或直接由MCU进行处理,得到测距值。但是在多通道、高重频单光子激光三维成像系统中,为了得到高质量的图像信息,势必需要大容量的点云数据,进行分析,此时,需要进行实时的在线处理,完成图像数据的提取。

图2为时间相关单光子技术模块结构图,在这里,等比鉴别器我们将在后续的文章中做具体的讲解,而时间数字转换器的FPGA实现前面已分多个章节讲解过,在这里主要讲解,如何在FPGA中实现在线的TCSPC的累积,即生成柱状图。有需要的读者,可以联系笔者,下载程序,或者一起探讨。

上位机

图2 时间相关单光子技术模块

其实,FPGA实现TCSPC的累积相对比较简单,也就是统计时刻值的个数。通过FPGA内的RAM模块进行实现,如图3所示。

将计算得到的TDC值作为RAM的读写地址,首先将当前的时刻值的统计值从RAM中读出,然后完成加1,将新的计数值存在RAM中,这样完成一个TCSPC累积,根据系统具体的累积时间要求,完成TCSPC的累积。

上位机

图3时间相关光子计数FPGA实现

根据上次基于多相位的TDC设计,输出的TDC值位宽为16bit,因此在这里设置简单双端口RAM的界面如图4所示,数据位宽为16bit,即累积最大的值为65536,数据深度为65536(根据TDC的位宽决定)。

上位机

图4 RAM IP核设置

//* tb文件,从文件中读取仿真数据 //

reg [15:0]TDC_data[4999:0];

integer i;

initial

begin

i=0;

begin

$readmemh("D:/TDC_data.txt",TDC_data,0,4999);

end

forever

begin

@(posedge Clk_in or posedge Reset)

if(Reset == 1'b1)

begin

TDC_Data1 <= 12'd0;

TDC_Data_Valid1 <= 1'b0;

end

else

begin

i <= i+1;

TDC_Data1 <= TDC_data[i];

TDC_Data_Valid1<= 1'b1;

end

end

end

// FPGA部分代码 //

ram_enb <= 1'b0;

ram_ena <= 1'b1;

ram_wea <= 1'b1;

ram_addra <= TDC_Data;

ram_dina <= ram_doutb + 16'd1; //读出RAM值进行+1

if(acc_cnt == 16'd5000)//累积5000个数据结束

begin

ms_ram <= 4'd4;

acc_cnt <= 16'd0;

end

else

begin

fms_ram <= 4'd0;

acc_cnt <= acc_cnt + 16'd1;

end

图5为TCSPC仿真结果图,在这里累积了5000个点,在实际程序中,可以按累积时间点来计算,也可以按数据点数来计算。和图6 Matlab程序进行比较,得出FPGA的计算结果是正确的。

上位机

图5 TCSPC FPGA仿真结果

上位机

图6为TCSPC Matlab计算结果图

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
jf_84920299 08-24
0 回复 举报
您好,这边有fpga实现代码吗?同求,小白,怎么联系笔者,非常感谢 收起回复
jf_84920299 08-24
0 回复 举报
想问一下您,您有这边相关的代码实现了吗? 收起回复
全部评论

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分