<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > LabVIEW與USB的直接數(shù)據(jù)通信

          LabVIEW與USB的直接數(shù)據(jù)通信

          作者: 時(shí)間:2011-05-26 來源:網(wǎng)絡(luò) 收藏

          引 言

          本文引用地址:http://www.ex-cimer.com/article/156262.htm

          是一種基于圖形程序的虛擬儀器編程語言,在測(cè)試與測(cè)量、數(shù)據(jù)采集、儀器控制、數(shù)字信號(hào)分析、工廠自動(dòng)化等領(lǐng)域獲得了廣泛的應(yīng)用。程序采用方框圖編程,具有友好的人機(jī)界面,在前面板中有用于模擬真實(shí)儀器面板的控件可供調(diào)用,可用于設(shè)置輸入數(shù)值、觀察輸出值以及實(shí)現(xiàn)圖表、文本等顯示。實(shí)現(xiàn)對(duì)數(shù)據(jù)的采集和處理,傳統(tǒng)的是采用數(shù)據(jù)采集卡,但是這些數(shù)據(jù)采集設(shè)備存在安裝不便、價(jià)格昂貴、受計(jì)算機(jī)插槽數(shù)量、地址、中斷資源的限制,可擴(kuò)展性差,同時(shí)在一些電磁干擾性強(qiáng)的測(cè)試現(xiàn)場(chǎng),可能無法專門對(duì)其做電磁屏蔽,從而導(dǎo)致采集的數(shù)據(jù)失真。在LabVIEW下使用總線,可以同樣實(shí)現(xiàn)數(shù)據(jù)采集,并且彌補(bǔ)了采集卡的不足。

          傳統(tǒng)的用LabVIEW讀寫設(shè)備的方法是:先用VC++或Delphi編寫動(dòng)態(tài)鏈接庫DLL文件,在DLL中通過調(diào)用WIN API函數(shù)讀寫設(shè)備的數(shù)據(jù),并存在緩沖區(qū)中,在LabVIEW中通過對(duì)DLL文件的調(diào)用提取緩沖區(qū)中的數(shù)據(jù)。介紹了在LabVIEW下,通過調(diào)用NI-VISA子程序控件,實(shí)現(xiàn)與USB設(shè)備的通信,避免了二次編程的麻煩和數(shù)據(jù)的中轉(zhuǎn)。

          2 USB底層驅(qū)動(dòng)程序設(shè)計(jì)

          USB底層驅(qū)動(dòng)開發(fā)工具有Windows DDK和第三方開發(fā)工具,如Driver studio和 Win driver等,但是使用這些工具開發(fā)驅(qū)動(dòng)難度大、效率底。在這里,介紹如何借用LabVIEW的NI-VISA子程序控件作為USB的底層驅(qū)動(dòng)。

          VISA(Virtual Instrument Software Architecture,ni.corn/visa)是一個(gè)用來與各種儀器總線進(jìn)行通訊的高級(jí)應(yīng)用編程接口(API)。他不受平臺(tái)、總線和環(huán)境的限制。通用串行總線(USB)是一個(gè)基于信息的通訊總線。這表示PC機(jī)與USB設(shè)備通過發(fā)送指令和數(shù)據(jù)進(jìn)行通訊,而這些指令和數(shù)據(jù)是通過總線以文本或二進(jìn)制數(shù)據(jù)的形式發(fā)送的。每個(gè)USB設(shè)備都有各自的指令集。可以使用NI-VISA的讀寫功能向儀器發(fā)送這些指令,并讀取儀器的反饋。

          NI-VISA從3.0版開始支持USB通訊,他有2種VISA類函數(shù)(Resource Class),可以控制2類USB設(shè)備:USB INSTR設(shè)備與USB RAW設(shè)備。符合USB測(cè)試和測(cè)量類(USBTMC)協(xié)議的USB設(shè)備可以通過使用USB INSTR類函數(shù)控制,他們使用488.2標(biāo)準(zhǔn)通訊。對(duì)于這些設(shè)備,只需以與GPIB儀器通訊同樣的方式,使用VISA Open,VISA Close,VISA Read和VISAWrite功能。USBTMC設(shè)備符合VISA USB INSTR類函數(shù)能夠理解的協(xié)議。USBTMC設(shè)備相對(duì)來說控制較為復(fù)雜,因?yàn)槊總€(gè)設(shè)備可以使用各自的通信協(xié)議,而這些通信協(xié)議一般都是由設(shè)備的生產(chǎn)廠家自定的。

          為了使用NI-VISA,必須先讓W(xué)indows將NI-VI-SA作為設(shè)備的缺省驅(qū)動(dòng)程序使用。在Windows環(huán)境中,可以通過INF文檔做到這一點(diǎn)。INF文件是系統(tǒng)硬件設(shè)備配置文件,USB驅(qū)動(dòng)程序通過INF文件中的PID(產(chǎn)品識(shí)別號(hào))和VID(廠商識(shí)別號(hào))識(shí)別USB設(shè)備。NI-VISA 3.0中包含的VISA Driver Development Wizard(DDW)可以為USB設(shè)備創(chuàng)建一個(gè)INF文檔。下面簡(jiǎn)單介紹創(chuàng)建INF文檔的過程:

          (1)在安裝了NI-VISA后,啟動(dòng)VISA Driver Devel-opment Wizard程序,出現(xiàn)了為PXI/PCI或USB設(shè)備創(chuàng)建一個(gè)INF文檔的向?qū)?,選擇USB設(shè)備,點(diǎn)NEXT,出現(xiàn)VI-SA DDW基本設(shè)備信息窗口。

          (2)進(jìn)行這一步時(shí),需要清楚USB的PID和VID。這些數(shù)字可以在安裝USB設(shè)備的時(shí)候?qū)ζ溥M(jìn)行確認(rèn),并在想要與設(shè)備通訊的時(shí)候,尋找他的地址。依據(jù)USB的規(guī)格,兩個(gè)數(shù)字都是16位16進(jìn)制數(shù)字,并應(yīng)該由設(shè)備制造商提供。例如在后面介紹基于USB的虛擬示波器用到USB接口芯片PDIUSBD12的PID和VID分別是0x0471和0x0666;這一步設(shè)置完成后,點(diǎn)擊NEXT,進(jìn)行最后一步的設(shè)置。

          (3)USB Instrument Prefix(USB儀器前綴)只是一個(gè)描述符,可以用他來識(shí)別本設(shè)備所用的相關(guān)文檔。在USB Instrument Prefix中輸入相應(yīng)信息,并在output file directory中選擇存放這些文檔的目錄,然后點(diǎn)擊Finish。INF文檔就被建好并保存至指定的位置。

          這時(shí)候,只要復(fù)制生成的INF文件夾到系統(tǒng)盤Win-dows文件夾下INF文件夾,點(diǎn)擊右鍵,安裝即可。這時(shí),插上USB設(shè)備,Windows系統(tǒng)就能探測(cè)到,并根據(jù)INF硬件配置文件選擇NI-VISA作為底層驅(qū)動(dòng)程序。在Lab-VIEW中,只需調(diào)用NI-VISA的相關(guān)控件,即可實(shí)現(xiàn)對(duì)USB設(shè)備的讀寫操作。

          3 LabVIEW驅(qū)動(dòng)程序編寫

          強(qiáng)大、靈活的儀器控制功能是LabVIEW區(qū)別于其他編程語言的主要特點(diǎn)。LabVIEW不僅提供數(shù)百種不同接口測(cè)試儀器的驅(qū)動(dòng)程序,而且還支持VISA,SCPI和IVI等最新的程控軟件標(biāo)準(zhǔn),為用戶設(shè)計(jì)開發(fā)先進(jìn)的測(cè)試系統(tǒng)提供了軟件支持。VISA是用于儀器編程的標(biāo)準(zhǔn)I/O函數(shù)庫及相關(guān)規(guī)范的總稱,一般稱之為VISA庫。VISA庫駐留于計(jì)算機(jī)系統(tǒng)中,是計(jì)算機(jī)與儀器之間的軟件層連接,用以實(shí)現(xiàn)對(duì)儀器的程控。對(duì)軟件開發(fā)者來說,他是一個(gè)可調(diào)用的操作函數(shù)集,他本身不提供儀器編程能力,只是一個(gè)高層API(應(yīng)用程序接口),通過調(diào)用底層的驅(qū)動(dòng)程序來控制儀器設(shè)備。

          NI-VISA支持3種類型的USB管道:控制、批量和中斷。NI-VISA探測(cè)到USB儀器時(shí),他會(huì)對(duì)儀器進(jìn)行自動(dòng)掃描,尋找各種類型的最低可用端點(diǎn)。如使用NI-VI-SA中的VISA USB Control In和VISA USB Control Out來通過控制型管道傳輸數(shù)據(jù),使用VISA Read和VISAWrite來通過批量型管道傳輸數(shù)據(jù)。

          作為儀器I/O函數(shù)庫,VISA編程與傳統(tǒng)的I/O軟件編程基本相同,主要通過設(shè)備I/O端口的讀寫操作和屬性控制,實(shí)現(xiàn)與儀器的命令與數(shù)據(jù)交換。LabVIEW中所有的VISA節(jié)點(diǎn)均在Function模板→All Functions子模板→Instrument I/O子模板→VISA子模板中。在這里,只用到了VISA Open,VISA Close,VISA Write和VISARead四個(gè)節(jié)點(diǎn)即可實(shí)現(xiàn)和USB設(shè)備的雙向通信。當(dāng)完成對(duì)USB設(shè)備的INF硬件配置后,就可以用VISA Open節(jié)點(diǎn)打開該資源,建立計(jì)算機(jī)與這些VISA資源的通信管道;與VISA Open節(jié)點(diǎn)相反,VISA Close節(jié)點(diǎn)用于將打開的VISA資源關(guān)閉;VISA Write節(jié)點(diǎn)的功能是將writebuffer端口輸入字符串?dāng)?shù)據(jù)發(fā)送到儀器中;VISA Read節(jié)點(diǎn)的功能是從儀器中讀出數(shù)據(jù);

          數(shù)字通信相關(guān)文章:數(shù)字通信原理


          通信相關(guān)文章:通信原理



          上一頁 1 2 下一頁

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();