新聞中心

EEPW首頁(yè) > 測(cè)試測(cè)量 > 設(shè)計(jì)應(yīng)用 > 基于LabVIEW的無(wú)線USB高速數(shù)據(jù)傳輸系統(tǒng)

基于LabVIEW的無(wú)線USB高速數(shù)據(jù)傳輸系統(tǒng)

作者: 時(shí)間:2016-12-27 來(lái)源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://butianyuan.cn/article/201612/334131.htm

通用串行總線USB(UNIversal Serial Bus)作為一種新型的數(shù)據(jù)通信技術(shù),具有即插即用、支持熱插撥、易于擴(kuò)展、傳輸速度快、性價(jià)比高等優(yōu)點(diǎn);短距離無(wú)線通信技術(shù)是未來(lái)計(jì)算機(jī)和外設(shè)間進(jìn)行數(shù)據(jù)傳輸?shù)陌l(fā)展趨勢(shì),它具有分布靈活、使用簡(jiǎn)單、幾乎不受空間條件限制等特點(diǎn)。USB緊跟通信技術(shù)的無(wú)線化趨勢(shì),2004年,惠普、英特爾、微軟、NEC、飛利浦半導(dǎo)體、三星電子等多家大公司成立了WUSB(WirelessUSB)的促進(jìn)聯(lián)盟,旨在將USB的使用變得更加簡(jiǎn)單,實(shí)現(xiàn)無(wú)線化。Cypress公司推出了低成本的芯片級(jí)遠(yuǎn)距離2.4 GHz射頻系統(tǒng)一一WirelessUSBLR方案,與ZigBee和藍(lán)牙等復(fù)雜且昂貴的無(wú)線網(wǎng)絡(luò)方案相比,WirelessUSBLR憑借其出色的遠(yuǎn)程無(wú)線通信能力和低廉的系統(tǒng)成本,將無(wú)線系統(tǒng)的應(yīng)用擴(kuò)展到建筑、家庭自動(dòng)化、工業(yè)控制、醫(yī)療檢測(cè)、傳呼系統(tǒng)和顯示設(shè)備等領(lǐng)域。所以說(shuō),如果將無(wú)線和USB完美結(jié)合,在保證數(shù)據(jù)采集速率的前提下,可以使得數(shù)據(jù)傳輸更加方便,與PC接口也更加簡(jiǎn)單。

通常開發(fā)USB系統(tǒng)時(shí),先用Windows DDK(設(shè)備驅(qū)動(dòng)程序開發(fā)包)或第三方開發(fā)工具(如Driver Studio)開發(fā)USB驅(qū)動(dòng)程序,然后用Visual C++編寫DLL(動(dòng)態(tài)連接庫(kù)),最后再調(diào)用DLL來(lái)開發(fā)應(yīng)用程序,這對(duì)不熟悉Win—dows編程的人有一定的難度;而USB應(yīng)用程序也大都是使用 Visual C++來(lái)編寫的,過(guò)程繁瑣,調(diào)試麻煩,花費(fèi)的時(shí)間也比較長(zhǎng)。

美國(guó)國(guó)家儀器NI(National Instlrument)公司開發(fā)的LabVIEW(Laboratory Virtual Instrument Engineering Workbench)語(yǔ)言是一種基于圖形程序的編程語(yǔ)言,含有豐富的數(shù)據(jù)采集、數(shù)據(jù)信號(hào)分析以及控制等子程序,易于調(diào)試和維護(hù),且程序編程簡(jiǎn)單、直觀??梢灾苯釉贚abVIEW環(huán)境下通過(guò)NI一VISA(Virtual Instlrument Software Architecture,以下簡(jiǎn)稱為“VISA”)開發(fā)驅(qū)動(dòng)程序,完全避開了以前開發(fā)USB驅(qū)動(dòng)程序的復(fù)雜性,大大縮短了開發(fā)周期。用它來(lái)開發(fā)應(yīng)用程序,把采集來(lái)的數(shù)據(jù)傳送到主機(jī)上,再通過(guò)LabVIEW的模塊實(shí)現(xiàn)數(shù)據(jù)的實(shí)時(shí)顯示、分析和存儲(chǔ)。

本設(shè)計(jì)將利用Cypress公司的CYWUSB6935來(lái)實(shí)現(xiàn)無(wú)線USB的高速數(shù)據(jù)傳輸系統(tǒng),通過(guò)LabVIEW來(lái)簡(jiǎn)化開發(fā)過(guò)程,縮短開發(fā)周期。

1無(wú)線USB與LabVIEW概述

1.1無(wú)線USB和CYWUSB6935芯片

無(wú)線USB技術(shù)是一個(gè)全新的通信標(biāo)準(zhǔn)。它通過(guò)USB接口和最先進(jìn)的無(wú)線通信技術(shù)擴(kuò)展了設(shè)備之間的連通性,最基本的工作原理是發(fā)送和接收脈沖間隔嚴(yán)格受控于高斯單周期超短時(shí)脈沖;具有傳輸速度快、功耗小、移植方便、安全性高等優(yōu)點(diǎn);最大的特點(diǎn)是傳輸速率高,3 m距離的最大傳輸速率達(dá)480 Mbps,其性能與現(xiàn)有的USB2.O相同。雖然在傳輸距離上,WUSB性能沒有達(dá)到USB2.0所規(guī)定的最長(zhǎng)5 m的距離,但對(duì)置于計(jì)算機(jī)周圍的設(shè)備來(lái)說(shuō),3 m的距離已經(jīng)足夠了。一般情況下,通信距離越長(zhǎng),速率越慢;因此WUSB規(guī)定10 m的傳輸速率為110 Mbps。10 m足以覆蓋當(dāng)前家庭的居室,此距離的速率已經(jīng)超過(guò)了目前的WLAN。

無(wú)線USB和有線USB2.0一樣,它也能處理4種傳輸形式,即控制傳輸、塊傳輸、中斷傳輸、同步傳輸。主機(jī)和無(wú)線USB設(shè)備合稱WUSB集群,采用星型拓?fù)?/strong>,不需要WUSB集線器,WUSB主機(jī)能直接連接多達(dá)127個(gè)設(shè)備。主機(jī)支持8種數(shù)據(jù)速率:53.3 Mbps、80 Mbps、106.7Mbps、200 Mbps、160 Mbps、320 Mbps、400 Mbps和480Mbps。設(shè)備必須支持3種數(shù)據(jù)速率53.3 Mbps、106.7Mbps、200 Mbps,其他5種為可選數(shù)據(jù)率。

針對(duì)無(wú)線傳輸的現(xiàn)狀,Cypress公司推出了低成本、高集成度的芯片CYWUSB6935,CYWUSB6935芯片結(jié)構(gòu)框圖如圖1所示。

CYWUSB6935內(nèi)部集成了串行數(shù)據(jù)接口(SPI)、串并/并串轉(zhuǎn)換器(SERDES)、綜合器(synthesizer)、2.4 GHz的射頻收發(fā)器;采用高斯頻移鍵控調(diào)制解調(diào)器(GFSKModem)和直接順序擴(kuò)展頻譜(DSSS)數(shù)字基帶模塊;用戶可以通過(guò)控制信號(hào)靈活地設(shè)置射頻和數(shù)字基帶部分。為了進(jìn)一步優(yōu)化性能,CYWUSB6935將49個(gè)擴(kuò)頻編碼調(diào)制到78個(gè)1 MHz寬度的頻率域上,從而在理論上可以為用戶提供3 822個(gè)獨(dú)立的頻道,讓每個(gè)主系統(tǒng)能夠連接多組外圍設(shè)備,且通信距離可達(dá)到50 m或更遠(yuǎn)。

WUSB6935有4種工作模式:64 chips/bit單通道、32chips/bit雙通道、32 chips/bit單通道雙倍采樣和32chips/bit單通道雙倍數(shù)據(jù)速率。該系統(tǒng)選用32 chips/bit單通道雙倍采樣。模式選擇通過(guò)配置REG—DATA—RATE(0X04)來(lái)實(shí)現(xiàn)。接收和發(fā)射均采用中斷的方式。中斷的方式有3種:發(fā)射中斷、接收中斷和喚醒中斷。這些中斷共用一個(gè)IRQ引腳。配置REG(0XOD)使得發(fā)射中斷使能,將要發(fā)送的數(shù)據(jù)送到數(shù)據(jù)發(fā)送寄存器(0XOF),數(shù)據(jù)便通過(guò)RFOUT引腳發(fā)送出去。接收中斷使能寄存器為REG(0X07),通過(guò)讀取中斷狀態(tài)寄存器REG(0X08)可以確定中斷類型,然后從相應(yīng)的數(shù)據(jù)接收寄存器中獲得相應(yīng)通道的數(shù)據(jù)。

1.2LabVIEW和NI VISA

LabVIEW是美國(guó)國(guó)家儀器NI公司開發(fā)的一種基于圖形程序的編程語(yǔ)言,廣泛應(yīng)用于數(shù)據(jù)采集與控制、信號(hào)處理以及數(shù)據(jù)表達(dá)等方面,它提供了一種全新的編程方法,即對(duì)軟件對(duì)象“虛擬儀器(VI)”進(jìn)行圖形化的組合操作。LabVIEW程序的執(zhí)行順序是按數(shù)據(jù)流的方式確定的,可以實(shí)現(xiàn)多任務(wù)的并行。用戶通過(guò)創(chuàng)建和調(diào)用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,而且程序簡(jiǎn)單、直觀。

LabVIEW的應(yīng)用程序,即虛擬儀器(VI),包括3部分:前面板(front panel),是LabVIEW程序的圖形用戶界面,用于設(shè)置輸入數(shù)值和觀察輸出量,相當(dāng)于傳統(tǒng)儀器的面板;框圖程序(block diagram),提供VI的圖形化源程序,是利用圖形語(yǔ)言編程控制和定義在前面板上的輸入和輸出功能;圖標(biāo)/連結(jié)器(icon/connector),用于把Lab—VIEW程序定義成一個(gè)子程序,從而實(shí)現(xiàn)模塊化編程。

NI—VISA也是NI公司開發(fā)的一種用來(lái)與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口(API)。VISA總線I/0軟件是一個(gè)綜合軟件包,不受平臺(tái)、總線和環(huán)境的限制,可用來(lái)對(duì)USB、GPIB、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進(jìn)行配置、編程和調(diào)試。本文介紹的高速數(shù)據(jù)傳輸系統(tǒng)采用它開發(fā)USB驅(qū)動(dòng),大大簡(jiǎn)化了開發(fā)過(guò)程。

2無(wú)線USB高速數(shù)據(jù)傳輸系統(tǒng)的設(shè)計(jì)

該無(wú)線USB數(shù)據(jù)傳輸系統(tǒng)構(gòu)成如圖2所示。

2.1系統(tǒng)硬件設(shè)計(jì)

該系統(tǒng)使用了128引腳的CY7C68013單片機(jī)以及CYWUSB6935射頻模塊,其硬件設(shè)計(jì)框圖如圖3所示。

CY7C68013是Cypress公司的EZ—USBFX2系列芯片。其芯片固件存儲(chǔ)在主機(jī)上而不是在芯片內(nèi)部,顯著特點(diǎn)是代碼升級(jí)容易。該系列芯片集成了USB2.O收發(fā)器、串行接口引擎(SIE)、帶 8.5 KB片上RAM的增強(qiáng)型8051、16 KB的RAM、4 KB的FIFO存儲(chǔ)器、I/0口、數(shù)據(jù)總線、地址總線和通用可編程接口(GPIF)。CYWUSB6935的SPI四個(gè)引腳(MOSI、MISO、SS、 SCK)支持兩種傳輸模式——單字節(jié)模式和序列多字節(jié)模式。為了提高傳輸效率,本系統(tǒng)采用序列多字節(jié)模式。

2.2系統(tǒng)軟件設(shè)計(jì)

數(shù)據(jù)傳輸系統(tǒng)軟件設(shè)計(jì)分為3部分:設(shè)備固件程序、驅(qū)動(dòng)程序以及應(yīng)用程序,如圖4所示。

設(shè)備固件(firmware)程序在主機(jī)上調(diào)試編譯完后,枚舉時(shí)下載到RAM內(nèi),它使得USB接口芯片與主機(jī)和外設(shè)中的其他電路能夠通信,因此固件程序包括響應(yīng)主機(jī)要求部分和控制外設(shè)部分。利用Cypress公司提供的固件框架來(lái)開發(fā)固件,可以簡(jiǎn)化固件開發(fā)過(guò)程。

驅(qū)動(dòng)程序是LabVIEW與USB接口的驅(qū)動(dòng)程序,應(yīng)用程序通過(guò)驅(qū)動(dòng)程序與系統(tǒng)USBI(USBDevice Interface)進(jìn)行通信,由系統(tǒng)產(chǎn)生USB數(shù)據(jù)的傳送動(dòng)作;固件響應(yīng)各種來(lái)自系統(tǒng)的USB標(biāo)準(zhǔn)請(qǐng)求,完成數(shù)據(jù)的交換工作和事件處理。

2.2.1 設(shè)備固件程序設(shè)計(jì)

Cypress公司提供了固件框架來(lái)開發(fā)框架,在Keil C51下開發(fā),該框架主要由以下幾部分組成:

①FW.C中包含程序框架的MAIN函數(shù),由于Cy—press公司已經(jīng)精心劃分了這部分的功能,所以一般不用改動(dòng)。

②PERIPH.C是用戶函數(shù)掛鉤的相關(guān)定義,這部分需要根據(jù)自己系統(tǒng)的需要實(shí)例化這個(gè)文件,以實(shí)現(xiàn)特定的功能。

③TD_Init函數(shù)是在設(shè)備重枚舉和任務(wù)調(diào)度啟用之前調(diào)用,用來(lái)初始化用戶的全局狀態(tài)變量,并負(fù)責(zé)對(duì)USB端點(diǎn)進(jìn)行初始化設(shè)置。在本設(shè)計(jì)中將端點(diǎn)2設(shè)置為1 024個(gè)字節(jié),4重緩沖,自動(dòng)輸入模式。

④TD_Poll函數(shù)是系統(tǒng)中循環(huán)任務(wù)的處理函數(shù),主要負(fù)責(zé)對(duì)各個(gè)端點(diǎn)的狀態(tài)進(jìn)行查詢,處理各種IN和0UT端點(diǎn)的交互。

⑤Ezusb.lib和USBJmpTb.OBJ分別為EZUSB函數(shù)庫(kù)的二進(jìn)制文件和USB的中斷向量表。

⑥D(zhuǎn)SCR.a51是描述符文件,包括標(biāo)準(zhǔn)設(shè)備描述符、類描述符和用戶指定的描述符。

2.2.2LabVIEW中調(diào)用VISA

當(dāng)進(jìn)行USB通信時(shí),VISA提供了兩類函數(shù)供Lab—VIEW調(diào)用:USBINSTR設(shè)備與USBRAW設(shè)備。USBINSTR設(shè)備是符合USBTMC協(xié)議的USB設(shè)備,可以通過(guò)使用USBINSTR類函數(shù)控制,通信時(shí)無(wú)需配置VISA;而USBRAW設(shè)備是指除了明確符合USBTMC規(guī)格的儀器之外的任何USB設(shè)備,通信時(shí)要配置VISA。該系統(tǒng)是USBRAW設(shè)備,故需要配置VISA。配置VISA的步驟如下:

①使用Driver Development wizard(驅(qū)動(dòng)程序開發(fā)向?qū)?創(chuàng)建INF文檔。打開VISA Driver Developer Wizard,然后選擇USB,進(jìn)入VISA DDW基本設(shè)備信息窗口(在這一步確認(rèn)USB設(shè)備的供應(yīng)商ID和產(chǎn)品ID),接下來(lái)填寫USB儀器前綴,用來(lái)識(shí)別本設(shè)備所用的相關(guān)文檔,這時(shí)INF文檔就被保存到指定的位置。

②安裝INF文檔及使用INF文檔的USB設(shè)備。

③使用VISA Interactive Control(VISA互動(dòng)控制工具)對(duì)設(shè)備進(jìn)行測(cè)試,以證實(shí)USB設(shè)備已正確安裝,并獲得USB設(shè)備的各屬性值。

USB設(shè)備安裝完畢后,就可以與VISA進(jìn)行簡(jiǎn)單的通信。VISA支持3種類型的USB管道:控制、批量和中斷。VISA探測(cè)到USB儀器時(shí),會(huì)對(duì)儀器進(jìn)行自動(dòng)掃描,尋找各種類型的最低可用端點(diǎn)。VISA探測(cè)到最低可用端點(diǎn)后,即將該值賦予適當(dāng)?shù)腣ISA屬性。bulk in端點(diǎn)和bulk out端點(diǎn)分別存儲(chǔ)在VI_ATTR_USB_BULK_IN_PIPE屬性和VI_ATTR_USB_BULK_OUT_PIPE屬性之中。 interrupt in端點(diǎn)存放在VI_ATTR_USB_INTR_IN_PIPE屬性之中。如果值為一1,則表示USB設(shè)備不支持這種類型的管道。對(duì)于控制型管道,只有端點(diǎn)O才受到支持。在LabVIEW中,應(yīng)使用“Write VISA Property(寫入VISA屬性)”節(jié)點(diǎn)。VI-SA有4種通過(guò)USB管道傳輸數(shù)據(jù)的功能。在能夠使用這些功能與設(shè)備進(jìn)行通信之前,還需要使用 VISAUSB屬性建立通信協(xié)議。使用VISAUSBContro1 In和VISAUSBContro1 0ut來(lái)控制管道傳輸數(shù)據(jù),并用此來(lái)獲得USBRAW設(shè)備的各種描述符。另外使用VISA Read和VISAWrite選擇批量管道來(lái)傳輸目標(biāo)數(shù)據(jù)。通過(guò)上述方法成功實(shí)現(xiàn)了LabVIEW與USB驅(qū)動(dòng)程序的數(shù)據(jù)交換,從而實(shí)現(xiàn)了以LabVIEW為平臺(tái)的無(wú)線USB高速數(shù)據(jù)傳輸系統(tǒng)。

結(jié)語(yǔ)

實(shí)驗(yàn)證明,采用無(wú)線USB系統(tǒng)進(jìn)行數(shù)據(jù)傳輸,將USB接口和短距離無(wú)線通信的優(yōu)點(diǎn)有機(jī)地結(jié)合起來(lái),不僅能實(shí)現(xiàn)較高的數(shù)據(jù)傳輸率,而且改變了數(shù)據(jù)的傳輸方式,由傳統(tǒng)的有線傳輸改為無(wú)線傳輸,使傳輸系統(tǒng)更加方便、可靠、高速。除此之外,無(wú)線USB憑借其完美的性能和低廉的成本,可以滿足無(wú)線領(lǐng)域中非網(wǎng)絡(luò)端的需求,將成為未來(lái)無(wú)線通信的主流。采用基于NI—VISA驅(qū)動(dòng)USB接口和LabVIEW開發(fā)應(yīng)用程序的設(shè)計(jì)方法,降低了開發(fā)難度,縮短了開發(fā)時(shí)間,使得該系統(tǒng)性價(jià)比較高,通用性較好。隨著USB技術(shù)和短距離無(wú)線通信的進(jìn)一步發(fā)展,WUSB會(huì)表現(xiàn)出更好的性能,應(yīng)用范圍將日趨廣泛。集成了無(wú)線USB接口和LabVIEW語(yǔ)言的數(shù)據(jù)傳輸系統(tǒng)具有廣闊的發(fā)展前景,易于開發(fā)、數(shù)據(jù)處理簡(jiǎn)單。



評(píng)論


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

關(guān)閉