精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

您好,歡迎來電子發(fā)燒友網! ,新用戶?[免費注冊]

您的位置:電子發(fā)燒友網>電子百科>通信技術>數據通信>

LabVIEW與USB的數據通信方案實現

2011年05月30日 11:33 21IC 作者:秩名 用戶評論(0

點擊學習>>《龍哥手把手教你學LabVIEW視覺設計》視頻教程

  1 引言

  LabVIEW是一種基于圖形程序的虛擬儀器編程語言,在測試與測量、數據采集、儀器控制、數字信號分析、工廠自動化等領域獲得了廣泛的應用。LabVIEW程序采用方框圖編程,具有友好的人機界面,在前面板中有用于模擬真實儀器面板的控件可供調用,可用于設置輸入數值、觀察輸出值以及實現圖表、文本等顯示。傳統(tǒng)的用LabVIEW讀寫USB設備的方法是:先用VC或Delphi編寫動態(tài)鏈接庫DLL文件,在DLL中通過調用WIN API函數讀寫USB設備的數據,并存在緩沖區(qū)中,在LabVIEW中通過對DLL文件的調用提取緩沖區(qū)中的數據。介紹了在LabVIEW下,通過調用NI-VISA子程序控件,實現與USB設備的直接通信,避免了二次編程的麻煩和數據的中轉。

  2 USB底層驅動程序設計

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

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

  NI-VISA從3.0版開始支持USB通訊,他有2種VISA類函數(Resource Class),可以控制2類USB設備:USB INSTR設備與USB RAW設備。符合USB測試和測量類(USBTMC)協(xié)議的USB設備可以通過使用USB INSTR類函數控制,他們使用488.2標準通訊。對于這些設備,只需以與GPIB儀器通訊同樣的方式,使用"VISA Open","VISA Close","VISA Read"和"VISAWrite"功能。USBTMC設備符合VISA USB INSTR類函數能夠理解的協(xié)議。USBTMC設備相對來說控制較為復雜,因為每個設備可以使用各自的通信協(xié)議,而這些通信協(xié)議一般都是由設備的生產廠家自定的。

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

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

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

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

  這時候,只要復制生成的INF文件夾到系統(tǒng)盤Win-dows文件夾下INF文件夾,點擊右鍵,安裝即可。這時,插上USB設備,Windows系統(tǒng)就能探測到,并根據INF硬件配置文件選擇NI-VISA作為底層驅動程序。在Lab-VIEW中,只需調用NI-VISA的相關控件,即可實現對USB設備的讀寫操作。

  3 LabVIEW驅動程序編寫

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

  NI-VISA支持3種類型的USB管道:控制、批量和中斷。NI-VISA探測到USB儀器時,他會對儀器進行自動掃描,尋找各種類型的最低可用端點。如使用NI-VI-SA中的VISA USB Control In和VISA USB Control Out來通過控制型管道傳輸數據,使用VISA Read和VISAWrite來通過批量型管道傳輸數據。

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

  介紹完上面的4個節(jié)點,就可以用上面4個節(jié)點實現LabVIEW對USB批量數據收發(fā),如圖1所示。當然,這需要前述INF文件的支持和與USB接口的單片機程序的支持,在圖1中VISA resource name端口用于指定需要打開的VISA資源的名稱,實際上就是前面生成INF配置文件中的VISA資源儀器描述符。這里,向USB發(fā)送字符串“connect test”,連接測試,單片機通過USB接口芯片將發(fā)送過去的數據回傳給LabVIEW。在前面板的read buffer顯示框中能顯示出“connect test”字符串。

  

1.jpg

  

非常好我支持^.^

(36) 97.3%

不好我反對

(1) 2.7%

( 發(fā)表人:辰光 )

      發(fā)表評論

      用戶評論
      評價:好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關規(guī)定!

      ?