技術(shù)領(lǐng)域
本發(fā)明涉及一種高性能數(shù)據(jù)采集卡及數(shù)據(jù)采集方法,具體涉及一種基于VISA技術(shù)的數(shù)據(jù)采集卡及數(shù)據(jù)采集方法,具有兩路信號(hào)采集和一路信號(hào)生成通道,用于實(shí)現(xiàn)對(duì)數(shù)據(jù)的采集測試。
背景技術(shù):
數(shù)據(jù)采集系統(tǒng)的任務(wù)是采集通過傳感器輸出的模擬信號(hào),然后將采集的模擬信號(hào)轉(zhuǎn)換成可被計(jì)算機(jī)識(shí)別的數(shù)字信號(hào),再將數(shù)字信號(hào)送入計(jì)算機(jī)處理,數(shù)據(jù)采集系統(tǒng)的精度和速度是決定系統(tǒng)性能好壞的重要因素。目前國內(nèi)外市場上的數(shù)據(jù)采集產(chǎn)品多為以單片機(jī)、DSP或者FPGA作為采集系統(tǒng)的控制中心,以PCI、PXI總線作為通訊總線的采集設(shè)備。這類采集卡受其總線的限制,易受主機(jī)內(nèi)其他器件的電磁干擾并且不具有良好的便攜性,而且通用性不強(qiáng),不利于工程師進(jìn)行二次開發(fā)。
數(shù)據(jù)采集在產(chǎn)品開發(fā)中具有重要的作用,提高數(shù)據(jù)采集的通用性,使用模塊化的數(shù)據(jù)采集卡,可以減少多種產(chǎn)品開發(fā)中數(shù)據(jù)采集部分的重復(fù)開發(fā)。
技術(shù)實(shí)現(xiàn)要素:
為解決現(xiàn)有技術(shù)中的不足,本發(fā)明旨在提供一種通用性較強(qiáng)的數(shù)據(jù)采集模塊,減少重復(fù)開發(fā)。
本發(fā)明設(shè)計(jì)了一種高性能的數(shù)據(jù)采集卡,采用USB總線,使用VISA接口開發(fā)數(shù)據(jù)采集卡可解決協(xié)議開放的問題,降低驅(qū)動(dòng)開發(fā)難度,減少開發(fā)周期。本數(shù)據(jù)采集性能高,信號(hào)采樣率達(dá)到200Mbps,精度高達(dá)16位。上位機(jī)采用VISA技術(shù),完美支持Labview、CVI等開發(fā)平臺(tái)。并提供豐富的底層VI函數(shù),方便工程師們進(jìn)行二次開發(fā)。
本發(fā)明采用的技術(shù)方案是:
一種基于VISA技術(shù)的數(shù)據(jù)采集卡,所述數(shù)據(jù)采集卡包括數(shù)據(jù)采集模塊、USB通信模塊和上位機(jī)驅(qū)動(dòng)模塊,數(shù)據(jù)采集模塊對(duì)USB通信模塊進(jìn)行配置,并將外圍模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)后傳送給USB通信模塊,USB通信模塊和數(shù)據(jù)采集模塊進(jìn)行數(shù)據(jù)交換,USB通信模塊將從數(shù)據(jù)采集模塊接受到的數(shù)據(jù)發(fā)送給上位機(jī)驅(qū)動(dòng)模塊。
進(jìn)一步地,所述數(shù)據(jù)采集模塊包括FPGA和ADC,F(xiàn)PGA對(duì)USB通信模塊進(jìn)行配置,ADC將外圍模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào),數(shù)據(jù)采集模塊根據(jù)上位機(jī)命令找到觸發(fā)點(diǎn),將數(shù)據(jù)取出并寫入到USB通信模塊芯片緩沖區(qū)。
進(jìn)一步地,所述USB通信模塊采用CY68013芯片,所述CY68013芯片包括USB總線控制器、8051內(nèi)核和FIFO模塊,F(xiàn)PGA異步FIFO模塊通過異步FIFO與CY68013芯片F(xiàn)IFO模塊進(jìn)行數(shù)據(jù)交換,F(xiàn)IFO模塊與USB總線控制器進(jìn)行數(shù)據(jù)交換,USB總線控制器將數(shù)據(jù)傳輸給8051內(nèi)核,8051內(nèi)核通過拓展RAM總線將數(shù)據(jù)寫入到FPGA的RAM模塊中。
進(jìn)一步地,所述CY68013芯片傳輸結(jié)構(gòu)采用2級(jí)緩存的方式;設(shè)置EP2端口為IN端口、1024 Bit寬度、2級(jí)緩存;設(shè)置EP6端口和EP8端口為OUT端口、512 Bit寬度、2級(jí)緩存。
進(jìn)一步地,EP6端口用于信號(hào)發(fā)生器的數(shù)據(jù)傳輸,EP8端口用于數(shù)據(jù)采集卡數(shù)據(jù)的傳輸。
進(jìn)一步地,8051內(nèi)核檢測EP8端口的數(shù)據(jù),對(duì)數(shù)據(jù)進(jìn)行解析,通過拓展RAM總線將數(shù)據(jù)存到FPGA的RAM模塊中,F(xiàn)PGA通過訪問RAM模塊實(shí)施動(dòng)作,比如設(shè)置觸發(fā)點(diǎn)和采樣率。
進(jìn)一步地,所述上位機(jī)驅(qū)動(dòng)模塊采用VISA技術(shù),通過編程完成對(duì)USB通信模塊硬件部分的配置,上位機(jī)驅(qū)動(dòng)模塊將所述數(shù)據(jù)采集卡的功能進(jìn)行封裝,為用戶提供數(shù)據(jù)采集與配置接口。
進(jìn)一步地,所述FPGA包括USB_RAM模塊、DAQ_Control模塊和FIFO_Write模塊;USB_RAM模塊實(shí)現(xiàn)CY68013芯片的外部RAM時(shí)序,并將第0號(hào)地址的數(shù)據(jù)給DAQ_Control模塊用做觸發(fā)點(diǎn);DAQ_Control模塊找到觸發(fā)點(diǎn)后開始以觸發(fā)點(diǎn)為中心,分別向前、后各取512個(gè)點(diǎn),組成1024個(gè)點(diǎn)的波形,傳遞給FIFO_Write模塊進(jìn)行發(fā)送。
本發(fā)明與現(xiàn)有技術(shù)相比,其有益效果在于:
(1)本數(shù)據(jù)采集卡開發(fā)難度低,通用性強(qiáng)。
(2)信號(hào)采樣率高,達(dá)到200Mbps,精度高,精度高達(dá)16位。
(3)支持多平臺(tái)應(yīng)用,方便二次開發(fā)。上位機(jī)采用VISA技術(shù),完美支持Labview、CVI等開發(fā)平臺(tái)。并提供豐富的底層VI函數(shù),方便工程師們進(jìn)行二次開發(fā)。
附圖說明
圖1是系統(tǒng)構(gòu)成原理圖;
圖2是數(shù)據(jù)采集卡的USB芯片的主要架構(gòu);
圖3是數(shù)據(jù)采集模塊中FPGA部分的程序架構(gòu)。
具體實(shí)施方式
現(xiàn)結(jié)合實(shí)施例、附圖對(duì)本發(fā)明作進(jìn)一步描述。應(yīng)理解,以下實(shí)施例僅用于說明本發(fā)明而非用于限定本發(fā)明的范圍。
圖1為系統(tǒng)構(gòu)成原理圖,本發(fā)明一種基于VISA技術(shù)的通用性數(shù)據(jù)采集卡包括數(shù)據(jù)采集模塊、USB通信模塊、上位機(jī)驅(qū)動(dòng)模塊。
所述數(shù)據(jù)采集模塊包括FPGA和ADC兩部分,主要是實(shí)現(xiàn)模擬量轉(zhuǎn)化為數(shù)字量,同時(shí)根據(jù)上位機(jī)命令找到觸發(fā)點(diǎn),將有用數(shù)據(jù)取出并寫入到USB芯片的緩存區(qū)。
所述USB通信模塊使用CYPRESS的經(jīng)典芯片68013-56PIN,主要是實(shí)現(xiàn)USB通信的傳輸,實(shí)現(xiàn)USB芯片的傳輸初始化配置。其增強(qiáng)型8051內(nèi)核通過監(jiān)視配置通道的數(shù)據(jù),將相關(guān)參數(shù)配置寫入到FPGA的硬件配置器中。
所述上位機(jī)驅(qū)動(dòng)模塊采用VISA技術(shù),通過編程可完成對(duì)USB通信的硬件部分進(jìn)行配置,同時(shí)將采集卡的功能進(jìn)行封裝,給用戶方便的數(shù)據(jù)采集與配置接口。
數(shù)據(jù)采集模塊采用FPGA對(duì)USB通信模塊的8051內(nèi)核進(jìn)行配置,并將外圍模擬信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)傳送給USB通信模塊,USB通信模塊和FPGA進(jìn)行數(shù)據(jù)交換,將接收到的數(shù)據(jù)發(fā)送給上位機(jī)。
圖2為數(shù)據(jù)采集卡的USB芯片的主要架構(gòu),CY68013芯片由三部分構(gòu)成:USB總線控制器,8051內(nèi)核,F(xiàn)IFO模塊。其和FPGA的交互如圖中所示。
CY68013芯片的整個(gè)傳輸結(jié)構(gòu)采用2級(jí)緩存的方式,由于數(shù)據(jù)從采集卡向上位機(jī)傳輸?shù)臄?shù)據(jù)比較大,所以在TD_Init函數(shù)中把EP2設(shè)置成IN端口,1024 Bit寬度,2級(jí)緩存。EP6和EP8端口配置成OUT端口,512 Bit寬度、2級(jí)緩存。其中EP6用于信號(hào)發(fā)生器的數(shù)據(jù)傳輸,EP8用于采集卡配置數(shù)據(jù)的傳輸。
同時(shí)配置FIFO模塊的工作模式,設(shè)定其FIFO緩沖區(qū)級(jí)數(shù)及長度等參數(shù)。
對(duì)FPGA的配置,也就是EP8端口,是通過8051的外部RAM總線實(shí)現(xiàn)的。所以8051內(nèi)核TD_PULL函數(shù)要檢測EP8端口的數(shù)據(jù),并解析相關(guān)數(shù)據(jù)存到FPGA的RAM模塊中。FPGA通過訪問這個(gè)RAM模塊中的相關(guān)位,實(shí)施相關(guān)動(dòng)作。比如設(shè)置開始采集的觸發(fā)點(diǎn)、采樣率等。外部RAM的存儲(chǔ)使用時(shí)候先用xdata關(guān)鍵字定義一個(gè)變量,地址定義到0x4000—0xE000之間,8051認(rèn)為的0x4000—0xE000地址在物理層上對(duì)應(yīng)的是FPGA組成的RAM的0x0000—0x8000。當(dāng)對(duì)一個(gè)變量(地址定義到0x4000—0xE000)進(jìn)行賦值時(shí),單片機(jī)的地址線和數(shù)據(jù)線就會(huì)自動(dòng)的將數(shù)據(jù)寫入到FPGA內(nèi)部的RAM之中。然后,F(xiàn)PGA再根據(jù)之前約定好的,哪個(gè)位代表什么意思,來做出相應(yīng)的設(shè)置。
圖3為數(shù)據(jù)采集模塊中FPGA部分的程序架構(gòu),F(xiàn)PGA部分主要分為3大模塊,7小模塊。具體如圖中所示,USB_RAM實(shí)現(xiàn)68013的外部RAM時(shí)序,并將第0號(hào)地址的數(shù)據(jù)給DAQ_Control用做觸發(fā)點(diǎn);DAQ_Control模塊是整個(gè)FPGA的核心模塊,主要功能是根據(jù)觸發(fā)值,尋找開始采集的觸發(fā)點(diǎn),當(dāng)找到觸發(fā)點(diǎn)后開始以觸發(fā)點(diǎn)為中心,分別向前、后各取512個(gè)點(diǎn)。組成1024個(gè)點(diǎn)的波形,傳遞給FIFO_Write進(jìn)行發(fā)送。硬件上,DATA數(shù)據(jù)線是數(shù)據(jù)采集卡與外部被測信號(hào)的連接線,包括8根數(shù)據(jù)線和一路CLK信號(hào)。這個(gè)信號(hào)可用NI板卡PCI-6602產(chǎn)生。
DAQ_Control模塊由四個(gè)小模塊構(gòu)成,RAM模塊是波形的動(dòng)態(tài)存儲(chǔ)器,主要負(fù)責(zé)動(dòng)態(tài)存儲(chǔ)波形數(shù)據(jù)。
DAQ_Control中的Write_RAM將從PCI-6602發(fā)出的數(shù)字波形循環(huán)的存儲(chǔ)到RAM中。
Find_Trig模塊主要是尋找觸發(fā)點(diǎn),其中觸發(fā)點(diǎn)由USB_RAM提供。找到后告知Find_Star。具體來說就是在Write_RAM模塊存數(shù)的同時(shí),負(fù)責(zé)簡述數(shù)據(jù)是否穿越到觸發(fā)點(diǎn)。當(dāng)找到觸發(fā)點(diǎn)后,F(xiàn)ind_Trig通知Find_Star。
Find_Star的功能是檢測數(shù)據(jù)是否采集完成,采集完成后,通知FIFO_Write可以開始發(fā)送,具體來說為接受到“找到觸發(fā)”信號(hào)后,開始記錄當(dāng)前的RAM位置X,并開始監(jiān)視RAM的地址線。當(dāng)RAM存儲(chǔ)到x+511的位置時(shí),F(xiàn)ind_Star將DAQ_Control停止,RAM內(nèi)容鎖死。同時(shí)將x-512的位置和已經(jīng)采樣結(jié)束的信號(hào)通知FIFO_Write。
FIFO_Write接受到采樣已經(jīng)結(jié)束的信號(hào)后,便由x-512開始從RAM中取數(shù)利用FIFO時(shí)序通過68013的USB通道將數(shù)據(jù)傳輸給上位機(jī)。一直傳到x+511,F(xiàn)IFO_Write將DAQ_Control復(fù)位,DAQ_Control開始下一次數(shù)據(jù)采集。
Labview程序主要分兩部分:數(shù)字波形發(fā)生和波形顯示。數(shù)字波形發(fā)生主要是控制NI板卡PCI-6602產(chǎn)生一路8位并行數(shù)字正弦波形。波形顯示部分就是讀取USB的數(shù)據(jù),將采集卡采集到的數(shù)據(jù)解析成波形顯示出來。
需要說明的是,上文只是對(duì)本發(fā)明進(jìn)行示意性說明和闡述,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)明白,對(duì)本發(fā)明的任意修改和替換都屬于本發(fā)明的保護(hù)范圍。