簡介
傳統(tǒng)桌面型儀器的數(shù)據(jù)傳輸接口為GPIB、RS-232或是LAN,這些接口的好處在于非常容易操作使用,但在傳輸大量數(shù)據(jù)時其效率并不理想。當要采集大量連續(xù)數(shù)據(jù)時,數(shù)據(jù)長度就會因為內(nèi)部存儲器大小而受限。目前市面上新款的高級儀器,例如示波器、波型發(fā)生器或邏輯分析儀,采用x86的架構(gòu),因此在高速、大量數(shù)據(jù)采集的長度上則基本上沒有限制。但若要跨儀器同步達到多通道采集時,便是個困難且復(fù)雜的課題。
自從1998年第一版的PXI規(guī)格問世后,PXI平臺與其模塊已經(jīng)被大量應(yīng)用于軍工、電子制造及科學研究應(yīng)用中。第一版的PXI規(guī)格采用了PCI總線的高速傳輸特性,而后續(xù)的PXI規(guī)范更采用了PCI Express總線,繼承了其低延遲(Low Latency)、高帶寬及點對點傳輸?shù)奶匦?,另外再加上特有的觸發(fā)與時序同步的接口,使得PXI平臺與PXI模塊特別適合應(yīng)用于高速數(shù)據(jù)傳輸。
當以PXI平臺設(shè)計適用于高速數(shù)據(jù)記錄的系統(tǒng),不管是將數(shù)據(jù)連續(xù)由模塊化儀器傳送至系統(tǒng)內(nèi)存或存儲裝置,或者相反的數(shù)據(jù)流向,都能夠利用PXI Express的高速總線、點對點傳輸?shù)奶匦砸约疤赜械挠|發(fā)與時序信號,輕松地完成實現(xiàn)。接下來的文章內(nèi)容將進一步討論,在設(shè)計、實現(xiàn)數(shù)據(jù)記錄系統(tǒng)的過程中,需要考慮的幾個要點與方向。
數(shù)據(jù)記錄系統(tǒng)的架構(gòu)及其考量因素
下圖一簡單的示意了一組PXI Express平臺中數(shù)據(jù)的流向,組成的組件包含了PXI Express機箱、PXI Express控制器及模塊化儀器,包含數(shù)字化儀及波形發(fā)生器。以高速數(shù)字化儀為例,模擬信號被ADC采集轉(zhuǎn)換成數(shù)字量數(shù)據(jù)后,會搬移到板載內(nèi)存上暫存,接下來再經(jīng)由總線控制器及PCI Express接口,傳送到PXI Express控制器的系統(tǒng)內(nèi)存上,做后續(xù)的計算及處理。若數(shù)據(jù)的流向目的地是存儲設(shè)備,則會在未經(jīng)任何處理計算的情況下,被直接搬移到存儲裝置,以維持高速、連續(xù)不斷的數(shù)據(jù)記錄。在PXI Express背板上,采用了PCIe switch使得系統(tǒng)得以擴展出更多槽位。由于不同的PXI Express機箱有不同的槽位型態(tài),因此每個PCIe switch的繞線方式都不同,進而影響到數(shù)據(jù)傳輸效率。如模塊化儀器-波形發(fā)生器,其數(shù)據(jù)流則以相反方向運行。
圖一、PXI Express平臺與模塊化儀器整體架構(gòu)簡化圖,顯示PXI Express系統(tǒng)的數(shù)據(jù)記錄傳輸?shù)姆较?/p>
接下來我們會討論數(shù)據(jù)記錄系統(tǒng)的每個環(huán)節(jié)及對于數(shù)據(jù)帶寬的影響。
模塊化儀器的板載內(nèi)存
大約十多年前,高速的PCI數(shù)字化儀都需要配備大量的板載內(nèi)存以暫存來自高速ADC的數(shù)據(jù),主要原因是當時的PCI總線僅能提供約132MB/s的數(shù)據(jù)帶寬(多數(shù)系統(tǒng)僅能達到約80MB/s)。PCI總線的帶寬,無法滿足于8位1GS/s或14位200MS/s的數(shù)字化儀所需要的數(shù)據(jù)帶寬。為了要增加記錄或采集時間,512MB、1GB或甚至4GB的板載內(nèi)存就會被應(yīng)用于數(shù)字化儀之上。目前雖然高速PCIe總線接口可提供數(shù)倍于PCI總線的帶寬,但數(shù)字化儀通常還是會配備有大量的板載內(nèi)存深度(大于100MB),用于當作數(shù)據(jù)暫存,以避免CPU或DMA控制器過于忙碌而無法實時傳輸數(shù)據(jù)。舉例來說,一個單通道8位500MS/s的數(shù)字化儀,在完全不將數(shù)據(jù)傳回系統(tǒng)內(nèi)存狀況下,可以記錄高達1秒的時間,若配備有2GB內(nèi)存則可記錄高達4秒。
在選擇數(shù)字化儀時,另外一個需要注意的就是其板載內(nèi)存控制器的數(shù)據(jù)處理帶寬。作為ADC與系統(tǒng)內(nèi)存之間的橋梁,內(nèi)存控制器需要有兩倍的數(shù)據(jù)傳輸量,以能同時應(yīng)付來自ADC的數(shù)據(jù)流入,以及將數(shù)據(jù)通過PCIe總線傳送至系統(tǒng)內(nèi)存。若存儲設(shè)備控制器的帶寬小于兩倍數(shù)據(jù)流量,則數(shù)據(jù)會被暫存在板載內(nèi)存上,長久下來就會造成數(shù)據(jù)溢出,而使數(shù)據(jù)連續(xù)性受損。
圖二、數(shù)字化儀內(nèi)的數(shù)據(jù)流
模塊化儀器的總線接口
PCI總線提供132MB/s (32位、33MHz)傳輸速率,針對低速(小于80MB/s)且低價的數(shù)據(jù)記錄應(yīng)用來說,PCI接口仍可滿足,不過需要注意的是,PCI是并行的總線接口,若有多個設(shè)備置于同一總線時,帶寬則會被分享。區(qū)別于PCI總線,PCI Express接口具有點對點的特性,每個link在每個方向上可提供高達250MB/s傳輸速率。若要增加帶寬,最簡單的方式就是將多個link結(jié)合起來,成為x4、x8甚至x16通道。而2003年推出的PCIe 1.0a規(guī)格、2007年推出的PCIe 2.0標準,PCI-SIG在2010年11月再度提出PCIe 3.0規(guī)格,持續(xù)推進更新的編碼方式及強化的信號完整性以大幅度提升其傳輸速率,因此對于需要高速數(shù)據(jù)記錄的應(yīng)用來說,采用PCIe接口的模塊化儀器是一大利器。顯而易見,采用PCI Express為模塊化儀器的總線接口可以得到優(yōu)化的系統(tǒng)效率。
|
PCIe GEN 1 |
PCIe GEN 2 |
PCIe GEN 3 |
Lane |
Bandwidth, per direction & lane |
Bandwidth, per direction & lane |
Bandwidth, per direction & lane |
X 1 |
250MB/s |
500MB/s |
1GB/s |
X 4 |
1GB/s |
2GB/s |
4GB/s |
X 16 |
4GB/s |
8GB/s |
16GB/s |
PXI Express機箱內(nèi)PCIe總線的繞線架構(gòu)
在PXI Express機箱的系統(tǒng)槽中,為了讓外圍槽的擴展及規(guī)劃更有彈性,系統(tǒng)槽連接到背板上的接口有4-Link及2-Link兩種架構(gòu)。4-Link架構(gòu)中每個link具備有4個通道,而2-Link架構(gòu)中則允許其中一個link有8個通道,而另外一個link則可有高達16通道。為了要達到最高的傳輸速率,在PXI Express機箱內(nèi)的PCI Express總線的走線方式、架構(gòu)也是需要考慮的重點。以凌華科技PXES-2780機箱為例,這是一款具有18個槽位的機箱,含1個系統(tǒng)槽位、1個系統(tǒng)時序槽位(System Timing slot)、6個PXIe外圍槽位(PXIe Peripheral Slot)及10個混合式槽位(Hybrid Slot)。當該機箱的系統(tǒng)槽位規(guī)劃成4-Link接口時,可以提供每個槽位相對高速及平衡的傳輸速率。由于此機箱內(nèi)的PCI Express接口為PCIe Gen2, 因此對整個系統(tǒng)來說可以提供高達8GB/s的系統(tǒng)帶寬,單獨對于第8與12槽這種具有x8接口來說,可以擁有4GB/s的帶寬,而其他個別的PXI Express外圍槽來說,則可擁有2GB/s的帶寬。該機箱的4-Link規(guī)劃示意圖如下:
圖三、配置為4-Link的凌華科技PXES-2780機箱示意圖
若將PXI Express系統(tǒng)槽位設(shè)置成2-Link x8, 則可得到更高的傳輸帶寬。凌華科技的PXES-2780機箱,其系統(tǒng)槽位可通過軟件設(shè)置成2-Link x8接口,其架構(gòu)如下圖4。使用該架構(gòu),槽位8與槽位12可以提供x8的帶寬。
圖四、規(guī)劃成2-Link的凌華科技 PXES-2780機箱示意圖
使用者若能熟悉PXI Express機箱的規(guī)劃架構(gòu),將能使模塊化儀器在傳輸大量數(shù)據(jù)上獲得更佳的傳輸性能。
系統(tǒng)內(nèi)存與操作系統(tǒng)(OS)
在PXI Express系統(tǒng)控制器上,若能配有大容量的系統(tǒng)內(nèi)存,則可延長數(shù)據(jù)記錄的時間。然而搭配不同的操作系統(tǒng)(Operating System)可能會有不同的內(nèi)存上限。例如對于32位的操作系統(tǒng),其內(nèi)存尋址空間通常不能超過4GB,而對于64位操作系統(tǒng)而言,一般可達512GB或者1TB的內(nèi)存尋址。因此使用者需根據(jù)自身的需求來選擇合適的操作系統(tǒng),以支持所需的內(nèi)存空間。
存儲裝置
要能穩(wěn)定的執(zhí)行大數(shù)據(jù)的讀寫工作,選擇合適的存儲裝置極為重要。硬盤(HDD)是一種具有特別的機械裝置,內(nèi)含有高速旋轉(zhuǎn)的磁盤以及具有磁性的讀寫頭,來回于磁盤表面上,用以讀取磁盤內(nèi)所存儲的數(shù)據(jù)單元。由此可知,讀或?qū)懙乃俣葘芟抻谧x寫頭的移動速度。為了增加讀寫的速度,幾個硬盤通常會被組合起來成為一個虛擬的硬盤,這也是大家所熟知的RAID(Redundant Array of Independent Disks),即磁盤陣列。另外最近越來越流行的固態(tài)磁盤則因為沒有讀寫頭的機械移動問題,因此能提供較硬盤更好的讀寫效率。若考慮到最佳的讀寫性能的話,固態(tài)磁盤將會是最佳的選擇。
應(yīng)用示例一、數(shù)據(jù)記錄至系統(tǒng)內(nèi)存
材料結(jié)構(gòu)測試的高速數(shù)據(jù)記錄
方案需求
某系統(tǒng)集成商想要開發(fā)一套多通道材料震動監(jiān)控設(shè)備,并能夠?qū)崿F(xiàn)從不同的傳感器同時進行1MS/s~50MS/s采樣率的數(shù)據(jù)采集,同時將采集進來的數(shù)據(jù)記錄到系統(tǒng)內(nèi)存中,以直接進行后續(xù)的處理,而不需要將數(shù)據(jù)記錄到磁盤上做存儲。另外該系統(tǒng)集成商希望每個采集通道能夠記錄至少5~10秒的時間。接下來我們會針對這些應(yīng)用條件進行評估,并討論使用PXI Express平臺實現(xiàn)這類型應(yīng)用時,不同的采樣率在設(shè)計上會遇到的瓶頸有哪些。
評估
下面是我們用來評估這個高速數(shù)據(jù)記錄系統(tǒng)會使用到的組件:
- PXI Express機箱: 凌華科技PXES-2780,18槽PXI Express機箱
- 數(shù)字化儀: 凌華科技PXIe-9848,高速8通道100 MS/s 14位PXI Express數(shù)字化儀
首先我們先考慮PXI Express機箱中只有單一數(shù)字化儀的狀況。下表是單一數(shù)字化儀在不同采樣率下,以不同采集時間所需要的內(nèi)存評估表。
Single PXI Express-9848 in PXI Express Chassis |
System Memory Required for Specified Time in MB |
|||||||
SR MS/s |
Data Width, Byte |
No of CH |
Data Rate, MB/s |
1/2 sec |
1 sec |
2 sec |
5 sec |
10 sec |
5 |
2 |
8 |
80 |
40 |
80 |
160 |
400 |
800 |
10 |
2 |
8 |
160 |
80 |
160 |
320 |
800 |
1600 |
20 |
2 |
8 |
320 |
160 |
320 |
640 |
1600 |
3200 |
50 |
2 |
8 |
800 |
400 |
800 |
1600 |
4000 |
8000 |
100 |
2 |
8 |
1600 |
800 |
1600 |
3200 |
8000 |
16000 |
當只有一張PXIe-9848時,以100MS/s進行8通道的采樣時,總數(shù)據(jù)帶寬為1.6GB/s。然而PXIe-9848其接口為PCIe x4且為Gen 1,因此若要進行連續(xù)不斷的數(shù)據(jù)記錄時,其產(chǎn)生的數(shù)據(jù)量最好能低于1GB/s。若將采樣率降低至50MS/s,則PXIe-9848能產(chǎn)生800MB/s數(shù)據(jù)量。由于PXES-2780機箱采用PCIe Gen2規(guī)格,因此能夠負荷800MB/s的數(shù)據(jù)量。若要以50MS/s采樣率進行10秒長度的采樣,則進一步的限制會落在系統(tǒng)內(nèi)存大小上,以此狀況下,需要8GB系統(tǒng)內(nèi)存。若系統(tǒng)內(nèi)存無法分配出高達8GB的系統(tǒng)內(nèi)存供數(shù)字化儀使用,則必須縮減采樣時間的長度。
接下來,我們再來考慮多張卡片安裝于同一系統(tǒng)的狀況。若想要達到最多采樣通道,那么最多則可以把17張PXIe-9848數(shù)字化儀,安裝于機箱內(nèi),那么此時除了考慮PXI Express控制器的系統(tǒng)帶寬外,還要把PXI Express背板上的PCIe連接配置也考慮進去。
我們觀察PXES-2780機箱的連接配置,如圖四所示,它上面的PCIe switch#1上游有兩個x4的連接通道,下游有三個x4連接通道,因此以平均來說,每個下游通道可從上游通道分得約1.33GB/s的帶寬(4GB/s ÷ 3 ports)。PCIe switch#2也可用相同的計算方式來換算其下游帶寬。至于PCIe switch#3與#4的下游通道約可分別分得222MB/s (1.33GB ÷ 6 ports)及190MB/s (1.33GB/s ÷ 7 ports)的帶寬。若每個數(shù)字化儀都使用同樣的采樣率,則帶寬瓶頸會出現(xiàn)在位于第10、13~18插槽的數(shù)字化儀上。
圖五、配置成PCIe x4 link的機箱帶寬預(yù)估示意圖
若我們根據(jù)第10、13~18槽的帶寬限制,來計算不同采樣時間長度所需的系統(tǒng)內(nèi)存,其結(jié)果如下表:
Configuration of single PXIe-9848 module |
|
System memory (MB) required for specified time with 17 PXIe-9848 modules deployed in PXI Express platform |
|||||||
SR MS/s |
Data Width, Byte |
No of CH |
Data Rate, MB/s |
Slot BW Bottle-neck, MB/s |
1/2 sec |
1 sec |
2 sec |
5 sec |
10 sec |
5 |
2 |
8 |
80 |
190 |
680 |
1360 |
2720 |
6800 |
13600 |
8.33 |
2 |
8 |
133.28 |
190 |
1133 |
2266 |
4532 |
11329 |
22658 |
10 |
2 |
8 |
160 |
190 |
1360 |
2720 |
5440 |
13600 |
27200 |
由上表評估結(jié)果可知,若以5MS/s采樣率進行5秒鐘連續(xù)采樣,17張數(shù)字化儀共需系統(tǒng)內(nèi)存達6.8GB大小。若采樣率達10MS/s,則記錄時間會縮減至2秒(需5.44GB內(nèi)存),若仍需要加長記錄時間,則數(shù)字化儀上的板載內(nèi)存將可延成某個程度的記錄時間。
應(yīng)用示例二、數(shù)據(jù)記錄至磁盤
激光監(jiān)控中高速光二極管的信號采集
方案需求
客戶的應(yīng)用是有關(guān)激光信號監(jiān)控,需要采集光二極管的信號且需為便攜式的設(shè)計。只需要采集一個通道,但采樣率需高達200MS/s。
解決方案
由于客戶需要高達200MS/s的單通道采樣率,因此以凌華PXIe-9842及便攜式的PXI Express機箱PXES-2590為應(yīng)用組合,以此提供高達400MB/s的數(shù)據(jù)記錄速率。由于需要將數(shù)據(jù)記錄至磁盤,而PXI Express控制器上的磁盤裝置一般很難提供高達400MB/s的帶寬,即使使用SSD也很難,因此使用外部的RAID存儲裝置來進行數(shù)據(jù)存取。我們使用的RAID模塊是PXI Express接口且具有4個SATA III界面的SSD。
- PXI Express系統(tǒng)控制器: 凌華科技PXIe-3975,3U Intel® CoreTM i5-520E 2.4GHz 雙核 PXI Express系統(tǒng)控制器
- PXI Express機箱: 凌華科技PXES-2590,9槽全混和式PXI Express機箱
- 數(shù)字化儀: 凌華科技PXIe-9842,14位200 MS/s采樣率的PXI Express數(shù)字化儀
- RAID存儲裝置: Conduant DM-425
結(jié)論
要以PXI Express平臺來實現(xiàn)數(shù)據(jù)記錄的應(yīng)用,需要考慮的不只是模塊化儀器本身的條件,更要考慮到PXI Express平臺的數(shù)據(jù)傳輸帶寬。通過本文中所探討的設(shè)計上的細節(jié)及應(yīng)用范例,用戶將能有效構(gòu)建更高性能的測量測試平臺、大幅提升開發(fā)效率。