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