陳 峰,王 航,眭 明
(中國電子科技集團公司 第三十四研究所,廣西 桂林 541004)
在高速攝影系統、高速數據采集、醫療設備、能源、大型激光驅動裝置等需要精密時序控制的系統中,同步觸發信號的性能優劣直接影響這些系統的運行效率和運行精度[1-2]。這些系統通常要求同步觸發信號具備延時抖動低、調節分辨率高、調節范圍廣等特點。目前通常使用計數器法實現觸發脈沖信號的產生,但是其性能受限于計數器頻率、外部參考時鐘和基準觸發信號對齊等因素,即使采用100 MHz的高端計數器,其分辨率最高只能達到10 ns,而且輸出的觸發脈沖信號與輸入基準信號之間會存在一個δt(0<δt<10 ns)的隨機時間抖動[2]。目前國內在同步觸發信號方面的研究,張榮等人利用NIOSⅡ軟核處理器實現了5通道納秒級時序控制同步機,單通道時序控制精度為20 ns,延時調節范圍是20 ns到100 s[1];黨釗等人采用ISA總線設計的納秒級同步機,通過多路可編程延時器件的方式得到時間抖動約2 ns的同步觸發信號[3];張鋒等人利用數字延時加模擬延時結合時間抖動補償的方式設計的觸發脈沖信號,最終輸出四路延時調節范圍為0~1 s,脈沖信號間時間抖動小于等于500 ps的觸發脈沖信號[4]。為了解決一般同步觸發信號延時調節分辨率低及時間抖動大的問題,本文提出一種基于時鐘相位補償的同步觸發信號產生技術,利用時間數字轉換技術對系統時鐘相位進行補償,以減小同步觸發脈沖信號與基準信號間的時間抖動;通過32位計數器結合可編程數字延時方案增加同步觸發信號延時調節范圍的同時提高了延時調節分辨率。設計產生20通道的同步觸發信號輸出,同步觸發信號延時調節分辨率為250 ps,本地時鐘下同步觸發信號間抖動小于250 ps,外部時鐘及外部觸發條件下同步觸發信號間抖動小于500 ps。該同步觸發信號可根據實際使用情況進行級聯擴展,以滿足大型系統對同步觸發信號數量需求。
基于時鐘相位補償的同步觸發信號產生系統結構原理如圖1所示,主要包括主控制器、系統時鐘產生和同步觸發信號產生三部分。同步觸發信號產生系統采用FPGA作為主控制器,實現數字信號算法處理以及通信接口控制等功能。系統時鐘可基于外部輸入的參考時鐘或本地時鐘產生,優先使用外部參考時鐘,系統時鐘可以在外部參考時鐘和本地時鐘下實現無縫切換。系統基本工作原理為:輸入的外部參考時鐘或本地晶振時鐘首先經過鎖相環路產生一路100 MHz的基準時鐘,基準時鐘經過超高精度延時器后輸入到FPGA作為系統時鐘。外部的基準觸發信號直接輸入到FPGA,FPGA將系統時鐘分頻后送至時間數字轉換器(TDC),啟動TDC并跟據測量結果適時調整超高精度延時器的延時量,實現系統時鐘相位的自動閉環反饋補償,消除因每次鎖定外部參考時鐘所用時間不同而造成的系統時鐘與外部觸發信號間的相位差的隨機性。同步觸發信號產生由FPGA根據外部觸發信號和系統時鐘產生基準觸發信號,并將基準觸發信號進行復制,得到20路相對獨立的同步信號,經過可編程數字延時器后作為同步觸發信號輸出。

圖1 系統結構原理圖
主控制器采用Xilinx高性能、低成本、低功耗的Spartan-6系列FPGA,芯片通用IO引腳工作電壓為DC3.3 V,內核工作電壓為DC1.2 V,其內部集成了占用資源少、運行速度快、可配置性強的MicroBlaze軟核處理器,該軟核處理器采用哈佛總線結構和RISC(reduced insrtction system computer)架構的獨立32位數據和指令總線,具有訪問以及執行片上存儲器和片外存儲器上的程序與數據速度快的特點,而且Xilinx公司針對它的FPGA器件進行了專門的優化,能夠提供十分豐富的邏輯資源和出色的數據處理能力。MicroBlaze處理器可以在高達150 MHz時鐘下工作,并提供最高125D-MIPS的性能,同時其內部嵌入了xilkernel操作系統,系統通信控制接口以及數字信號算法處理等功能應用都可以在xilkernel操作系統的基礎上編程實現。
時鐘相位補償電路原理圖如圖2所示,主要包括基準時鐘產生、時間數字轉換器(TDC)和超高精度可編程延時器三個部分。同步觸發信號的時間抖動,主要來源于系統時鐘信號抖動。因此,要提高同步觸發信號的時間抖動性能,必須保證系統時鐘頻率穩定性。作為同步觸發信號產生系統的“心臟”,輸入的外部參考時鐘或設計的本地時鐘需要有很好的頻率穩定度,再結合時鐘相位補償技術,產生高質量的系統時鐘。該時鐘信號輸入到時鐘抖動衰減鎖相環后將頻率倍頻到100 MHz,進一步提升基準時鐘頻率的穩定性,最后經過超高精度可編程延時器后作為系統時鐘。

圖2 時鐘相位補償電路原理圖
TDC為系統實現高精度的時間間隔測量,其主要作用是測量系統時鐘與基準觸發信號之間的相位差,FPGA根據TDC測量結果對系統時鐘的相位進行一定量的補償。TDC時間測量使用延遲線內插技術,測量分辨率小于100 ps,最大可測量時間間隔可達數毫秒。其工作原理是通過測量輸入信號經過邏輯門電路的絕對傳輸延遲時間實現時間信號的數字化轉換。由于TDC對內部的門電路布線要求十分苛刻,可以確保信號流經每個門電路時所用的時間完全一致。TDC轉換單元只需要對信號通過門電路的數量進行記錄,即可獲取輸入信號數字化后的時間量。FPGA通過SPI總線實現對TDC的通信控制和參數配置。TDC的INTN中斷信號引腳直接與FPGA管腳相連接,FPGA接收到中斷引腳的電平跳變后開始讀取相應的寄存器以獲取時間測量結果。超高精度可編程延時器使用數字控制輸入信號的延時,FPGA同樣通過SPI總線控制其延時量的調節,其延時調節分辨率可達10 ps,最大延時調節范圍可達10 ns,理論上系統時鐘相位補償分辨率為0.36°。
時鐘相位補償的具體實現過程為:FPGA的系統時鐘頻率為100 MHz,而TDC的校準參考時鐘頻率建議范圍為2~8 MHz,折衷選取TDC的參考時鐘頻率為4 MHz。因此需要將系統時鐘經過分頻后產生一路4 MHz的時鐘信號作為TDC的校準時鐘,啟動TDC測量后,FPGA根據外部基準觸發信號產生一路start信號,經過一定的延時后,再產生一路stop信號。TDC根據start和stop信號分別開始和停止時間測量,然后由環形振蕩器的位置和粗值計數器的計數值計算得出觸發信號和停止信號之間的時間間隔Δt。時間數字轉換時序圖如圖3所示。由于系統時鐘為100 MHz,一個時鐘周期為10 ns,因此Δt=10×n+φt,n為時鐘周期數。由此可計算得出基準觸發信號與系統時鐘信號之間的相位差:φt=Δt%10,其中%表示求余運算。所得結果,用來調節超高精度可編程延時器的延時量,保證系統時鐘信號與外部基準觸發信號的相位差小于目標值,消除因每次鎖定外部參考時鐘所用時間不同而造成的系統時鐘與外部基準觸發信號間的相位差的隨機性,確保每次上電后,輸出的同步觸發脈沖信號跟輸入的基準觸發信號間的延時量與最后一次輸出的值相同。

圖3 時間數字轉換時序圖
可編程數字延時電路原理如圖4所示,主要由FPGA內部計數器和可編程數字延時器件組成。在延時量調節時,延時量粗調部分由計數器實現,延時量精細調節部分由可編程延時器實現。FPGA內部計數器時鐘頻率為100 MHz,因而其調節步長為10 ns,采用32位的計數器,理論上最大可調延時量可達42秒。數字延時器采用8位可編程延時器,可以選擇最多256個不同的延遲周期,每個周期延遲時間為250 ps,最大可調節延遲時間為64 ns。FPGA通過四線SPI接口對延時器件進行在線編程,使同步觸發信號經過不同的延時周期,實現250 ps到64 ns的延時調節。通過計數器與可編程延時器件的組合設計,在增加同步觸發信號延時調節范圍的同時大幅度提高了延時調節分辨。

圖4 可編程數字延時電路原理圖
FPGA邏輯控制程序使用Xilinx ISE Xilinx ISE Design Suite編譯平臺,使用C語言進行編程,主要實現時鐘相位補償算法處理、同步觸發信號參數設置等功能,其軟件設計流程圖如圖5所示。系統上電初始化后首先從內部FLASH讀取最后一次設置的工作參數,包括通道號及通道號對應的延時值、脈沖寬度和重復頻率等參數,加載對應的工作參數并執行,啟動TDC進入測量狀態。為了保證測量的精度,采用平均值濾波法對采樣數據進行軟件濾波。具體處理方法是對TDC的測量數據進行100次測量后求其平均值,將其與目標值進行比較,當平均值不滿足設定條件時,系統以平均值與目標值的差值為控制量,調節超高精度可編程延時器的延時量,直至滿足目標條件為止。
同步觸發信號延時量調節由兩個部分組成,延時粗調和延時精調。首先需要分別計算延時粗調量t1和延時精調量t2的數值,具體計算公式如下:
t1=D/10
(1)
t2=(D%10)/0.25
(2)
其中:t1通過FPGA計數器完成調節,t2通過數字延時器完成調節。

圖5 軟件設計流程圖
時鐘相位補償和延時量調節具體程序設計流程為:
系統先對SPI總線進行初始化,然后配置TDC的狀態寄存器,即將TDC的工作模式配置為測量模式1,信號觸發方式配置為上升沿觸發,設置時鐘分頻器數值為1,開啟start和stop使能,并開始向TDC發送start脈沖驅動信號,開始進入測量狀態。TDC在接收到stop脈沖驅動信號后結束測量過程,經算術邏輯模塊進行自動校準后將測量結果寫入到輸出寄存器中,FPGA在接收到測量結束中斷信號后從TDC結果寄存器中讀取測量結果。獲取的數據,經過算法處理后與超高精度延時器的延時量相關聯,實現輸入時鐘相位自動閉環反饋控制。
FPGA通過異步串行通信方式接收到同步信號參數設置數據后,先從該參數對應的FLASH地址讀取上一次保存的數據并進行比較,如果該數據與存儲的數據不一致,則開始擦除該數據對應的存儲區域,重新寫入接收到的數據并自動保存,然后調用參數設置函數完成設置,實現一次參數更新過程。
利用LeCeoy示波器(SDA5000A)對輸出的同步觸發信號性能指標進行測試,具體測試配置圖如圖6所示。

圖6 同步觸發信號時間抖動測試配置圖
首先在同步觸發信號1中任意選取兩路(在實驗中選取OUT1-1和OUT1-2,并將其輸出的重頻設置為1 Hz,脈寬設置為30 ns)輸出信號接至示波器,測量在本地時鐘條件下,輸出的同步觸發信號間的時間抖動。連續測量3小時,輸出同步觸發信號間的時間抖動測量結果如圖7所示。然后再將外部參考時鐘分別接至同步觸發信號產生1和同步觸發信號產生2,并將同步觸發信號產生1中的OUT1-1經過功分器后分別接至同步觸發信號產生2的觸發輸入端和示波器,將同步觸發信號產生2的輸出OUT2-1接至示波器,測量在外部參考時鐘和外部基準觸發條件下,輸出的同步觸發信號與基準觸發信號間的時間抖動。同樣連續測量3小時,輸出的同步觸發信號與基準觸發信號之間的抖動測量結果如圖8所示。

圖7 本地時鐘下輸出觸發信號間的時間抖動

圖8 外部時鐘和基準觸發條件下觸發信號時間抖動
為了驗證同步觸發信號在本地時鐘和外部參考時鐘下延時、脈寬和重頻等技術指標的可重復性,先將系統切換到本地時鐘下,并將同步觸發信號的延時設置為50 ns,脈寬設置為100 ns,重頻設置為1 000 Hz。多次重復開、關機后,測量該觸發信號的延時、脈寬及重頻數據。然后將系統時鐘切換到外部參考時鐘,將輸出的觸發信號與輸入基準觸發信號的延時設置為1 ns,輸出脈沖寬度設置5 μs,觸發信號的重頻設置為1 000 Hz,同樣經多次重復開、關機,重復測量該觸發信號與基準觸發信號間的延時以及脈寬和重頻數據。測試結果見表1。

表1 同步觸發信號延時、脈寬、重頻重復性測試結果
由以上實驗結果可知,在本地時鐘下工作時輸出觸發信號時間抖動峰峰值小于250 ps,在外部參考時鐘和外部基準觸發條件下工作,輸出的脈沖信號與觸發信號之間的抖動峰峰值被控制在500 ps以內,經多次重復試驗,輸出的同步觸發信號具有良好的可重復性。
輸出的同步觸發信號的時間抖動主要來源于時鐘抖動,由于采用了時鐘相位補償技術,從根本上解決了輸出的觸發脈沖信號與輸入基準信號之間存在的隨機時間抖動問題。要進一步減小時間抖動,提升輸出同步觸發信號性能,參考時鐘可以選用頻率穩定性更好的時鐘。例如本地時鐘可采用具有更高穩定性的恒溫晶振(OCXO)產生,OCXO可以利用晶振內部的恒溫槽來確保晶體振蕩器中的石英晶體諧振器的溫度始終保持恒定,能最大限度地減少由周圍環境溫度引起的頻率變化,保證輸出時鐘的質量。在對同步觸發信號時間抖動和延時調節分辨率指標要求都十分嚴格的應用場合,外部參考時鐘可以選用時鐘質量更高的原子鐘,比如銣鐘,銫鐘等;同時可以選用延時精度更高的數字延時器件,進一步提高輸出觸發信號的調節分辨率。
本文提出的同步觸發信號產生技術,利用TDC測量基準觸發信號與系統時鐘信號間的相位差,通過超高精度可編程延時器件自動補償輸入的系統時鐘相位,有效減少了輸出的同步觸發信號與基準觸發信號間的時間抖動。通過計數器結合可編程數字延時方案,在保證同步觸發信號延時調節范圍廣的同時提高了延時調節的分辨率。設計的20通道同步觸發脈沖信號,各通道觸發信號可以單獨輸出,也可以是任意通道的組合,還可以將同步觸發信號進行級聯形成同步系統。輸出的同步觸發信號具備時間抖動低,延時調節分辨率高的特點,可廣泛應用于高速攝影系統、高速數據采集、醫療設備、能源及大型激光驅動裝置等需要精密時序控制的系統中[5-12]。