摘要: 為實現(xiàn)仿真系統(tǒng)中各仿真設(shè)備之間實時的數(shù)據(jù)通訊, 文章設(shè)計并實現(xiàn)了一種基于 LabVIEW RT以及反射內(nèi)存網(wǎng)絡(luò)的數(shù)據(jù)實時采集及傳輸系統(tǒng); 通過深入研究反射內(nèi)存網(wǎng)絡(luò)集線器的內(nèi)部結(jié)構(gòu), 確立了系統(tǒng)合適的網(wǎng)絡(luò)分布結(jié)構(gòu), 從硬件上保證了系統(tǒng)的實時性; 在深入研究 LabV I EW RT環(huán)境下反射內(nèi)存的驅(qū)動運行原理后, 實現(xiàn)了在 RT環(huán)境下對反射內(nèi)存的應(yīng)用; 并通過編程中對驅(qū)動函數(shù)合適的選擇應(yīng)用, 優(yōu)化了系統(tǒng)軟件的實時性能; 測試及實踐證明, 系統(tǒng)性能良好, 在實際仿真中發(fā)揮了作用。
關(guān)鍵詞: 數(shù)據(jù)實時通訊; 反射內(nèi)存; 網(wǎng)絡(luò)分布; LabVIEW RT ; 實時性控制 0 前言
在仿真系統(tǒng)諸如分布式仿真系統(tǒng)、半實物仿真系統(tǒng)中, 數(shù)據(jù)通訊的正確性、快速性和可靠性對仿真的質(zhì)量有著至關(guān)重要的決定影響。而通訊的實時性能與各部分的數(shù)據(jù)傳輸速度密切相關(guān), 其中包括了硬件以及軟件上各方面的因素。以往在硬件上采取的措施常常是研制高速的數(shù)字 /模擬量接口設(shè)備等, 但這種方法存在很多缺陷, 如缺乏通用性、傳輸距離受較大限制等等。而隨著各種實時網(wǎng)絡(luò)產(chǎn)品的開發(fā), 其在仿真系統(tǒng)中的應(yīng)用也愈加增多。這些產(chǎn)品的共同特點就是通訊速率快、傳輸距離長、通用性好, 并且可以連接多個節(jié)點組成一個實時網(wǎng)絡(luò),因而具有十分優(yōu)越的應(yīng)用性。本文根據(jù)實際仿真設(shè)備通訊的需求, 利用反射內(nèi)存 VM IP-CI- 5565及其集線器 VM I ACC - 5595組建了一個數(shù)據(jù)傳輸網(wǎng)絡(luò)。并結(jié)合虛擬儀器編程語言 LabVIEW ( RT ), 編制了數(shù)據(jù)采集 /傳送軟件。通過從硬件以及軟件上多方面對提升系統(tǒng)實時性能的考慮, 使得系統(tǒng)具有良好的工作表現(xiàn), 從而組建了一個具有較好適用性以及擴展性的通訊系統(tǒng)。
1 系統(tǒng)硬件組建
1 1 1 實時通訊網(wǎng)絡(luò)與反射內(nèi)存
實時通訊網(wǎng)絡(luò)是用于需要較高實時性要求的應(yīng)用領(lǐng)域的專用網(wǎng)絡(luò)通訊技術(shù), 一般采用基于高速網(wǎng)絡(luò)的共享存儲器技術(shù)實現(xiàn)。它除了具有嚴(yán)格的傳輸確定性和可預(yù)測性外, 還具有速度高、通信協(xié)議簡單、宿主機負(fù)載輕、軟硬件平臺適應(yīng)性強、可靠的傳輸糾錯能力、支持中斷信號的傳輸?shù)忍攸c。實時通訊網(wǎng)絡(luò)可廣泛用于各種領(lǐng)域, 例如實時的飛行仿真器、核電站仿真器、電訊、高速過程控制 (軋鋼廠和制鋁廠 )、高速測試和測量以及軍事系統(tǒng)。VMIPCI-5565是 VMIC公司生產(chǎn)的基于 PCI總線的反射內(nèi)存卡, 它使用光纖進行數(shù)據(jù)的傳輸, 從而不存在電磁輻射,也不受到來自無線電的電子 /電磁干擾, 具有很好的安全性和可靠性。另外, 5565采取了高性能的 H ub (網(wǎng)絡(luò)集線器 ) 結(jié)構(gòu)配置成實時網(wǎng)絡(luò), 可以實現(xiàn)多達 256個節(jié)點的計算機內(nèi)存共享, 可以實現(xiàn)高速的實時數(shù)據(jù)通信[ 1]。因而, 其對于分布式仿真系統(tǒng)來說, 具有良好的應(yīng)用價值。 VMIPCI- 5565組建的網(wǎng)絡(luò)結(jié)構(gòu)如圖 1所示。 ![]()
圖 1 反射內(nèi)存網(wǎng)絡(luò)組建結(jié)構(gòu) 1 1 2 VM IACC- 5595的內(nèi)部結(jié)構(gòu)與系統(tǒng)網(wǎng)絡(luò)結(jié)構(gòu)反射內(nèi)存卡 VM IPC I- 5565對應(yīng)的網(wǎng)絡(luò)集線器型號為 VMIACC-5595 , 它是一個8端口并且通過層疊可以實現(xiàn) 256節(jié)點網(wǎng)絡(luò)的網(wǎng)絡(luò)集線器。而由于 VM I ACC - 5595獨 特的內(nèi)部結(jié)構(gòu) [ 2], 使得在配置網(wǎng)絡(luò)時會發(fā)現(xiàn)整個網(wǎng)絡(luò)的實時性能有一定的差異。根據(jù) VM IACC - 5595內(nèi)部結(jié)構(gòu)圖[ 2]可知, 在利用其組建網(wǎng)絡(luò)時, 縱使從外部看網(wǎng)絡(luò)是星形結(jié)構(gòu), 但內(nèi)部依然是雙環(huán)形結(jié)構(gòu)。VM I ACC - 5595簡化的內(nèi)部結(jié)構(gòu)如圖 2所示。 ![]()
圖 2 簡化的 VM I ACC- 5595單機結(jié)構(gòu)
可見由于 VM I ACC- 5595內(nèi)部存在由 0、1、 2 、 3和 4、 5 、6、7節(jié)點組成的兩個環(huán)形, 數(shù)據(jù)在任意兩節(jié)點之間傳送的時間并不像嚴(yán)格意義上的星形結(jié)構(gòu)那樣完全相同。如數(shù)據(jù)從 0節(jié)點傳向 1節(jié)點和傳向 3節(jié)點所費時間理論上應(yīng)該是 1 /3關(guān)系,這樣的差異在實際網(wǎng)絡(luò)節(jié)點功能配置時是不得不考慮的。通過分析可以發(fā)現(xiàn), 在設(shè)計網(wǎng)絡(luò)時需要著重考慮節(jié)點 3和節(jié)點 0、節(jié)點 7和節(jié)點 4的內(nèi)在關(guān)系, 這樣可以即滿足設(shè)計需求, 又能夠減少數(shù)據(jù)在反射內(nèi)存網(wǎng)絡(luò)上的傳輸延遲。即根據(jù)節(jié)點對數(shù)據(jù)的要求來配置節(jié)點的位置, 若節(jié)點以發(fā)送數(shù)據(jù)為主則應(yīng)配置在 3或 7節(jié)點, 而以接受處理為主要任務(wù)的節(jié)點則應(yīng)配置在 4或 0節(jié)點。當(dāng)存在數(shù)據(jù)向其它網(wǎng)絡(luò)轉(zhuǎn)接或集中處理節(jié)點時, 這點的考慮就會更加重要。后經(jīng)實驗證明, 不同配置的網(wǎng)絡(luò)在 100個 32位精度數(shù)據(jù)傳輸時間上的差異在 10微秒級左右, 而隨著數(shù)據(jù)量的增加時間差異會更加顯著。在本系統(tǒng)中, 把主要產(chǎn)生數(shù)據(jù)的設(shè)備) ) ) /海鷹仿真機 0和 /銀河仿真工作站0 (或數(shù)據(jù)采集計算機 ) 置于 3 、 7節(jié)點,而把數(shù)據(jù)處理設(shè)備如 SG I圖形工作站、干擾與背景實時控制計算機等配置與其它節(jié)點。這樣, 從節(jié)點的功能配置上力求到了最優(yōu)化。
2 系統(tǒng)軟件實現(xiàn)
2 1 1 LabVIEW 編程環(huán)境及其實時組件 (RT)
系統(tǒng)中數(shù)據(jù)采集 /傳送程序利用 LabVIEW ( RT) 編制而成。 LabV I EW 是由美國 NI公司推出了一種優(yōu)秀的面向?qū)ο蟮膱D形化編程語言, 目前正被大量用于開發(fā)數(shù)據(jù)監(jiān)測、數(shù)據(jù)測量采集系統(tǒng)、工業(yè)自動控制相同和數(shù)據(jù)分析系統(tǒng)等領(lǐng)域。LabV IEW 的實時組件 LabV I EW Rea l- T i m e ( RT) 是為了滿足測控領(lǐng)域中日益增多的實時性需求而出現(xiàn)的。與 Lab -V I EW 不同, RT的工作模式為: 在宿主機上開發(fā)應(yīng)用程序,然后下載到目標(biāo)計算機上去運行。目標(biāo)機可以是 N I公司專門研制的 RT目標(biāo)智能板卡, 也可以是通用的計算機, 但目標(biāo)機上運行的卻是一個專門下載 (預(yù)先安裝 ) 的實時系統(tǒng)。比如文中系統(tǒng)所采取的 LabVIEW RT 810版本, 其目標(biāo)機上運行的是 N I基于實時系統(tǒng) Pharap改造開發(fā)的實時系統(tǒng)。由于目標(biāo)機運行的與本身操作系統(tǒng)無關(guān), RT工作模式就具有較好的適用性[3]
。
應(yīng)用 LabV IEW RT環(huán)境編程時, 必須的步驟如下:
( 1) 配置目標(biāo)計算機 [4]。包括設(shè)置第一啟動盤 (根據(jù)下一步的啟動方式?jīng)Q定是硬盤還是軟盤 ), 屏蔽無關(guān)的操作、中斷如 USB功能等, 以使目標(biāo)機啟動在實時狀態(tài)下及盡量增強目標(biāo)機的實時性能。 ( 2) 連接啟動宿主機與目標(biāo)計算機, 并使目標(biāo)機運行在實時狀態(tài)下。宿主機與目標(biāo)機的連接可以是普通的網(wǎng)絡(luò)連接。使目標(biāo)計算機運行在實時狀態(tài)下則有從硬盤啟動和從軟盤啟動兩種方式, 啟動軟盤及硬盤的設(shè)置均在 NI產(chǎn)品隨帶的硬件操作環(huán)境 MAX下設(shè)置, 具體步驟可見文獻 [ 4]。本文所設(shè)置的目標(biāo)機是一個數(shù)據(jù)采集計算機, 由研華工控機和 N I公司的基于 PC I總線的數(shù)據(jù)采集卡 PC I6036E組成。目標(biāo)機啟動模式采取了制作啟動軟盤的方式。
( 3) 在宿主機上進入 LabVIEW RT編程模式, 選定將要運行程序的目標(biāo)機, 編制宿主機和目標(biāo)機要運行的程序。 LabVIEW RT的不同版本在這一部分的環(huán)境可能有差別, 本文用的 8 1 0版本是目前最新的版本, 它直接應(yīng)用了一個 RT工程管理窗口, 使得對子程序模塊 ( VI) 的管理十分方便、直觀。
( 4) 完成程序的編制以及相應(yīng)的設(shè)置后, 直接把程序下載到目標(biāo)機上即可以運行。應(yīng)用 LabV I EW RT編制的程序只要下載到目標(biāo)機上就可以自己獨立運行, 而只要沒有特殊的設(shè)置, 縱使宿主機崩潰關(guān)機了, 其運行依然不受影響。而且, 通過設(shè)置可以把目標(biāo)機上的程序設(shè)置成開機即自動運行狀態(tài), 這樣宿主機就可以不需控制目標(biāo)機而進行其它目標(biāo)機的開發(fā)。這在很多自動測試、控制網(wǎng)絡(luò)等系統(tǒng)中有著極大的優(yōu)點, 可以極大地提高系統(tǒng)開發(fā)效率并節(jié)省很多的資源。另外, 文中系統(tǒng)開發(fā)所應(yīng)用的 LabVIEW RT的 810版本還增加了一個 /共享變量 0 的新功能。它采用了一個 / 先進先出0 的內(nèi)存棧列機制, 通過應(yīng)用共享變量可以方便、可靠的實現(xiàn)控制計算機與目標(biāo)機計算機之間的數(shù)據(jù)傳送以及邏輯控制。比起以前版本為實現(xiàn)網(wǎng)絡(luò)通訊所必須采取的 DataSocket技術(shù)等, 共享變量的邏輯以及代碼極其簡單。也正因為此, 共享變量的出現(xiàn)也大大提升了 LabVIEW 以前并不受贊揚的網(wǎng)絡(luò)通
訊性能 [5]
。
2 12 軟件組成與實時性控制
2 1211 軟件組成及流程
一般情況下, 非 N I公司的產(chǎn)品, 即第三方硬件產(chǎn)品, 并不能直接應(yīng)用在 LabV IEW RT環(huán)境之下。而此時就必須自行開發(fā)板卡在 LabV IEW RT環(huán)境下的驅(qū)動, 其包括很多的過程 [ 6]。
然而 NI公司恰好開發(fā)出了 VM IPCI- 5565的驅(qū)動, 作為例程發(fā)布在 N I主頁上供開發(fā)者學(xué)習(xí)。實驗證明, 在對目標(biāo)機進行一定設(shè)置后, 此驅(qū)動可以應(yīng)用在 LabV IEW 的 RT環(huán)境下。系統(tǒng)軟件的組成分為宿主機控制程序和目標(biāo)機采集程序兩部分, 功能可以實現(xiàn)由控制界面控制采樣時間限、采樣模式及點數(shù)、采樣率等參數(shù)設(shè)置的任意通道的數(shù)據(jù)采集和直接發(fā)送。軟件的流程如圖 3所示。
2 1212 軟件中的實時性考慮 ![]()
圖 3 系統(tǒng)軟件流程圖
為盡量提升軟件運行的效率和數(shù)據(jù)處理的實時性, 軟件從總體方案和具體函數(shù)的選擇應(yīng)用上都進行了優(yōu)化考慮。具體表現(xiàn)在: 在總體方案上, 程序盡量在開始采集命令下達之前實現(xiàn)所有的硬件參數(shù)配置以及控制變量的復(fù)位, 而在數(shù)據(jù)采集開始后使目標(biāo)機上運行的代碼盡量少。而在具體函數(shù)的應(yīng)用上, 也以運行代碼的簡潔高效為原則。這包括了對數(shù)據(jù)采集函數(shù)的改進組合和對數(shù)據(jù)發(fā)送時函數(shù)的選擇。數(shù)據(jù)采集函數(shù)在運行時,通過判斷采集模式 (是連續(xù)還是定點 ) 選擇在 DAQm x函數(shù)模
塊基礎(chǔ)上改進的采集子 VI[ 7- 8]。另外需要注意的是, 在數(shù)據(jù)發(fā)送時必須根據(jù)反射內(nèi)存卡函數(shù)的運行特點和發(fā)送數(shù)據(jù)的模式, 合適選擇編制的數(shù)據(jù)發(fā)送子V I 。由于反射內(nèi)存卡的驅(qū)動函數(shù)是由 LabVIEW 中的 V ISA底層函數(shù)綜合應(yīng)用而成的[ 6], 尤其是數(shù)據(jù)讀寫函數(shù), 全部由 VISA中寄存器讀寫函數(shù)組成。所以一般的浮點型采集數(shù)據(jù)無法直接寫進寄存器, 而必須開發(fā)合適的數(shù)據(jù)轉(zhuǎn)換函數(shù)。此時有兩種方法: 一即把所有數(shù)據(jù)通過 LabV IEW 的 datafl a ttern子 VI轉(zhuǎn)化成字符型 ( 8位精度整形 ) 數(shù)據(jù) (此時又分兩種情況, 有適用于連續(xù)數(shù)據(jù)的單點轉(zhuǎn)化和適用于定量序列的向量轉(zhuǎn) ) , 發(fā)出后再通過相反的方法轉(zhuǎn)換回原始數(shù)據(jù); 二則是把浮點數(shù)據(jù)判斷正負(fù)后設(shè)置代表負(fù)數(shù)的標(biāo)志位, 再通過一個固定的數(shù)學(xué)變換全部轉(zhuǎn)換成整形數(shù)據(jù), 把轉(zhuǎn)換后的數(shù)據(jù)和對應(yīng)標(biāo)志位數(shù)據(jù)一同發(fā)送, 接收后再結(jié)合標(biāo)志位進行數(shù)據(jù)反變換即可。
可見, 第一種方法把一個 32位浮點數(shù)變成了 4個 8位整形數(shù)來發(fā)送, 而第二種方式增加了一倍的數(shù)據(jù)量, 但完成一個數(shù)據(jù)發(fā)送卻只發(fā)送兩次。于是, 如若是少量的數(shù)據(jù)序列, 則推薦采取第一種方式來發(fā)送; 而若是大批量數(shù)據(jù)發(fā)送, 則可以在預(yù)先分配標(biāo)志位內(nèi)存區(qū)的情況下采用第二種方法。而隨后的實驗則證明, 這樣的選擇在實際上是正確的。 3 系統(tǒng)測試及結(jié)果分析
系統(tǒng)搭建完畢后, 對其的功能和性能進行了測試。測試方案為:
( 1) 數(shù)據(jù)采集計算機上在 LabVIEW RT環(huán)境下直接產(chǎn)生定量數(shù)據(jù), 通過寫入反射內(nèi)存發(fā)送, 計算出平均耗時, 以得到軟件的性能指標(biāo);
( 2) 數(shù)據(jù)采集計算機上在 LabVIEW RT環(huán)境下產(chǎn)生模擬數(shù)據(jù), 經(jīng)自我采回后再寫入反射內(nèi)存發(fā)送, 計算出平均耗時;
( 3) 利用 /銀河 - SI M 仿真工作站0 產(chǎn)生數(shù)據(jù), 由數(shù)據(jù)采集計算機節(jié)點采集數(shù)據(jù)并向數(shù)據(jù)接收計算機節(jié)點發(fā)送, 比較仿真工作站的模擬波形和接收計算機的數(shù)據(jù)波形, 以驗證系統(tǒng)功能。
測試結(jié)果表明:
( 1) 軟件發(fā)送 10000個 32位浮點數(shù)時, 通過第一種處理方式耗時 7 m s , 第二種處理方式耗時5m s , 性能達到了預(yù)期要求, 且耗時上的差異與理論上的推斷相符。 ( 2) 軟件完全可以在同時輸出 2路模擬信號的情況下,實現(xiàn)可控制的任意多路 ( 1~ 7)、任意通道 ( 0~ 8) 同一采樣率下的數(shù)據(jù)采集與傳送, 且準(zhǔn)確性較高、可靠性好。 ( 3) 整個系統(tǒng)可以實現(xiàn)數(shù)據(jù)較好的實時傳輸, 完成數(shù)據(jù)的實時處理。
4 結(jié)束語
本文實現(xiàn)的系統(tǒng)是實驗室開發(fā)的 / 智能集成仿真網(wǎng)絡(luò)接口系統(tǒng)0 的一部分, 整體系統(tǒng)可以實現(xiàn)反射內(nèi)存網(wǎng)絡(luò)和廣播內(nèi)存網(wǎng)絡(luò)的實時數(shù)據(jù)通訊 [9- 10]。而本子系統(tǒng)除能完成總體的任務(wù)外, 由于具有網(wǎng)絡(luò)結(jié)構(gòu)開放、工作模式簡潔高效的特點,更具有較大的發(fā)展空間和拓展應(yīng)用前景。在系統(tǒng)投入應(yīng)用后,在某制導(dǎo)武器的仿真試驗中工作良好, 在武器的開發(fā)定型中發(fā)揮了積極的作用。 參考文獻:
[ 1 ] VMIC( GE ) , VMIPCI-5565. s user m anual [ Z] . 2004 .
[ 2] VMIC ( GE ), VMIACC - 5595 2 Gbs Reflective Memory H ub Assembly [ Z] . 2002 .
[ 3 ] National Instrument , LabVIEW Real- TimeModule UserM anual [ Z] .2004.
[ 4 ] National Instrumen t ,Using Desktop PC s as RT Targets w it h the LabVIEW Real- T ime M odule f or ETS Targets [ Z] . 2004 .
[ 5 ] National Instrum ent , LabVIEW Real- Time Module Release and Up-grade Not es[ Z] . 2005 .
[ 6 ] Devel oping a LabVIEW Real- T i m e Driver for a PX I or CompactPCI Device [ R] . NI Developmen t Zone , 2004 .
[ 7 ] 楊樂平, 等. LabVIEW 高級程序設(shè)計 [M ] . 北京: 清華大學(xué)出版社, 2003.
[ 8 ] 侯國屏, 等. LabVIEW 7. 1編程與虛擬儀器設(shè)計 [M ] . 北京: 清華大學(xué)出版社, 2005.
[ 9 ] 劉志國. 激光導(dǎo)引頭半實物仿真系統(tǒng)關(guān)鍵技術(shù)研究 [ D] . 第二炮兵工程學(xué)院, 2002.
[ 10] 尹 勇. 半實物仿真實時性研究與實時通訊網(wǎng)絡(luò)開發(fā) [ D] . 中國空空導(dǎo)彈研究院, 2003.
|