任意波形產生器波形序列觸發

概觀

在下列文件中,您將了解如何使用訊號產生器透過連結與迴圈波形產生客制化訊號、透過指令碼功能產生動態波形,以及使用標記與資料標籤事件與其他儀器進行同步。 

內容

NI 任意波形產生器簡介

多款 NI 模組化儀器提供進階波形觸發與序列功能,包括 任意波形產生器高速數位產品

現代的任意波形產生器會執行內建深層記憶體,以儲存大型波形。您可以使用所謂的「連結與迴圈」,以序列方式產生這些波形。透過此功能,您可以根據預定的或動態順序產生波形,以建立複雜的波形序列。

圖 1 說明了三種獨特的波形,可儲存在 Signal Generator 記憶體中。

圖 1:儲存於記憶體中的多個任意波形

將這些波形儲存在記憶體後,即可依序連結並迴圈。因此,在產生工作階段開始之前,您也必須將波形的排序指示儲存在記憶體中。NI 訊號產生器可將多個波形與多個序列指令儲存在內建記憶體中。圖 2 說明 NI Signal Generator 的記憶體使用方式。

圖 2:NI 訊號產生器會將多個波形儲存在內建記憶體中。

圖 2 顯示了儲存在 Signal Generator 的波形可能佔用大量記憶體。舉例來說,以 100 MS/s 取樣 1 秒的波形佔用 200 MB。因此,有效使用 Signal Generator 的內建記憶體非常重要。事實上,使用波形連結與迴圈的其中一項優勢,就是能產生複雜的序列,同時使用最少的內建記憶體。

連結迴圈

NI 訊號產生器提供的連結與迴圈選項分為 2 種連結與迴圈模式:序列模式與指令碼模式。使用序列模式,即可設定儀器,以將序列儲存在內建記憶體中,以產生預定的波形系列。另一方面,指令碼模式更為強大,因為您可以使用此方式建立動態波形序列,而所產生的波形會視硬體或軟體觸發器的狀態而定。此外,指令碼模式也會使用如「if/else」等條件陳述式,以執行分支波形序列。最後,您可以使用連結與迴圈模式,設定 Signal Generator 輸出一個或多個觸發訊號,並具備標記或標籤事件等功能。

序列模式

使用序列模式時,必須設定波形序列,讓每個步驟都包含 3 個參數的資訊:波形名稱、迴圈數量與標籤位置。圖 3 說明了一般指令碼所設定的參數。

圖 3:波形序列中設定的參數

適用於序列的軟體程式設計介面,是運用 LabVIEW 中的 NI-FGEN 驅動程式進階任意序列面板建立的。使用此驅動程式,使用 niFGEN Create Arbitrary Sequence VI (如圖 4 所示) 撰寫序列指示至 Signal Generator。

圖 4:將序列寫入內建記憶體

在這個 VI 中,序列指令會以 2 個陣列形式寫入:一組包含每個波形的反覆運算次數,另一組則包含每個波形的控點資訊。此外,您還可以建立更進階的序列,藉此輸出每個波形的標籤事件。啟用這個選項時,您必須設定第三個陣列,以指定每個波形的標籤偏移。

序列觸發器模式

根據所選的觸發機制,您可以使用多種不同的模式產生序列中設定的波形。觸發活動可能會以軟體事件的方式發生,但在許多可用觸發線路中的硬體中,其發生率較高。使用 NI 訊號產生器時,可用於波形序列的觸發模式為單一觸發、連續觸發、步進觸發與突波觸發。產生每個波形時,每個模式都會提供不同的輸出選項。這些項目將於下方說明。

單一觸發器

單一觸發模式是所有觸發模式中最簡單的模式,因為這種模式在產生期間只會使用一次觸發。因此,在符合觸發條件之後,儀器就必須重新設定,才能再次啟動。單一觸發模式通常會使用觸發器做為開始觸發器,以開始產生波形。如圖 5 所示,Signal Generator 在等待接收啟動觸發時,輸出最後一個波形樣本。一旦符合此觸發條件,Signal Generator 就會開始產生波形或波形序列。 

圖 5:使用單一開始觸發器排序

如圖 5 所示,Signal Generator 在開始觸發的上升緣開始輸出。不過請注意,啟動觸發到通道 0 輸出開始之間,會發生稍微延遲。這個延遲是取樣率與插值係數的函式,在 Signal Generator 規格中會說明。此外,請注意,在此特定情況下,已設定 2 個波形的序列以產生波形。產生序列中最後一個波形後,Signal Generator 會繼續驅動最後一個取樣值。

連續觸發

另一方面,在連續觸發模式中,會連續產生整個波形區段序列。收到觸發後,Signal Generator 就會開始以序列中第一個波形產生訊號。此外,Signal Generator 會輸出序列中的每個步驟,然後在序列完成後重新迴圈至第一步。 

圖 6:使用連續觸發器模式排序

如圖 6 所示,開始觸發條件發生後,即會開始輸出。此外,Signal Generator 會繼續產生波形序列,直到產生工作階段停止為止。請注意,圖 5 註明,在時間 t2,Signal Generator 會迴圈至序列中的第一個波形。

觸發

在步進觸發模式中,會使用觸發器來逐步查看序列清單中的每個波形。當產生工作階段開始時,第一個波形的迴圈次數將與該特定步驟的配置相同。在迴圈該波形進行適當的反覆運算次數之後,該波形的最後一個樣本會連續重複,直到接收下一個觸發。接收下一個觸發時,第二個波形會產生所設定的反覆運算次數。此流程會重複,直到產生最後一個配置波形為止。目前我們需要觸發條件才能再次啟動產生序列 (圖 7)。 

圖 7:使用步進觸發器模式排序

如圖 7 所示,Signal Generator 會在接收第一個觸發時 t0 開始產生第一個波形。此外,它會繼續迴圈產生「Waveform0」,直到達到配置的迴圈數量 (在此情況下為 2 個)。在此特定情況下,您可以觀察到 ‘waveform0’ 已配置為 2 次迴圈。如圖 7 所示,Signal Generator 會持續驅動「Waveform0」的最後一個樣本,直到產生下一個波形的時間 t1 為止。

激發觸發

激發觸發模式與步進觸發模式相似,但序列中的每個波形在接收到的觸發之間都會連續重複。在此模式中,Signal Generator 會在接收觸發時開始產生波形。此外,它會持續迴圈以產生該波形,直到接收後續的觸發。唯有如此,它才會轉移至下一個波形 (見圖 8 的時序圖)。 

圖 8:使用突波觸發器模式排序

如圖 8 所示,第一個觸發器會在「t0」時間接收,並讓 Signal Generator 產生序列的第一個步驟。請注意,Signal Generator 會繼續迴圈這個波形,直到接收到下一個觸發。因此,在「t1」接收第二個觸發時,Signal Generator 會繼續進行序列中的下一個步驟。

適用於波形序列指令執行

序列模式可讓 Signal Generator 接收觸發時輸出一系列波形,但仍有其限制。基本上,序列模式需要在開始產生訊號之前先設定每個步驟。若要設定動態指令碼 (輸出為條件式),您必須使用更進階的序列形式,稱為指令碼。

透過指令碼,Signal Generator 可根據系統中的硬體或軟體事件,動態輸出波形序列。此外,由於具備靈活性,因此是最進階的波形控制功能。您不但可使用指令碼在多個波形之間連結與迴圈,也可根據受測裝置中發生的事件產生條件波形。在本節中,您將探索使用數個範例指令碼的基本指令碼語言元素。

指令語言基本概念

指令碼的基本概念是,可將具名波形儲存在 Signal Generator 的記憶體中,接著再由指令碼呼叫,以決定在特定時間所產生的波形。訊號產生之前,也會先下載指令碼至任意波形產生器。

在軟體方面,指令碼程式設計介面需要 3 個基本函式。圖 9 均如圖 9 所示。

圖 9:在 LabVIEW 中設定指令碼

首先,每個波形都會下載至任意波形產生器 (AWG) 以具名波形的方式。必須撰寫具名波形,因為指令碼會根據波形的名稱來識別每個波形。第二,指令碼寫入波形。指令碼包含多個指令,會決定產生各個波形的順序。最後則啟動產生作業,而 AWG 則從輸出引擎開始產生波形。

指令觸發器簡介

指令碼觸發可產生更複雜的指令碼。透過指令碼,即可使用實際訊號判斷您應隨時產生的波形。這個訊號可能來自背板上的 PXI 觸發線路,也可能來自人機介面接頭的 PFI (可程式化功能介面) 觸發。

您可以使用 niFgen Configure Script Trigger VI,在軟體中設定指令碼觸發。使用這個函式,即可為特定觸發線路設定準位或邊緣觸發。在圖 10 中的函式呼叫之後,指令碼可以使用「scriptTrigger0」做為變數,以判斷產生各種波形的順序。

圖 10:設定指令碼觸發器

在指令碼語言中,指令碼觸發器是與特定硬體條件相關的變數。如圖 10 範例指令碼所示,scriptTrigger0 必須評估為真實/虛假的布林邏輯陳述式。如圖 11 所示。

圖 11:評估指令碼觸發器

由於使用指令碼觸發器,您可以在指令碼語言中使用條件陳述式,Signal Generator 可以輸出依賴實際受測裝置訊號的訊號。下一節將檢視指令碼語言的幾項基本陳述式,概述指令碼功能。

指令語言基本概念

指令碼語言包含數個基本指令,會決定產生波形的順序。本節會列出基本指令,並逐步執行幾個使用這些指令的基本序列。基本的指令碼指令集包含下列指令:        

  • Generate n – 指示輸出引擎產生 1 組波形的序列「n」次。
  • 重複 直到 – 重複序列,直到符合特定條件為止。
  • If/Else – 指令碼觸發器做為布林變數的條件陳述式。
  • Wait until (等待至),是延遲陳述式,會讓輸出引擎等待到符合特定條件,以繼續產生訊號。
  • Clear (清除) - 清除可能發生的任何觸發情形。

Repeat Until Command (重複指令)

使用「Repeat until」(重複直到) 指令,即可重複產生波形,直到發生觸發為止。圖 12 顯示使用此指令執行簡易指令碼所需的指令集。

圖 12:使用「Repeat until」(重複直到) 指令的指令範例

請注意,當中會使用「scriptTrigger0」做為決定應產生哪個波形的變數。使用圖 13 中的流程圖來呈現指令碼語言。

圖 13:包含「Repeat until」(重複直到) 指令的指令碼流程圖

在此特定指令碼中,Signal Generator 首先會產生「Waveform0」。接著它會迴圈通過產生「Waveform1」並重複此波形,直到「scripttrigger0」已評估為 TRUE。發生這個事件後,Signal Generator 會在序列完成前產生「Waveform2」。圖 14 顯示了此指令碼所產生的輸出訊號。

圖 14:Signal Generator 輸出與「Repeat until」(重複直到) 指令碼

如圖 14 所示,AWG 會繼續產生「波形1」,直到「scripttrigger0」已評估為 TRUE 為止。

Wait Until Command (等待指令)

您可以使用「Wait until」(等待到) 指令,設定 Signal Generator 以停止產生任何波形,直到發生硬體狀況為止。圖 15 所示為使用「Wait until」(等待直到) 的範例指令碼。另請注意,將「scriptTrigger0」做為變數,用於判斷 AWG 何時會繼續產生波形。

圖 15:使用「Wait until」(等待直到) 指令的指令範例

請注意在「Wait until」(等待直到) 陳述式前使用「Clear」(清除) 陳述式。Clear 陳述式用於忽略產生「Waveform0」時可能發生的任何觸發條件。圖 16 顯示了此特定指令碼的流程圖。

圖 16:包含「Wait until」(等待直到) 指令的指令碼流程圖

在這個特定指令碼中,AWG 首先會產生「Waveform0」。之後,Signal Generator 會輸出最後一個波形 0 的樣本,直到符合觸發條件為止。發生觸發條件後,AWG 會繼續執行指令碼,並產生「waveform1」接著「waveform2」。圖 17 顯示產生器的實體輸出。

圖 17:Signal Generator 輸出與「Wait until」(等待直到) 指令碼

If/Else 指令

您可以使用「If/else」指令序列,根據硬體條件來判斷波形產生的順序。此外,當這些指令堆疊在一起時,您可以使用這些指令來執行真值表,其中要產生的波形取決於數種觸發條件。圖 18 所示為使用「If/else」指令序列的簡易指令碼。

圖 18:使用「If/else」指令的範例指令

此外,圖 19 顯示了波形產生的順序。

圖 19:包含「If/else」指令的指令碼流程圖

在此範例中,AWG 首先會產生「Waveform0」。接下來評估「scripttrigger0」,以判斷下一個要產生的波形。如果「scripttrigger0」將評估為 FALSE,就會產生「Waveform1」。如果「scriptrigger0」將評估為 TRUE,就會產生「Waveform2」。圖 20 說明 AWG 的實體輸出,如時間函式所示。

圖 20:Signal Generator Output (使用「If/else」指令碼)

在圖 20 中,當「scripttrigger0」評估為 TRUE 時,就會產生「Waveform2」。請注意,此範例僅顯示一個條件陳述式。National Instruments AWG 最多可設定 4 個指令碼觸發器。因此,您可以堆疊「If/else」陳述式以呈現更複雜的邏輯陳述式。

輸出觸發器事件

目前為止,本文件主要著重於使用輸入觸發器來控制訊號產生器的輸出。不過,訊號產生器能夠產生輸出觸發器,用於控制其他儀器的行為。輸出觸發有兩種類型:標記事件與資料標記事件。針對第一種類型,最多可以設定 1 個 (序列模式) 或 4 個 (指令碼模式) 觸發通道,以使用已設定的樣本編號變更同步狀態。相對而言,資料標記事件可將最多 4 位元的類比波形路由至最多 4 個觸發線路。透過這類輸出觸發,觸發狀態就會嵌入實際波形。

標籤活動

您可以使用標籤事件設定最多 4 個觸發通道,讓其狀態會隨特定樣本產生而同步變更。您可以在 Signal Generator 的人機介面或 PXI 背板上的 PFI 觸發線路上產生此數位脈衝。

標記活動會根據波形起點的偏移次數 (樣本數) 來指定。在序列模式中,您可針對序列中的每個步驟設定 1 個標籤事件。在指令碼模式中,您最多可以在特定波形的不同偏移點設定 4 個標籤。如圖 21 所示,與標籤相關的觸發線會在產生第 20 個樣本的時脈邊緣上插入。此外,您可以觀察到,在這個特定案例中,觸發線路的設定是要在取樣時脈的 40 個週期內進行插入。

圖 21:標籤事件輸出的時間

請注意,您可以使用多種方式使用屬性節點設定標籤輸出的行為。如圖 21 所示,標籤活動已設定為取樣時脈的 8 個期間內的脈衝。您可以使用 niFgen 屬性節點來指定這個行為 (圖 22)。

圖 22:使用屬性節點設定標籤事件

圖 22 說明可以設定輸出端子、輸出行為與脈衝寬度。雖然圖 22 中的標籤設定為脈衝,但您也可以改為設定輸出切換。

當必須同步化多個儀器時,標籤活動特別有用。此外,透過 PXI 訊號產生器,您可以輕鬆將標籤事件觸發器路由至多個模組,例如示波器、RF 向量訊號產生器或高速數位 I/O 硬體。

資料標籤事件

使用資料標記事件,最多可將四個波形資料位元匯出至實體觸發線路,以做為數位訊號。舉例來說,典型的 Signal Generator 會使用 16 位元 DAC (數位類比轉換器)。因此,產生訊號時,每次取樣率頻率的週期都會傳送 16 位元樣本至 DAC。此外,每個樣本最多可將 4 位元路由至實體觸發通道。因此,您可以將這 4 個波形位元設定為數位波形,以便與其他硬體進行同步化。

當特定資料位元在波形資料中切換時,資料標籤活動的數位等級會有所變化。如果波形資料位元在區段中切換多次,資料標籤準位就會每次改變。資料位元準位若高,則資料標籤準位就會高。此外,您可以將資料位元標記設定為使用反向邏輯。圖 23 顯示使用資料位元標記的訊號時序圖。

圖 23:波形的位元呈現

如圖 23 所示,典型 Signal Generator 的每個樣本都包含一個 16 位元的數字。您可以在每個 Signal Generator 取樣時脈更新 16 位元數。圖 23 強調了每個 16 位元取樣的四個最低有效位元。如上所述,您可以將上述各個位元路由至實體觸發線路,以做為數位訊號。圖 24 的各資料位元觸發線路時序圖說明了數位觸發線路的行為。

圖 24:資料標籤事件時序圖

圖 24 顯示,您可以將每個資料位元標記設定為外部觸發線路。請注意,每個樣本的位元值決定了觸發線路的狀態。在「DataBit3」中,請注意前三個時脈週期中的位元為「0」,並從「t2」開始變更為「1」。  正因如此,「PXI_Trig 3」的數位狀態在前 3 個期間保持在低處,並在時間「t2」時保持在高處。

使用資料標記活動,即可讓訊號產生器與其他裝置之間達到更緊密的同步化,因為您可以將其在硬體中進行運作。此外,多個 PXI 儀器之間的同步化作業更輕鬆,因為模組之間不需要外部連接。

摘要應用

透過 NI 訊號產生器的進階波形觸發與序列功能,即可產生複雜的波形,並在多台儀器之間達到同步化。此外,同步化的儀器也位於相同的實體 PXI 系統中。這樣一來,您就能執行複雜的測試訊號,並且與多組儀器緊密同步。圖 25 所示為包含多組儀器的測試配置範例。請注意,在 PXI 系統中,Signal Generator 可執行標籤活動或資料位元標籤功能,以控制其他儀器的運作。

圖 25:自動化 PXI 測試系統

如圖 25 所示,Signal Generator 可為受測單元 (UUT) 提供激發訊號。此外,其他儀器也能使用主 Signal Generator 的激發,以同步方式介接 UUT。如需進一步了解 ATE 系統設計相關資訊,請自 測試系統資源函式庫下載一系列技術指南。

此外,您也可以使用 UUT 的激發訊號來判斷 AWG 的激發訊號。透過指令碼與指令碼觸發,即可根據實際的觸發活動控制訊號輸出。圖 26 為測試情境的程式方塊圖,當中的 Signal Generator 會根據來自 UUT 的數位控制訊號,產生一系列不同的訊號。透過指令碼執行,Signal Generator 即可即時回應這些數位控制訊號,而不會停止產生波形。

圖 26:使用動態序列

在圖 26 中,已將 PFI0 與 PFI1 設定為指令碼觸發器,以便接收 UUT 的輸入。請注意,訊號產生器最多可以使用四個指令碼觸發器來控制訊號輸出。如果需要 2 個以上的控制通道,可以使用 PXI 時序與同步化模組將數位觸發訊號路由至 Signal Generator。

結論

NI 的現代訊號產生器能產生複雜且準確的類比訊號。因此,訊號產生器能產生多種訊號,並支援多種應用。

相關連結

Was this information helpful?

Yes

No