網(wǎng)絡(luò)化虛擬測控系統(tǒng)的設(shè)計
摘要:為滿足計算機專業(yè)教學(xué)和測控儀器開發(fā)的需要,設(shè)計了基于網(wǎng)絡(luò)、虛擬儀器和SOPC技術(shù)的網(wǎng)絡(luò)化虛擬測控系統(tǒng)。該系統(tǒng)由PCI接口卡、基于NiosII軟核的SOPC數(shù)據(jù)采集系統(tǒng)組成,使用Labview技術(shù)構(gòu)建了C/S模式的遠程數(shù)據(jù)采集和管理體系結(jié)構(gòu),并基于Windows DDK與VC++語言開發(fā)了PCI接口驅(qū)動程序。實際應(yīng)用表明,該系統(tǒng)具有開放性、靈活性以及易用性等優(yōu)點,達到了預(yù)期目的。
關(guān)鍵詞:測控系統(tǒng);虛擬儀器;SOPC;PCI接口卡
隨著信息技術(shù)的發(fā)展,社會對測控儀器的需求不斷增加,因而對計算機軟硬件綜合設(shè)計和開發(fā)能力的要求也越來越高。然而,計算機專業(yè)普遍存在“重軟輕硬”的現(xiàn)象,學(xué)生綜合應(yīng)用計算機專業(yè)知識能力和測控產(chǎn)品開發(fā)能力較差,降低了學(xué)生的就業(yè)競爭力和發(fā)展?jié)摿Αa槍ι鲜鰡栴},基于提高計算機應(yīng)用系統(tǒng)綜合設(shè)計能力要求,充分利用自動測試技術(shù)、計算機技術(shù)、網(wǎng)絡(luò)通信技術(shù),結(jié)合科研和測控儀器開發(fā)的需要,適應(yīng)測控儀器向網(wǎng)絡(luò)化、虛擬化、集成化方向發(fā)展的趨勢,設(shè)計了網(wǎng)絡(luò)化虛擬測控系統(tǒng)。
網(wǎng)絡(luò)化虛擬測控系統(tǒng)基于Labview環(huán)境下開發(fā)的,從機為基于Nios II軟核微處理機系統(tǒng)的片上系統(tǒng)(SOPC),其主要功能為多通道模擬信號的采集、外部設(shè)備控制、與主機的通信、傳感器信號調(diào)理等;主機主要完成外部信號、數(shù)據(jù)處理與存儲、系統(tǒng)參數(shù)設(shè)置、顯示以及人機交互等。整個系統(tǒng)設(shè)計工作包括PCI接口卡設(shè)計及其驅(qū)動程序設(shè)計、虛擬儀器應(yīng)用軟件和SOPC系統(tǒng)定制、仿真及其從機軟件設(shè)計。該系統(tǒng)不僅提供二次開發(fā)接口,而且能夠配置、自動檢測外部設(shè)備變化,能夠應(yīng)用于科研、教學(xué)和實際測控,具有很強的靈活性、先進性和應(yīng)用價值。
1 網(wǎng)絡(luò)化虛擬測控系統(tǒng)的設(shè)計
1.1 測控系統(tǒng)的總體設(shè)計
借鑒虛擬儀器思想,把虛擬儀器技術(shù)引入測控系統(tǒng),組成以SOPC系統(tǒng)可配置數(shù)據(jù)采集模塊、PCI總線接口卡、虛擬儀器應(yīng)用軟件于一體的網(wǎng)絡(luò)化虛擬測控系統(tǒng)(如圖1所示)。系統(tǒng)的硬件設(shè)計包括PCI接口卡設(shè)計、基于NIOS Il軟核的SOPC硬件系統(tǒng)的定制;軟件系統(tǒng)設(shè)計包括PCI接口卡驅(qū)動程序、SOPC軟件以及虛擬儀器應(yīng)用軟件、管理軟件的設(shè)計。虛擬儀器應(yīng)用軟件主要完成數(shù)字信號處理、分析、顯示以及存儲,服務(wù)器端軟件,多通道數(shù)據(jù)采集參數(shù)與工作方式的設(shè)置;管理軟件提供上傳、下載以及與儀器的無縫連接。為降低系統(tǒng)的開發(fā)難度、提高系統(tǒng)的可靠性和使用性,系統(tǒng)軟件基于虛擬儀器軟件Labview與Matlab混合編程方法,充分利用了Lalbview軟件的強大數(shù)據(jù)采集、分析與表達、圖形表示能力以及Matlab語言的豐富的工具箱和強大的計算能力,簡化了儀器軟件的編程,縮短了開發(fā)時間。主機系統(tǒng)通過PCI接口卡與SOPC系統(tǒng)進行的信息交換,SOPC系統(tǒng)可以獨立工作以及外部設(shè)備進行通信,有效降低分布式測控系統(tǒng)的成本。
[!--empirenews.page--]
1.2 硬件系統(tǒng)設(shè)計
虛擬測控系統(tǒng)硬件系統(tǒng)包括PCI接口卡和基于Nios II的嵌入式SOPC系統(tǒng)。PCI接口卡采用PLX公司生產(chǎn)的PCI9054接口芯片,采用PCI9054局部總線工作模式C,該模式時序控制比較簡單,非復(fù)用32位地址/數(shù)據(jù)總線,PCI總線通過PCI9054內(nèi)部FIFO實現(xiàn)對局部總線進行單周期的I/O讀寫操作,支持DMA操作。為提高計算機與SOPC系統(tǒng)之間的數(shù)據(jù)傳輸效率,借鑒文獻的設(shè)計方法,PCI接口卡使用2片雙向FIFO存儲器IDT7 204(4kx9)實現(xiàn)支持DMA操作,分別用于PCI總線讀寫數(shù)據(jù),其讀寫邏輯信號FPGA實現(xiàn),DMA傳輸時序如圖2所示,其對應(yīng)的FPGA讀寫邏輯狀態(tài)圖可表示為圖3所示。
相對于PCI9054,HOLD、ADS#、BLAST、LWR#、LA[31..2]為輸出信號,READY#、LHOLDA為輸入信號,LD[31..0]是雙向信號。由于本實驗儀器數(shù)據(jù)傳輸寬度為8位,局部地址線最低2位LA0和LA1分別由BE0和BE1信號提供,數(shù)據(jù)對齊方式采用大端模式(由BIGEND#引腳及寄存器決定的)。對Local端為I/O類型的引腳,需要根據(jù)實際情況和引腳極性上拉或下拉電阻,如ADS#、HOLD、局部地址信號等。圖3中DMA方式讀數(shù)據(jù)邏輯狀態(tài)圖轉(zhuǎn)換描述如下:當(dāng)檢測到HOLD=1時,在下個時鐘周期賦值HOLDA=1,轉(zhuǎn)到狀態(tài)S1;ADS#下降沿到達時,從LA[31..2]及BE1、BE0讀取地址,轉(zhuǎn)到狀態(tài)S2;如果LWR#=1(讀數(shù)據(jù))且BLAST=1、READY#=0,轉(zhuǎn)到狀態(tài)S3;在下一個時鐘周期上升沿從本地數(shù)據(jù)總線LD[0..7]把數(shù)據(jù)讀入到PC19054內(nèi)部,循環(huán)讀取數(shù)據(jù)直至BLAST信號下降沿出現(xiàn),轉(zhuǎn)到S4;如果HOLD=1、HOLDA=1,則轉(zhuǎn)到S1,否則轉(zhuǎn)到S0。
SOPC系統(tǒng)使用CYCLONEII系列可編程邏輯器件EP2C5F256C8,通過SOPC Builder定制和仿真NioslI微處理器及其外圍系統(tǒng),包括軟核CPU、并行輸入輸出(PIO)、多通道A/D及D/A轉(zhuǎn)換控制邏輯、UART串行接口、網(wǎng)絡(luò)控制邏輯、計數(shù)器/定時器、雙口FIFO控制器、SRAM控制器以及FLAS H控制器等外圍設(shè)備組成等。其中,PIO用于SOPC系統(tǒng)與外部設(shè)備的數(shù)字量輸入輸出;網(wǎng)絡(luò)控制邏輯與以太網(wǎng)接口芯片LAN91C111實現(xiàn)SO PC系統(tǒng)與外部設(shè)備之間的網(wǎng)絡(luò)通信。LAN91C111是SMSC公司生產(chǎn)的10M/100M以太網(wǎng)接口控制芯片,它通過8、16、32位總線與嵌入系統(tǒng)連接,是理想的NIOSII微處理系統(tǒng)以太網(wǎng)解決方案。上述接口控制邏輯均由SOPC Builder工具選擇相應(yīng)的IP核及其相應(yīng)的VHDL,通過編譯整個系統(tǒng)建立一個完整的嵌入式系統(tǒng)。SOPC系統(tǒng)不僅接收主機命令以及數(shù)據(jù)傳輸,而且可以與其他外部設(shè)備進行通信。
為保證測控系統(tǒng)的可靠性和通用性,電路設(shè)計采用以下關(guān)鍵技術(shù):
1)多通道模擬信號采集與控制該模塊由輸入信號差模轉(zhuǎn)換電路、8選1模擬開關(guān)MPC508A、AD公司的集成程控信號放大器AD620、跟隨器、1片采樣速率高達2.2 MHz、14位高速模數(shù)轉(zhuǎn)換器MAX1201、緩沖驅(qū)動電路以及光電耦合隔離器TIL300電路組成。其工作過程為,多路輸入模擬量(0~5V)首先由低噪聲、寬頻帶運算放大器MAX4108組成差分電路把傳感器信號轉(zhuǎn)化為差分信號來消除電路干擾,并由模擬選擇開關(guān)ADG526A選通一路模擬信號,然后經(jīng)過程控信號放大器AD620放大同時使輸入信號由差分轉(zhuǎn)化為單端信號進入A/D轉(zhuǎn)換器MAX1201。MAX1201輸出的數(shù)字信號經(jīng)過光電耦合隔離器進入FIFO緩沖區(qū),緩沖區(qū)滿時通過向單片機或PC機發(fā)出中斷請求信號實現(xiàn)數(shù)據(jù)的讀取。
程控信號放大器AD620的增益放大倍數(shù)有×1、×2、×10、×100、×1 000五檔,由FPGA中的信號通道控制邏輯控制AD620的放大倍數(shù),提高對傳感器信號的適應(yīng)性。模數(shù)轉(zhuǎn)換器MAX1201內(nèi)部有數(shù)字誤差自校正和自校正功能,具有良好的信噪比和抗諧波失真特性。差分轉(zhuǎn)換電路不僅能夠提高抗干擾性能,而且還可以增大信號的量程。采用A/D轉(zhuǎn)換器MAX1201的目的是,提高信號的轉(zhuǎn)換精度,并且接口電路簡單、便于與FIFO連接。MAX1201的工作方式分為程序啟動、外部觸發(fā)信號啟動。A/D轉(zhuǎn)換速率由SOPC系統(tǒng)定時器產(chǎn)生的波形頻率控制,根據(jù)A/D轉(zhuǎn)換結(jié)束標(biāo)志由FPGA中的采樣控制邏輯自動完成采樣數(shù)據(jù)的存儲。[!--empirenews.page--]
2)電路隔離實驗系統(tǒng)由模擬數(shù)字混合電路組成,存在大量的干擾。比如前置電路部分存在共模干擾和差模干擾,數(shù)字系統(tǒng)的高頻干擾容易進入模擬部分,外設(shè)信號還常常會受到電源波動、強脈沖等干擾。上述干擾不僅會影響模擬信號采集的精度,嚴(yán)重時會影響電路的穩(wěn)定性乃至計算機的工作。因此,實驗系統(tǒng)需要對所有的輸入、輸出信號均進行了隔離。
本文基于線性光耦TIL300模擬量輸入輸出實現(xiàn)隔離(如圖4a),其中,U1A、U2A為運算放大器LF356,共同組成偏置電路;U2補償U1的傳輸特性與溫度漂移,保證U1的線性度;U3為輸入差分運放電路,提高輸入信號的抗干擾能力;模擬量隔離電路可以有效地提高脈沖量、階躍信號由光電耦HCPL22631隔離;數(shù)字量采用TTL113光電耦合器隔離,也可采用脈沖變壓器隔離。需要指出的是,光電耦合器輸出驅(qū)動能力非常有限,必須增加負載驅(qū)動電路,數(shù)字量除數(shù)隔離電路需要驅(qū)動電路。除了對所有的輸入輸出信號隔離外,實驗硬件系統(tǒng)還把模擬電路地與數(shù)字電路分開布線,并使用如圖4(b)所示的電路隔離模擬與數(shù)字地和電源。上述措施不僅能夠防止數(shù)字系統(tǒng)的高頻干擾進入模擬電路部分,而且阻斷了來自前置電路部分的共模干擾和差模干擾。
3)電壓轉(zhuǎn)換由于SOPC系統(tǒng)和PCI9054使用計算機提供的3.3 V電源,而RS232輸出電平為-10~+10 V,且不少器件需要5 V電源。電路中使用電源轉(zhuǎn)換器LTC1872把輸入3.3 V轉(zhuǎn)換為5 V輸出電源(圖5),使用MAX232實現(xiàn)RS232與5 V電壓之間的轉(zhuǎn)換。
[!--empirenews.page--]
1.3 網(wǎng)絡(luò)化虛擬謝控系統(tǒng)軟件設(shè)計
軟件系統(tǒng)是網(wǎng)絡(luò)化虛擬測控系統(tǒng)的核心,系統(tǒng)軟件主要由虛擬儀器軟件、PCI接口卡驅(qū)動程序以及SOPC軟件組成。虛擬儀器軟件利用Lab Windows/CVI自帶的強大測控工具以及豐富的功能面板和庫函數(shù),采用事件驅(qū)動、交互式與回調(diào)函數(shù)編程技術(shù),設(shè)計開發(fā)了信號采集與轉(zhuǎn)換、數(shù)字信號處理與分析、數(shù)據(jù)存儲與顯示、外部設(shè)備配置等模塊,使用到的技術(shù)主要有:
1)Matlab與Labview混合編程Matla5語言已經(jīng)成為科研人員有力的仿真分析工具,幾乎滲透到各個學(xué)科。雖然Matlab擁有很強的數(shù)據(jù)分析處理以及復(fù)雜數(shù)值計算能力,但是其在界面開發(fā)、硬件連接控制及網(wǎng)絡(luò)通信等方面都不如Labview。將Matlab和Labview結(jié)合是提高測控儀器精度、可靠性、擴展性以及開發(fā)效率的有效途徑。
Matlab與Labview混合編程方法有兩種:①直接調(diào)用Labview內(nèi)建的600多條Matlab函數(shù);②通過Matlab(Ver6.5)ActiveX接口調(diào)用運行Matlab函數(shù)、與Matlab數(shù)據(jù)交換以及控制Matlab窗口等命令。其過程為;a.引用自動化對象:在Labview的Controls>>ActiveX>>Automation Refnum模板中選擇自動化引用(Automation Refnum)控制量,將其放置在前面板上,從對象列表中選擇Matlab應(yīng)用庫。這樣Matlab的引用就添加到程序中。b.訪問Matlab自動化服務(wù)器:Labview在其Function>L>Communication>>ActiveX模板中提供了一組與AetiveX操作相關(guān)的VI,其中Automation Open.vi打開引用,啟動Matlab自動化服務(wù)器,并將引用傳遞給其他節(jié)點,如屬性節(jié)點(Property Node)、調(diào)用方法節(jié)點(In voke Node)。③使用Matlab Script節(jié)點。Labview使用ActiveX技術(shù)執(zhí)行MatlabScript節(jié)點,啟動Matlab進程。這樣可以在Labview應(yīng)用程序中使用執(zhí)行Matlab命令、使用各種工具箱。圖6為Labview調(diào)用Matlab語言中6階巴特沃斯(Butterworth)濾波器對正弦函數(shù)的濾波實驗結(jié)果。
2)基于LabSQL的數(shù)據(jù)庫訪問 虛擬儀器應(yīng)用程序需要對采集數(shù)據(jù)以及數(shù)據(jù)分析結(jié)果進行存儲和訪問,Labview提供了類似SQL的數(shù)據(jù)庫訪問方法。用戶首先在ODBC中指定DSN(數(shù)據(jù)源名)和ODBC驅(qū)動程序,由LabSQL ConnectionVIs通過ODBC建立LabSQL與數(shù)據(jù)庫連接。然后利用LabSQL Command VIs完成ADO操作以及Recordset VIs對數(shù)據(jù)庫記錄操作,實現(xiàn)應(yīng)用程序與數(shù)據(jù)庫之間的數(shù)據(jù)交互傳遞。
3)基于DataSocket建立客戶機/服務(wù)器測控系統(tǒng) 對于網(wǎng)絡(luò)化測控系統(tǒng),由于把各節(jié)點數(shù)據(jù)匯總到處理主機,設(shè)計上采用DataSocket技術(shù)建立客服務(wù)器/客戶端(C/S)通信模式。主機工作于服務(wù)器模式,負責(zé)相應(yīng)客戶端的請求以及采集、存儲和處理數(shù)據(jù),客戶端數(shù)據(jù)點計算機工作于Client模式,實現(xiàn)數(shù)據(jù)傳送。利用DataSocket發(fā)布數(shù)據(jù)需要3個要素:服務(wù)器(DataSocket Server),負責(zé)把數(shù)據(jù)寫到服務(wù)器的發(fā)布器(Publisher),客戶機從服務(wù)器讀取數(shù)據(jù)的訂閱器(Subscriber)。其工作過程為:①客戶端和服務(wù)器端分別運行DataSocketServer;②建立客戶端與服務(wù)器端DataSocket的連接;③客戶端接收和顯示測量數(shù)據(jù):客戶只需通過DataSocket Server發(fā)送請求即可實現(xiàn)數(shù)據(jù)的接收,這樣客戶機通過控制服務(wù)器端軟件實現(xiàn)遠程測控。
4)WDM驅(qū)動程序設(shè)計 由于該系統(tǒng)基于PCI接口卡,因此需要開發(fā)windows環(huán)境下的PCI接口卡驅(qū)動程序。綜合考慮驅(qū)動程序的效率和靈活性,系統(tǒng)選用windows DDK與VC++語言開發(fā)PCI接口卡驅(qū)動程序。驅(qū)動程序主要包括初始化模塊、內(nèi)存讀寫模塊、I/O操作模塊、中斷模塊以及WDM與應(yīng)用程序的通信模塊,詳細設(shè)計可以參考文獻,在此不再詳述。
2 結(jié)束語
本文設(shè)計的網(wǎng)絡(luò)化虛擬測控系統(tǒng)具有硬件模塊化、網(wǎng)絡(luò)化、開放性以及操作方便等特點,適應(yīng)了當(dāng)前測控儀器向網(wǎng)絡(luò)化和虛擬化方向發(fā)展的趨勢,因而具有較強的應(yīng)用性和擴充性。
文中介紹了系統(tǒng)的設(shè)計與相關(guān)模塊的實現(xiàn),并簡要說明了關(guān)鍵軟件模塊的設(shè)計方法。需要指出的是,本文設(shè)計的網(wǎng)絡(luò)化虛擬測控系統(tǒng)具有教學(xué)和科研雙重價值,對本系統(tǒng)增加新的硬件模塊或者修改虛擬儀器應(yīng)用軟件可以完成不同的測試任務(wù)和控制任務(wù)。今后還需要在硬件模塊標(biāo)準(zhǔn)化,硬件模塊的故障監(jiān)測與故障修復(fù),物聯(lián)網(wǎng)在虛擬測控儀器上應(yīng)用,分布式網(wǎng)絡(luò)化測控系統(tǒng)的拓撲結(jié)構(gòu)等方面進行研究。