隨著測試系統的複雜度與資料傳輸率需求與日俱增,系統架構師面臨的挑戰是,確保測試系統的每一部分皆能維持穩定且高速的資料移動。
本技術文章概述 PXI Express (PXIe) 架構,說明 PXI 機箱設計與頻寬規格如何影響整體系統效能,並且提供基於頻寬選擇機箱的實用指引,以利避免產生瓶頸。透過了解這些原理,工程師能設計出具備可擴充效能、保持資料完整性並且能支援未來應用成長的自動化測試系統。
建立測試與量測系統時,其中一個重要考量因素就是資料流經系統的速度與可靠性。規劃不佳可能會導致量測遺漏、測試傳輸率降低,或在專案後期引發非預期且成本高昂的重新設計。
PXI 系統的獨特之處,在於其透過 PCI Express (PCIe) 技術,將資料移動功能整合於機箱背板,有助於進行高速、低潛時通訊。相較於透過 LAN、USB 或 GPIB 連線的獨立儀器,這一差異化優勢使 PIX 特別適合用於複雜的資料密集型應用,如圖 1 所示。
圖 1:主流測試與量測匯流排的理論頻寬與潛時
對系統設計人員而言,機箱頻寬是相當重要的條件,會影響整體效能與擴充能力。PXI Express 系統中的大多數資料會流經機箱,因此,在系統設計中最具影響力的決策之一,就是選擇既符合目前需求,又能為未來擴充提供空間的機箱。
每個 PXI Express 機箱均使用 PCI Express 介面,在系統控制器與各插槽中的 PXI 模組之間傳輸資料。 這個介面決定資料在各模組之間移動的速度,其效能由世代與通道寬度這兩項主要規格來定義。
要了解這個介面如何定義系統頻寬,請務必熟悉下列主要概念,如圖 2 所示:
圖 2:PXI Express 背板架構:每插槽、區段與系統頻寬
為了完整掌握 PXI 機箱頻寬對效能的影響,下一節將依循從模組到控制器的資料路徑,說明過程的各個階段,以及背板如何促進高速通訊。這個觀點說明了頻寬的重要性,以及頻寬如何影響整體系統效率。
每插槽頻寬定義單一模組能透過其 PCI Express 連線傳輸的資料數量。視機箱設計而定,每插槽頻寬在 250 MB/s 至 8 GB/s 的範圍,如表 1 所示。
表 1: NI PXIe 機箱内基於世代與通道寬度的最大每插槽頻寬
注意: 所示數值代表 PCI Express 每插槽頻寬的最大理論值。實際上,由於編碼負載,Gen 1 與 Gen 2 通常會維持在接近每通道約 200 MB/s 的範圍內,而 Gen 3 則會更接近其額定限制。
不過,多數測試系統需要同時串流多個模組的資料。在這種情況下,整體輸送量將不再僅受限於個別插槽效能,還取決於機箱背板的聚合頻寬。
了解不同儀器類型的一般資料傳輸率,有助於說明聚合頻寬的重要性。由於模組可攜手運作,因此組合的資料流可迅速接近或超出背板的容量。 表 2 提供常見儀器資料傳輸率的參考資料。
表 2: 單一模組頻寬視角
請務必注意,相容於舊型混合式的 PXI 模組會基於原有的平行 PCI 匯流排 (而非 PCI Express) 運作。雖然此匯流排的理論限制為 132 MB/s,但不論其所使用的機箱為何,持續傳輸率通常會接近 100–110 MB/s,因為 PCI 為共用匯流排,同一 PXI 區段的所有模組共用此頻寬。
某些 PXI Express 機箱通常具有較高的插槽數,會將 PCI Express 背板分成 2 個以上的區段,每個區段皆由自己的 PCI Express 切換器進行管理。這個多區段架構會將 PCI Express 通道分配至不同的切換器,以提升整體資料傳輸率,如圖 3 所示。
圖 3:PXI Express 背板架構:每插槽、聚合與區段對區段頻寬
NI 點對點 (NI-P2P) 驅動程式可於單一區段內,在支援的裝置之間建立高速資料路徑,而不會占用該區段以外的系統資源,例如占用通往系統控制器插槽的頻寬。 詳細資訊請參閱下列點對點章節。
要設計能在更多儀器平行運作時維持高速串流與可擴充效能的系統,就必須了解這些區段共用與分配頻寬的方式。
除了每插槽頻寬之外,PXI Express 機箱另有一個重要規格,即最大系統頻寬。此規格是指從機箱連線至系統控制器的所有 PCI Express 通道數總和,以及這些通道能共同傳輸資料的速度。
您可以透過以下幾種方式找到這項資訊:
圖 4:依最大系統頻寬篩選的 PXIe 機箱組合
圖 5: NI PXIe-1088 產品頁
若想查看完整的 PXI 機箱產品組合以進行比較,建議您參閱 PXI 機箱手冊。
對於機箱內儀器與背板之間的資料移動而言,系統控制器插槽可能會成為潛在的瓶頸。這是因為系統頻寬上限設定了可輸入與輸出主機電腦 (主機記憶體所在位置,亦即系統應用軟體正在執行的位置) 的資料數量上限。機箱不但要適用於每個獨立的 I/O 模組,以及要透過背板串流的資料量,還必須能承載所有儀器在其峰值使用情況下透過系統控制器插槽 (通常是 PXI Express 控制器,但也可能是使用 MXI Express 進行通訊的遠端控制器) 來回傳輸的總資料量。
系統控制器本身也是資料輸入與輸出主機記憶體的關鍵要素,而應用程式碼通常在此記憶體中執行,如圖 6 所示。因此,建議將類似的選擇條件套用至 PXI Express 控制器與 PXI Express 機箱。仔細規劃能確實讓您隨時掌握所需的頻寬。 如需了解如何依用途選擇適當的控制器,請參閱最大化 PXI 系統效能:如何選擇正確的 PXI 嵌入式控制器。
圖 6:PXIe 背板架構:系統控制器與 PXIe 機箱區段之間的資料流
不同的 PXI Express 機箱具有不同的插槽數量、不同的插槽對機箱 PCI Express 連線速度、不同的插槽區段關聯、區段間連線速度,以及系統控制器插槽與不同機箱區段之間的不同甚至不對稱的速度。您可以花時間了解系統的每個部分所需的頻寬,並選擇能提供大量額外餘量的機箱,從而輕鬆克服協定負擔,並更輕鬆地因應系統生命週期後期不斷變化的條件。 建議您將頻寬規劃為高出已知需求頻寬的 2 至 3 倍。
若要尋找機箱背板的詳細資訊:
圖 7: PXIe-1088 PCI Express 背板圖範例範例
圖 7 中的圖表顯示,插槽 4、6 與 8 各自具有獨立的通往系統控制器插槽的 x4 鏈路,而插槽 2、3、5、7 與 9 各有一條通往 PCI Express 切換器的 x1 鏈路,隨後再與系統控制器共用 x4 鏈路。此外,對於使用 PCI 的混合式模組,插槽 2–5 會透過 PCIe-to-PCI Bridge #1 共用一條通往 PCI Express 切換器的鏈路,插槽 6–9 則透過 PCIe-to-PCI Bridge #2 共用通往 PCI Express 切換器的鏈路。
如果無法或不希望將所有資料透過系統控制器傳輸,也可採用其他方式降低系統的資料移動需求。不同的技術各具優缺點,但在處理高資料傳輸率應用時,這些都是需要考量的重要手段。 我們來探索其中幾項技術。
當系統要求的頻寬高於單一匯流排一次能承受的頻寬時,請考慮將高頻寬 I/O 介面卡分散于不同區段,以便在不同區段之間平衡資料移動需求。
進行區段相關設計時,第一步是查看機箱的使用手冊,以了解區段的劃分方式,以及每個區段分配給控制器的頻寬。舉例來說,NI PXIe-1092 手冊的背板概述一節提供圖 8 中的圖表,顯示從週邊插槽 (插槽 2–9) 到系統控制器插槽 (插槽 1) 的鏈路世代與通道數:
圖 8: PXIe-1092 PCI Express 背板圖
圖 8 顯示,每個插槽均具有 Gen 3 x8 切換器連線,而系統控制器則具有 Gen3 x8 第一區段連線 (虛擬切換器 0 涵蓋插槽 2-4),以及 Gen 3 x16 第二區段連線 (虛擬切換器 1,涵蓋插槽 5-9)。 以下列舉幾款 PXI Express 機箱的手冊中的相關規格簡介:
表 3:NI PXIe 機箱的資料移動比較
許多 NI 儀器都具備可設定的內建邏輯 (例如 NI FlexRIO),以及可重設的裝置,可在透過 PCI Express 匯流排移動資料前,先進行 FFT 或其他形式的智慧資料處理。這種預處理方式能大幅降低機箱與控制器所需的頻寬。
許多更高速的 NI 儀器都支援在儀器之間直接串流資料,不需經過主機記憶體,甚至不需要透過稱作 NI-P2P 的 API 離開 PXI Express 匯流排區段。 當您需要即時處理來自多台儀器的大量資料,或者當 I/O 儀器自身沒有足夠的內建處理能力,但 NI PXI Express 協同處理器 (例如 PXIe-7903 或 PXIe-7915) 可以補足時,使用 NI-P2P 會非常實用。如果 NI-P2P 是系統適用的解決方案,將需要互相共用資料的儀器保存在相同機箱的相同區段中非常有幫助,因為這可降低鄰近匯流排區段的負擔,並減少 PCI Express 切換器的負載。 如需更多資訊,請參閱點對點串流簡介。
對於支援主機記憶體直接記憶體存取 (DMA) 的裝置,DMA 是相當實用的方法,可避免讓主機處理器承載即時管理所有記憶體 I/O 的負擔。通常,主機會直接管理所有記憶體讀寫操作,但 DMA 可讓主機在指派的記憶體部分與需要串流的裝置之間建立直接連結,因此,主機的負擔看起來更像是一次性設定步驟,而非連續性記憶體管理作業。此策略可將應用程式軟體執行作業與大部分的資料移動作業分開,進而大幅提升效能。
在本節中,我們將檢視一些測試系統範例,並説明每個範例中選擇的產品的理由。
我們看一個測試系統範例,以了解如何從 I/O 選擇著手,接著選擇機箱,最後再選擇用在所選機箱中的 I/O 介面卡的插槽。
首先,我們列出範例系統中的 I/O 介面卡及其理論資料傳輸率需求。
模組的最大資料傳輸率如下所示:
爲了示範説明,我們會在表 4 中選擇任意通道數與速率。
表 4: 混合訊號與 DAQ PXI 模組
請注意,速率與通道數取決於系統設計人員依應用需求所進行的選擇,但資料寬度與內建緩衝區大小 (我們會在下一步了解這一點) 則是模組與/或驅動程式的規格。
舉例來說,PXIe-5423 規格宣告 DAC 解析度為 16 位元。
圖 9:PXIe-5423 類比輸出規格
注意:依預設,如 PXIe-6396 等 DAQ 模組會將樣本填充至 16 位元或 32 位元,以利潛時與開銷效能。因此,即使 PXIe-6396 具有 18 位元解析度的樣本,在匯流排上也依然會使用 32 位元,除非您啟用了內建壓縮功能,但這會影響樣本潛時。
另一個範例是,依據 PXIe-5172 規格,8 通道版本的內建記憶體 (做為樣本緩衝區) 為 1.5 GB。
圖 10:PXIe-5172 內建記憶體規格
由於其中某些 I/O 介面卡有可能產生大量的輸送量 (4 GB/s 以上),因此,我們可以預見,資料傳輸率大到足以對機箱選擇產生嚴苛的硬性要求。這樣的需求代表著,在確定合適的機箱前,我們需要先進行更深入的技術分析。 我們需要的頻寬要比系統所需的最大傳輸率高出 2 至 3 倍 (如果可行),如此即可輕鬆因應匯流排負載與未來的升級,而不必重新架構系統。
要了解這類應用的資料移動需求,下一步是找出這些裝置是否需要在這類應用中串流資料。 一般而言,這個問題分為兩部分解決:首先,考量擷取/產生的資料長度是否會超過儀器的內建緩衝區大小;第二,判斷應用是否需要在有具體潛時需求的儀器之間串流資料。
爲了計算需要的緩衝區大小,我們會以最長時間擷取或產生任務的持續時間,乘以最大資料傳輸率,以確定資料串流的大小。接著,我們將資料串流的大小與裝置上的內建緩衝區大小進行比較。舉例來說,如果我們一次使用 PXIe-6569 進行 10 毫秒的簡短工作階段,那麼針對上述計算的速率,輸出緩衝區為 0.010s × 5 GB/s = 50 MB,輸入緩衝區則為 0.010s × 4 GB/s = 40 MB。 總共有 90 MB。PXIe-6569 內建 4 GB DRAM,因此,以這些速率與通道數,並持續 10 毫秒,則內建記憶體的大小足以發揮緩衝作用,而不必擔心 PCI Express 匯流排頻寬。 基本上,輸出資料會在該裝置的 FPGA 中預先載入或產生,且在擷取作業完成後,輸入資料會隨時傳離裝置,無需擔心內建緩衝區溢出。換句話說,背板速度不需要與儀器速度一樣快,因為背板可以在寫入資料前或讀取資料后移動資料。不過,如果擷取/產生作業的持續時間超過內建緩衝區容量,那麽我們就會知道背板需以與儀器同步的速率串流資料。
如同先前所述,我們也需要考量潛時。 應用是否需要將資料傳輸至主機或其他儀器,且有任何特定潛時需求? 如有潛時需求,我們很可能需要在主機與儀器之間即時串流資料。這也是背板頻寬需要與儀器速度匹配原因,即使有足夠的緩衝區容量,也不擔心串流頻寬。
爲了示範説明,假設我們已評估設計並確定哪一種儀器需要仰賴背板進行即時串流。
表 5:混合訊號與 DAQ PXI 模組的串流需求
此外,我們還要釐清這些串流是否同時進行。為示範説明,我們假設確實需要同時進行。
至此,我們掌握足夠資訊,可對機箱選擇提出明確需求。我們需要能同時支援至少 2.9 GB/s 輸入與 2.5 GB/s 輸出的機箱。由於輸入與輸出在匯流排使用上基本相互獨立 (匯流排負載有某些差異,但我們在本範例中會忽略這一點),因此我們可以將需求集中在要求更嚴苛的 2.9 GB/s 的輸入速率上。這意味著,在理想情況下,我們會選用最大插槽與系統頻寬為該速率值 2 到 3 倍的機箱,即大約 6 至 9 GB/s。 因此,我們正在尋找可連接至插槽的 Gen 3 x8 (8 GB/s) 機箱。 這個條件能讓我們完善 PXIe-1085、PXIe-1092 與 PXIe-1095 機箱的選項清單。
由於我們的應用需要 10 個儀器插槽,因此排除了僅配備 8 個儀器插槽的 PXIe-1092。因此,我們可以選擇 PXIe-1085 與 PXIe-1095。
如果應用不需要透過 PXIe-6593 以同樣的速率串流資料,我們可以擴充適用的機箱清單,加入 PXIe-1084 或 PXIe-1086,其頻寬足以因應 PXIe-6396 的 336 MB/s 的速率。
如果系統需要同時串流更多裝置,例如此範例中的 PXIe-6593 使用 3 個裝置而非 1 個。儘管單個裝置皆符合 PCIe Gen 3 x8 單插槽頻寬,但三者匯聚在一起的總量,就會超出從該區段至控制器的單條 Gen 3 x8 鏈路的承載能力。 我們必須考慮如何將這些需要大量資料串流的模組分散至多個區段,並確保系統控制器的總頻寬夠大。在這種情況下,我們需要選用 PXIe-1085 或 PXIe-1095 機箱,並且在具有通向系統控制器的一條 Gen 3 x8 鏈路的區段中安裝 PXIe-6593。其他 2 個裝置則安裝在具有通向系統控制器的 Gen 3 x16 鏈路的區段中。
在另一個範例中,我們將檢視以 NI PXIe-6357 為核心、專注於 HIL 的 DAQ 系統。對於這個範例,我們假設需要 2000 個類比輸入通道、10 個類比輸出通道、120 個靜態數位輸入通道,以及 80 個數位輸出通道。 我們還假設應用程式會以 1 ms 迴圈速率執行。 因此,我們要以 1,000 Hz 的頻率進行取樣。
表 6:專注於 HIL 的 DAQ 系統通道計數與資料速率
在此範例系統中,雖然通道數量龐大,但并無極高的資料傳輸率需求。所有輸入相加總值為 4.15 MB/s,而所有輸出的總值僅為 0.12 MB/s。傳輸率低到任何 NI PXIe 機箱都足以因應。
不過,由於我們使用 PXIe-6357 時需要 2000 個類比輸入通道,因此我們需要至少 10 個 PXIe-6357 裝置,這將讓我們選擇配備至少 10 個儀器插槽的機箱。
我們可以依上述需求選擇 PXIe-1081、PXIe-1084、PXIe-1085、PXIe-1086 與 PXIe-1095 機箱,並且相信選用任何機箱型號都能滿足應用的資料移動需求。
選擇機箱是模組化測試系統設計的關鍵。就 PXI 而言,從尺寸、每插槽可用功率、時序與同步功能,到 PXI 混合式模組支援、作業條件,以及資料移動功能等,全數會受到影響。有效率地在機箱內移動資料,是實現 PXI 架構測試系統穩定效能的基本條件。
若要針對資料移動選擇合適的 PXI Express 機箱,就需要同時考量系統中的各個模組與整體系統傳輸率。工程師應評估每插槽頻寬需求、了解區段分配方式,並確保系統頻寬足以支援所有能同時運作的儀器。同樣重要的是,選擇與機箱性能相符的 PXI Express 控制器。
為避免出現資料移動瓶頸,NI 提供多種策略,例如跨 PXI Express 區段負載平衡、使用點對點 (P2P) 串流進行直接儀器通訊,以及運用內建或 FPGA 架構的處理能力,從主機上卸載資料處理負荷。
妥善規劃後,以 NI 模組化平台為基礎的 PXI 系統即可為可擴充的高通量測試應用提供穩定的基礎。
選擇適合您應用的 NI PXI 機箱:
我們提供完整的 NI PXI Express 機箱、控制器與模組產品組合以及專家支援,可協助您設計符合當今需求且能因應未來需求的系統。歡迎探索我們的資源,或與 NI 工程師聯絡以開始使用。
| PCI Express 世代 | 每通道速度 | 通道寬度 | 每插槽最大頻寬 |
|---|---|---|---|
| Gen 1 | 250 MB/s | x1 至 x4 | 最高 1 GB/s |
| Gen 2 | 500 MB/s | x1 至 x8 | 最高 4 GB/s |
| Gen 3 | 1 GB/s | x1 至 x8 | 最高 8 GB/s |
| PXI 模組類型 | 一般資料速率 (單模組) |
|---|---|
| 資料擷取 (DAQ) 裝置 | 0.1 至 250 MB/s |
| DMM | <0.1 MB/s |
| SMU | 1 至 30 MB/s |
| 波形產生器/示波器 | 250 MB/s 至 5 GB/s |
| 高速 DIO 與高速序列 | 100 MB/s 至 10 GB/s |
| RF | 5 至 20 GB/s |
| 型號 | 總插槽數 | 系統頻寬 | PCI Express 區段 | 控制器鏈路速度 | 各區段的插槽範圍 | 插槽鏈路速度 |
|---|---|---|---|---|---|---|
| NI PXIe-1071 | 4 | 3 GB/s | 1 | 每插槽 Gen x4 | 無區段 | Gen 1 x4 |
| NI PXIe-1073 | 5 | 250 MB/s | 1 | Gen 1 x1 (MXI-Express) | 區段 1:插槽 2–5 | Gen 1 x1 |
| NI PXIe-1081 | 18 | 2 GB/s | 2 | 每區段 Gen 1 x4 | 區段 1:插槽 2–9; 區段 2:插槽 10–18 | Gen 1 x1 |
| NI PXIe-1083 | 5 | 2 GB/s | 1 | Thunderbolt™ 3 至 Gen 2 x4 | 區段 1:插槽 2–5 | Gen 2 x1 |
| NI PXIe-1084 | 18 | 4 GB/s | 2 | 每區段 Gen 2 x4 | 區段 1:插槽 2–9; 區段 2:插槽 10–18 | Gen 2 x1 |
| NI PXIe-1085 | 18 | 24 GB/s | 2 | Gen 3 x8 Gen 3 x16 | 區段 1:插槽 2–10: 區段 2:插槽 11–18 | Gen 3 x8 |
| NI PXIe-1086 | 18 | 12 GB/s | 2 | Gen 2 x8 Gen 2 x16 | 區段 1:插槽 2–9; 區段 2:插槽 10–18 | Gen 2 x8 |
| NI PXIe-1088 | 9 | 8 GB/s | 4 | Gen 2 x4 | 每插槽 Gen2 x4:插槽 4、6、8 共用 Gen2 x4:插槽 2、3、5、7、9 | Gen 2 x4 Gen 2 x1 |
| NI PXIe-1090 | 2 | 2 GB/s | 1 | Thunderbolt 3 至 Gen 2 x4 | 區段 1:插槽 1–2 | Gen 3 x1 |
| NI PXIe-1092 | 9 | 24 GB/s | 2 | Gen 3 x8 Gen 3 x16 | 區段 1:插槽 2–4; 區段 2:插槽 5–9 | Gen 3 x8 |
| NI PXIe-1095 | 18 | 24 GB/s | 2 | Gen 3 x8 Gen 3 x16 | 區段 1:插槽 2–10: 區段 2:插槽 11–18 | Gen 3 x8 |
| 型號 | 功能 | 使用的通道數量 | 每通道資料寬度 | 應用中的最大 I/O 速率 | 最大資料速率 (計算值) | 內建緩衝區大小 |
|---|---|---|---|---|---|---|
| NI PXIe-6569 | LVDS | 40 個輸出 | 1 位元 | 1 GS/s | 5 GB/s 輸出 | 4 GB |
| NI PXIe-6569 | LVDS | 32 個輸入 | 1 位元 | 1 GS/s | 4 GB/s 輸入 | 4 GB |
| NI PXIe-6593 | HSS | 2 個輸入通道 2 個輸出通道 | 1 位元 | 10 Gb/s | 2.5 GB/s 輸入 2.5 GB/s 輸出 | 4 GB |
| NI PXIe-6396 | DAQ | 8 個輸入 | 32 位元 | 14 MS/s | 336 MB/s 輸入 | 8196 個樣本 |
| NI PXIe-5423 | AWG | 2 | 16 位元 | 400 MS/s | 1.6 GB/s 輸出 | 64 M 樣本 |
| NI PXIe-5163 | 範圍 | 2 | 14 位元 | 1 GS/s | 4 GB/s 輸入 | 512 MB |
| NI PXIe-5172 | 範圍 | 8 | 14 位元 | 250 MS/s | 4 GB/s 輸入 | 1.5 GB |
| NI PXIe-4082 | DMM | 1 | 24 位元 | 20 kS/s | 60 kS/s 輸入 | — |
| NI PXI-2594 | 多工器/切換器 | 不適用 | 不適用 | 可忽略 | 可忽略 | — |
| NI PXI-2576 | 多工器/切換器 | 不適用 | 不適用 | 可忽略 | 可忽略 | — |
| 型號 | 功能 | 最大資料速率 | 需要串流嗎? |
|---|---|---|---|
| PXIe-6569 | LVDS | 5 GB/s 輸出 | 否 |
| PXIe-6569 | LVDS | 4 GB/s 輸入 | 否 |
| PXIe-6593 | 高速序列 | 2.5 GB/s in 2.5 GB/s 輸出 | 是 |
| PXIe-6396 | DAQ | 336 MB/s 輸入 | 是 |
| PXIe-5423 | 波形產生器 | 1.6 GB/s 輸出 | 否 |
| PXIe-5163 | 示波器 | 4 GB/s 輸入 | 否 |
| PXIe-5172 | 示波器 | 4 GB/s 輸入 | 否 |
| PXIe-4082 | DMM | 60 kS/s 輸入 | 否 |
| PXI-2594 | 多工器/切換器 | 可忽略 | 否 |
| PXI-2576 | 多工器/切換器 | 可忽略 | 否 |
| 型號 | 功能 | 通道數量 | 每通道資料寬度 | 應用中的最大 I/O 速率 | 最大資料速率 |
|---|---|---|---|---|---|
| 類比輸入 類比輸出 數位輸入 數位輸出 | 2000 10 120 80 | 16 位元 16 位元 1 位元 1 位元 | 1,000 S/s 1,000 S/s 1,000 S/s 1,000 S/s | 4 MB/s in 0.02 MB/s 輸出 0.15 MB/s 輸入 0.10 MB/s 輸出 |