當(dāng)前位置:首頁 > 通信技術(shù) > 通信技術(shù)
[導(dǎo)讀]引 言LabVIEW是一種基于圖形程序的虛擬儀器編程語言,在測試與測量、數(shù)據(jù)采集、儀器控制、數(shù)字信號分析、工廠自動化等領(lǐng)域獲得了廣泛的應(yīng)用。LabVIEW程序采用方框圖編程,具有友好的人機界面,在前面板中有用于模擬真

引 言

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

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

2 USB底層驅(qū)動程序設(shè)計

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

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

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

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

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

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

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

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

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

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

NI-VISA支持3種類型的USB管道:控制、批量和中斷。NI-VISA探測到USB儀器時,他會對儀器進行自動掃描,尋找各種類型的最低可用端點。如使用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端口的讀寫操作和屬性控制,實現(xiàn)與儀器的命令與數(shù)據(jù)交換。LabVIEW中所有的VISA節(jié)點均在Function模板→All Functions子模板→Instrument I/O子模板→VISA子模板中。在這里,只用到了VISA Open,VISA Close,VISA Write和VISARead四個節(jié)點即可實現(xiàn)和USB設(shè)備的雙向通信。當(dāng)完成對USB設(shè)備的INF硬件配置后,就可以用VISA Open節(jié)點打開該資源,建立計算機與這些VISA資源的通信管道;與VISA Open節(jié)點相反,VISA Close節(jié)點用于將打開的VISA資源關(guān)閉;VISA Write節(jié)點的功能是將writebuffer端口輸入字符串?dāng)?shù)據(jù)發(fā)送到儀器中;VISA Read節(jié)點的功能是從儀器中讀出數(shù)據(jù);

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


4 基于IJSB的虛擬示波器的實現(xiàn)

本系統(tǒng)為在LabVIEW中實現(xiàn)示波器的功能。單片機對向USB示波器調(diào)理電路輸出的信號進行96 k(多檔可調(diào))的高速連續(xù)AD采樣,并將采樣到的數(shù)據(jù)通過USB口傳給PC機的LabVIEW,LabVlEW對USB口傳來的數(shù)據(jù)進行處理、測量、波形還原和顯示等相關(guān)操作。虛擬示波器的程序運行界面如圖2所示,當(dāng)前輸入的是2.001 kHz的正弦波信號,在軟件中顯示的波形以及測量結(jié)果與實際示波器上 得到的結(jié)果基本無異。在該程序模塊中,通過調(diào)用Lab-VIEW的相關(guān)控件,實現(xiàn)了對輸入的模擬信號的波形還原顯示、頻率測量、峰值測量、直流漂移測量等操作。


系統(tǒng)采用單片機和Philip公司生產(chǎn)的PDIUSBD12芯片構(gòu)成USB設(shè)備。由單片機實現(xiàn)AD采樣,經(jīng)USB接口完成采樣數(shù)據(jù)的傳輸。單片機的電路設(shè)計和軟件構(gòu)成在這里就不做詳細(xì)介紹。

此系統(tǒng)硬件部分USB接口芯片采用的PDIUSBD12,他支持批量數(shù)據(jù)的長度為64B,所以就以64B為一幀進行數(shù)據(jù)和命令的收發(fā)。在系統(tǒng)啟動即檢測USB設(shè)備是否連接正常,正常才啟動檢測,否則提示連接不正常。當(dāng)啟動檢測時,USB總線上的數(shù)據(jù)的傳輸過程遵循以下步驟:

(1)LabVIEW向USB設(shè)備發(fā)送啟動控制命令幀,其中包含采樣頻率、存貯深度、持續(xù)時間等相關(guān)內(nèi)容。由于控制命令字不滿64B,其他部分進行比特填充。

(2)單片機通過USB接口芯片接收到控制命令,即按要求開始啟動采樣。若為大于8k高速采樣命令,則進行連續(xù)采樣,將采樣的數(shù)據(jù)存貯在數(shù)據(jù)緩沖區(qū)中,采樣結(jié)束后,將數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)進行60B每幀的拆分,并在60B數(shù)據(jù)的前面加上4個字節(jié)的數(shù)據(jù)幀編號等相關(guān)內(nèi)容,通過USB總線將這些數(shù)據(jù)幀批量傳輸給LabVIEW。

(3)若為小于8k的低速采樣命令,則進行中斷采樣,將采樣的數(shù)據(jù)存儲在一個隊列中,在采樣過程中,若采樣的數(shù)據(jù)多于60B,即在主程序中取出隊列中60個字節(jié)數(shù)據(jù)并封裝成數(shù)據(jù)幀,啟動USB數(shù)據(jù)的傳輸過程。采樣過程直至LabVIEW向USB設(shè)備發(fā)送停止命令幀。

(4)在一次數(shù)據(jù)采樣結(jié)束后,LabVIEW向USB設(shè)備發(fā)送啟動控制命令幀即可馬上進行再次采樣。

5 結(jié) 語

用戶可以根據(jù)不同的環(huán)境和要求選擇不同的通信方式,在低速的情況下可以采用串口,并口等方式,高速數(shù)據(jù)采集可以采用USB口,專用數(shù)據(jù)采集卡等,使用USB2.0協(xié)議的芯片支持的批量的數(shù)據(jù)幀長度可以達到512B,并且有更高的數(shù)據(jù)傳輸速度。介紹了在LabVIEW中實現(xiàn)USB通信的設(shè)計方法,并給出具體的設(shè)計步驟和方框圖程序。該方法具有硬件接口簡單、軟件編程方便、實用的特點,在實際數(shù)據(jù)采集過程中具有一定參考價值。
 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉