基于NI VlSA的儀器驅(qū)動(dòng)設(shè)計(jì)
特別是在儀器控制方面,NIVISA提供了方便的圖形化編程節(jié)點(diǎn),可以讓用戶很快的根據(jù)自己所需儀器的特點(diǎn)編寫相應(yīng)的儀器驅(qū)動(dòng),然后在LabVIEW開發(fā)環(huán)境中調(diào)用這些驅(qū)動(dòng),編寫需要的應(yīng)用程序,從而方便快捷的完成計(jì)算機(jī)對儀器的控制以及計(jì)算機(jī)與儀器之間的通信。
VlSA簡介
計(jì)算機(jī)與儀器通信的實(shí)現(xiàn)是儀器發(fā)展史的一個(gè)里程碑??删幊痰乜刂苾x器給儀器控制領(lǐng)域到來了極大的改進(jìn)和靈活性,并且可以不再依賴于具體的人工操作。LabVIEW開發(fā)環(huán)境提供了強(qiáng)有力的編程支持,這就使得測試系統(tǒng)的主要任務(wù)轉(zhuǎn)移到計(jì)算機(jī)與儀器連接的接口和總線問題上。這就需要一個(gè)既可以表示接口特性又可以詳細(xì)表示儀器性能的軟件體系,而且這個(gè)軟件體系應(yīng)具有很好的通用性。VISA驅(qū)動(dòng)很好地滿足了這些需求。VISAAPI(Application Programming Interface,應(yīng)用編程接口)可以通用于基于Ethernet,GPIB,GPIB―VXI,VXI,PXI和串口等多種總線的測試系統(tǒng),使用者不必再研究各個(gè)接口總線特定的API。
作為儀器I/O函數(shù)庫,VISA編程與傳統(tǒng)的I/0軟件編程基本相同,主要是通過設(shè)備的端口讀寫操作和屬性控制,實(shí)現(xiàn)與儀器的命令與數(shù)據(jù)交換。VISA函數(shù)按照功能基本上可以分為基本I,0、格式化I/O、內(nèi)存I/O、資源管理、共享內(nèi)存管理、事件處理和屬性控制等幾大類。用戶可以在VISA中利用SCPI命令來控制基于消息基的儀器和帶有SCPI命令翻譯節(jié)點(diǎn)的基于寄存器級(jí)的儀器,對于不接收SCPI命令的儀器,也可以通過使用VISA的寄存器讀寫節(jié)點(diǎn)直接訪問儀器的底層寄存器的方法來實(shí)現(xiàn)對儀器的控制。VISA函數(shù)庫中的函數(shù)以VISA節(jié)點(diǎn)的形式出現(xiàn)。
VISA節(jié)點(diǎn)位于AllFunction>>Instrument I/O>>VISA目錄下, 基本的VISA節(jié)點(diǎn)有:VISA Write、VISARead、VISAClear、VISA Read STB.VISA Asserlt Trigger。
高級(jí)節(jié)點(diǎn)包含更多的函數(shù):VISA Open(打開一個(gè)儀器資源),VISA Close(關(guān)閉一個(gè)一個(gè)資源),VIsA Find Resource(尋找VISA資源),VIsA write FromFile,VISA Read to File,VISALock Analy,VISA Unlock(VISA解鎖),VISA Status I)escription(狀態(tài)描述),VISA Set.Timeout,Property Node(屬性節(jié)點(diǎn))以及Interface Specific(指定接口)子模板、Event Handling(事件處理)子模板、High Level RegisterAccess(高級(jí)寄存器讀寫)子模板、Low Level Register Access(低級(jí)寄存器讀寫)子模板等幾個(gè)部分。LabVIEw的幫助文檔給出了這些VISA節(jié)點(diǎn)的具體用法和詳細(xì)介紹。
1673G系列邏輯分析儀
1673G具有34通道的邏輯分析系統(tǒng),150MHz狀態(tài)速率,500MHz定時(shí)速率,64k標(biāo)準(zhǔn)采集內(nèi)存,使用選項(xiàng)001(選項(xiàng)001表示當(dāng)前使用的是系統(tǒng)級(jí)的命令)時(shí)256k內(nèi)存,使用選項(xiàng)002(選項(xiàng)002表示當(dāng)前使用的是選件邏輯分析儀)時(shí)2M內(nèi)存。選項(xiàng)003(選項(xiàng)003表示當(dāng)前使用的是選件示波器)示波器:2通道,500MHz,2GSa/s,32k內(nèi)存;選項(xiàng)004碼型發(fā)生器:32通道,100M矢量/秒,256k矢量深。1673G具有2GB硬驅(qū)和l-44 MB:DOS軟驅(qū);配有VGA分辨率的彩色平板顯示器,幫助用戶迅速找到信息;可以選擇鼠標(biāo)操作或前面板操作,使用簡便設(shè)計(jì)良好的用戶界面;支持可選的PC式鍵盤;支持ASCII數(shù)據(jù)和PCX/TIFF/EPS屏幕快照等文件格式,配有Centronics打印機(jī)端口,GPIB和RS-232編程能力;可以通過x-windows實(shí)現(xiàn)局域網(wǎng)遠(yuǎn)程操作,通過FTP/NFs實(shí)現(xiàn)數(shù)據(jù)傳送;提供23種預(yù)先定義的觸發(fā)功能,支持圖形表示和普通語言描述,簡便地設(shè)置強(qiáng)大的測量功能。
儀器驅(qū)動(dòng)是用來控制可編程儀器的一組函數(shù)的集合,包含對儀器的各種操作:配置,讀出、寫入和觸發(fā)等。儀器驅(qū)動(dòng)函數(shù)的工作流程是:讀取前面板上對儀器的控制命令一把命令格式化為儀器能夠解析的命令字符串→讀取儀器返回的響應(yīng)結(jié)果→根據(jù)讀取的結(jié)果更新前面板上的顯示。儀器驅(qū)動(dòng)已具有交互性,可編程性和通用性。儀器驅(qū)動(dòng)一般通用于某一類的儀器。對于某個(gè)儀器的特殊的性能,則另外編寫相應(yīng)的函數(shù)。
儀器驅(qū)動(dòng)包含兩大類的VIs,一類是組件VIs(componentVIs),一個(gè)函數(shù)控制儀器的一個(gè)特定的功能,另一類是高級(jí)的應(yīng)用函數(shù)VIs(Application vIs),一個(gè)函數(shù)由多個(gè)組件vIs組合而成,實(shí)現(xiàn)儀器的一個(gè)基本的測試或測量操作。其設(shè)計(jì)模型如圖1所示。
應(yīng)用函數(shù)VI位于儀器驅(qū)動(dòng)層次的最高級(jí),通過調(diào)用組件級(jí)的VI來實(shí)現(xiàn)一般的儀器配置和測試操作。用戶只調(diào)用這些高級(jí)應(yīng)用VIs就可以實(shí)現(xiàn)單一的面向測量的儀器接口。
組件vIs是較低級(jí)的儀器驅(qū)動(dòng)函數(shù)。組件VIs是模塊化的VIs,它們包含了儀器所有的配置和測量功能,共分為六類:初始化(Initialize),配置(Configuration),操作和狀態(tài)(Action/Status), 數(shù)據(jù)(data),功能(Utilitv)和結(jié)束(Close)。組件VIs與儀器的具體功能有關(guān)。在設(shè)計(jì)儀器驅(qū)動(dòng)時(shí),根據(jù)儀器的功能將相應(yīng)的指令歸類。
要對邏輯分析儀1673G編寫儀器驅(qū)動(dòng),首先熟練儀器的操作,研究其指令系統(tǒng),然后確定要實(shí)現(xiàn)的VIs。表l給出了選件003示波器要實(shí)現(xiàn)的vIs。
1673G的指令包括普通的SCPI命令,系統(tǒng)級(jí)的設(shè)置和配置命令,以及針對各個(gè)選件 (邏輯分析儀,示波器和碼型產(chǎn)生器)的命令。文中的驅(qū)動(dòng)主要針對邏輯分析儀和示波器進(jìn)行編寫,預(yù)達(dá)到可以對邏輯分析儀和示波器進(jìn)行儀器控制,并且可以得到邏輯分析儀和示波器的采集數(shù)據(jù),可以得到示波器的測量數(shù)據(jù)。
以實(shí)現(xiàn)初始化函數(shù)AGl673GInitialize.vi為例, 先用VISAOPEN節(jié)點(diǎn)打開一個(gè)儀器的Session,然后調(diào)用propertv nodtj識(shí)別儀器的接口類型,建立計(jì)算機(jī)與儀器之間的通信。然后調(diào)用VIsA write向儀器發(fā)出%IDN?命令,接著調(diào)用vIsA 0PEN讀取儀器的響應(yīng)結(jié)果,對讀取到的字符串進(jìn)行分析,與儀器的標(biāo)識(shí)符進(jìn)行比較,若結(jié)果正確就輸出dupVIsA Session供以后的函數(shù)節(jié)點(diǎn)調(diào)用。程序調(diào)試成功后把程序制作成sutVI以備調(diào)用。具體流程如圖2所示。
然后根據(jù)表1的命令分類,依據(jù)各種命令的功能,組合成各種(20mponent VIs和ApplicatioVIs功能,然后同上的方法調(diào)用VISA節(jié)點(diǎn)和LahvIEw對字符串和數(shù)據(jù)、數(shù)組之間轉(zhuǎn)換的節(jié)點(diǎn)(VI模板)編寫所有的驅(qū)動(dòng)VI,并且在最后形成一個(gè)VI樹。VI樹中應(yīng)包含儀器驅(qū)動(dòng)所有的V!,如圖3所示。
基于VISA儀器驅(qū)動(dòng)的設(shè)計(jì)基本步驟:熟悉儀器的操作,熟悉儀器的變成指令,確定要實(shí)現(xiàn)的VIs,形成儀器驅(qū)動(dòng)的設(shè)計(jì)框架;調(diào)用VISA節(jié)點(diǎn)實(shí)現(xiàn)組件VIs,并在組件VIs的基礎(chǔ)上實(shí)現(xiàn)需要的應(yīng)用VIs;把儀器驅(qū)動(dòng)中的VI制作成subVI以方便用戶調(diào)用;描述各個(gè)VI的功能和連接線用法。
文中的儀器驅(qū)動(dòng)成功實(shí)現(xiàn)了計(jì)算機(jī)對安捷倫1673G的控制,并且可以把儀器采集到的數(shù)據(jù)讀人計(jì)算機(jī)中,利用LabVIEW強(qiáng)大的分析功能進(jìn)行數(shù)據(jù)分析。而且文中使用的驅(qū)動(dòng)制作方法適用于其他支持的VISA的儀器。
tcp/ip相關(guān)文章:tcp/ip是什么
評論