本工程簡報重點在於適用於精密授時及導航(Precision Timing and Navigation,PNT)設備的技術。具體而言,它探討如何使用每秒脈衝 (PPS) 訊號觸發資料收集系統。我們假設資料收集設備由一塊高階類比數位轉換器 (ADC) 演示板和一個與之匹配的高效能現場可編程閘陣列 (FPGA) 組成。
將 ADC/FPGA 組合與示波器進行比較
ADC 並非示波器,但透過適當的軟體,它可以實現類似示波器的功能。當高效能 ADC 與 FPGA 耦合時,這一點尤其突出。
回想一下,大多數示波器都有一個觸發輸入。我們可以透過多種方式調整觸發閾值。例如,我們可以設定當 3.3VDC 脈衝 PPS 的正緣超過 1.65VDC 閾值時觸發。從使用者的角度來看,我們可以僅根據觸發波形的幅度來微調此閾值電壓。如果訊號的上升時間較慢,則移動觸發閾值會使顯示的波形稍微向右或向左移動。這樣,我們就可以將訊號的起始點保持在示波器時間零點(假設無延遲)和觸發閾值電壓的交點。
至少,以上描述了類比示波器的使用者體驗。
讓我用一個相關的故事來換個話題。你開過電動車嗎?我第一次體驗 EV1 是在 20 世紀 90 年代。令我驚訝的是,車子在十字路口竟然緩慢地向前行駛。將腳從煞車上鬆開,汽車就會以每小時 5 英里的速度行駛。工程師們捕捉到了配備自動變速箱的內燃機汽車的感覺。
電動車的體驗反映了我們從舊的類比示波器轉向新的數位示波器時的體驗。
什麼是數位示波器?
數位示波器其實就是裝在精美外殼裡的高效能類比數位轉換器(ADC)。它包含主雙通道或四通道以及觸發輸入。我們在螢幕上看到的波形並非示波器高速記憶體中採集並儲存的資料的真實再現。它實際上是對有限採樣資料進行平滑處理後的「連點成線」式波形。這就像 EV1 示波器一樣,工程師保留了舊系統的外觀和操作方式。
這種說法同樣適用於示波器的觸發。雖然我們在調節觸發電平時會看到平滑連續的波形,但實際情況並非如此。實際上,幕後程式碼透過插值技術實現了波形的平滑過渡。
技術提示:某些示波器可以選擇在平滑曲線中顯示或標記取樣資料的位置。這有助於提醒您數位示波器捕獲的數據是有限的。它會顯示按時間和幅度切片的離散樣本。
什麼是每秒脈衝訊號?
在探討如何觸發 ADC 之前,讓我們先來了解 PNT 世界的主要組成部分之一。具體來說,我們來研究一下原子鐘,例如 IQD ICPT-1 銣(Rubidium)振盪器。銣振盪器代表了 PNT 系統中種類繁多的時脈、振盪器以及相關系統,例如全球定位系統 (GPS)。
這些現代銣和銫(Cesium)原子鐘堪稱科技奇蹟。相比之下,一個廉價的掛鐘,一個月下來可能會慢幾秒鐘。而同樣的鐘錶,如果由經過適當校準的銣振盪器驅動,那麼在人的一生中,誤差可能只有幾分之一秒。
每秒脈衝是與 PNT 設備相關的高性能輸出訊號。通常將 PPS 與其他訊號(例如 10MHz 訊號)一起使用,以校準其他 PNT 時脈。一個典型的例子是您的 GPS 接收器或 GPS 分接板,其中 GPS 接收器中的時脈(以及相應的 PPS)由 GPS 衛星上的原子鐘「設定」。這些 GPS 衛星時脈由位於科羅拉多州施里弗空軍基地的 Space Delta 8 持續監控。GPS 時鐘由世界各地實驗室維護的一組時鐘「設定」。重要的是要意識到,您的 GPS 訊號可以追溯到定義協調世界時 (UTC) 的全球時鐘。這包括位於 NIST 和 USNO 等機構的時鐘。圖 1 顯示了 NIST 的 5071A 銫束管振盪器範例。這是作者造訪位於科羅拉多州博爾德的 NIST 設施時拍攝的一張舊照片。
圖 1:5071A 銫束管振盪器的熱室,該振盪器是美國國家標準與技術研究院 (NIST) 時鐘系統的一部分。
每秒脈衝數 (PPS) 被認為是 PNT 設備的標準輸出訊號。這包括前面提到的銣原子鐘以及大多數(但並非全部)GPS 接收器。許多設備還包含 1MHz、5MHz 和 10MHz 的參考訊號,PPS 訊號即由此導出。 PPS 通常以數位方式生成,並與高頻振盪器訊號相連。這在我們後續的討論中將會是一個重要的訊號。
從現在開始,我們將 1MHz、5MHz 或 10MHz 的訊號統稱為 10MHz 訊號。此外,為方便起見,我們將使用「銣」一詞來指稱同時具有 PPS 和 10MHz 輸出的 PNT 裝置。圖 2 為現代銣振盪器的圖片。
圖 2:IQD ICPT-1 銣振盪器(規格書中的圖片)。
PPS 訊號的特性
PPS 訊號為方波。我們可以像處理其他數位邏輯訊號一樣處理它。對於 3.3VDC 的裝置,我們可以預期得到一個相對於 3.3VDC 的邏輯脈衝。某些裝置可以編程實現可變脈衝寬度。
PPS 訊號的正緣將與相關設備的 10MHz 內部振盪器同步。如前所述,PPS 訊號由時脈高頻驅動的分頻電路進行數位輸出。通常情況下,高階設備的 PPS 訊號同步精度可達 +/- 50ns 或更高。
歷史:精密計時與導航 (PNT) 這兩個術語看似毫不相干,但二者之間的連結卻至關重要。自 18 世紀末哈里森精密計時器(Harrison’s Chronometer)問世以來,精密計時一直是導航的重要組成部分。請觀看影片 1,了解電腦程式設計先驅之一對時間與距離關係的視覺化示範。
影片 1:對退休海軍上將格蕾絲·霍珀(電腦程式先驅)的採訪。請從 4 分 20 秒觀看納秒的可視化演示。
如何在 PNT 設定下觸發 ADC
ADC 和 FPGA 都是數位裝置。這些系統的時序取決於 FPGA 的時脈訊號。此時脈訊號可能包含或不包含鎖相迴路 (PLL) 來提高時脈頻率。 PLL 允許在半導體晶片內部產生高速時脈,而無需在 PCB 上使用高頻外部導線,從而避免了各種固有問題。
可以說,時脈性能與成本直接相關。雖然 ADC 或 FPGA 的預設振盪器(時脈)效能良好,但它們通常不屬於 PNT 系列。例如,銣振盪器本身的價格就比大多數 FPGA 展示板還要高。
但這正是關鍵所在,也是您閱讀這篇文章的原因。您正在尋找一種方法,將您的 ADC/FPGA 系統與 PPS 訊號同步。
將 PPS 訊號直接傳遞給 FPGA 架構
FPGA 可以直接讀取 PPS 訊號。畢竟,PPS 訊號本身就是(或可以)經過電平轉換後得到 3.3VDC 的邏輯訊號。這對於許多應用來說可能已經足夠了。然而,這裡存在一個問題。
舉個例子,假設我們有兩個數位掛鐘,分別代表 GPS 產生的 PPS 訊號和 FPGA 的訊號。其中一個時脈的運行速度略快於另一個。在開始這個假設實驗時,我們假設兩個時鐘的時間一致。過一段時間後,我們需要將時鐘 2 重設為與時鐘 1 的時間一致。如果我們允許時鐘 2 停止計時,這並不難。例如,將時鐘 2 設定為 15 分鐘,然後按下停止按鈕。一旦時鐘 1 的時間也達到 15 分鐘(正緣情況),我們就放開時鐘 2 的停止按鈕。理論上,兩個時鐘的時間應該相同。
這個思想實驗的問題在於我們基於 FPGA 的時脈 #2 的取樣特性。「時鐘 #1 翻轉後立即執行」這個表述會因時鐘 #2 的滴答聲(取樣特性)而變得複雜。假設時脈 #2 是一個具有適當時脈邊界保護的取樣系統,則該表述變為「時脈 #1 翻轉後,且在時脈 #2 的下一個上升沿」。
換句話說,FPGA 對 PPS 時間零點的解釋總是存在不確定性。對於運作頻率為 100MHz 的 FPGA,這種不確定性被限制在 10ns 的週期內。在取樣系統中,由於時脈之間的時間差,PPS 觸發訊號會經歷 10ns 的跳變。此外,邏輯閾值電壓的不確定性也會帶來一些較小的問題。區分邏輯 0 和邏輯 1 的確切電壓位準可能因元件和溫度而異。然而,這種影響很小,尤其是在考慮到 PPS 電纜長度等因素的校準時(每英尺延遲約 1ns)。
使用銣高頻訊號作為 ADC 取樣時脈
對於某些應用來說,直接使用來自銣源的 10MHz 訊號是可行的。例如,我們可以使用 10MHz 訊號驅動 ADC 取樣時脈。透過奈奎斯特(Nyquist),我們配置 ADC 的前端低通濾波器,以消除所有高於 5MHz 的訊號。在 FPGA 內部,我們可以使用時脈同步器將 10MHz 樣本橫過到更高速度的 FPGA 時脈域。
該技術的問題是前面提到的 PPS 時脈不確定性。雖然 ADC 將正常運行,但我們將無法將 PPS 時序解析為小於 FPGA 時脈週期的任何值。
使用自由運轉的 ADC 時鐘,對銣高頻振盪器進行取樣,並使用PPS觸發。
回想一下,PPS 訊號源自由銣高頻振盪器驅動的數位計數器。因此,PPS 訊號的正緣與10MHz時脈訊號之間存在固定的重合時間(TOC)關係。我們可以利用這種固定的 TOC 關係來同步銣原子鐘和 FPGA。
考慮一下這在示波器上的顯示效果。讓示波器在 PPS 訊號觸發時運作。10MHz訊號看起來會很穩定(TOC 事件),連續幾秒鐘之間的抖動非常小。打個比方,可以把這想像成一個掛鐘,PPS 訊號是分針,10MHz 訊號是秒針。只不過這次,精確的時間測量可以達到奈秒甚至皮秒級。
現在,我們讓 PPS 觸發 FPGA。同時,我們使用其中一個 ADC 通道對 10MHz 訊號進行取樣。利用粗調/精調的類比,FPGA 現在可以感知 PPS。它起到「準備就緒」訊號的作用,因為 FPGA將基於 10MHz 訊號的下一個正過零點進行實際的精細時間測量。
令人驚訝的是,我們可以透過改變 PPS 和 10MHz 連接電纜的相對長度(大約每英尺1奈秒)來改變 TOC 關係。利用這個方法,我們可以將 10MHz TOC 放置在 PPS 之後一個適當的時序距離。順便說一句,不要讓未來的技術人員縮短電纜來清理設備機架。
如果沒有校正,我們的時序仍然受制於 FPGA/ADC 的自由運行時脈。
消除此問題的一種方法是對 10MHz 訊號的取樣進行內插。圖 3 展示了這種技術。首先,我們選取零點上方和下方緊鄰的採樣點。然後,我們利用相似三角形進行計算,以確定(插值)過零點的時序。使用這種方法,我們可以獲得比粗略的 PPS 觸發訊號解析度更高的估計值。此測量必須經過校準,以考慮連接電纜的長度。
該過程包含多個步驟。讓我們重新表達一下演算法:
-
等待 PPS 訊號建立粗略時間參考點。
-
擷取與下一個 10MHz 過零點相關的資料點,包括過零點下方和上方各一個資料點。這將構成精細時間參考點的基礎。
-
利用相似三角形的代數運算,計算零點時間佔取樣時間的比例。
-
如有必要,可透過計算 ADC 取樣時脈的精確頻率來改進此方法。這可以透過實現頻率計數器來實現,該計數器統計一秒內完成的 ADC 時脈(取樣)次數。
-
使用多個 ADC,它們共用一個取樣時脈,來確定多個類似示波器通道的時序。資料可以儲存在 FPGA 緩衝區中,該緩衝區在精確的 PPS TOC(每脈衝採樣週期)處開始填充。也可以使用環形緩衝區,並在 TOC 處捕獲索引。
-
使用 ADC 取樣頻率的精確計算結果,為所有取樣點新增時間戳記(相當於時間戳記)。換句話說,我們可以透過計算已發生的採樣點數量來確定時間流逝,然後加上使用相似三角形計算出的小數部分。
-
根據需要進行調整,以限制這種高度複雜且高能耗應用的複雜性和成本。採樣速度只需足以完成任務(奈奎斯特採樣),並儲存足夠的資料。盡可能關閉採樣器。我們甚至可以考慮使用硬體解決方案來降低成本並節省能源。如果專案的時序要求允許,可以使用固態開關甚至繼電器等硬體來最大限度地減少所需的 ADC 總數。簡而言之,盡可能進行優化。
圖 3:插值法求得正過零點的精確時間。
控制 FPGA 驅動的直接數位合成器 (DDS)
在結束之前,我們應該提到,FPGA 和高階微控制器可以實現高位元速率的直接數位合成( Direct Digital Synthesizer,DDS)。透過適當的控制演算法(控向),FPGA 可以保持與外部來源相位鎖定的內部時間計算。
回到我們之前提到的雙時鐘同步類比,時鐘 2 可以進行自我校正,使其追蹤時鐘 1。我們可以實現連續調整,而不是週期性的時間調整。這樣做的好處是,時鐘 2 現在有一定的能力來判斷時鐘 1 何時出現問題。
什麼是直接數位合成 (DDS)?
DDS 是一種用於產生正弦波的數位技術。它通常由一個模數-N 加法器(相位累加器)和一個包含 N 位元值的查找表 (LUT) 實現,這些 N-bit 代表取樣的正弦波。然後,可以使用數位類比轉換器 (DAC) 產生源自 DDS 的物理正弦訊號。高效能的基於 FPGA 的 DDS 可以具有 32-bit 相位累加器和 16-bit LUT。寬累加器可依需求提供對正弦波或任意訊號的高保真再現。
DDS 由一個高速振盪器驅動,此振盪器的頻率最好至少是待再現訊號頻率的十倍。對於此振盪器的每個正緣,DDS 相位累加器會將使用者所需的相位增量數 (PIN) 加到自身上。所得結果用於在 LUT 中索引所需的數值。
技術提示:為了節省內存,DDS LUT 可能僅包含描述正弦曲線的第一象限資料。基於 FPGA 的簡單例程根據相位累加器中保存的數字確定適當的正弦象限。根據需要調整 LUT 中的索引。此外,根據需要對 LUT 值取反以形成完整的 4 象限正弦曲線表示。
為了完全理解 DDS,我們需要回顧三角學並使用一些掛鐘數學。首先,讓我們根據掛鐘的秒針來定義正弦曲線。在第二個零處,正弦波的振幅為零,90 度(15s)後,幅度為 1,在 180 度(30s)處,幅度為 0,在 270 度(45s)處,幅度為 -1。這個類比的要點是要認識到正弦曲線是時鐘秒針位置的函數。
考慮一下當我們改變與秒針相關的齒輪時會發生什麼。我們對秒的概念是一樣的,時鐘仍然每秒滴答作響。此刻度代表驅動 DDS 的振盪器。如果齒輪將秒針加速兩倍,我們現在就有了一個可以產生 2Hz 訊號的 DDS。同樣,如果齒輪加速 5 倍,時鐘就會產生週期為 200ms 的正弦曲線。
在這個掛鐘類比中,齒輪就像相位累加器和 PIN。秒針的位置就像 LUT 一樣。更改 PIN 會更改正弦曲線的頻率。 PIN 越高,DDS 頻率越高。
DDS 的穩定性
DDS 的穩定性完全取決於其驅動振盪器。為了讓您了解其靈敏度,請參考圖 4。圖中展示了安裝在盒子裡的 FPGA/ADC,以提高其熱穩定性。工作時,盒子是封閉的,並用毯子包裹。請注意,盒子裡放置了許多水瓶,以增加系統的熱容量,從而減緩時脈頻率的變化。事後看來,如果能為這個專案添加一個恆溫晶體振盪器(OCXO)就更好了。
在處理奈秒測量時,可能需要採取這些極端措施。我記得,即使是輕微的呼吸或手指的觸碰,也會導致原始FPGA振盪器相對於另一個時脈在納秒級上發生偏移。通常我們不會注意到這些事情,但當我們進入 PNT 的領域時卻並非如此。另外,關於熱穩定性,請注意圖 1 中的銫 5071A 振盪器也安裝在熱室中。
圖 4:作者基於 FPGA 的 DDS 和採樣器被封裝在一個盒子裡,盒子裡裝有多個水瓶以增加熱質量。
結語
這篇文章篇幅較長,卻要回答一個看似簡單的問題。在某些情況下,只需將 PPS 直接連接到微控制器或 FPGA 即可。這是一個簡單且低成本的解決方案,能夠帶來良好的效果。然而,隨著精準度提升至奈秒及達到皮秒級,成本和複雜性也會迅速增加。
當然,這個複雜的主題還有更多值得探討的內容。但我希望這篇以 FPGA 為切入點的 PNT 入門介紹,能幫助我們更能理解國家關鍵授時基礎設施的核心所在。
原文作者: Aaron Dahlen | MSEE | Senior Applications Engineer, DigiKey



