本发明涉及光子相关光谱测量技术领域,具体涉及一种软件光子相关器及测量方法。
背景技术:
光子相关器是提取散射光信号的相关函数的装置。为了对光子脉冲的时间分布进行统计和数据处理。一个光子相关器每经过一个延迟时间t,对延迟时间内接收的对光子脉冲计数。得到经过k次延迟后的计数数据n(kt),用它与自身或其它信号经过延迟的数据相乘和累加。从而得到一个光强关于时间的自相关函数。
对于这种计算,可以采用硬件相关器和软件相关器。
对于硬件相关器,由硬件电路完成光子脉冲信号的相关性计算。
例如,在专利文献1(cn101726452a)中,提供一种基于现场可编程门阵列的光子相关器,能用于光子相关光谱技术中光强自相关函数的硬件实现,达到采样时间、相关运算时间可调,延迟通道数目满足纳米颗粒测量与反演的要求;在专利文献2(cn102313604a)中,提供一种基于复杂可编程逻辑器件和现场可编程门阵列的自适应光子相关器;在专利文献3(cn104792670a)中,提供一种基于现场可编程门阵列的多路复用光子相关器可将光子相关光谱测量技术从传统的单点测量扩展到三维空间测量,从而可用于动态光散射二维、三维成像,多点动态光散射信号监测等领域。
目前,国内较多的硬件相关器主要是进口美国brookhaven公司bi-9000at、bi-9010at和turbocorr数字相关器,德国alv公司alv-6000、alv-7000系列数字相关器和美国www.correlator.com网站上提供的flex02等系列相关器。
虽然硬件光子相关器,实时性好,应用广泛,但是存在以下缺点:
1、无法溯回相关运算前的原始数据;
2、采样时间调整困难,往往只有几个典型值可供选择
3、通道数越多,增加通道越消耗硬件资源。大量乘法器与移位寄存器会导致设计无法满足芯片可以承受的时序约束条件。
对于软件光子相关器,指通过把取样到的光子数存储在存储器中,通过计算机程序把计数数据读出,进而进行数据处理的相关器。因此,采样时和数据处理方法可以灵活地设定和修正。但是以下两个技术难点限制了软件光子相关器:
1、传输接口速度;
2、软件实时处理能力。
这使得软件相关器的做法所需的处理时间比硬件所需的处理时间长,并且当大量的光子数被读取进行运算时,光子测量会被暂停,造成装载效率低,实时性差。
技术实现要素:
本发明的目的在于针对上述现有技术中存在的问题,提出了一种软件光子相关器及其测量方法,实现大量光子数的不间断计数,并提高实时运算速率。
为达到上述发明的目的,本发明通过以下技术方案实现:
一种软件光子相关器,接收经样品池散射的激光,包括:
光电倍增管,用于将接收到的散射光信号转换为光子脉冲信号;
光子采集器,包括光子计数模块和fifo存储器,所述光子计数模块采用双计数模式对光电倍增管的光子脉冲信号进行交替计数,fifo存储器接收光子计数模块的计数数据;
pc端相关性运算模块,接收光子采集器的fifo存储器的部分计数数据,并进行相关性运算。
本发明还公开的一种软件光子相关器测量方法,包括步骤如下:
步骤1,通过光电倍增管江接收到的散射光信号转换为等幅光子脉冲信号;
步骤2,采用交替采样法对光子脉冲进行无间断计数;
步骤3,每一次采样完成后,在采样时钟信号的控制下,将计数数据送入fifo存储器;
步骤4,判断fifo存储器是否达到存储数据量阈值,是则将其中一部分数据输出给pc端相关性运算模块;
步骤5,实时计算光子计数数据的相关性,并输出相关曲线;
步骤6,判断是否收到停止测量指令,是的话清空并停止软件光子相关器,否则进入步骤4。
本发明的一种软件光子相关器及其测量方法,通过两个计数器交替计数实现光子脉冲的无间断计数,并利用fifo存储器的先入先出机制,每过一个采样时fifo存储器中填充一个数据,并且在fifo中数据达到一定数据量时,数据被pc端运算模块取走一部分数据,并进行相关性计算,实现大量光子数的不间断计数,并利用pc端高运算能力提高实时运算速率。
附图说明
图1为本发明的一种软件光子相关器的系统结构图。
图2为本发明的一种软件光子相关器的光子采集器的硬件结构。
图3为图2的fpga内构建的电路模块图。
图4为图3所示的光子计数模块的结构示意图。
图5为图3所示的dma控制模块的结构示意图。
图6为本发明的一种软件光子相关器的数据传输方式示意图。
图7为本发明的一种软件光子相关器测量方法的步骤图。
图8为本发明实施例的实时测量模式的时序图。
图9为本发明实施例的实时测量模式的程序流程图。
图10为本发明实施例的单次测量模式测量的时序图。
图11为本发明实施例的单次测量模式测量的程序流程图。
图12为本发明实施例的pc端测量软件界面的示意图。
具体实施方式
下面结合附图和实施例对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。
参看图1,为本发明实施例的系统结构图,其公开一种软件光子相关器,用于接收经样品池2散射的散射光信号,在具体实施例中,激光设备1发出激光穿过样品池2,该样品池2中盛有样品溶液a。
本发明的软件相关器包括有:
光电倍增管3,用于将接收到的散射光信号转换为光子脉冲信号;在本实施例中,光电倍增管3还包括有用以放大光子脉冲信号的信号放大电路和对光子脉冲信号进行甄别的甄别电路;
光子采集器4,参看图3和图6,包括光子计数模块r31和fifo存储器r41,所述光子计数模块r31采用双计数模式对光电倍增管3的光子脉冲信号进行交替计数,fifo存储器r41接收光子计数模块r31的计数数据;
pc端相关性运算模块5,接收光子相关器4的fifo存储器r41的部分计数数据,并进行相关性运算。
所述光子采集器4在本实施例中,包括一个外壳r5,外壳r5侧壁上设置光子脉冲输入接口r11和传输控制指令与光子计数数据的usb接口r12,在外壳r5内部设置电路板r2,电路板r2与光子脉冲输入接口r11、usb接口r12通信连接,所述电路板r2上设有fpga芯片r3、mcu芯片r4以及保护电路(未图示),所述fpga芯片r3内固化有光子计数模块r31,mcu芯片r4内包括有fifo存储器r41,通过光子计数模块r31实现光子数的采集,通过fifo存储器储存包含光子计数数据的脉冲信息。所述光子脉冲输入接口r11为输入端,用于接收脉冲信号,其接头可用bnc接口或者sma接口。所述usb接口r12为输入输出端,用于光子采集器与计算机的通信。
在本实施例中,所述光子计数模块r31采用的双计数模式,参看图4,具体为采用两个计数器c1和c2交替采样计数,即通过对clkadd端固定频率的输入,计数器c1与计数器c2交替工作对photonpluse端的光子脉冲信号进行计数。其交替工作的周期由cd端的信号进行控制。当一个计数周期完成后,对光子数锁存,清空并关闭计数器c1(或计数器c2),同时打开另一个计数器,输出端d输出光子计数数据并且输出同步脉冲信号clkout,实现光子脉冲的无间断计数。
作为另一个具体实施例,参看图3,在上述光子采集器4的基础上,所述fpga芯片r3内还固化有采样时间控制模块r32、直接存储器访问控制模块r34和io控制模块r35;其中的直接存储器访问控制模块r34简写为dma控制模块r34;
参看图5,所述采样时间控制模块r32包括有解码器和双口随机存取存储器(简写为双口ram),所述双口ram的数据端da与地址端aa则接外部mcu芯片r4,数据端db与地址端ab则接译码器;所述解码器接收mcu芯片或pc端发出的控制指令解析成控制信号,输出至双口随机存取存储器,mcu模块从双口随机存取存储器读取控制信号,并输送到直接存储器访问控制模块和光子计数模。
所述控制指令包括查询fifo存储器状态的指令和控制光子计数器采样间隔的指令。
所述dma控制模块r34,用于连接外部fifo,当获得写入fifo权限时,接入光子计数模块r31的输出端口,并将光子计数数据填充到fifo存储器的存储空间;dma控制模块r34还输出fifo状态供mcu芯片r4或pc端查询;
所述io控制模块r35提供mcu芯片接入dma控制模块r34的接口,即提供接入fpga芯片r3的接口。
参看图6,mcu芯片通过dma控制模块r34访问采样时间控制模块r34,以写入命令并且读取状态字。dma控制模块r34读取采样时间控制模块r34解析的控制信号,并输出至其它模块,并且写入光子相关器状态。例如:计算机发送命令控制计数器的采样间隔,译码器解析指令后dma控制模块r34向计数模块设置参数;计算机发送命令询问相关器fifo状态,译码器解析指令后dma控制模块r34向双口ram写入fifo是否被写满。
上述软件相关器进行测量前,首先需要开通光电倍增管至pc端相关性运算模块5的数据链路,分别对相关器进行初始化与设置。
参看图6,相关器的初始化:
第一步、光子采集器4首先插入计算机,获取电能,mcu芯片r4响应计算机usb协议,对设备完成枚举,挂载在usb总线上;
第二步、fpga芯片r3与mcu芯片r4完成接口初始化,fpga芯片r3受dma控制模块r34接口发来的命令控制,fpga芯片与mcu芯片r4内的fifo存储器r41相连;
第三步、mcu芯片r4与pc端相关性运算模块5完成usb接口初始化,mcu芯片r4向pc端相关性运算模块5提供双向低速端点ep1接受计算机软件发出指令并且响应;mcu芯片r4向pc端相关性运算模块5提供单向高速端点ep2传输fifo存储器r41的数据至pc,完成相关器的初始化。
软件相关器的设置:
用户通过pc端相关性运算模块5向usb端点ep1发送指令,指令通过mcu解码传给fpga。fpga经过译码采取相应措施,例如:收到设置采样时间为7微妙,采样时长为180秒。对相应的模块进行设置。
当用户通过软件向usb端点ep1进行询问时,指令通过mcu芯片r4译码,对相应模块进行查询,通过usb端点ep1答复计算机。例如回复fifo未满。
参看图12,为pc端相关性运算模块5的控制界面和相关性曲线显示界面,通过界面上对应选项的设置,向mcu芯片发送控制指令。
本发明还公开一种软件光子相关器测量方法,参看图7,包括步骤如下:
步骤1,通过光电倍增管江接收到的散射光信号转换为等幅光子脉冲信号;
步骤2,采用交替采样法对光子脉冲进行无间断计数;
步骤3,每一次采样完成后,在采样时钟信号的控制下,将计数数据送入fifo存储器;
步骤4,判断fifo存储器是否达到存储数据量阈值,是则将其中一部分数据输出给pc端相关性运算模块;
步骤5,实时计算光子计数数据的相关性,并输出相关曲线;通过自相关函数的相关曲线,可以通过反演程序计算出溶液a中的颗粒大小的以及分布情况;在计算机取得一部分数据后,这部分数据进行相关性计算,同时将数据写入硬盘,由于相关运算后fifo存储器仍然未被填满,fifo存储器中的数据又被及时读出,所以数据采集并未中断;
步骤6,判断是否收到停止测量指令,是的话清空并停止软件相关器,否则进入步骤4。
所述步骤2的交替采样法是采用第一采样时钟和第二采样时钟交替对等幅光子脉冲信号进行无间断计数,所述第一采样时钟和第二采样时钟根据采样时钟信号的控制交替采样,并将计数数据锁存输出。
所述步骤3还包括获取fifo存储器的写入权限和存储状态;当写入权限为准许状态时,将计数数据写入fifo存储器;将获取的存储状态发生给pc端以供监控。
参看图8和图9,对于实时测量模式,在每一次采样完成后,在采样时钟信号的控制下,计数器将计数结果送入fifo存储器;同时,计算机开始定时读取fifo存储器中的数据并进行相关性运算,实时输出相关性曲线。
参看图10和图11,对于单次测量模式,在计算机取得一部分数据后,将数据先写入硬盘。等到采集结束,再将数据进行一次整体的相关性计算,得到相关性曲线。
参看图12,为pc端相关性运算模块5的控制界面和相关性曲线显示界面,通过界面上对应选项的设置,向mcu芯片发送控制指令。
上述实施例仅用以说明本发明而并非限制本发明所描述的技术方案;因此,尽管本说明书参照上述的各个实施例对本发明已进行了详细的说明,但是,本领域的普通技术人员应当理解,仍然可以对本发明进行修改或者等同替换;而一切不脱离本发明的精神和范围的技术方案及其改进,其均应涵盖在本发明的权利要求范围当中。