使用LabVIEW与 NI FlexRIO实现基于FPGA的单原子反馈控制

作者:
Christian Sames - Max-Planck Institute of Quantum Optics
Markus Koch - Max-Planck Institute of Quantum Optics
Haytham Chibani - Max-Planck Institute of Quantum Optics
Maximilian Balbach - Max-Planck Institute of Quantum Optics
Tatjana Wilk - Max-Planck Institute of Quantum Optics
Gerhard Rempe - Max-Planck Institute of Quantum Optics

"使用NI FlexRIO,我们定制了自己的高性能硬件设备。基于LabVIEW FPGA,我们能够快速开发FPGA代码,因为它具有很高程度的概括性,同时适当地集成了VHDL IP"—— Christian Sames, Max-Planck Institute of Quantum Optics

挑战:
开发一种定制的时域数字转换器来研究光与物质相互作用的基本量子性质。

解决方案:
使用NI公司的 FlexRIO 与 LabVIEW FPGA模块来创建强大的,多功能的定制仪器,从而使我们可以用硬件实现时间严格任务的实时处理。这样可以实现对极小系统的反馈控制,甚至于单个原子与单个光子的相互作用。

反馈是控制动态系统最强有力的技术之一。我们实验室研究的系统含有一个单独的,与单个光子相互作用的中性孤立原子——量子化电磁场的本征激发——被高反射性的腔式镜面所环绕(如图 1和 2)。使用这套系统,我们可以研究光与物质相互作用的基本量子性质,要实现这一点必须将原子限制在腔镜的中央。然而,固有的加热过程更倾向于将原子推向其它位置。我们的目标是通过快速的电子反馈技术来抑制这种运动,使用回复力抵消这种逃逸运动。其基本原理如图3所示。运动的不可预测性使得针对它的反应必须快速,但是系统的量子特性限制了信息量的提取。因此,我们必须在100ns内,快速执行基于单个光子探测决策过程。我们展示的反馈方案[1,2]在这方面做得非常好。

图2. 用于单个原 子和光子实验的光学 谐振腔(红色)

图2. 用于单个原 子和光子实验的光学 谐振腔(红色)

解决这一棘手任务的关键电子元件是NI PXI-7954R NI FlexRIO FPGA模块,结合NI 6581高速数字输入输出适配器模块。使用适配器模块的主要意图是通过缓冲暴露的FPGA引脚的数字输入与输出,防止损坏。NI FlexRIO模块被安装在NI PXIe-1075机箱上,它具有NI PXIe-8130集成主机控制器。FPGAs是特殊的可重配置的集成电路,因此它们可以达到由硬件实现的高性能, 同时在整个设计过程中可以实现很高程度的通用性。 这一点,连同它们固有的并行性,可以提供快速与确定性的执行过程,从而使它们在科学研究与工业生产中成为广泛而有力的工具。NI FlexRIO模块具有两个主要优势。首先,它允许通过LabVIEW FPGA 模块快捷地为FPGA编程, 我们可以使用这种图形化的设计语言来设计高层的FPGA电路,同时如果有必要,它也集成了常用的,底层的VHDL代码。其次,FlexRIO模块直接将FPGA引脚展现给用户,能够实现高度定制的I/O。因此,它允许定制的,高性能硬件的创建。在我们的应用中,我们开发了一套定制的时域数字转换器,它能够以一个纳秒的分辨率对多个数字通路进行采样,处理实时数据,运用反馈算法,并向用户输出重要的信息。

具有1 ns分辨率与64位动态范围的四通道时域数字转换器
工作在很低的光强下,要求使用的设备能够探测单个光子。这些设备,称为单光子计数模块(SPCM),是基于雪崩光电二极管制造的,并能在探测到单个光子的时候发射数字电子脉冲(如图4所示)。我们使用由美国珀金埃尔默(PerkinElmer®)公司制造的设备(AQR-14)。脉冲的上升沿能够以350皮秒的精确度表示出光子的到达时间。对于我们的应用来说,1 ns的分辨率刚好需要FPGA对每个连接到SPCM的数字通路以1 GHz的频率采样。

图3. a)一个光 子探测器监测原子的 位置。 NI FlexRIO FPGA处理信号并 且控制光纤势能。 b)当原子向中心移 动,势能降低,反之 亦然,从而引起原子 失去动能。

图3. a)一个光 子探测器监测原子的 位置。 NI FlexRIO FPGA处理信号并 且控制光纤势能。 b)当原子向中心移 动,势能降低,反之 亦然,从而引起原子 失去动能。

图4. 通过单光子 计数模块 (SPCM)监测单 光子脉冲排放。脉冲 宽度约17 ns。 测量输出到50Ω。

图4. 通过单光子 计数模块 (SPCM)监测单 光子脉冲排放。脉冲 宽度约17 ns。 测量输出到50Ω。

高采样率可以通过使用Xilinx Virtex-5设备内置的数字串并转换能力实现,我们可以用它来把1 Gbit/s的数据流转换成8个同步的,每个125 Mbits/s的数据流。 每个数据流描述原始数据流的一部分,数据间的时间间隔为1 ns(如图5所示)。这项功能是通过LabVIEW中插入常用CLIP (器件级知识产权方案)实现的,从而允许集成的VHDL代码访问FPGA的输入/输出引脚。

图5. a) “iserdes” 连接指FPGA输入 口,接收1 Gbit/s数据 流,输出8个平行的 125 Mbit/s的数据 流。b)数据流D转 换器被分成8个分 流,每个分流保持时 间间隔

图5. a) “iserdes” 连接指FPGA输入 口,接收1 Gbit/s数据 流,输出8个平行的 125 Mbit/s的数据 流。b)数据流D转 换器被分成8个分 流,每个分流保持时 间间隔

图6. 将数据从自 定义嵌入转化到 LabVIEW。时 间标记的高与低的部 分加入到一个64位 无符号整数,不管时 间标志如何记录,都 会写入FIFO

图6. 将数据从自 定义嵌入转化到 LabVIEW。时 间标记的高与低的部 分加入到一个64位 无符号整数,不管时 间标志如何记录,都 会写入FIFO

每个上升沿对应于一个光子撞击,需要至少36位动态范围的时间标记;记录多达一分钟的数据集是非常有必要的,同时要避免内部计数器的溢出。这是通过运用边缘检测单元实现的,它对每8位宽度的,由“iserdes”产生输出的“串并转换”的数据流进行扫描。无论何时探测到上升沿,一个事件标志被宣称。一个用于表示8 ns间隔中事件发生位置的,3位形式的数据另外产生出来。这个值与61位的计数器同步运行在125 MHz的时钟下。总计,这能提供64位的时间标记,然后它——连同事件标志一起——被传递给LabVIEW FPGA。从那一刻起,LabVIEW VI负责处理剩下的部分。

四个探测器中每一个的光子撞击的时间标记都缓存在FIFOs。随后,它们被分类并合并成一个常见的数据流,它也具有控制信息。在数据流经由DMA通道进入主机PC的内存之前,它被缓存于NI FlexRIO模块的DRAM中。总体而言,这种结构允许在每个通道低于2,000个事件的情况下,实现每秒高达125百万个事件的峰值计数率。此外,平均每秒1亿个事件的计数率也可实现。这种情况可以持续大约1.6千万个事件,这是由DDR2内存的尺寸与速度限制造成的。最终,一个持续的25 MHz的计数率被实现,这是由PXI总线的带宽限制所决定的。升级成NI PXIe-796x NI FlexRIO模块将显著地提高平均计数率,这是因为增加的PXI Express总线速度,以及更快更大的DDR2内存。

请注意,尽管使用了专为处理高达200 Mbit/s数据率的NI 6581适配器模块的DDCA口,只要计数率不超过100 MHz,以1ns的分辨率探测上升沿仍然是可行的。适当的运行模式已经通过使用安捷伦的81150A 脉冲信号发生器的大量测试进行了验证。

逐个光子对单个原子的反馈
FPGA要执行的主要任务是实时对原子轨迹进行有效控制。我们使用NI FlexRIO FPGA模块来控制单个原子的运动,它被俘获于光腔内部的光学偶极阱。只需要通过探测一些光子,我们就能获得有关阱中原子实际位置的充足信息,从而操控它的运动。在这里,FPGA模块被用于记录光子的到达时间,评估原子的轨迹,并基于这些信息改变原子的俘获势能。当探测到单个光子时,一个数字化的电子脉冲被光电探测器发射出来,到达时间被FPGA以1 ns的分辨率在多个通路记录。基于光子被探测到的计数率变化,FPGA判断原子是否正向俘获势能的中心移动,或是在势阱的外部,来决定减少或增加俘获势能。

NI FlexRIO模块将被原子散射的光子的到达时间逐个分类并归栈。典型的归栈时间间隔一般为几百万分之一秒,它涉及到曝光时间,每隔几纳秒需要校正一下。散射光子率的变化通过比较当前堆栈与之前堆栈来评估,它被延时,延时时间等于曝光时间。延时使用FIFOs实现。在我们的实验中,光子通量的减少表明原子正向光腔的中部移动,而增加预示着原子正向外部移动。因为被俘获的原子对多种不同的力都非常敏感,它的运动在规则振动的同时,又叠加了一些无序的运动。这种机制使得原子轨迹在时间尺度内的不可预测性比它的振动频率更大,其振动频率一般约为5 kHz。一旦原子积累的动能超过它所处势阱的深度,它就会丢失。原子呆在势阱的时间被认为是存储时间。此外,对于一个被俘获原子来说,散射光子的通量一般仅为每10 µs一个光子的量级,从而使执行有效的反馈方案非常困难,这是因为有用的信息太少。一种可行的方案需要数字化地在高低值之间改变阱的势垒深度,取决于是否当前时间间隔内的撞击数量超过先前一定数值。就如同它看起来那么简单,与没有信号反馈回来的情况相比,它在原子的平均存储时间方面增加了30倍。存储时间平均1秒,最高超过7秒的结果已经实现,从而使这项技术完全可以与激光冷却方案相比,它要求更为复杂的光学结构。目前更加精密的反馈策略正在研究中。

监测
除了存储有关发射光子流的信息并反馈到系统中,将重要的信息显示给实验者也至关重要。对于最初的方案来说,这一点尤其重要。为实现这一目的,我们将一个快速数字模拟转换器(DAC)与两个视频图形阵列(VGA)连接器集成到FPGA。

DAC是AD(Analog Devices)公司的TxDAC (AD9744),它能提供210 Ms/s的采样率,同时具有14位的分辨率。在当前设计下,它运行在125 MHz的时钟频率下,并输出一个与探测到的光子数目成正比的电压。DAC的数据与时钟引脚被连接到NI 6581;22 Ω的电阻被串联以减少数字DAC输入的反射。模块的其余引脚被用于同VGA显示器交互。基本上每个VGA连接器含有三根信号线,以及两根数据线。信号线传输红,绿,蓝颜色信息。VGA的说明书要求它们连接75 Ω的电阻,并且承受0 V (黑色) 到 0.7 V (全部彩色亮度)的电压。同步由两个高阻TTL数据线实现,规定了水平与垂直的回描周期。如果只有8个颜色值(3位颜色深度)是需要的,那经由270 Ω电阻连接VGA连接器信号引脚与NI 6581适配器模块(采用3.3 V的配置模式)就足够了。数据线串联一个22 Ω的电阻。我们选择将显示器分为两部分:一部分显示基于文本的信息,另一部分是图像信息。对于文本模式来说,一套8乘以16像素的黑/白字体被载入到FPGA的一个内分区块RAMs中。另外一个区块RAM存储了符号编码。图形部分显示了探测器发射的趋势图或反馈算法的计算;这些图表也存储于内分区块RAM。运行于108 MHz像素时钟的,1280乘以1024像素的显示模式可以很容易地实现。

总结
使用NI FlexRIO,我们可以创建自己的高性能定制硬件。时域数字转换器是非常强大以及功能广泛的工具,可用于科学研究与工业生产的很多不同领域,它所能提供的优势超过了很多商业上可用的产品。FPGAs的计算能力进一步帮助我们从硬件上来实现时间严格任务的实时处理,从而使对较小系统执行反馈控制成为可能,甚至于单个原子与单个光子的相互作用。

使用LabVIEW FPGA,我们可以快速地开发FPGA编码,这是因为它的高度概括性,同时适当地集成了VHDL IP。此外,使用PXI平台让我们可以在系统中利用跟其它PXI仪器的触发与同步,从而使我们可以将定制的仪器集成到更大的系统中去,而不必执行整个的定制设计。