陳 峰,王 航,眭 明
(中國電子科技集團公司 第三十四研究所,廣西 桂林 541004)
在高速攝影系統(tǒng)、高速數(shù)據(jù)采集、醫(yī)療設備、能源、大型激光驅(qū)動裝置等需要精密時序控制的系統(tǒng)中,同步觸發(fā)信號的性能優(yōu)劣直接影響這些系統(tǒng)的運行效率和運行精度[1-2]。這些系統(tǒng)通常要求同步觸發(fā)信號具備延時抖動低、調(diào)節(jié)分辨率高、調(diào)節(jié)范圍廣等特點。目前通常使用計數(shù)器法實現(xiàn)觸發(fā)脈沖信號的產(chǎn)生,但是其性能受限于計數(shù)器頻率、外部參考時鐘和基準觸發(fā)信號對齊等因素,即使采用100 MHz的高端計數(shù)器,其分辨率最高只能達到10 ns,而且輸出的觸發(fā)脈沖信號與輸入基準信號之間會存在一個δt(0<δt<10 ns)的隨機時間抖動[2]。目前國內(nèi)在同步觸發(fā)信號方面的研究,張榮等人利用NIOSⅡ軟核處理器實現(xiàn)了5通道納秒級時序控制同步機,單通道時序控制精度為20 ns,延時調(diào)節(jié)范圍是20 ns到100 s[1];黨釗等人采用ISA總線設計的納秒級同步機,通過多路可編程延時器件的方式得到時間抖動約2 ns的同步觸發(fā)信號[3];張鋒等人利用數(shù)字延時加模擬延時結(jié)合時間抖動補償?shù)姆绞皆O計的觸發(fā)脈沖信號,最終輸出四路延時調(diào)節(jié)范圍為0~1 s,脈沖信號間時間抖動小于等于500 ps的觸發(fā)脈沖信號[4]。為了解決一般同步觸發(fā)信號延時調(diào)節(jié)分辨率低及時間抖動大的問題,本文提出一種基于時鐘相位補償?shù)耐接|發(fā)信號產(chǎn)生技術(shù),利用時間數(shù)字轉(zhuǎn)換技術(shù)對系統(tǒng)時鐘相位進行補償,以減小同步觸發(fā)脈沖信號與基準信號間的時間抖動;通過32位計數(shù)器結(jié)合可編程數(shù)字延時方案增加同步觸發(fā)信號延時調(diào)節(jié)范圍的同時提高了延時調(diào)節(jié)分辨率。設計產(chǎn)生20通道的同步觸發(fā)信號輸出,同步觸發(fā)信號延時調(diào)節(jié)分辨率為250 ps,本地時鐘下同步觸發(fā)信號間抖動小于250 ps,外部時鐘及外部觸發(fā)條件下同步觸發(fā)信號間抖動小于500 ps。該同步觸發(fā)信號可根據(jù)實際使用情況進行級聯(lián)擴展,以滿足大型系統(tǒng)對同步觸發(fā)信號數(shù)量需求。
基于時鐘相位補償?shù)耐接|發(fā)信號產(chǎn)生系統(tǒng)結(jié)構(gòu)原理如圖1所示,主要包括主控制器、系統(tǒng)時鐘產(chǎn)生和同步觸發(fā)信號產(chǎn)生三部分。同步觸發(fā)信號產(chǎn)生系統(tǒng)采用FPGA作為主控制器,實現(xiàn)數(shù)字信號算法處理以及通信接口控制等功能。系統(tǒng)時鐘可基于外部輸入的參考時鐘或本地時鐘產(chǎn)生,優(yōu)先使用外部參考時鐘,系統(tǒng)時鐘可以在外部參考時鐘和本地時鐘下實現(xiàn)無縫切換。系統(tǒng)基本工作原理為:輸入的外部參考時鐘或本地晶振時鐘首先經(jīng)過鎖相環(huán)路產(chǎn)生一路100 MHz的基準時鐘,基準時鐘經(jīng)過超高精度延時器后輸入到FPGA作為系統(tǒng)時鐘。外部的基準觸發(fā)信號直接輸入到FPGA,F(xiàn)PGA將系統(tǒng)時鐘分頻后送至時間數(shù)字轉(zhuǎn)換器(TDC),啟動TDC并跟據(jù)測量結(jié)果適時調(diào)整超高精度延時器的延時量,實現(xiàn)系統(tǒng)時鐘相位的自動閉環(huán)反饋補償,消除因每次鎖定外部參考時鐘所用時間不同而造成的系統(tǒng)時鐘與外部觸發(fā)信號間的相位差的隨機性。同步觸發(fā)信號產(chǎn)生由FPGA根據(jù)外部觸發(fā)信號和系統(tǒng)時鐘產(chǎn)生基準觸發(fā)信號,并將基準觸發(fā)信號進行復制,得到20路相對獨立的同步信號,經(jīng)過可編程數(shù)字延時器后作為同步觸發(fā)信號輸出。
圖1 系統(tǒng)結(jié)構(gòu)原理圖
主控制器采用Xilinx高性能、低成本、低功耗的Spartan-6系列FPGA,芯片通用IO引腳工作電壓為DC3.3 V,內(nèi)核工作電壓為DC1.2 V,其內(nèi)部集成了占用資源少、運行速度快、可配置性強的MicroBlaze軟核處理器,該軟核處理器采用哈佛總線結(jié)構(gòu)和RISC(reduced insrtction system computer)架構(gòu)的獨立32位數(shù)據(jù)和指令總線,具有訪問以及執(zhí)行片上存儲器和片外存儲器上的程序與數(shù)據(jù)速度快的特點,而且Xilinx公司針對它的FPGA器件進行了專門的優(yōu)化,能夠提供十分豐富的邏輯資源和出色的數(shù)據(jù)處理能力。MicroBlaze處理器可以在高達150 MHz時鐘下工作,并提供最高125D-MIPS的性能,同時其內(nèi)部嵌入了xilkernel操作系統(tǒng),系統(tǒng)通信控制接口以及數(shù)字信號算法處理等功能應用都可以在xilkernel操作系統(tǒng)的基礎上編程實現(xiàn)。
時鐘相位補償電路原理圖如圖2所示,主要包括基準時鐘產(chǎn)生、時間數(shù)字轉(zhuǎn)換器(TDC)和超高精度可編程延時器三個部分。同步觸發(fā)信號的時間抖動,主要來源于系統(tǒng)時鐘信號抖動。因此,要提高同步觸發(fā)信號的時間抖動性能,必須保證系統(tǒng)時鐘頻率穩(wěn)定性。作為同步觸發(fā)信號產(chǎn)生系統(tǒng)的“心臟”,輸入的外部參考時鐘或設計的本地時鐘需要有很好的頻率穩(wěn)定度,再結(jié)合時鐘相位補償技術(shù),產(chǎn)生高質(zhì)量的系統(tǒng)時鐘。該時鐘信號輸入到時鐘抖動衰減鎖相環(huán)后將頻率倍頻到100 MHz,進一步提升基準時鐘頻率的穩(wěn)定性,最后經(jīng)過超高精度可編程延時器后作為系統(tǒng)時鐘。
圖2 時鐘相位補償電路原理圖
TDC為系統(tǒng)實現(xiàn)高精度的時間間隔測量,其主要作用是測量系統(tǒng)時鐘與基準觸發(fā)信號之間的相位差,F(xiàn)PGA根據(jù)TDC測量結(jié)果對系統(tǒng)時鐘的相位進行一定量的補償。TDC時間測量使用延遲線內(nèi)插技術(shù),測量分辨率小于100 ps,最大可測量時間間隔可達數(shù)毫秒。其工作原理是通過測量輸入信號經(jīng)過邏輯門電路的絕對傳輸延遲時間實現(xiàn)時間信號的數(shù)字化轉(zhuǎn)換。由于TDC對內(nèi)部的門電路布線要求十分苛刻,可以確保信號流經(jīng)每個門電路時所用的時間完全一致。TDC轉(zhuǎn)換單元只需要對信號通過門電路的數(shù)量進行記錄,即可獲取輸入信號數(shù)字化后的時間量。FPGA通過SPI總線實現(xiàn)對TDC的通信控制和參數(shù)配置。TDC的INTN中斷信號引腳直接與FPGA管腳相連接,F(xiàn)PGA接收到中斷引腳的電平跳變后開始讀取相應的寄存器以獲取時間測量結(jié)果。超高精度可編程延時器使用數(shù)字控制輸入信號的延時,F(xiàn)PGA同樣通過SPI總線控制其延時量的調(diào)節(jié),其延時調(diào)節(jié)分辨率可達10 ps,最大延時調(diào)節(jié)范圍可達10 ns,理論上系統(tǒng)時鐘相位補償分辨率為0.36°。
時鐘相位補償?shù)木唧w實現(xiàn)過程為:FPGA的系統(tǒng)時鐘頻率為100 MHz,而TDC的校準參考時鐘頻率建議范圍為2~8 MHz,折衷選取TDC的參考時鐘頻率為4 MHz。因此需要將系統(tǒng)時鐘經(jīng)過分頻后產(chǎn)生一路4 MHz的時鐘信號作為TDC的校準時鐘,啟動TDC測量后,F(xiàn)PGA根據(jù)外部基準觸發(fā)信號產(chǎn)生一路start信號,經(jīng)過一定的延時后,再產(chǎn)生一路stop信號。TDC根據(jù)start和stop信號分別開始和停止時間測量,然后由環(huán)形振蕩器的位置和粗值計數(shù)器的計數(shù)值計算得出觸發(fā)信號和停止信號之間的時間間隔Δt。時間數(shù)字轉(zhuǎn)換時序圖如圖3所示。由于系統(tǒng)時鐘為100 MHz,一個時鐘周期為10 ns,因此Δt=10×n+φt,n為時鐘周期數(shù)。由此可計算得出基準觸發(fā)信號與系統(tǒng)時鐘信號之間的相位差:φt=Δt%10,其中%表示求余運算。所得結(jié)果,用來調(diào)節(jié)超高精度可編程延時器的延時量,保證系統(tǒng)時鐘信號與外部基準觸發(fā)信號的相位差小于目標值,消除因每次鎖定外部參考時鐘所用時間不同而造成的系統(tǒng)時鐘與外部基準觸發(fā)信號間的相位差的隨機性,確保每次上電后,輸出的同步觸發(fā)脈沖信號跟輸入的基準觸發(fā)信號間的延時量與最后一次輸出的值相同。
圖3 時間數(shù)字轉(zhuǎn)換時序圖
可編程數(shù)字延時電路原理如圖4所示,主要由FPGA內(nèi)部計數(shù)器和可編程數(shù)字延時器件組成。在延時量調(diào)節(jié)時,延時量粗調(diào)部分由計數(shù)器實現(xiàn),延時量精細調(diào)節(jié)部分由可編程延時器實現(xiàn)。FPGA內(nèi)部計數(shù)器時鐘頻率為100 MHz,因而其調(diào)節(jié)步長為10 ns,采用32位的計數(shù)器,理論上最大可調(diào)延時量可達42秒。數(shù)字延時器采用8位可編程延時器,可以選擇最多256個不同的延遲周期,每個周期延遲時間為250 ps,最大可調(diào)節(jié)延遲時間為64 ns。FPGA通過四線SPI接口對延時器件進行在線編程,使同步觸發(fā)信號經(jīng)過不同的延時周期,實現(xiàn)250 ps到64 ns的延時調(diào)節(jié)。通過計數(shù)器與可編程延時器件的組合設計,在增加同步觸發(fā)信號延時調(diào)節(jié)范圍的同時大幅度提高了延時調(diào)節(jié)分辨。
圖4 可編程數(shù)字延時電路原理圖
FPGA邏輯控制程序使用Xilinx ISE Xilinx ISE Design Suite編譯平臺,使用C語言進行編程,主要實現(xiàn)時鐘相位補償算法處理、同步觸發(fā)信號參數(shù)設置等功能,其軟件設計流程圖如圖5所示。系統(tǒng)上電初始化后首先從內(nèi)部FLASH讀取最后一次設置的工作參數(shù),包括通道號及通道號對應的延時值、脈沖寬度和重復頻率等參數(shù),加載對應的工作參數(shù)并執(zhí)行,啟動TDC進入測量狀態(tài)。為了保證測量的精度,采用平均值濾波法對采樣數(shù)據(jù)進行軟件濾波。具體處理方法是對TDC的測量數(shù)據(jù)進行100次測量后求其平均值,將其與目標值進行比較,當平均值不滿足設定條件時,系統(tǒng)以平均值與目標值的差值為控制量,調(diào)節(jié)超高精度可編程延時器的延時量,直至滿足目標條件為止。
同步觸發(fā)信號延時量調(diào)節(jié)由兩個部分組成,延時粗調(diào)和延時精調(diào)。首先需要分別計算延時粗調(diào)量t1和延時精調(diào)量t2的數(shù)值,具體計算公式如下:
t1=D/10
(1)
t2=(D%10)/0.25
(2)
其中:t1通過FPGA計數(shù)器完成調(diào)節(jié),t2通過數(shù)字延時器完成調(diào)節(jié)。
圖5 軟件設計流程圖
時鐘相位補償和延時量調(diào)節(jié)具體程序設計流程為:
系統(tǒng)先對SPI總線進行初始化,然后配置TDC的狀態(tài)寄存器,即將TDC的工作模式配置為測量模式1,信號觸發(fā)方式配置為上升沿觸發(fā),設置時鐘分頻器數(shù)值為1,開啟start和stop使能,并開始向TDC發(fā)送start脈沖驅(qū)動信號,開始進入測量狀態(tài)。TDC在接收到stop脈沖驅(qū)動信號后結(jié)束測量過程,經(jīng)算術(shù)邏輯模塊進行自動校準后將測量結(jié)果寫入到輸出寄存器中,F(xiàn)PGA在接收到測量結(jié)束中斷信號后從TDC結(jié)果寄存器中讀取測量結(jié)果。獲取的數(shù)據(jù),經(jīng)過算法處理后與超高精度延時器的延時量相關(guān)聯(lián),實現(xiàn)輸入時鐘相位自動閉環(huán)反饋控制。
FPGA通過異步串行通信方式接收到同步信號參數(shù)設置數(shù)據(jù)后,先從該參數(shù)對應的FLASH地址讀取上一次保存的數(shù)據(jù)并進行比較,如果該數(shù)據(jù)與存儲的數(shù)據(jù)不一致,則開始擦除該數(shù)據(jù)對應的存儲區(qū)域,重新寫入接收到的數(shù)據(jù)并自動保存,然后調(diào)用參數(shù)設置函數(shù)完成設置,實現(xiàn)一次參數(shù)更新過程。
利用LeCeoy示波器(SDA5000A)對輸出的同步觸發(fā)信號性能指標進行測試,具體測試配置圖如圖6所示。
圖6 同步觸發(fā)信號時間抖動測試配置圖
首先在同步觸發(fā)信號1中任意選取兩路(在實驗中選取OUT1-1和OUT1-2,并將其輸出的重頻設置為1 Hz,脈寬設置為30 ns)輸出信號接至示波器,測量在本地時鐘條件下,輸出的同步觸發(fā)信號間的時間抖動。連續(xù)測量3小時,輸出同步觸發(fā)信號間的時間抖動測量結(jié)果如圖7所示。然后再將外部參考時鐘分別接至同步觸發(fā)信號產(chǎn)生1和同步觸發(fā)信號產(chǎn)生2,并將同步觸發(fā)信號產(chǎn)生1中的OUT1-1經(jīng)過功分器后分別接至同步觸發(fā)信號產(chǎn)生2的觸發(fā)輸入端和示波器,將同步觸發(fā)信號產(chǎn)生2的輸出OUT2-1接至示波器,測量在外部參考時鐘和外部基準觸發(fā)條件下,輸出的同步觸發(fā)信號與基準觸發(fā)信號間的時間抖動。同樣連續(xù)測量3小時,輸出的同步觸發(fā)信號與基準觸發(fā)信號之間的抖動測量結(jié)果如圖8所示。
圖7 本地時鐘下輸出觸發(fā)信號間的時間抖動
圖8 外部時鐘和基準觸發(fā)條件下觸發(fā)信號時間抖動
為了驗證同步觸發(fā)信號在本地時鐘和外部參考時鐘下延時、脈寬和重頻等技術(shù)指標的可重復性,先將系統(tǒng)切換到本地時鐘下,并將同步觸發(fā)信號的延時設置為50 ns,脈寬設置為100 ns,重頻設置為1 000 Hz。多次重復開、關(guān)機后,測量該觸發(fā)信號的延時、脈寬及重頻數(shù)據(jù)。然后將系統(tǒng)時鐘切換到外部參考時鐘,將輸出的觸發(fā)信號與輸入基準觸發(fā)信號的延時設置為1 ns,輸出脈沖寬度設置5 μs,觸發(fā)信號的重頻設置為1 000 Hz,同樣經(jīng)多次重復開、關(guān)機,重復測量該觸發(fā)信號與基準觸發(fā)信號間的延時以及脈寬和重頻數(shù)據(jù)。測試結(jié)果見表1。
表1 同步觸發(fā)信號延時、脈寬、重頻重復性測試結(jié)果
由以上實驗結(jié)果可知,在本地時鐘下工作時輸出觸發(fā)信號時間抖動峰峰值小于250 ps,在外部參考時鐘和外部基準觸發(fā)條件下工作,輸出的脈沖信號與觸發(fā)信號之間的抖動峰峰值被控制在500 ps以內(nèi),經(jīng)多次重復試驗,輸出的同步觸發(fā)信號具有良好的可重復性。
輸出的同步觸發(fā)信號的時間抖動主要來源于時鐘抖動,由于采用了時鐘相位補償技術(shù),從根本上解決了輸出的觸發(fā)脈沖信號與輸入基準信號之間存在的隨機時間抖動問題。要進一步減小時間抖動,提升輸出同步觸發(fā)信號性能,參考時鐘可以選用頻率穩(wěn)定性更好的時鐘。例如本地時鐘可采用具有更高穩(wěn)定性的恒溫晶振(OCXO)產(chǎn)生,OCXO可以利用晶振內(nèi)部的恒溫槽來確保晶體振蕩器中的石英晶體諧振器的溫度始終保持恒定,能最大限度地減少由周圍環(huán)境溫度引起的頻率變化,保證輸出時鐘的質(zhì)量。在對同步觸發(fā)信號時間抖動和延時調(diào)節(jié)分辨率指標要求都十分嚴格的應用場合,外部參考時鐘可以選用時鐘質(zhì)量更高的原子鐘,比如銣鐘,銫鐘等;同時可以選用延時精度更高的數(shù)字延時器件,進一步提高輸出觸發(fā)信號的調(diào)節(jié)分辨率。
本文提出的同步觸發(fā)信號產(chǎn)生技術(shù),利用TDC測量基準觸發(fā)信號與系統(tǒng)時鐘信號間的相位差,通過超高精度可編程延時器件自動補償輸入的系統(tǒng)時鐘相位,有效減少了輸出的同步觸發(fā)信號與基準觸發(fā)信號間的時間抖動。通過計數(shù)器結(jié)合可編程數(shù)字延時方案,在保證同步觸發(fā)信號延時調(diào)節(jié)范圍廣的同時提高了延時調(diào)節(jié)的分辨率。設計的20通道同步觸發(fā)脈沖信號,各通道觸發(fā)信號可以單獨輸出,也可以是任意通道的組合,還可以將同步觸發(fā)信號進行級聯(lián)形成同步系統(tǒng)。輸出的同步觸發(fā)信號具備時間抖動低,延時調(diào)節(jié)分辨率高的特點,可廣泛應用于高速攝影系統(tǒng)、高速數(shù)據(jù)采集、醫(yī)療設備、能源及大型激光驅(qū)動裝置等需要精密時序控制的系統(tǒng)中[5-12]。