資源描述:
《用labview基于nivisa控制usb接口》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、基于NI-VISA與LabVIEW的USB接口應(yīng)用設(shè)計(jì)2008-01-15????嵌入式在線????收藏
2、打印??????通用串行總線(USB)作為一種靈活的高速總線接口技術(shù),非常適合作為主機(jī)和外設(shè)之問的通信接口,但其結(jié)構(gòu)復(fù)雜。??????本文以一個(gè)采集多點(diǎn)溫度的實(shí)際系統(tǒng)為倒,闡述USB接口應(yīng)用系統(tǒng)的總體設(shè)計(jì)思想及其層次結(jié)構(gòu),在實(shí)現(xiàn)方法上避開傳統(tǒng)的Windows編程技術(shù),另辟蹊徑地給出使用NI-VISA來驅(qū)動(dòng)USB接口以應(yīng)用LabVIEW進(jìn)行應(yīng)用編程的方法。???????USB(UniversalSerialBus)接口是近年來應(yīng)用
3、在PC領(lǐng)域的新型接口技術(shù)。它基于單一的總線接口技術(shù)來滿足多種應(yīng)用領(lǐng)域的需求;它的即插即用、支持熱插拔、易于擴(kuò)展等特性極大地方便了用戶的使用,已逐漸成為現(xiàn)代數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì)。??????????傳統(tǒng)的開發(fā)USB應(yīng)用系統(tǒng)的步驟是,先用WindowsDDK(設(shè)備驅(qū)動(dòng)程序開發(fā)包)或第三方開發(fā)工具(如DriverStudio)開發(fā)USB驅(qū)動(dòng)程序,然后用VisualC++編寫DLL(動(dòng)態(tài)連接庫),最后再調(diào)有DLL來開發(fā)應(yīng)用程序。顯然,這對(duì)Windows編程不熟悉的人來說有一定的難度,何況USB驅(qū)動(dòng)程序的開發(fā)難度很大。本文介紹一種簡(jiǎn)單、快速開發(fā)
4、USB接口應(yīng)用系統(tǒng)的方法。它直接在LabVIEW環(huán)境下通過NI-VISA開發(fā)能驅(qū)動(dòng)用戶USB系統(tǒng)的應(yīng)用程序,完全避開了以前開發(fā)USB驅(qū)動(dòng)程序的復(fù)雜性,大大縮短了開發(fā)周期。??????1NI-VISA簡(jiǎn)介?????????NI-VISA(VirtualInstrumentSoftwareArchitec-ture,以下簡(jiǎn)稱為“VISA”)是美國(guó)國(guó)家儀器NI(NationalInstrument)公司開發(fā)的一種用來與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口。VISA總線I/O軟件是一個(gè)綜合軟件包,不受平臺(tái)、總線和環(huán)境的限制,可用來對(duì)USB
5、、GPIB、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進(jìn)行配置、編程和調(diào)試。VISA是虛擬儀器系統(tǒng)I/O接口軟件?;谧缘紫蛏辖Y(jié)構(gòu)模型的VISA創(chuàng)造了一個(gè)統(tǒng)一形式的I/O控制函數(shù)集。一方面,對(duì)初學(xué)者或是簡(jiǎn)單任務(wù)的設(shè)計(jì)者來說,VISA提供了簡(jiǎn)單易用的控制函數(shù)集,在應(yīng)用形式上相當(dāng)簡(jiǎn)單;另一方面,對(duì)復(fù)雜系統(tǒng)的組建者來說,VISA提供了非常強(qiáng)大的儀器控制功能與資源管理。?????2LabVIEW及其調(diào)用VISA的條件??????????LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench)是N
6、I公司開發(fā)的一種基于圖形程序的編程語言。用戶利用創(chuàng)建和調(diào)用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,而且程序編制簡(jiǎn)單、直觀。一個(gè)LabVIEW程序分為3部分:前面板、框圖程序和圖標(biāo)/接線端口。前面板用于模擬真實(shí)儀器的前面板;框圖程序是利用圖形語言對(duì)前面板上的控件對(duì)象(分為控制量和指示量?jī)煞N)進(jìn)行控制;圖標(biāo)/接線端口用于把LabVIEW程序定義成一一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程。?????????當(dāng)進(jìn)行USB通信時(shí),VISA提供了兩類函數(shù)供Lab-VIEW調(diào)用,USBINSTR設(shè)備與USBRAW設(shè)備。USBINSTR設(shè)備是符合USBT
7、MC協(xié)議的USB設(shè)備,可以通過使用USBINSTR類函數(shù)控制,通信時(shí)無需配置NI-VISA;而USBRAW設(shè)備是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設(shè)備,通信時(shí)要配置NI-VISA。??????(1)配置NI-VISA的步驟???????????①使用DriverDevelopineIntWizard(驅(qū)動(dòng)程序開發(fā)向?qū)?創(chuàng)建INF文檔;???????②安裝INF文檔,并安裝使用INF文檔的USB設(shè)備;???????③使用NI-VISAInteractiveControl(NI-VISA互動(dòng)控制工具)對(duì)設(shè)備進(jìn)行測(cè)試,以
8、證實(shí)USB設(shè)備已正確安裝,并獲得USB設(shè)備的各屬性值。詳細(xì)過程可參考NI官方網(wǎng)站上免費(fèi)提供的文檔《使用NI-VISA控制USB設(shè)備》。??????(2)與NI-VISA相配合的LabVIEW橫板中VI子節(jié)點(diǎn)?????????ViOpen,打開并指定VISAresourcename的設(shè)備的連接。?????ViProperty,VISA設(shè)備的屬性子節(jié)點(diǎn),可以設(shè)置端點(diǎn)或傳輸方式。?????ViWnte,向VISAresourcename指定的設(shè)備寫入數(shù)據(jù)。?????ViRead,從VISAresourcename指定的設(shè)備讀出數(shù)據(jù)。???
9、??ViClose,結(jié)束設(shè)備讀寫并關(guān)閉與指定設(shè)備的連接。??????(3)USBRAW設(shè)備讀寫的操作次序????????USBRAW設(shè)備的讀寫次序如圖l所示。??????下面以一個(gè)USB接口的溫度采集系統(tǒng)為例,說明基于NI-VISA驅(qū)