基于LABVIEW的USB接口多路高速數據采集系統的設計
引言
本文引用地址:http://dyxdggzs.com/article/90450.htm在日常的測試測量中,經(jīng)常使用數據采集卡采集數據。但是很多數據采集卡往往通過(guò)PCI總線(xiàn)完成數據的傳輸,它有諸多弊端,例如操作不便,受限于計算機插槽數量和中斷資源,現場(chǎng)信號對計算機安全有威脅,計算機內部的強電磁干擾對被測信號也會(huì )造成很大的影響,最耗時(shí)最復雜的數據分析卻由用戶(hù)通過(guò)第三方軟件(如VC,VB等) 在PC機上編寫(xiě)上位機軟件來(lái)完成,因此用戶(hù)不得不在這方面花費大量精力。這些問(wèn)題都遏制了基于PCI總線(xiàn)的數據采集系統的進(jìn)一步開(kāi)發(fā)和應用,因此迫切需要設計一種更為簡(jiǎn)便通用的高速數據采集通信系統來(lái)完成數據采集以及與計算機的數據交互。
近年來(lái)通用串行總線(xiàn)(USB)以即插即用等技術(shù)優(yōu)勢得到了廣泛的應用,INTEL等公司最近公布了USB 3.0主控制器規范,該標準的數據傳輸速率有望達5Gbps,且支持雙向同時(shí)傳輸,完全可以滿(mǎn)足實(shí)時(shí)數據采集的要求。LABVIEW是美國NI公司基于圖形化編程語(yǔ)言的虛擬儀器開(kāi)發(fā)環(huán)境,內置信號采集、測量分析與數據顯示功能,集開(kāi)發(fā)、調試、運行于一體,其交互式的Express VI 易與各種范圍的I/O信號連接,可以非常容易地與各種主流的現場(chǎng)總線(xiàn)通信以及與大多數通用數據庫鏈接,大大簡(jiǎn)化了開(kāi)發(fā)進(jìn)程。如果根據DSP本身的特點(diǎn),把DSP集成到采集卡上,并把數據采集和部分數據處理工作留給DSP來(lái)完成,然后計算機再利用LABVIEW強大的數據處理顯示功能,這無(wú)疑將大大提高測量速度和精度。
系統總體設計方案
本文提出了一種基于LABVIEW的USB接口高速數據采集系統的設計,充分利用DSP豐富的片上外設以及高性能的數字信號處理能力,將采集的數據經(jīng)DSP處理后通過(guò)高速USB接口傳輸到PC機上,通過(guò)LABVIEW軟件按照用戶(hù)的特定要求來(lái)處理并顯示。
TMS320F2812型DSP芯片是TI公司推出的具有高速處理能力的高精度32位定點(diǎn)數字信號控制器,指令速度高達150MIPS,片內集成了模數轉換器(A/D轉換器)、脈寬調制電路、捕獲單元、光電編碼器、串行外設接口等模塊,為進(jìn)一步拓展DSP的應用領(lǐng)域提供了豐富的資源。本設計采用TMS320F2812芯片(DSP)作為數據采集與控制單元,以CYPRESS公司的高速USB接口芯片CY7C68001為基礎,利用DSP片上A/D轉換器采集數據,經(jīng)處理后把數據通過(guò)USB總線(xiàn)傳輸至PC機,PC機接收到數據后按照用戶(hù)的要求通過(guò)LABVIEW處理并顯示數據。該系統主要有三部分組成:4通道被測信號調理部分、數據采集控制處理部分和上位機控制面板部分,系統總體框圖如圖1所示。
系統硬件設計
信號調理模塊
由于被測輸入信號范圍為-15V~+15V,而DSP片上高速A/D轉換器要求輸入信號必須為0~3V,所以需要對被測信號進(jìn)行調理。
信號調理模塊主要由高速運算放大器AD8028組成。很多運放都有這樣一個(gè)特點(diǎn):當輸入信號接近門(mén)檻電壓時(shí),輸出從一個(gè)差分對到另一個(gè)差分對變換時(shí)會(huì )產(chǎn)生失真,再加上信號調理模塊對輸入信號衰減的比例很大,如果設計不當誤差會(huì )更大,因此運放的選擇非常關(guān)鍵。AD8028是Analog Devices公司的軌到軌輸入輸出的高速運算放大器,工作電壓2.7V-12V,共模抑制比110dB,帶寬190MHz,壓擺率100V/μS,它有一個(gè)突出的優(yōu)點(diǎn):即允許用戶(hù)通過(guò)片上特定的引腳選擇門(mén)檻電壓,這無(wú)疑大大減小了失真,因此AD8028是一個(gè)理想的選擇,其單通道信號調理模塊電路圖如圖2所示。
數據采集模塊
DSP片上ADC模塊是可配置為2個(gè)獨立的8通道模塊、也可以級聯(lián)構成一個(gè)16通道的帶流水線(xiàn)的12位ADC,最高采樣速率12.5MHz,流水線(xiàn)轉換時(shí)間是80ns,單次轉換時(shí)間是200ns。該模塊主要由前向模擬多路復用開(kāi)關(guān)、采樣/保持電路、變換內核、結果寄存器、排序器、電壓參考等部分組成,ADC模塊的功能框圖如圖3所示。
USB從接口CY7C68001模塊
CY7C68001集成有USB2.0收發(fā)器(物理層)、USB2.0串行接口引擎SIE(鏈路層)、4kB的FIFO和電壓調節器、鎖相環(huán),支持高速(480Mb/s)或全速(12Mb/s)傳輸,3.3V操作電壓,具有同步與異步的FIFO接口,支持USB2.0協(xié)議要求的全部4種傳輸方式(控制傳輸、中斷傳輸、批量傳輸和同步傳輸),可以滿(mǎn)足用戶(hù)對各種數據傳輸方式的需求。片上的串行接口處理器(SIE)能完成大部分的USB協(xié)議操作,使用戶(hù)可以擺脫復雜的協(xié)議細節,簡(jiǎn)化用戶(hù)配置代碼,加快程序開(kāi)發(fā)過(guò)程。但是由于不帶MCU內核,所以USB應用層協(xié)議應該由DSP編程實(shí)現,USB固件的加載必須靠DSP控制來(lái)完成。
本設計將CY7C68001映射為DSP的外設,占用DSP的外擴區域XINTF0空間,地址分配如下:FIFO2,FIFO4,FIFO6,FIFO8和命令口的地址分別為000,001,010,011,100,采用并行異步讀寫(xiě)方式完成二者之間數據和命令的交換。當CY7C68001的地址線(xiàn)FIFOADR[2:0]為100時(shí),選中CY7C68001的命令口,通過(guò)CY7C68001的命令口,可以訪(fǎng)問(wèn)其內部37個(gè)寄存器、Endpoint0緩沖器(64個(gè)字節FIFO)和描述表(500個(gè)字節FIFO)等。CY7C68001中斷信號INT#和4個(gè)狀態(tài)信號READY、FLAGA、FLAGB、FLAGC分別與DSP的外部中斷1 (XINT1), GPIOA0,GPIOA1,GPIOA2,GPIOA3相連。在實(shí)際應用中,由于通信速度達480Mb/s,所以要對電源進(jìn)行退耦處理, 另外CY7C68001最好使用24MHz有源晶振以增強系統的抗干擾能力,硬件電路圖如圖4所示。
系統軟件設計
傳統的開(kāi)發(fā)USB應用系統的步驟是:先用Windows DDK(設備驅動(dòng)程序開(kāi)發(fā)包)或第三方開(kāi)發(fā)工具(如Driver Studio)開(kāi)發(fā)USB驅動(dòng)程序,然后用Visual C++編寫(xiě)DLL(動(dòng)態(tài)連接庫),最后再調用DLL來(lái)開(kāi)發(fā)應用程序。本文介紹一種簡(jiǎn)單快速開(kāi)發(fā)USB接口應用系統的方法,它直接在LABVIEW環(huán)境下通過(guò)NI-VISA開(kāi)發(fā)能驅動(dòng)用戶(hù)USB系統的應用程序,完全避開(kāi)了以前開(kāi)發(fā)USB驅動(dòng)程序的復雜性,大大縮短了開(kāi)發(fā)周期。
LABVIEW及其對VISA的調用
VISA(Virtual Instrument Software Architecture)是一個(gè)用來(lái)與各種儀器總線(xiàn)進(jìn)行通訊的高級應用編程接口(API),不受平臺、總線(xiàn)和環(huán)境的限制,可用來(lái)對USB、GPIB、串口、VXI、PXI和以太網(wǎng)系統進(jìn)行配置、編程和調試。當進(jìn)行USB通信時(shí),VISA提供了兩類(lèi)函數供LABVIEW調用:USB INSTR設備與USB RAW設備。USB INSTR設備是符合USBTMC協(xié)議的USB設備,可以通過(guò)使用USB INSTR類(lèi)函數控制,通信時(shí)無(wú)需配置NI-VISA;而USB RAW設備是指除了明確符合USBTMC規格的儀器之外的任何USB設備,通信時(shí)要配置NI-VISA。
(1)配置NI-VISA的步驟
?、偈褂肈river Development wizard(驅動(dòng)程序開(kāi)發(fā)向導)創(chuàng )建INF文檔;
?、诎惭bINF文檔,并安裝使用INF文檔的USB設備;
?、凼褂肗I-VISA Interactive Control(NI-VISA互動(dòng)控制工具)對設備進(jìn)行測試,以證實(shí)USB設備已正確安裝,并獲得USB設備的各屬性值。
(2)與Nl-VISA相配合的LABVIEW模板中VI子節點(diǎn)
ViOpen,打開(kāi)并指定VISA resource name的設備的連接;
ViProperty,VISA設備的屬性子節點(diǎn),可以設置端點(diǎn)或傳輸方式;
ViWrite,向VISA resource name指定的設備寫(xiě)入數據;
ViRead,從VISA resource name指定的設備讀出數據;
ViClose,結束設備讀寫(xiě)并關(guān)閉與指定設備的連接。
(3)USB RAW設備讀寫(xiě)的操作
USB RAW設備的讀寫(xiě)流程圖如圖5所示。
前面板部分
LABVIEW是NI公司開(kāi)發(fā)的一種基于圖形程序的編程語(yǔ)言,用戶(hù)利用創(chuàng )建和調用子程序的方法編寫(xiě)程序,使創(chuàng )建的程序模塊化且編制簡(jiǎn)單直觀(guān)。一個(gè)LABVIEW程序分為3部分;前面板、框圖程序和圖標/接線(xiàn)端口。前面板提供與用戶(hù)交互的圖形化界面,通過(guò)面板上的各種按鈕、開(kāi)關(guān)等控件可以實(shí)現對整個(gè)系統的操作或控制;實(shí)時(shí)波形顯示窗口能對產(chǎn)生的信號波形進(jìn)行預覽和監視。還可以通過(guò)LABVIEW波形顯示器自帶的功能對波形進(jìn)行觀(guān)察和測量,對穩定的周期信號可以直接準確地讀出幅值和頻率,采集的正弦波波形如圖6所示
結束語(yǔ)
隨著(zhù)電子計算機的廣泛應用,社會(huì )的數字化程度越來(lái)越高,數據采集也越來(lái)越重要,本系統是一種通用的高速數據采集系統,可用于生物電波、電子學(xué)頻譜、聲波分析等瞬態(tài)信號的實(shí)時(shí)采集和觀(guān)察等場(chǎng)合。其中基于USB總線(xiàn)的高速數據采集系統具有可靠性高、數據不丟失、抗干擾性強、便于數據傳輸和處理等優(yōu)點(diǎn),因而具有良好的應用前景和實(shí)用價(jià)值。
c++相關(guān)文章:c++教程
模數轉換器相關(guān)文章:模數轉換器工作原理
評論