Academic Company Events NI Developer Zone Support Solutions Products & Services Contact NI MyNI

Document Type: Tutorial
NI Supported: Yes
Publish Date: Jun 15, 2009


Feedback


Yes No

Related Categories

Related Links - Developer Zone

Related Links - Products and Services

使用非同步化接線進行程式設計作業

0 ratings | 0.00 out of 5
Read in | Print | PDF

Overview

傳統的 LabVIEW 程式設計作業均使用資料流模態 (Model);而相反來說,NI-5640R 非同步化程式設計面板,則提供了不受拘束的節點,可於資料流之外獨立執行。非資料流或非同步化接線,均可傳輸資料與時脈資訊。常見的資料流接線與 VI,即可與相同應用中的非同步接線與自由 VI 進行互通,以啟動運算作業的混合模態 (Mixed model)。此程式設計面板可支援中頻 (Intermediate Frequency,IF) 收發器產品系列,包含 NI PCI-5640R 與 NI PXIe-5641R。

介紹

NI-5640R 非同步化程式設計 (Asynchronous Programming) 面板,包含 LabVIEW FPGA VI 或節點系列,可針對 IF 收發器硬體,簡化其多重速率 DSP 應用的建構作業。若以非同步化接線進行程式設計,則 LabVIEW 可處理某部分的作業:

  • 自動將所需的時脈、FIFO,或其他 I/O 項目,新增至 LabVIEW FPGA 專案中。
  • ADC 與 DAC 節點可自動選擇正確的時脈域 (Clock domain)。
  • ADC 與 DAC 節點,必須考量 ADC 與 DAC 針對 I/IQ 資料進行封包/解封包的方法。
  • 省略一般的資料交換技術,以簡化建立並使用資料緩衝區的作業程序。

接下來將比較資料流與非同步接線之間的相異處。

非同步化接線與資料流接線有何不同?

傳統的 LabVIEW 程式設計,均透過資料流模態 (Model) 以執行 VI。不論是 VI 或節點,均將於完整接收所需的輸入之後,才會接著執行。當執行 VI 或節點時,均將產生資料並傳輸至下 1 個位於資料流路徑上的 VI 或節點。此資料穿過節點的過程,將決定程式圖節點的執行順序。與上述的傳統資料流接線相較,非同步化接線則具有下列專屬動作:

  • 當結構處於執行狀態時,資料可穿過如「While Loop」的結構邊界 (Structure boundary)。
  • 若無特別的意外情況,非同步化接線並不會影響任何資料流順序的相關依賴性。

非同步化接線亦可做為資料或時脈接線。

非同步化資料接線

非同步化接線將連接用於傳送或接收緩衝資料的終端。而進行資料緩衝的方式,將依所選擇的資料交換方式 (Exchange policy) 而有所不同。資料交換方式,將進一步決定其連接節點的讀取/寫入動作。使用者所選擇的資料交換方式,亦會影響資料流順序的相關性。非同步化資料接線,將由 LabVIEW 程式圖上的粗線代表之。與資料流接線相似,非同步化接線的顏色亦將因資料類型而有所不同。

非同步化時脈接線

非同步化時脈接線,將連接至時脈訊號、時脈,或觸發器端點進行傳送/接收作業。非同步化時脈接線,可於節點之間傳送時脈資訊與觸發器事件。非同步化時脈接線,將由 LabVIEW 程式圖上的綠色粗線代表之。

接著將說明可完備 NI-5640R 非同步化程式設計面板功能的節點。

 

NI-5640R 非同步化程式設計面板

NI-5640R 非同步化程式設計 (Asynchronous Programming) 面板中的節點,將可存取 IF 收發器的固定 I/O 資源,如 ADC 輸入、DAC 輸出、數位 I/O 針腳,與時脈輸入。接著將逐一說明各個節點。

圖 1. NI-5640R 非同步化程式設計 (Asynchronous Programming) 面板

 

下列表格將說明 NI-5640R Asynchronous Programmer 面板 (即圖 1 所示) 的各個節點,並提供影片線上教學的摘要。

 

節點 說明

ADC Node
此 ADC 節點可從 ADC 讀取 I/Q 資料,並將之寫入至非同步化接線。當於 LabVIEW 程式圖中拖曳 ADC 節點時,即自動設定為 ADC 0。若要選擇 ADC 1,則對節點按下滑鼠右鍵,並選擇功能表中的「ADC 1」。相關 ADC 的名稱將顯示於節點中。

 

 

DAC Node
DAC 節點可從非同步化接線讀取 I/Q 資料,並將之寫入至其中 1 組 14 位元數位類比轉換器 (DAC)。當於 LabVIEW 程式圖中拖曳 DAC 節點時,即自動設定為 DAC 0。若要選擇其他 DAC,則對節點按下滑鼠右鍵,並選擇所需的 DAC。

Digital I/O Node
數位 I/O 節點可讀取並寫入 NI 5640R/5641R 上的數位 I/O 通道。當要將特定的 DIO 通道新增至專案時,只要處於執行期間,即無法更改目前的數位輸入或輸出選擇。

 

Clock Node
時脈節點可設定應用所使用的時基 (Base)、導出 (Derived),與脈波產生器的時脈訊號。於程式圖中拖曳此節點時,將可啟動「Clock Configuration Utility」。時脈名稱亦將顯示於節點上。使用者可將 FIFO 連接至「Period」或「Pulse width」端點,以建立任意脈波列;且每組脈波均具有不同的期間或作業週期 (Duty cycle)。若要以此方法使用 FIFO,則可於執行「Clock」節點之前,將所有的期間 (Period) 或脈波寬度 (Pulse width) 寫入至 FIFO 架構的非同步化接線。亦可使用「Pulse Editor」建立波形,但由於這些波形無法於執行期間進行更改,因此較缺乏作業彈性。若使用 FIFO 架構的非同步化接線,將「Period」或「Pulse width」值寫入至由脈波產生器所建立的「Clock」節點時,則可將「Start trigger」端點接至「Clock」節點,並限制於 FIFO 寫入最後 1 筆數值之後,才能夠執行該節點。

 

DMA from Host Node
此非同步化節點可讀取主機資料,並將之寫入至 FIFO 或非同步化資料接線的環形緩衝區 (Circular buffer)。於 LabVIEW 程式圖中拖曳此 VI 時,將自動建立 2 組緩衝區:本端 FIFO 或環形緩衝區,還有 1 組 DMA FIFO。並將透過 DMA FIFO 讀取主機資料。此筆資料接著將寫入至第二組本端 FIFO,或非同步化資料接線的環形緩衝區。

 

 

DMA to Host Node
此非同步化節點,可從非同步化資料接線讀取資料,再透過其在於案中所建立的 DMA FIFO,將資料寫入至主機。

 

Harness
此非同步化節點將於執行期間取得 VI,並於非同步化接線與所擷取的 VI 之間進行資料轉換。若要使用「Harness」節點,則可將資料流 VI 拖曳至「Harness」節點上。將 VI 拖曳至「Harness」節點之後,「Harness」節點則會於中央顯示所擷取的 VI,並建立非同步化接線端點以輸出/輸入資料。

 

Read Accessor Node
此資料流節點可將非同步化接線連至資料流接線。在接收非同步化資料後,則接著將之寫入至資料流接線中。而資料類型與資料交換方式,將因接線所連接的端點而有所不同。

 

Write Accessor Node
此資料流節點可將資料流接線連至非同步化接線。在接收資料流的資料後,則接著將之寫入至非同步化接線中。

 

 

如同一般的 LabVIEW VI,NI-5640R 非同步化節點亦具有輸出/輸入,或端點。在外觀上,非同步化端點即與一般的 LabVIEW VI 有所差異,且其隱藏式端點可透過節點的子功能表選項進而啟動之。在下列的影片線上教學中,即可觀看應如何使用 NI-5640R Asynchronous Programming 面板,以架構簡單的頻譜分析應用。接著將針對非同步化接線,說明處理並轉換資料的方法。

 

資料交換方式

資料交換的方式,將影響非同步化接線節點轉換資料與時脈資訊的方法。每種資料交換方式,均以不同的圖像 (Glyph) 表示。這些圖像將顯示於多種非同步化接線節點上。當可使用者設定資料交換方式時,則圖像為橘色。直接點選圖像即可啟動設定對話框。灰色的資料交換圖像則表示「無法透過該節點設定資料交換方式」。使用者必須透過建立該緩衝區的節點圖像,才可進行設定。下表則為 3 種資料交換方式與對應的圖像。

 

Data Policy 圖示 說明
暫存區

此方式將建立 1 組元素深層資料 (Element deep data) 緩衝區,且後續的寫入作業均將覆寫現有資料。資料寫入至緩衝區後將為續存狀態,因此可多次讀取該筆資料,直到後續寫入新的資料為止。
FIFO

FIFO 資料交換方式,將根據使用者所指定的尺寸建立資料緩衝區。當在移除已讀取的資料時,可回復該項讀取作業。讀取作業將以「先進先出 (FIFO)」的順序執行。若 FIFO 已滿 (達到 Buffer Depth 所指定的最大深度),則必須先讀取某筆資料,才能夠寫入其他資料。
環形緩衝區

環形緩衝區資料交換方式,將根據使用者所指定的尺寸建立資料緩衝區。當環形緩衝區滿載時,後續的寫入作業將覆寫先前的資料。此寫入作業無法回復。

表 2. 資料交換方式

這些方式將決定資料緩衝區的程式設計過程,而設定方式亦將影響緩衝區的大小,與其溢位 (Overflow)/虧位 (Underflow) 的動作。

 

結論

NI-5640R 非同步化程式設計 (Asynchronous Programming) 面板,包含不受限制的節點,可銜接非同步化 (非資料流) 接線。常見的資料流接線與 VI,即可於相同應用中互換非同步化接線與節點,以啟動運算作業的混合模態 (Mixed model)。若以非同步化接線進行程式設計,將可針對 IF 收發器硬體,簡化多重速率 DPS 應用的建構程序,並讓 LabVIEW 直接處理某些程式設計作業。

 

相關資源

可重設 I/O 的中頻 (IF) 收發器

進一步了解 NI PXIe-5641R 產品

以 5641R 進行頻譜監控

頻譜監控網路研討會

以軟體定義的無線電(SDR)

 

0 ratings | 0.00 out of 5
Read in | Print | PDF

Legal
This tutorial (this "tutorial") was developed by National Instruments ("NI"). Although technical support of this tutorial may be made available by National Instruments, the content in this tutorial may not be completely tested and verified, and NI does not guarantee its quality in any way or that NI will continue to support this content with each new revision of related products and drivers. THIS TUTORIAL IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND AND SUBJECT TO CERTAIN RESTRICTIONS AS MORE SPECIFICALLY SET FORTH IN NI.COM'S TERMS OF USE (http://ni.com/legal/termsofuse/unitedstates/us/).