引言 通用串行總線USB(Universal Serial Bus)作為一種新型的數據通信技術,具有即插即用、支持熱插撥、易于擴展、傳輸速度快、性價比高等優點;短距離無線通信技術是未來計算機和外設間進行數據傳輸的發展趨勢,它具有分布靈活、使用簡單、幾乎不受空間條件限制等特點。USB緊跟通信技術的無線化趨勢,2004年,惠普、英特爾、微軟、NEC、飛利浦半導體、三星電子等多家大公司成立了WUSB(Wireless USB)的促進聯盟,旨在將USB的使用變得更加簡單,實現無線化。Cypress公司推出了低成本的芯片級遠距離2.4 GHz射頻系統一一Wireless USB LR方案,與ZigBee和藍牙等復雜且昂貴的無線網絡方案相比,Wireless USB LR憑借其出色的遠程無線通信能力和低廉的系統成本,將無線系統的應用擴展到建筑、家庭自動化、工業控制、醫療檢測、傳呼系統和顯示設備等領域。所以說,如果將無線和USB完美結合,在保證數據采集速率的前提下,可以使得數據傳輸更加方便,與PC接口也更加簡單。 通常開發USB系統時,先用Windows DDK(設備驅動程序開發包)或第三方開發工具(如Driver Studio)開發USB驅動程序,然后用Visual C++編寫DLL(動態連接庫),最后再調用DLL來開發應用程序,這對不熟悉Win—dows編程的人有一定的難度;而USB應用程序也大都是使用 Visual C++來編寫的,過程繁瑣,調試麻煩,花費的時間也比較長。 美國國家儀器NI(National Instlrument)公司開發的LabVIEW(Laboratory Virtual Instrument Engineering Workbench)語言是一種基于圖形程序的編程語言,含有豐富的數據采集、數據信號分析以及控制等子程序,易于調試和維護,且程序編程簡單、直觀。可以直接在LabVIEW環境下通過NI一VISA(Virtual Instlrument Software Architecture,以下簡稱為“VISA”)開發驅動程序,完全避開了以前開發USB驅動程序的復雜性,大大縮短了開發周期。用它來開發應用程序,把采集來的數據傳送到主機上,再通過LabVIEW的模塊實現數據的實時顯示、分析和存儲。 本設計將利用Cypress公司的CYWUSB6935來實現無線USB的高速數據傳輸系統,通過LabVIEW來簡化開發過程,縮短開發周期。 1 無線USB與LabVIEW概述 1.1 無線USB和CYWUSB6935芯片 無線USB技術是一個全新的通信標準。它通過USB接口和最先進的無線通信技術擴展了設備之間的連通性,最基本的工作原理是發送和接收脈沖間隔嚴格受控于高斯單周期超短時脈沖;具有傳輸速度快、功耗小、移植方便、安全性高等優點;最大的特點是傳輸速率高,3 m距離的最大傳輸速率達480 Mbps,其性能與現有的USB2.O相同。雖然在傳輸距離上,WUSB性能沒有達到USB2.0所規定的最長5 m的距離,但對置于計算機周圍的設備來說,3 m的距離已經足夠了。一般情況下,通信距離越長,速率越慢;因此WUSB規定10 m的傳輸速率為110 Mbps。10 m足以覆蓋當前家庭的居室,此距離的速率已經超過了目前的WLAN。 無線USB和有線USB2.0一樣,它也能處理4種傳輸形式,即控制傳輸、塊傳輸、中斷傳輸、同步傳輸。主機和無線USB設備合稱WUSB集群,采用星型拓撲,不需要WUSB集線器,WUSB主機能直接連接多達127個設備。主機支持8種數據速率:53.3 Mbps、80 Mbps、106.7Mbps、200 Mbps、160 Mbps、320 Mbps、400 Mbps和480Mbps。設備必須支持3種數據速率53.3 Mbps、106.7Mbps、200 Mbps,其他5種為可選數據率。 針對無線傳輸的現狀,Cypress公司推出了低成本、高集成度的芯片CYWUSB6935,CYWUSB6935芯片結構框圖如圖1所示。 ![]() CYWUSB6935內部集成了串行數據接口(SPI)、串并/并串轉換器(SERDES)、綜合器(synthesizer)、2.4 GHz的射頻收發器;采用高斯頻移鍵控調制解調器(GFSKModem)和直接順序擴展頻譜(DSSS)數字基帶模塊;用戶可以通過控制信號靈活地設置射頻和數字基帶部分。為了進一步優化性能,CYWUSB6935將49個擴頻編碼調制到78個1 MHz寬度的頻率域上,從而在理論上可以為用戶提供3 822個獨立的頻道,讓每個主系統能夠連接多組外圍設備,且通信距離可達到50 m或更遠。 WUSB6935有4種工作模式:64 chips/bit單通道、32chips/bit雙通道、32 chips/bit單通道雙倍采樣和32chips/bit單通道雙倍數據速率。該系統選用32 chips/bit單通道雙倍采樣。模式選擇通過配置REG—DATA—RATE(0X04)來實現。接收和發射均采用中斷的方式。中斷的方式有3種:發射中斷、接收中斷和喚醒中斷。這些中斷共用一個IRQ引腳。配置REG(0XOD)使得發射中斷使能,將要發送的數據送到數據發送寄存器(0XOF),數據便通過RFOUT引腳發送出去。接收中斷使能寄存器為REG(0X07),通過讀取中斷狀態寄存器REG(0X08)可以確定中斷類型,然后從相應的數據接收寄存器中獲得相應通道的數據。 1.2 LabVIEW和NI VISA LabVIEW是美國國家儀器NI公司開發的一種基于圖形程序的編程語言,廣泛應用于數據采集與控制、信號處理以及數據表達等方面,它提供了一種全新的編程方法,即對軟件對象“虛擬儀器(VI)”進行圖形化的組合操作。LabVIEW程序的執行順序是按數據流的方式確定的,可以實現多任務的并行。用戶通過創建和調用子程序的方法編寫程序,使創建的程序模塊化,而且程序簡單、直觀。 LabVIEW的應用程序,即虛擬儀器(VI),包括3部分:前面板(front panel),是LabVIEW程序的圖形用戶界面,用于設置輸入數值和觀察輸出量,相當于傳統儀器的面板;框圖程序(block diagram),提供VI的圖形化源程序,是利用圖形語言編程控制和定義在前面板上的輸入和輸出功能;圖標/連結器(icon/connector),用于把Lab—VIEW程序定義成一個子程序,從而實現模塊化編程。 NI—VISA也是NI公司開發的一種用來與各種儀器總線進行通信的高級應用編程接口(API)。VISA總線I/0軟件是一個綜合軟件包,不受平臺、總線和環境的限制,可用來對USB、GPIB、串口、VXI、PXI和以太網系統進行配置、編程和調試。本文介紹的高速數據傳輸系統采用它開發USB驅動,大大簡化了開發過程。 2 無線USB高速數據傳輸系統的設計 該無線USB數據傳輸系統構成如圖2所示。 ![]() 2.1 系統硬件設計 該系統使用了128引腳的CY7C68013單片機以及CYWUSB6935射頻模塊,其硬件設計框圖如圖3所示。 CY7C68013是Cypress公司的EZ—USB FX2系列芯片。其芯片固件存儲在主機上而不是在芯片內部,顯著特點是代碼升級容易。該系列芯片集成了USB2.O收發器、串行接口引擎(SIE)、帶 8.5 KB片上RAM的增強型8051、16 KB的RAM、4 KB的FIFO存儲器、I/0口、數據總線、地址總線和通用可編程接口(GPIF)。CYWUSB6935的SPI四個引腳(MOSI、MISO、SS、 SCK)支持兩種傳輸模式——單字節模式和序列多字節模式。為了提高傳輸效率,本系統采用序列多字節模式。 2.2 系統軟件設計 數據傳輸系統軟件設計分為3部分:設備固件程序、驅動程序以及應用程序,如圖4所示。 ![]() 設備固件(firmware)程序在主機上調試編譯完后,枚舉時下載到RAM內,它使得USB接口芯片與主機和外設中的其他電路能夠通信,因此固件程序包括響應主機要求部分和控制外設部分。利用Cypress公司提供的固件框架來開發固件,可以簡化固件開發過程。 驅動程序是LabVIEW與USB接口的驅動程序,應用程序通過驅動程序與系統USBI(USB Device Interface)進行通信,由系統產生USB數據的傳送動作;固件響應各種來自系統的USB標準請求,完成數據的交換工作和事件處理。 2.2.1 設備固件程序設計 Cypress公司提供了固件框架來開發框架,在Keil C51下開發,該框架主要由以下幾部分組成: ①FW.C中包含程序框架的MAIN函數,由于Cy—press公司已經精心劃分了這部分的功能,所以一般不用改動。 ②PERIPH.C是用戶函數掛鉤的相關定義,這部分需要根據自己系統的需要實例化這個文件,以實現特定的功能。 ③TD_Init函數是在設備重枚舉和任務調度啟用之前調用,用來初始化用戶的全局狀態變量,并負責對USB端點進行初始化設置。在本設計中將端點2設置為1 024個字節,4重緩沖,自動輸入模式。 ④TD_Poll函數是系統中循環任務的處理函數,主要負責對各個端點的狀態進行查詢,處理各種IN和0UT端點的交互。 ⑤Ezusb.lib和USBJmpTb.OBJ分別為EZUSB函數庫的二進制文件和USB的中斷向量表。 ⑥DSCR.a51是描述符文件,包括標準設備描述符、類描述符和用戶指定的描述符。 2.2.2 LabVIEW中調用VISA 當進行USB通信時,VISA提供了兩類函數供Lab—VIEW調用:USB INSTR設備與USB RAW設備。USBINSTR設備是符合USBTMC協議的USB設備,可以通過使用USB INSTR類函數控制,通信時無需配置VISA;而USB RAW設備是指除了明確符合USBTMC規格的儀器之外的任何USB設備,通信時要配置VISA。該系統是USB RAW設備,故需要配置VISA。配置VISA的步驟如下: ①使用Driver Development wizard(驅動程序開發向導)創建INF文檔。打開VISA Driver Developer Wizard,然后選擇USB,進入VISA DDW基本設備信息窗口(在這一步確認USB設備的供應商ID和產品ID),接下來填寫USB儀器前綴,用來識別本設備所用的相關文檔,這時INF文檔就被保存到指定的位置。 ②安裝INF文檔及使用INF文檔的USB設備。 ③使用VISA Interactive Control(VISA互動控制工具)對設備進行測試,以證實USB設備已正確安裝,并獲得USB設備的各屬性值。 USB設備安裝完畢后,就可以與VISA進行簡單的通信。VISA支持3種類型的USB管道:控制、批量和中斷。VISA探測到USB儀器時,會對儀器進行自動掃描,尋找各種類型的最低可用端點。VISA探測到最低可用端點后,即將該值賦予適當的VISA屬性。bulk in端點和bulk out端點分別存儲在VI_ATTR_USB_BULK_IN_PIPE屬性和VI_ATTR_USB_BULK_OUT_PIPE屬性之中。 interrupt in端點存放在VI_ATTR_USB_INTR_IN_PIPE屬性之中。如果值為一1,則表示USB設備不支持這種類型的管道。對于控制型管道,只有端點O才受到支持。在LabVIEW中,應使用“Write VISA Property(寫入VISA屬性)”節點。VI-SA有4種通過USB管道傳輸數據的功能。在能夠使用這些功能與設備進行通信之前,還需要使用 VISA USB屬性建立通信協議。使用VISA USB Contro1 In和VISA USBContro1 0ut來控制管道傳輸數據,并用此來獲得USBRAW設備的各種描述符。另外使用VISA Read和VISAWrite選擇批量管道來傳輸目標數據。通過上述方法成功實現了LabVIEW與USB驅動程序的數據交換,從而實現了以 LabVIEW為平臺的無線USB高速數據傳輸系統。 結語 實驗證明,采用無線USB系統進行數據傳輸,將USB接口和短距離無線通信的優點有機地結合起來,不僅能實現較高的數據傳輸率,而且改變了數據的傳輸方式,由傳統的有線傳輸改為無線傳輸,使傳輸系統更加方便、可靠、高速。除此之外,無線USB憑借其完美的性能和低廉的成本,可以滿足無線領域中非網絡端的需求,將成為未來無線通信的主流。采用基于NI—VISA驅動USB接口和LabVIEW開發應用程序的設計方法,降低了開發難度,縮短了開發時間,使得該系統性價比較高,通用性較好。隨著USB技術和短距離無線通信的進一步發展,WUSB會表現出更好的性能,應用范圍將日趨廣泛。集成了無線USB接口和 LabVIEW語言的數據傳輸系統具有廣闊的發展前景,易于開發、數據處理簡單。 參考文獻 1. 唐旻.趙曙光.方艷紅 基于無線USB技術的系統開發與應用 [期刊論文] -單片機與嵌入式系統應用2005(11) 2. 楊樂平 LabVIEW 高級程序設計 2003 3. Wireless USB Working Group Wireless Universal Serial Bus Specification revision 1.0 2005 4. 楊申.陳偉 基于無線USB 的數據采集系統 [期刊論文] -儀器儀表學報2004(z3) 5. 錢峰 EZ-USB FX2單片機原理,編程及應用 2006 6. National Instruments 使用NI-VISA控制USB設備 7. 劉君華 基于LabVIEW的虛擬儀器設計 2003 作者:中國民航大學 李國 臧金梅 來源:單片機與嵌入式系統應用 2009 (3) |