彈上通信系統(tǒng)的LabVIEW與單片機的通信技術
值得一提的是,USBXpress開發(fā)套件除了包含面向主機的dll文件,還包括面向USB器件的驅動文件和USBX_F34X LIB及USB_API.h文件,封裝了USB協(xié)議的細節(jié),大大簡化了USB固件編程。一個典型的利用API函數(shù)實現(xiàn)USB通信的程序流程如圖2所示。程序是在SiliconLabs集成開發(fā)環(huán)境下編譯調試的。本文引用地址:http://m.butianyuan.cn/article/156423.htm
不管利用CIN,還是調用DLL,都可以實現(xiàn)LabVIEW訪問USB設備,但并不能很好地體現(xiàn)LabVIEW的優(yōu)勢。因為通過CIN和DLL,不用LabVIEW也可以實現(xiàn)上位機編程。實際上,LabVIEW還有獨特的訪問USB設備的方法,即通過VISA訪問USB設備。
3 通過VISA訪問USB設備
VISA(Virtual Instrument Software Architecture,虛擬儀器軟件架構)是一種用來與各種儀器總線進行通信的高級應用編程接口(API),包括GPIB、USB、串口、PXI/PCI、VXI、火線和以太網(wǎng)。它是計算機與儀器的軟件連接層,本身不具備編寫儀器驅動的能力,通過調用特定儀器驅動與儀器的通信。
NI-VISA從3.0版開始支持USB通信,它有兩種VISA類函數(shù)(Resource Class),可以控制兩類USB設備:USB INSTR設備與USB RAW設備。U-SB INSTR設備是符合USBTMC協(xié)議的USB設備,可以通過使用USB INSTR類函數(shù)控制,通信時無需配置NI-VISA;而USB RAw設備是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設備,通信時要配置NI-VISA。C8051F340是USB RAW設備,故欲實現(xiàn)與LabVIEW進行USB通信,可通過NI公司提供的VISA Driver Wizard進行配置。步驟如下:
①按照“程序”一“National Instruments”一“VISA”一“Driver Wizard”選擇USB并點擊Next,進入USB-DeviceInformation界面。
②在USB Vendor ID欄和USB Product ID欄分別填寫USB設備的PID號和VID號。另外兩欄分別是Manufacturer Name和Mode Name欄,選填。每一個USB設備都有唯一的PID號和VID號,它們是主機識別不同USB設備的根據(jù)。
③生成并安裝inf文件,為USB設備創(chuàng)建PNF文檔。持續(xù)點擊Next,并為文件命名。高版本的VISA可發(fā)自動創(chuàng)建PNF文檔。
④連接USB設備。USB具有熱拔插功能,所以Windows能夠探測到USB設備,并立即會打開“添加新硬件向導”,很快完成USB設備驅動程序的安裝。
至此,主機已將NI-VISA作為訪問USB設備的底層驅動,在LabVIEW程序中即可利用VISA選板的VI設計通信程序。
圖3是一個基于NI-VISA編寫的LabVIEW與C8051F340進行USB通信的程序框圖。設備的PID和VID分別是0x10C4和0x0005,單片機使用端點2IN,采用中斷傳輸方式;LabVIEW程序中用VISA事件處理和獲取USB中斷等VI。
通過NI-VISA實現(xiàn)LabVIEW與單片機進行USB通信,大大減小了工作量,同時很好地發(fā)揮了LabVIEW的特點。
結語
對實現(xiàn)LabVIEW與C8051F340單片機USB通信的3種方式進行比較,結論如下:
①通過CIN節(jié)點訪問USB可以充分利用設備生產廠家提供的C語言編寫的驅動程序及源程序,發(fā)揮C語言的優(yōu)勢;但要求用戶非常熟悉USB協(xié)議,這種實現(xiàn)方法相當于在LabVIEW下用CIN對USB設備編寫驅動程序,使用較為麻煩。
②通過調用DLL實現(xiàn)USB通信,可以利用生產廠家提供的dll文件,發(fā)揮dll文件的優(yōu)勢;但由于dll文件的數(shù)據(jù)格式通常和LabVIEW不完全匹配,往往需要修改參數(shù)或者對dll文件進行二次開發(fā),需要具備開發(fā)dll文件的能力,也比較麻煩。
③通過NI-VISA可以充分發(fā)揮LabVIEW的優(yōu)勢,無需熟悉傳統(tǒng)文本語言編程,極大方便上位機的編程。
④就單片機在USB設備固件編程的工作量而言,通過NI-VISA方式與通過CIN方式相當,比通過USBXpress開發(fā)套件的工作量大。
結合實現(xiàn)LabVIEW與C8051F340USB通信總體軟件編程任務,從工程應用角度進行比較,如表1所列。
對于一般情況下基于LabVIEW的上下位機USB通信,建議通過調用DLL或者使用VISA實現(xiàn)USB通信,具體采用哪種方式,還要結合系統(tǒng)具體要求而定。
評論