摘 要: 介紹了一種基于LabVIEW和 USB2.0的DSP雙通道數(shù)據(jù)采集處理系統(tǒng)。該系統(tǒng)采用TMS320C6713B 作為核心處理芯片,CY7C68013A作為USB接口芯片,并在LabVIEW平臺(tái)上開(kāi)發(fā)上位機(jī)數(shù)據(jù)采集軟件,實(shí)現(xiàn)系統(tǒng)復(fù)位、DSP程序HPI引導(dǎo)以及數(shù)據(jù)處理結(jié)果的顯示、存儲(chǔ)和處理。
關(guān)鍵詞: 數(shù)據(jù)采集與處理;LabVIEW;USB2.0;DSP
數(shù)據(jù)采集卡在數(shù)據(jù)采集和測(cè)量過(guò)程中得到了廣泛的應(yīng)用[1]。目前大多數(shù)據(jù)采集卡主要采用RS232、ISA接口和PCI接口,但這些接口體積龐大,不支持熱拔插,而USB接口小巧,支持即插即用和熱拔插,彌補(bǔ)了其他接口的不足,同時(shí)極大地方便了現(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)的采集與分析[2]。LabVIEW是美國(guó)國(guó)家儀器有限公司(NI)開(kāi)發(fā)的一種圖形化編程語(yǔ)言,相對(duì)于Visual Basic、Visual C++等傳統(tǒng)的文本編程語(yǔ)言,它在測(cè)試測(cè)量領(lǐng)域具有很強(qiáng)的優(yōu)勢(shì),能夠?qū)崿F(xiàn)應(yīng)用軟件的快速開(kāi)發(fā),大幅縮短開(kāi)發(fā)時(shí)間[3]。本文介紹了一種基于LabVIEW與USB接口的DSP數(shù)據(jù)采集與處理系統(tǒng)。
1 數(shù)據(jù)采集系統(tǒng)的硬件組成
數(shù)據(jù)采集系統(tǒng)的總體框圖如圖1所示。系統(tǒng)主要包括信號(hào)調(diào)理電路模塊、DSP數(shù)據(jù)處理模塊、CPLD邏輯時(shí)序控制模塊、USB接口通信模塊和LabVIEW上位機(jī)模塊,其中信號(hào)調(diào)理模塊包括運(yùn)算放大電路和模/數(shù)轉(zhuǎn)換電路。
信號(hào)調(diào)理電路將模擬信號(hào)運(yùn)算放大、濾波,再經(jīng)模/數(shù)轉(zhuǎn)換電路將模擬信號(hào)轉(zhuǎn)換為數(shù)字信號(hào);DSP數(shù)據(jù)處理模塊將輸入的數(shù)字信號(hào)進(jìn)行運(yùn)算處理,并將處理后的數(shù)據(jù)經(jīng)DSP的HPI送入U(xiǎn)SB接口,然后經(jīng)USB送入PC機(jī);CPLD模塊主要用于DSP的HPI主機(jī)接口與USB CY7C68013A的邏輯電路設(shè)計(jì)、實(shí)現(xiàn)上位機(jī)對(duì)數(shù)據(jù)采集與處理系統(tǒng)的軟件復(fù)位和DSP對(duì)雙通道中兩片ADC的切換控制;LabVIEW上位機(jī)模塊主要完成DSP復(fù)位、DSP程序HPI引導(dǎo)及數(shù)據(jù)顯示、存儲(chǔ)和處理。
1.1 USB接口電路設(shè)計(jì)
本系統(tǒng)采用USB主機(jī)模式即通過(guò)LabVIEW上位機(jī)經(jīng)USB接口實(shí)現(xiàn)系統(tǒng)的復(fù)位和數(shù)據(jù)傳輸控制,使得DSP相當(dāng)于USB控制的外圍芯片。在該方案中USB采用Cypress公司的EZ-USB系列芯片CY7C68013A,DSP采用TI公司的TMS320C6713B,上述兩種芯片能很好地完成系統(tǒng)所需要的性能。
DSP的HPI主機(jī)接口是16 bit數(shù)據(jù)地址復(fù)用的并行端口,在主從式系統(tǒng)中通過(guò)該接口可以實(shí)現(xiàn)主機(jī)與從機(jī)通信及DSP程序的HPI引導(dǎo),主機(jī)享有對(duì)該接口的控制權(quán)[4]。
本設(shè)計(jì)中,USB芯片CY7C68013A主要采用GPIF模式,用于數(shù)據(jù)采集和批量傳輸。GPIF模式是一種主機(jī)控制模式,其通過(guò) USB2.0的通用可編程接口(GPIF)作為特定的應(yīng)用接口編程, 可使用多種協(xié)議完成與外圍器件的無(wú)縫連接,特別適用于高速數(shù)據(jù)傳輸?shù)膱?chǎng)合[5]。本系統(tǒng)就是采用USB的GPIF模式實(shí)現(xiàn)與DSP的HPI口的數(shù)據(jù)通信,USB接口與DSP的HPI接口需要CPLD進(jìn)行邏輯轉(zhuǎn)換。USB與TI 6713 HPI接口框圖如圖2所示。
PB[7:0]和PD[7:0]作為16 bit數(shù)據(jù)總線連接HPI的HD[15:0];PA2、PA3作為地址線用來(lái)選擇HPI中的HPIC、HPIA和HPID寄存器。CLT0連接HR/W用來(lái)控制讀取或?qū)懭霐?shù)據(jù)。CLT2連接HHWIL用來(lái)表示第一字節(jié)或第二字節(jié)。CLT1連接HDS2,HDS1、HAS固定接高電平,HCS接地,這樣可在HPI模塊中共同產(chǎn)生HSTROBE信號(hào)來(lái)鎖存控制信號(hào),進(jìn)行數(shù)據(jù)傳輸。RDY0連接HRDY,用來(lái)向主機(jī)插入等待狀態(tài)。INT0連接HINT,DSP可以通過(guò)該引腳中斷主機(jī)。
1.2 CPLD邏輯時(shí)序控制模塊
本系統(tǒng)中的邏輯時(shí)序控制主要通過(guò)CPLD完成。CPLD的最大優(yōu)勢(shì)在于其具有很大的靈活性,所以設(shè)計(jì)中可以將不是很肯定的邏輯設(shè)計(jì)端口都輸入到CPLD中。
本系統(tǒng)可以通過(guò)LabVIEW上位機(jī)復(fù)位DSP,并能夠?qū)崿F(xiàn)對(duì)DSP程序的HPI引導(dǎo)。其中通過(guò)主機(jī)復(fù)位DSP的設(shè)計(jì)部分尤為重要。下面為通過(guò)CPLD實(shí)現(xiàn)系統(tǒng)軟件復(fù)位的部分VHDL程序。
CODE<=′0′ when address(1)=′1′ and address(0)=′1′else ′1′;
DSPRESET<=CODE or CTL0;
在LabVIEW上位機(jī)中調(diào)用VISA控制輸入命令設(shè)置USB的地址總線GPIFADR[8:0]低兩位,在CPLD中進(jìn)行或運(yùn)算使DSPRESET為低電平,從而完成DSP復(fù)位。然后主機(jī)向HPIC中DSPINT位寫1,將DSP從復(fù)位狀態(tài)喚醒,DSP開(kāi)始執(zhí)行程序。
2 數(shù)據(jù)采集系統(tǒng)的軟件設(shè)計(jì)
2.1 USB固件程序設(shè)計(jì)
在本文中,USB芯片CY7C68013A采用GPIF模式進(jìn)行數(shù)據(jù)傳輸,該模式使用4個(gè)用戶定義的波形描述符來(lái)控制狀態(tài)機(jī),實(shí)現(xiàn)FIFO讀寫及單字節(jié)的數(shù)據(jù)讀寫操作[6]。采用Cypress提供的GPIF Designer軟件進(jìn)行波形圖設(shè)計(jì),設(shè)計(jì)時(shí),首先設(shè)計(jì)GPIF與外部器件的接口,然后再設(shè)計(jì)單字節(jié)寫、FIFO讀寫波形。其引腳配置如圖3所示。
GPIF單字節(jié)寫通過(guò)通道0向DSP中寫入32 bit控制數(shù)據(jù),本設(shè)計(jì)中GPIF單字節(jié)寫分為Sngwr1和Sngwr2,其中Sngwr1的數(shù)據(jù)波形圖如圖4所示。在SngWr1中HR/W在S0~S2狀態(tài)保持0以描述該操作為向HPI寫數(shù)據(jù),HHWIL在S0~S2狀態(tài)保持為0表示傳輸?shù)臄?shù)據(jù)為第一半字。在SngWr2中數(shù)據(jù)波形圖與SngWr1中基本一致,只是HHWIL在S0~S2狀態(tài)保持為1表示傳輸?shù)臄?shù)據(jù)為第二半字。
GPIF FIFO寫操作通過(guò)通道2向HPI RAM中寫入數(shù)據(jù),通過(guò)該操作可向DSP中寫入DSP程序;GPIF FIFO讀操作通過(guò)通道6讀取HPI RAM中數(shù)據(jù),然后在LabVIEW上位機(jī)顯示、存儲(chǔ)。當(dāng)波形圖設(shè)計(jì)完成后,生成相應(yīng)的波形描述文件gpif.c,加入到Keil工程中。在Keil工程中同時(shí)加入Cypress提供的基本固件框架結(jié)構(gòu),其中主函數(shù)文件主要執(zhí)行USB設(shè)備的各種初始化及其他自定義操作,功能實(shí)現(xiàn)文件進(jìn)行USB上電初始化和GPIF數(shù)據(jù)傳輸。然后將Keil的?滋Vision編譯環(huán)境下生成的hex文件轉(zhuǎn)換為USB上電自動(dòng)加載的程序文件,這樣當(dāng)USB設(shè)備連接到主機(jī)后,將自動(dòng)從主機(jī)下載固件程序。
2.2 USB驅(qū)動(dòng)程序設(shè)計(jì)
為了能夠在LabVIEW中識(shí)別該USB設(shè)備,本系統(tǒng)使用NI-VISA創(chuàng)建USB設(shè)備驅(qū)動(dòng)程序。虛擬儀器軟件架構(gòu)VISA(Virtual Instrument Software Architecture)是一種編程接口(API),基于它可以實(shí)現(xiàn)與各種儀器總線進(jìn)行通信。針對(duì)USB通信,VISA有兩種類函數(shù),可以分別控制 USB INSTR和USB RAW設(shè)備。符合USB測(cè)試與測(cè)量類(US-BTMC)協(xié)議的 USB 設(shè)備可以通過(guò)使用USB INSTR類函數(shù)來(lái)控制,USB RAW 則是除 USB INSTR 之外的所有 USB 設(shè)備。在該設(shè)計(jì)中,采用的USB是一種USB RAW設(shè)備。
利用Driver Wizard工具創(chuàng)建USB設(shè)備的驅(qū)動(dòng)程序,需要注意安裝順序。首先修改Cyload.inf文件,將VID和PID改為所用USB設(shè)備的VID和PID;待下載完固件程序后,系統(tǒng)會(huì)提示安裝驅(qū)動(dòng)程序,此時(shí)采用NI-VISA來(lái)創(chuàng)建驅(qū)動(dòng)程序;完成USB驅(qū)動(dòng)程序安裝后,便可以在計(jì)算機(jī)的設(shè)備管理器中查看到安裝后的USB設(shè)備,如圖5所示。
至此,該USB設(shè)備驅(qū)動(dòng)程序的安裝完成,在LabVIEW下便可以對(duì)USB設(shè)備進(jìn)行自由讀寫和數(shù)據(jù)傳輸了。
2.3 LabVIEW上位機(jī)程序設(shè)計(jì)
上位機(jī)程序界面如圖6所示。連接設(shè)備后,通過(guò)向通道0發(fā)送控制命令,通過(guò)通道2加載DSP程序,通過(guò)通道6將采集處理過(guò)的數(shù)據(jù)在LabVIEW上位機(jī)數(shù)據(jù)采集系統(tǒng)中顯示和保存。采用泰克公司的任意波形發(fā)生器產(chǎn)生模擬的熒光信號(hào)和多普勒信號(hào),在上位機(jī)中的數(shù)據(jù)波形顯示如圖6所示。
本文主要介紹了基于LabVIEW和USB2.0的DSP數(shù)據(jù)采集與處理系統(tǒng),通過(guò)LabVIEW上位機(jī)可以實(shí)現(xiàn)DSP復(fù)位、DSP程序HPI引導(dǎo)及數(shù)據(jù)的顯示、存儲(chǔ)和處理;同時(shí)采用USB接口設(shè)計(jì),使得該系統(tǒng)簡(jiǎn)單方便,能更好地適應(yīng)野外數(shù)據(jù)采集環(huán)境。該系統(tǒng)性能穩(wěn)定可靠,實(shí)用方便,操作簡(jiǎn)單,可以很好地完成數(shù)據(jù)處理任務(wù)。
參考文獻(xiàn)
[1] 沈蘭蓀.數(shù)據(jù)采集技術(shù)[M].合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,1990.
[2] 薛園園. USB應(yīng)用開(kāi)發(fā)技術(shù)大全[M]. 北京:人民郵電出版社,2006.
[3] 陳樹(shù)學(xué),劉萱.LabVIEW寶典[M].北京:電子工業(yè)出版社,2011.
[4] Texas Instruments Incorporated.TMS320C6713B data book[R]. Revised June 2006.
[5] Cypress Semiconductor Corporation. CY7C68013 EZ-USB FX2 USB microcontroller data sheet rev[R]. 21 June 2002.
[6] 薛園園,趙建領(lǐng). USB應(yīng)用開(kāi)發(fā)寶典[M].北京:人民郵電出版社,2011.