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