<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 使用LabVIEW與NI FlexRIO實(shí)現(xiàn)基于FPGA的單原子反饋控制

          使用LabVIEW與NI FlexRIO實(shí)現(xiàn)基于FPGA的單原子反饋控制

          作者: 時(shí)間:2017-02-27 來源:網(wǎng)絡(luò) 收藏

            挑戰(zhàn):

          本文引用地址:http://www.ex-cimer.com/article/201702/338889.htm

            開發(fā)一種定制的時(shí)域數(shù)字轉(zhuǎn)換器來研究光與物質(zhì)相互作用的基本量子性質(zhì)。

            解決方案:

            使用NI公司的 FlexRIOLabviewFPGA模塊來創(chuàng)建強(qiáng)大的,多功能的定制儀器,從而使我們可以用硬件實(shí)現(xiàn)時(shí)間嚴(yán)格任務(wù)的實(shí)時(shí)處理。這樣可以實(shí)現(xiàn)對(duì)極小系統(tǒng)的反饋控制,甚至于單個(gè)原子與單個(gè)光子的相互作用。

            反饋是控制動(dòng)態(tài)系統(tǒng)最強(qiáng)有力的技術(shù)之一。我們實(shí)驗(yàn)室研究的系統(tǒng)含有一個(gè)單獨(dú)的,與單個(gè)光子相互作用的中性孤立原子——量子化電磁場的本征激發(fā)——被高反射性的腔式鏡面所環(huán)繞(如圖 1和 2)。使用這套系統(tǒng),我們可以研究光與物質(zhì)相互作用的基本量子性質(zhì),要實(shí)現(xiàn)這一點(diǎn)必須將原子限制在腔鏡的中央。然而,固有的加熱過程更傾向于將原子推向其它位置。我們的目標(biāo)是通過快速的電子反饋技術(shù)來抑制這種運(yùn)動(dòng),使用回復(fù)力抵消這種逃逸運(yùn)動(dòng)。其基本原理如圖3所示。運(yùn)動(dòng)的不可預(yù)測性使得針對(duì)它的反應(yīng)必須快速,但是系統(tǒng)的量子特性限制了信息量的提取。因此,我們必須在100ns內(nèi),快速執(zhí)行基于單個(gè)光子探測決策過程。我們展示的反饋方案[1,2]在這方面做得非常好。

            解決這一棘手任務(wù)的關(guān)鍵電子元件是NI PXI-7954R NIFlexRIOFPGA模塊,結(jié)合NI 6581高速數(shù)字輸入輸出適配器模塊。使用適配器模塊的主要意圖是通過緩沖暴露的FPGA引腳的數(shù)字輸入與輸出,防止損壞。NIFlexRIO模塊被安裝在NI PXIe-1075機(jī)箱上,它具有NI PXIe-8130集成主機(jī)控制器。FPGAs是特殊的可重配置的集成電路,因此它們可以達(dá)到由硬件實(shí)現(xiàn)的高性能, 同時(shí)在整個(gè)設(shè)計(jì)過程中可以實(shí)現(xiàn)很高程度的通用性。 這一點(diǎn),連同它們固有的并行性,可以提供快速與確定性的執(zhí)行過程,從而使它們在科學(xué)研究與工業(yè)生產(chǎn)中成為廣泛而有力的工具。NIFlexRIO模塊具有兩個(gè)主要優(yōu)勢。首先,它允許通過LabVIEWFPGA 模塊快捷地為FPGA編程, 我們可以使用這種圖形化的設(shè)計(jì)語言來設(shè)計(jì)高層的FPGA電路,同時(shí)如果有必要,它也集成了常用的,底層的VHDL代碼。其次,FlexRIO模塊直接將FPGA引腳展現(xiàn)給用戶,能夠?qū)崿F(xiàn)高度定制的I/O。因此,它允許定制的,高性能硬件的創(chuàng)建。在我們的應(yīng)用中,我們開發(fā)了一套定制的時(shí)域數(shù)字轉(zhuǎn)換器,它能夠以一個(gè)納秒的分辨率對(duì)多個(gè)數(shù)字通路進(jìn)行采樣,處理實(shí)時(shí)數(shù)據(jù),運(yùn)用反饋算法,并向用戶輸出重要的信息。

            具有1 ns分辨率與64位動(dòng)態(tài)范圍的四通道時(shí)域數(shù)字轉(zhuǎn)換器

            工作在很低的光強(qiáng)下,要求使用的設(shè)備能夠探測單個(gè)光子。這些設(shè)備,稱為單光子計(jì)數(shù)模塊(SPCM),是基于雪崩光電二極管制造的,并能在探測到單個(gè)光子的時(shí)候發(fā)射數(shù)字電子脈沖(如圖4所示)。我們使用由美國珀金埃爾默(PerkinElmer?)公司制造的設(shè)備(AQR-14)。脈沖的上升沿能夠以350皮秒的精確度表示出光子的到達(dá)時(shí)間。對(duì)于我們的應(yīng)用來說,1 ns的分辨率剛好需要FPGA對(duì)每個(gè)連接到SPCM的數(shù)字通路以1 GHz的頻率采樣。

            高采樣率可以通過使用Xilinx Virtex-5設(shè)備內(nèi)置的數(shù)字串并轉(zhuǎn)換能力實(shí)現(xiàn),我們可以用它來把1 Gbit/s的數(shù)據(jù)流轉(zhuǎn)換成8個(gè)同步的,每個(gè)125 Mbits/s的數(shù)據(jù)流。 每個(gè)數(shù)據(jù)流描述原始數(shù)據(jù)流的一部分,數(shù)據(jù)間的時(shí)間間隔為1 ns(如圖5所示)。這項(xiàng)功能是通過LabVIEW中插入常用CLIP (器件級(jí)知識(shí)產(chǎn)權(quán)方案)實(shí)現(xiàn)的,從而允許集成的VHDL代碼訪問FPGA的輸入/輸出引腳。

            每個(gè)上升沿對(duì)應(yīng)于一個(gè)光子撞擊,需要至少36位動(dòng)態(tài)范圍的時(shí)間標(biāo)記;記錄多達(dá)一分鐘的數(shù)據(jù)集是非常有必要的,同時(shí)要避免內(nèi)部計(jì)數(shù)器的溢出。這是通過運(yùn)用邊緣檢測單元實(shí)現(xiàn)的,它對(duì)每8位寬度的,由“iserdes”產(chǎn)生輸出的“串并轉(zhuǎn)換”的數(shù)據(jù)流進(jìn)行掃描。無論何時(shí)探測到上升沿,一個(gè)事件標(biāo)志被宣稱。一個(gè)用于表示8 ns間隔中事件發(fā)生位置的,3位形式的數(shù)據(jù)另外產(chǎn)生出來。這個(gè)值與61位的計(jì)數(shù)器同步運(yùn)行在125 MHz的時(shí)鐘下??傆?jì),這能提供64位的時(shí)間標(biāo)記,然后它——連同事件標(biāo)志一起——被傳遞給LabVIEWFPGA。從那一刻起,LabVIEW VI負(fù)責(zé)處理剩下的部分。

            四個(gè)探測器中每一個(gè)的光子撞擊的時(shí)間標(biāo)記都緩存在FIFOs。隨后,它們被分類并合并成一個(gè)常見的數(shù)據(jù)流,它也具有控制信息。在數(shù)據(jù)流經(jīng)由DMA通道進(jìn)入主機(jī)PC的內(nèi)存之前,它被緩存于NIFlexRIO模塊的DRAM中??傮w而言,這種結(jié)構(gòu)允許在每個(gè)通道低于2,000個(gè)事件的情況下,實(shí)現(xiàn)每秒高達(dá)125百萬個(gè)事件的峰值計(jì)數(shù)率。此外,平均每秒1億個(gè)事件的計(jì)數(shù)率也可實(shí)現(xiàn)。這種情況可以持續(xù)大約1.6千萬個(gè)事件,這是由DDR2內(nèi)存的尺寸與速度限制造成的。最終,一個(gè)持續(xù)的25 MHz的計(jì)數(shù)率被實(shí)現(xiàn),這是由PXI總線的帶寬限制所決定的。升級(jí)成NI PXIe-796x NIFlexRIO模塊將顯著地提高平均計(jì)數(shù)率,這是因?yàn)樵黾拥腜XI Express總線速度,以及更快更大的DDR2內(nèi)存。

            請(qǐng)注意,盡管使用了專為處理高達(dá)200 Mbit/s數(shù)據(jù)率的NI 6581適配器模塊的DDCA口,只要計(jì)數(shù)率不超過100 MHz,以1ns的分辨率探測上升沿仍然是可行的。適當(dāng)?shù)倪\(yùn)行模式已經(jīng)通過使用安捷倫的81150A 脈沖信號(hào)發(fā)生器的大量測試進(jìn)行了驗(yàn)證。

            逐個(gè)光子對(duì)單個(gè)原子的反饋

          FPGA要執(zhí)行的主要任務(wù)是實(shí)時(shí)對(duì)原子軌跡進(jìn)行有效控制。我們使用NIFlexRIOFPGA模塊來控制單個(gè)原子的運(yùn)動(dòng),它被俘獲于光腔內(nèi)部的光學(xué)偶極阱。只需要通過探測一些光子,我們就能獲得有關(guān)阱中原子實(shí)際位置的充足信息,從而操控它的運(yùn)動(dòng)。在這里,FPGA模塊被用于記錄光子的到達(dá)時(shí)間,評(píng)估原子的軌跡,并基于這些信息改變原子的俘獲勢能。當(dāng)探測到單個(gè)光子時(shí),一個(gè)數(shù)字化的電子脈沖被光電探測器發(fā)射出來,到達(dá)時(shí)間被FPGA以1 ns的分辨率在多個(gè)通路記錄?;诠庾颖惶綔y到的計(jì)數(shù)率變化,FPGA判斷原子是否正向俘獲勢能的中心移動(dòng),或是在勢阱的外部,來決定減少或增加俘獲勢能。

          NIFlexRIO模塊將被原子散射的光子的到達(dá)時(shí)間逐個(gè)分類并歸棧。典型的歸棧時(shí)間間隔一般為幾百萬分之一秒,它涉及到曝光時(shí)間,每隔幾納秒需要校正一下。散射光子率的變化通過比較當(dāng)前堆棧與之前堆棧來評(píng)估,它被延時(shí),延時(shí)時(shí)間等于曝光時(shí)間。延時(shí)使用FIFOs實(shí)現(xiàn)。在我們的實(shí)驗(yàn)中,光子通量的減少表明原子正向光腔的中部移動(dòng),而增加預(yù)示著原子正向外部移動(dòng)。因?yàn)楸环@的原子對(duì)多種不同的力都非常敏感,它的運(yùn)動(dòng)在規(guī)則振動(dòng)的同時(shí),又疊加了一些無序的運(yùn)動(dòng)。這種機(jī)制使得原子軌跡在時(shí)間尺度內(nèi)的不可預(yù)測性比它的振動(dòng)頻率更大,其振動(dòng)頻率一般約為5 kHz。一旦原子積累的動(dòng)能超過它所處勢阱的深度,它就會(huì)丟失。原子呆在勢阱的時(shí)間被認(rèn)為是存儲(chǔ)時(shí)間。此外,對(duì)于一個(gè)被俘獲原子來說,散射光子的通量一般僅為每10 μs一個(gè)光子的量級(jí),從而使執(zhí)行有效的反饋方案非常困難,這是因?yàn)橛杏玫男畔⑻?。一種可行的方案需要數(shù)字化地在高低值之間改變阱的勢壘深度,取決于是否當(dāng)前時(shí)間間隔內(nèi)的撞擊數(shù)量超過先前一定數(shù)值。就如同它看起來那么簡單,與沒有信號(hào)反饋回來的情況相比,它在原子的平均存儲(chǔ)時(shí)間方面增加了30倍。存儲(chǔ)時(shí)間平均1秒,最高超過7秒的結(jié)果已經(jīng)實(shí)現(xiàn),從而使這項(xiàng)技術(shù)完全可以與激光冷卻方案相比,它要求更為復(fù)雜的光學(xué)結(jié)構(gòu)。目前更加精密的反饋策略正在研究中。

            監(jiān)測

            除了存儲(chǔ)有關(guān)發(fā)射光子流的信息并反饋到系統(tǒng)中,將重要的信息顯示給實(shí)驗(yàn)者也至關(guān)重要。對(duì)于最初的方案來說,這一點(diǎn)尤其重要。為實(shí)現(xiàn)這一目的,我們將一個(gè)快速數(shù)字模擬轉(zhuǎn)換器(DAC)與兩個(gè)視頻圖形陣列(VGA)連接器集成到FPGA。

            DAC是AD(Analog Devices)公司的TxDAC (AD9744),它能提供210 Ms/s的采樣率,同時(shí)具有14位的分辨率。在當(dāng)前設(shè)計(jì)下,它運(yùn)行在125 MHz的時(shí)鐘頻率下,并輸出一個(gè)與探測到的光子數(shù)目成正比的電壓。DAC的數(shù)據(jù)與時(shí)鐘引腳被連接到NI 6581;22 Ω的電阻被串聯(lián)以減少數(shù)字DAC輸入的反射。模塊的其余引腳被用于同VGA顯示器交互?;旧厦總€(gè)VGA連接器含有三根信號(hào)線,以及兩根數(shù)據(jù)線。信號(hào)線傳輸紅,綠,藍(lán)顏色信息。VGA的說明書要求它們連接75 Ω的電阻,并且承受0 V (黑色) 到 0.7 V (全部彩色亮度)的電壓。同步由兩個(gè)高阻TTL數(shù)據(jù)線實(shí)現(xiàn),規(guī)定了水平與垂直的回描周期。如果只有8個(gè)顏色值(3位顏色深度)是需要的,那經(jīng)由270 Ω電阻連接VGA連接器信號(hào)引腳與NI 6581適配器模塊(采用3.3 V的配置模式)就足夠了。數(shù)據(jù)線串聯(lián)一個(gè)22 Ω的電阻。我們選擇將顯示器分為兩部分:一部分顯示基于文本的信息,另一部分是圖像信息。對(duì)于文本模式來說,一套8乘以16像素的黑/白字體被載入到FPGA的一個(gè)內(nèi)分區(qū)塊RAMs中。另外一個(gè)區(qū)塊RAM存儲(chǔ)了符號(hào)編碼。圖形部分顯示了探測器發(fā)射的趨勢圖或反饋算法的計(jì)算;這些圖表也存儲(chǔ)于內(nèi)分區(qū)塊RAM。運(yùn)行于108 MHz像素時(shí)鐘的,1280乘以1024像素的顯示模式可以很容易地實(shí)現(xiàn)。

            總結(jié)

            使用NIFlexRIO,我們可以創(chuàng)建自己的高性能定制硬件。時(shí)域數(shù)字轉(zhuǎn)換器是非常強(qiáng)大以及功能廣泛的工具,可用于科學(xué)研究與工業(yè)生產(chǎn)的很多不同領(lǐng)域,它所能提供的優(yōu)勢超過了很多商業(yè)上可用的產(chǎn)品。FPGAs的計(jì)算能力進(jìn)一步幫助我們從硬件上來實(shí)現(xiàn)時(shí)間嚴(yán)格任務(wù)的實(shí)時(shí)處理,從而使對(duì)較小系統(tǒng)執(zhí)行反饋控制成為可能,甚至于單個(gè)原子與單個(gè)光子的相互作用。

            使用LabVIEWFPGA,我們可以快速地開發(fā)FPGA編碼,這是因?yàn)樗母叨雀爬ㄐ?,同時(shí)適當(dāng)?shù)丶闪薞HDL IP。此外,使用PXI平臺(tái)讓我們可以在系統(tǒng)中利用跟其它PXI儀器的觸發(fā)與同步,從而使我們可以將定制的儀器集成到更大的系統(tǒng)中去,而不必執(zhí)行整個(gè)的定制設(shè)計(jì)。

            參考文獻(xiàn)

            [1] A. Kubanek, M. Koch, C. Sames, A. Ourjoumtsev, P. W. H. Pinkse, K. Murr, and G. Rempe, Photon-by-photon feedback control of a single-atom trajectory, Nature 462, 898-901 (2009)

            [2] M. Koch, C. Sames, A. Kubanek, M. Apel, M. Balbach, A. Ourjoumtsev, P. W. H. Pinkse, and G. Rempe, Feedback Cooling of a Single Neutral Atom, Phys. Rev. Lett. 105, 173003 (2010)

            [3] P. W. H. Pinkse, T. Fischer, P. Maunz, G. Rempe, Trapping an Atom with Single Photons, Nature 404, 365-368 (2000)

            [4] P. Maunz, T. Puppe, I. Schuster, N. Syassen, P. W. H. Pinkse, and G. Rempe, Normal-Mode Spectroscopy of a Single-Bound-Atom–Cavity System, Phys. Rev. Lett. 94, 033002 (2005)



          關(guān)鍵詞: LabVIEWFlexRIO反饋控

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();