專(zhuān)利名稱(chēng):一種多速率多通道數(shù)據(jù)采集方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電磁信號(hào)監(jiān)測(cè)技術(shù)領(lǐng)域,具體說(shuō)是一種多速率多通道數(shù)據(jù)采集方法。
背景技術(shù):
在電磁信號(hào)監(jiān)測(cè)領(lǐng)域,對(duì)感興趣的音頻信號(hào)監(jiān)聽(tīng)并記錄是一項(xiàng)重要的功能,數(shù)字 信號(hào)處理技術(shù)和FPGA(Field Programmable Gate Array,現(xiàn)場(chǎng)可編程門(mén)陣列)芯片的發(fā) 展,使得在一段頻域內(nèi),對(duì)多個(gè)信號(hào)同時(shí)進(jìn)行采集處理并記錄變?yōu)榭赡?。在某?xiàng)電磁信號(hào)監(jiān) 測(cè)設(shè)備中,采取了這樣一項(xiàng)技術(shù)采取高速采樣,實(shí)時(shí)分析40MHz帶寬內(nèi)信號(hào)的頻譜,基于 信號(hào)的頻譜,篩選感興趣信號(hào),信號(hào)有兩個(gè)參數(shù),頻率和帶寬,對(duì)感興趣信號(hào)進(jìn)行信號(hào)數(shù)據(jù) 記錄,可同時(shí)記錄多達(dá)36個(gè)(36路)感興趣的音頻信號(hào)。信號(hào)記錄的處理過(guò)程為A/D采 樣數(shù)據(jù)根據(jù)頻率進(jìn)行數(shù)字變頻,根據(jù)帶寬進(jìn)行濾波抽取,每一個(gè)信號(hào)都被這樣處理,最后多 個(gè)信號(hào)形成多路數(shù)據(jù),也被稱(chēng)為多個(gè)通道的數(shù)據(jù)信號(hào)。本技術(shù)需要解決利用DSP(Digital Signal Processing,數(shù)字信號(hào)處理)芯片對(duì)多個(gè)通道的數(shù)據(jù)信號(hào)的合理讀取?,F(xiàn)有的技術(shù)一般是記錄一個(gè)或者三四個(gè)通道的信號(hào)數(shù)據(jù)。每個(gè)通道采取雙口 RAM(隨機(jī)存取存儲(chǔ)器)或者FIFO(先進(jìn)先出)存儲(chǔ)器作為通信接口,通信接口分配不同的 讀取地址,利用中斷機(jī)制,通知DSP芯片讀取相應(yīng)通道的數(shù)據(jù)。其原理圖如圖1所示。在圖 1中,N個(gè)(N = 1 4)通道的數(shù)據(jù)對(duì)應(yīng)N個(gè)存儲(chǔ)器(雙口 RAM或FIFO存儲(chǔ)器)作為與DSP 芯片的通信接口,當(dāng)每個(gè)通信接口數(shù)據(jù)緩沖到一定程度就會(huì)發(fā)出中斷信號(hào),DSP芯片響應(yīng)后 通過(guò)尋址讀取相應(yīng)通道的數(shù)據(jù)。其缺點(diǎn)是DSP芯片的總線驅(qū)動(dòng)能力不夠,可以同時(shí)搜集的通道數(shù)量N不超過(guò)8 個(gè),并且需要DSP芯片頻繁的響應(yīng)中斷,造成DSP芯片程序運(yùn)算效率低,還要避免中斷的沖突。
發(fā)明內(nèi)容
針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種多速率多通道數(shù)據(jù)采集 方法,在通過(guò)DSP芯片讀取數(shù)據(jù)時(shí)可同時(shí)直接對(duì)36路音頻數(shù)據(jù)進(jìn)行搜集,每路數(shù)據(jù)的數(shù)據(jù) 率可不同,每路數(shù)據(jù)的最大數(shù)據(jù)率為500kHz,所述數(shù)據(jù)為復(fù)數(shù),復(fù)數(shù)實(shí)部用I表示,虛部用Q 表示,I、Q數(shù)據(jù)位寬各為24位。為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是—種多速率多通道數(shù)據(jù)采集方法,其特征在于1)通道的數(shù)據(jù)為復(fù)數(shù),復(fù)數(shù)實(shí)部用I表示,虛部用Q表示,I、Q數(shù)據(jù)位寬各為24 位,先將36路通道的數(shù)據(jù)隨路編碼將通道的數(shù)據(jù)由48位位寬拓展為54位,高6位用于編 碼,在讀取通道的數(shù)據(jù)時(shí),根據(jù)高6位編碼的不同分辨是哪路通道的數(shù)據(jù);2)第一次通道分組第一層36路通道分別通過(guò)一個(gè)第一級(jí)FIFO存儲(chǔ)器緩存數(shù) 據(jù),將36路第一級(jí)FIFO存儲(chǔ)器每6個(gè)分為一組,共分為6組,以組為單位分別匯集第一級(jí) FIFO存儲(chǔ)器的輸出到一個(gè)第二級(jí)FIFO存儲(chǔ)器,并且每組配置一個(gè)用于控制數(shù)據(jù)讀取的第一級(jí)控制器,第一級(jí)控制器每次讀取的數(shù)據(jù)為32個(gè),6個(gè)第二級(jí)FIFO存儲(chǔ)器的輸出作為第 二層6個(gè)通道;3)第二次通道分組將第二層6個(gè)通道作為一組,以組為單位匯集第二級(jí)FIFO存 儲(chǔ)器的輸出到一個(gè)第三級(jí)FIFO存儲(chǔ)器,并且配置一個(gè)用于控制數(shù)據(jù)讀取的第二級(jí)控制器, 第二級(jí)控制器每次讀取的數(shù)據(jù)為64個(gè),4) DSP芯片與第三級(jí)FIFO存儲(chǔ)器之間直接連接,且第三級(jí)FIFO存儲(chǔ)器將半滿(mǎn)標(biāo)志 位作為一個(gè)中斷信號(hào),DSP芯片根據(jù)此中斷信號(hào)讀取第三級(jí)FIFO存儲(chǔ)器內(nèi)的數(shù)據(jù)。在上述技術(shù)方案的基礎(chǔ)上,所述各級(jí)FIFO存儲(chǔ)器為基于FPGA的FIFO存儲(chǔ)器,所 述各級(jí)控制器為基于FPGA的控制器。在上述技術(shù)方案的基礎(chǔ)上,所述DSP芯片的型號(hào)為ADSP-TS201S。在上述技術(shù)方案的基礎(chǔ)上,第一級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X64,即數(shù)據(jù)寬度 54位,存儲(chǔ)深度64 ;第二級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X 128,即數(shù)據(jù)寬度54位,存儲(chǔ)深 度128 ;第三級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X2048,即數(shù)據(jù)寬度54位,存儲(chǔ)深度2048。在上述技術(shù)方案的基礎(chǔ)上,所述第一級(jí)控制器的輸入信號(hào)包括1個(gè)運(yùn)行時(shí)鐘信號(hào)clk50M,頻率50MHz,6個(gè)半滿(mǎn)標(biāo)志信號(hào)flagl flag6,半滿(mǎn)標(biāo)志信號(hào)的數(shù)量與其管理的第一級(jí)FIFO 存儲(chǔ)器的數(shù)量相同,所述第一級(jí)控制器的輸出信號(hào)包括6個(gè)讀時(shí)鐘信號(hào)clkoutl clkout6,第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀時(shí)鐘信號(hào),運(yùn) 行時(shí)鐘信號(hào)clk50M取反后,分別和讀使能信號(hào)en_l en_6相與,輸出即為clkoutl clkout6,6個(gè)讀使能信號(hào)en_l en_6,第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀使能信號(hào),1個(gè)寫(xiě)時(shí)鐘信號(hào)clkout,第二級(jí)FIFO存儲(chǔ)器的寫(xiě)時(shí)鐘信號(hào),讀時(shí)鐘信號(hào) clkoutl clkout6相或,輸出即為寫(xiě)時(shí)鐘信號(hào)clkout。在上述技術(shù)方案的基礎(chǔ)上,所述第二級(jí)控制器的輸入信號(hào)包括1個(gè)運(yùn)行時(shí)鐘信號(hào)clk50M,頻率50MHz,6個(gè)半滿(mǎn)標(biāo)志信號(hào)flagl flag6,半滿(mǎn)標(biāo)志信號(hào)的數(shù)量與其管理的第二級(jí)FIFO 存儲(chǔ)器的數(shù)量相同,所述第二級(jí)控制器的輸出信號(hào)包括6個(gè)讀時(shí)鐘信號(hào)clkoutl clkout6,第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀時(shí)鐘信號(hào),運(yùn) 行時(shí)鐘信號(hào)clk50M取反后,分別和讀使能信號(hào)en_l en_6相與,輸出即為clkoutl clkout6,6個(gè)讀使能信號(hào)en_l en_6,第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀使能信號(hào),1個(gè)寫(xiě)時(shí)鐘信號(hào)clkout,第三級(jí)FIFO存儲(chǔ)器的寫(xiě)時(shí)鐘信號(hào),讀時(shí)鐘信號(hào) clkoutl clkout6相或,輸出即為寫(xiě)時(shí)鐘信號(hào)clkout。在上述技術(shù)方案的基礎(chǔ)上,所述各級(jí)控制器的檢測(cè)控制進(jìn)程的步驟為步驟1,以運(yùn)行時(shí)鐘信號(hào)clk50M的上升沿為觸發(fā),按優(yōu)先級(jí)為flagl flag6對(duì)半 滿(mǎn)標(biāo)志信號(hào)flagl flag6以?xún)?yōu)先級(jí)從高向低檢測(cè)flagl flag6信號(hào)的電平;步驟2,判斷半滿(mǎn)標(biāo)志信號(hào)flagl flag6是否存在高電平;
步驟3,當(dāng)檢測(cè)到半滿(mǎn)標(biāo)志信號(hào)f Iagl flag6之一為高電平時(shí),則屏蔽檢測(cè)功能, 計(jì)數(shù)器清零,轉(zhuǎn)步驟4,否則轉(zhuǎn)步驟1 ;步驟4,以運(yùn)行時(shí)鐘信號(hào)clk50M的上升沿為觸發(fā),計(jì)數(shù)器從零開(kāi)始計(jì)數(shù),當(dāng)計(jì)數(shù)值為4時(shí),置與為高電平的半滿(mǎn)標(biāo)志信號(hào)相應(yīng)的讀使能信號(hào)en輸出為高電 平,例如當(dāng)檢測(cè)到半滿(mǎn)標(biāo)志信號(hào)flag3為高電平,那么此時(shí)應(yīng)該執(zhí)行以下操作置與為高電 平的半滿(mǎn)標(biāo)志信號(hào)flag3相應(yīng)的讀使能信號(hào)en_3輸出為高電平,當(dāng)計(jì)數(shù)值為36時(shí),置與為高電平的半滿(mǎn)標(biāo)志信號(hào)相應(yīng)的讀使能信號(hào)en輸出為高 電平0,當(dāng)計(jì)數(shù)值計(jì)數(shù)為38時(shí),解除檢測(cè)功能的屏蔽。本發(fā)明所述的多速率多通道數(shù)據(jù)采集方法,在通過(guò)DSP芯片讀取數(shù)據(jù)時(shí)可同時(shí) 直接對(duì)36路音頻數(shù)據(jù)進(jìn)行搜集,每路數(shù)據(jù)的數(shù)據(jù)率可不同,每路數(shù)據(jù)的最大數(shù)據(jù)率為 500kHz,所述數(shù)據(jù)為復(fù)數(shù),復(fù)數(shù)實(shí)部用I表示,虛部用Q表示,I、Q數(shù)據(jù)位寬各為24位。與 現(xiàn)有技術(shù)相比,本發(fā)明采集數(shù)據(jù)的通道數(shù)更多,DSP芯片端口讀取數(shù)據(jù)的中斷關(guān)系簡(jiǎn)化。
本發(fā)明有如下附圖圖1現(xiàn)有技術(shù)的原理框圖,圖2本發(fā)明的原理框圖,圖3第一級(jí)控制器輸入輸出端口示意圖,圖4第一級(jí)控制器輸入輸出時(shí)序圖,圖5第一級(jí)控制器內(nèi)部連接圖,圖6第一級(jí)控制器內(nèi)部的檢測(cè)操作進(jìn)程的流程圖。
具體實(shí)施例方式以下結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。本發(fā)明通過(guò)將FIFO存儲(chǔ)器分層(分級(jí)),使多路不同速率的數(shù)據(jù)一層層的匯總,最 后匯總為一路數(shù)據(jù)。本發(fā)明的關(guān)鍵點(diǎn)是多路數(shù)據(jù)搜集采取的分層式先進(jìn)先出存儲(chǔ)器結(jié)構(gòu)匯 總數(shù)據(jù)。本發(fā)明所述方法的步驟可概括為1)先將36路通道的數(shù)據(jù)由48位拓展為54位,高6位用于通道編碼;2) 36路通道與第一級(jí)FIFO存儲(chǔ)器一對(duì)一緩存數(shù)據(jù),第一級(jí)FIFO存儲(chǔ)器6個(gè)為一 組,以組為單位匯集到一個(gè)第二級(jí)FIFO存儲(chǔ)器,并按組配置一個(gè)第一級(jí)控制器;3)將6個(gè)第二級(jí)FIFO存儲(chǔ)器為一組,以組為單位匯集到一個(gè)第三級(jí)FIFO存儲(chǔ)器, 并配置一個(gè)第二級(jí)控制器,4) DSP芯片與第三級(jí)FIFO存儲(chǔ)器直接連接,且根據(jù)第三級(jí)FIFO存儲(chǔ)器的半滿(mǎn)標(biāo)志 位讀取數(shù)據(jù)。結(jié)合圖2所示,本發(fā)明所述的多速率多通道數(shù)據(jù)采集方法,共分三個(gè)層面進(jìn)行數(shù) 據(jù)匯集通過(guò)3級(jí)的FIFO存儲(chǔ)器進(jìn)行數(shù)據(jù)緩存和匯集,第一級(jí)FIFO存儲(chǔ)器為36個(gè),用于緩 存36路通道的數(shù)據(jù),第二級(jí)FIFO存儲(chǔ)器為6個(gè),每個(gè)第二級(jí)FIFO存儲(chǔ)器用于緩存6個(gè)第 一級(jí)FIFO存儲(chǔ)器的數(shù)據(jù),第三級(jí)FIFO存儲(chǔ)器為1個(gè),第三級(jí)FIFO存儲(chǔ)器用于緩存6個(gè)第二級(jí)FIFO存儲(chǔ)器的數(shù)據(jù),DSP芯片直接讀取第三級(jí)FIFO存儲(chǔ)器內(nèi)的數(shù)據(jù)。以針對(duì)36路通道數(shù)據(jù),并且各通道數(shù)據(jù)的數(shù)據(jù)率不一樣為例,讀取這么多路通道 的數(shù)據(jù)看起來(lái)是麻煩的事情,本發(fā)明采取這樣的設(shè)計(jì)思想,類(lèi)似于河水流域匯集河水一樣, 多條小的支流匯集成一條支流,然后多條支流匯集成一條主干流,實(shí)現(xiàn)最終的數(shù)據(jù)讀取,其 具體過(guò)程如下1)通道的數(shù)據(jù)為復(fù)數(shù),復(fù)數(shù)實(shí)部用I表示,虛部用Q表示,I、Q數(shù)據(jù)位寬各為24 位,先將36路通道的數(shù)據(jù)隨路編碼。將通道的數(shù)據(jù)由48位位寬(I、Q各24位)拓展為54 位,高6位用于編碼,在讀取通道的數(shù)據(jù)時(shí),根據(jù)高6位編碼的不同分辨是哪路通道的數(shù)據(jù); 例如第一路通道編碼為000001,第二路通道編碼為000010,第三路通道編碼為000011,依 此類(lèi)推,高6位編碼的具體對(duì)應(yīng)關(guān)系可以根據(jù)實(shí)際需要設(shè)定,不做限定。這樣當(dāng)DSP芯片讀 取數(shù)據(jù)時(shí)可以分辨是哪路通道的數(shù)據(jù)。2)第一層36路通道分別通過(guò)一個(gè)第一級(jí)FIFO存儲(chǔ)器緩存數(shù)據(jù),將36路第一級(jí) FIFO存儲(chǔ)器每6個(gè)分為一組,共分為6組,以組為單位分別匯集第一級(jí)FIFO存儲(chǔ)器的輸出 到一個(gè)第二級(jí)FIFO存儲(chǔ)器,并且每組配置一個(gè)用于控制數(shù)據(jù)讀取的第一級(jí)控制器,即圖2 中的控制器1 6,第一級(jí)控制器每次讀取的數(shù)據(jù)為32個(gè),6個(gè)第二級(jí)FIFO存儲(chǔ)器的輸出 作為第二層6個(gè)通道;第一級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X64,即數(shù)據(jù)寬度54位,存儲(chǔ)深 度64。第二級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X 128,即數(shù)據(jù)寬度54位,存儲(chǔ)深度128。3)第二級(jí)FIFO存儲(chǔ)器只有6個(gè),存儲(chǔ)結(jié)構(gòu)為54 X 128,6個(gè)第二級(jí)FIFO存儲(chǔ)器的 輸出作為第二層6個(gè)通道,將第二層6個(gè)通道作為一組,以組為單位匯集第二級(jí)FIFO存儲(chǔ) 器的輸出到一個(gè)第三級(jí)FIFO存儲(chǔ)器,并且配置一個(gè)用于控制數(shù)據(jù)讀取的第二級(jí)控制器,即 圖2中的控制器7。這一層只有一個(gè)控制器7 (第二級(jí)控制器),第二級(jí)控制器的行為規(guī)范 和第一級(jí)控制器基本一致,只是第二級(jí)控制器每次讀取的數(shù)據(jù)為64個(gè)。4)第三級(jí)FIFO存儲(chǔ)器只有一個(gè),第三級(jí)FIFO存儲(chǔ)器與DSP芯片直接連接,第三 級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X2048,即數(shù)據(jù)寬度54位,存儲(chǔ)深度2048,第三級(jí)FIFO存 儲(chǔ)器將半滿(mǎn)標(biāo)志位作為一個(gè)中斷信號(hào),DSP芯片根據(jù)此中斷信號(hào)讀取第三級(jí)FIFO存儲(chǔ)器內(nèi) 的數(shù)據(jù),即DSP芯片每次讀取1024個(gè)數(shù)據(jù)。上述的各級(jí)FIFO存儲(chǔ)器、控制器均為FPGA內(nèi)邏輯設(shè)計(jì),即所述各級(jí)FIFO存儲(chǔ)器 為基于FPGA的FIFO存儲(chǔ)器,所述各級(jí)控制器為基于FPGA的控制器。例如FIF0存儲(chǔ)器適 用于Xilinx和Altera任何系列的FPGA。控制器同樣適用于Xilinx和Altera任何系列的 FPGA0不同公司的編程環(huán)境下,F(xiàn)IFO存儲(chǔ)器需要重新調(diào)用,因?yàn)檫@兩家公司(Xilinx和 Altera)的庫(kù)里都有FIFO庫(kù)函數(shù)。例如某型號(hào)的電磁信號(hào)分析儀課題中實(shí)現(xiàn)了此專(zhuān)利技 術(shù),當(dāng)時(shí)此專(zhuān)利技術(shù)的實(shí)現(xiàn)是在Altera公司的StratixIII系列EP3SE80F1152C4器件;開(kāi) 發(fā)軟件采用Altera公司的Quartus 11,版本號(hào)8. 0 ;調(diào)用的FIFO函數(shù)路徑C /quartus8. 0/ libraries/megafuctions/storage/sfifo。Quartus II 開(kāi)發(fā)禾呈·時(shí)帶白勺, FIFO函數(shù)就是調(diào)用庫(kù)里的一個(gè)兆功能核。調(diào)用時(shí)可以配置參數(shù),三層FIFO存儲(chǔ)器分別采用 54X64、54X128、54X2048存儲(chǔ)結(jié)構(gòu)的FIFO,調(diào)用時(shí)是采用相同的兆功能核(sfifo),只是 配置參數(shù)時(shí)存儲(chǔ)深度分別配置為64、128、2048??刂破鞯脑O(shè)計(jì)采用VHDL語(yǔ)言,控制器需要編寫(xiě)邏輯程序,Xilinx和Altera的
7FPGA開(kāi)發(fā)程序都支持VHDL語(yǔ)言。因?yàn)镕PGA程序不同于純軟件程序,采用流程圖不能很好 的表達(dá)設(shè)計(jì)思想。本發(fā)明的圖3和圖4分別為第一級(jí)控制器輸入輸出端口示意圖和第一級(jí) 控制器輸入輸出時(shí)序圖,并且詳細(xì)的描述了其行為規(guī)范,詳見(jiàn)下述。當(dāng)然,一級(jí)的FIFO存儲(chǔ) 器和控制器是有區(qū)別的,這種區(qū)別只是一個(gè)參數(shù)的不同。三級(jí)FIFO存儲(chǔ)器的區(qū)別是存儲(chǔ)深 度的不同,深度分別為64、128、2048,兩級(jí)控制器的區(qū)別是每次操作數(shù)據(jù)數(shù)量的不同,每次 操作數(shù)據(jù)的數(shù)量分別為32、64。描述第一級(jí)的控制器可以說(shuō)清第二級(jí)存儲(chǔ)器的行為規(guī)范。上述的DSP芯片可以選擇美國(guó)ADI公司的型號(hào)為ADSP-TS201S的DSP芯片。以下結(jié)合圖3和圖4,對(duì)第一級(jí)控制器的行為進(jìn)行描述,并給出了實(shí)例。圖5、圖6 分別為第一級(jí)控制器內(nèi)部結(jié)構(gòu)圖和內(nèi)部檢測(cè)操作進(jìn)程的流程圖。第一級(jí)控制器輸入,輸出 和內(nèi)部結(jié)構(gòu)如下輸入信號(hào)clk50M(運(yùn)行時(shí)鐘信號(hào),頻率50MHz),flagl flag6 (第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的半滿(mǎn)標(biāo)志信號(hào),半滿(mǎn)標(biāo)志信號(hào)的數(shù)量與 其管理的第一級(jí)FIFO存儲(chǔ)器的數(shù)量相同)。輸出信號(hào)clkoutl clkout6(第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀時(shí)鐘信號(hào),運(yùn)行時(shí)鐘信號(hào) clk50M取反后,分別和讀使能信號(hào)en_l en_6相與,輸出即為clkoutl clkout6);en_l en_6 (第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀使能信號(hào));clkout (第二級(jí)FIFO存儲(chǔ)器的寫(xiě)時(shí)鐘信號(hào)),讀時(shí)鐘信號(hào)clkoutl clkout6相 或,輸出即為寫(xiě)時(shí)鐘信號(hào)clkout。第二級(jí)控制器輸入,輸出和內(nèi)部結(jié)構(gòu)除對(duì)應(yīng)關(guān)系之外,與前述第一級(jí)控制器輸入, 輸出和內(nèi)部結(jié)構(gòu)相同,第二級(jí)控制器輸入,輸出和內(nèi)部結(jié)構(gòu)如下輸入信號(hào)clk50M(運(yùn)行時(shí)鐘信號(hào),頻率50MHz),flagl flag6(第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的半滿(mǎn)標(biāo)志信號(hào),半滿(mǎn)標(biāo)志信號(hào)的數(shù)量與 其管理的第二級(jí)FIFO存儲(chǔ)器的數(shù)量相同)。輸出信號(hào)clkoutl clkout6(第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀時(shí)鐘信號(hào),運(yùn)行時(shí)鐘信號(hào) clk50M取反后,分別和讀使能信號(hào)en_l en_6相與,輸出即為clkoutl clkout6);en_l en_6 (第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀使能信號(hào));clkout (第三級(jí)FIFO存儲(chǔ)器的寫(xiě)時(shí)鐘信號(hào)),讀時(shí)鐘信號(hào)clkoutl clkout6相 或,輸出即為寫(xiě)時(shí)鐘信號(hào)clkout。下面根據(jù)圖3詳細(xì)的解釋通道1至通道6數(shù)據(jù)匯集的控制過(guò)程,其余通道數(shù)據(jù)匯 聚時(shí)與此類(lèi)似,不再單獨(dú)說(shuō)明。圖3、4為第一級(jí)控制器的輸入輸出端口和時(shí)序圖,當(dāng)通道1 至通道6對(duì)應(yīng)的第一級(jí)FIFO存儲(chǔ)器的數(shù)據(jù)存儲(chǔ)半滿(mǎn)(存儲(chǔ)數(shù)據(jù)量大于等于32)時(shí),第一級(jí) FIFO存儲(chǔ)器將發(fā)出一個(gè)半滿(mǎn)標(biāo)志位為1,這里標(biāo)記為flag,對(duì)應(yīng)通道1至通道6,發(fā)出的標(biāo) 志位分別為flagl、flag2、flag3、flag4、flag5、flag6,對(duì)應(yīng)的第一級(jí)FIFO存儲(chǔ)器標(biāo)記為 FIFOU FIF02、FIF03、FIF04、FIF05、FIF06。flag標(biāo)志位是作為第一級(jí)控制器的輸入。標(biāo) 志位為0,表示對(duì)應(yīng)通道的第一級(jí)FIFO存儲(chǔ)器還沒(méi)有半滿(mǎn),當(dāng)為1時(shí),表示對(duì)應(yīng)通道的第一
8級(jí)FIFO存儲(chǔ)器已經(jīng)半滿(mǎn),第一級(jí)控制器將讀取數(shù)據(jù)。圖3 中控制器的輸入腳為:clk50M、flagl、flag2、flag3、flag4、flag5、flag6。 clk50M是輸入時(shí)鐘,頻率50MHz ;控制根據(jù)時(shí)鐘上升沿探測(cè)flagl-flag6的狀態(tài),探測(cè)的優(yōu) 先級(jí)是按falgl_flag6由高到低。圖 3 中控制器的輸出腳為clkout 1、clkout2、clkout3、clkout4、clkout5、 clkout6、en_l、en_2、en_3、en_4、en_5、en_6、clkout。clkout l_clkout6 分別為第一級(jí) FIFO 存儲(chǔ)器FIF01-FIF06的讀時(shí)鐘信號(hào);clkout為第二層對(duì)應(yīng)的第二級(jí)控制器的寫(xiě)時(shí)鐘信號(hào); en_l-en_6為FIFOl至FIF06輸出數(shù)據(jù)的讀使能信號(hào)。根據(jù)圖4的時(shí)序圖,通道2和通道5的第一級(jí)FIFO存儲(chǔ)器先后達(dá)到半滿(mǎn)首先是FIF02達(dá)到半滿(mǎn),flag2變高,控制器探測(cè)到flag2為1時(shí),clkout2腳輸出 32個(gè)讀脈沖,同時(shí)en_2變?yōu)楦唠娖?使FIF02的輸出數(shù)據(jù)選通),clkout腳也輸出32個(gè) 寫(xiě)脈沖。clkout2的讀脈沖使FIF02輸出32個(gè)數(shù)據(jù),同時(shí)clkout的32個(gè)寫(xiě)脈沖將FIF02 的輸出數(shù)據(jù)寫(xiě)入第二層對(duì)應(yīng)的第二級(jí)FIFO存儲(chǔ)器(當(dāng)對(duì)FIF02讀的過(guò)程中,由于數(shù)據(jù)被讀 出,當(dāng)不再滿(mǎn)足半滿(mǎn)條件時(shí),flag2就變?yōu)?)。對(duì)FIFO存儲(chǔ)器操作完畢后,控制器又會(huì)先后檢測(cè)flagl至flag6,檢測(cè)到flag5為 高電平時(shí),又會(huì)執(zhí)行對(duì)FIF05的操作FIF05達(dá)到半滿(mǎn),flag5變高,控制器探測(cè)到flag5為1時(shí),clkout5腳輸出32個(gè)讀 脈沖,同時(shí)en_5變?yōu)楦唠娖?使FIF05的輸出數(shù)據(jù)選通),clkout腳也輸出32個(gè)寫(xiě)脈沖。 Clkout5的讀脈沖使FIF05輸出32個(gè)數(shù)據(jù),同時(shí)clkout的32個(gè)寫(xiě)脈沖將FIF05的輸出數(shù) 據(jù)寫(xiě)入第三層對(duì)應(yīng)的第三級(jí)FIFO存儲(chǔ)器(當(dāng)對(duì)FIF05讀的過(guò)程中,由于數(shù)據(jù)被讀出,當(dāng)不 再滿(mǎn)足半滿(mǎn)條件時(shí),flag5就變?yōu)?)。圖6為檢測(cè)控制進(jìn)程的流程圖。流程圖詳細(xì)描述了其行為規(guī)范。檢測(cè)控制進(jìn)程的 步驟為步驟1,以運(yùn)行時(shí)鐘信號(hào)clk50M的上升沿為觸發(fā),按優(yōu)先級(jí)為flagl flag6對(duì)半 滿(mǎn)標(biāo)志信號(hào)flagl flag6以?xún)?yōu)先級(jí)從高向低檢測(cè)flagl flag6信號(hào)的電平;步驟2,判斷半滿(mǎn)標(biāo)志信號(hào)flagl flag6是否存在高電平;步驟3,當(dāng)檢測(cè)到半滿(mǎn)標(biāo)志信號(hào)flagl flag6之一為高電平時(shí),則屏蔽檢測(cè)功能, 計(jì)數(shù)器清零,轉(zhuǎn)步驟4,否則轉(zhuǎn)步驟1 ;步驟4,以運(yùn)行時(shí)鐘信號(hào)clk50M的上升沿為觸發(fā),計(jì)數(shù)器從零開(kāi)始計(jì)數(shù),當(dāng)計(jì)數(shù)值為4時(shí),置與為高電平的半滿(mǎn)標(biāo)志信號(hào)相應(yīng)的讀使能信號(hào)en輸出為高電 平,例如當(dāng)檢測(cè)到半滿(mǎn)標(biāo)志信號(hào)flag3為高電平,那么此時(shí)應(yīng)該執(zhí)行以下操作置與為高電 平的半滿(mǎn)標(biāo)志信號(hào)flag3相應(yīng)的讀使能信號(hào)en_3輸出為高電平,當(dāng)計(jì)數(shù)值為36時(shí),置與為高電平的半滿(mǎn)標(biāo)志信號(hào)相應(yīng)的讀使能信號(hào)en為0,當(dāng)計(jì)數(shù)值計(jì)數(shù)為38時(shí),解除檢測(cè)功能的屏蔽。本發(fā)明采取上述這種類(lèi)似于河流匯集結(jié)構(gòu)的數(shù)據(jù)匯集技術(shù),將很多不同數(shù)率的通 道的數(shù)據(jù)打上標(biāo)簽,由多個(gè)底層子通道匯集成單個(gè)高一層通道,依次類(lèi)推,最終匯集成一個(gè) 通道,簡(jiǎn)化通道與DSP芯片的接口。這種多層存儲(chǔ)器緩存結(jié)構(gòu)可以實(shí)現(xiàn)更多通道不同數(shù)率 數(shù)據(jù)的采集。
權(quán)利要求
一種多速率多通道數(shù)據(jù)采集方法,其特征在于1)通道的數(shù)據(jù)為復(fù)數(shù),復(fù)數(shù)實(shí)部用I表示,虛部用Q表示,I、Q數(shù)據(jù)位寬各為24位,先將36路通道的數(shù)據(jù)隨路編碼將通道的數(shù)據(jù)由48位位寬拓展為54位,高6位用于編碼,在讀取通道的數(shù)據(jù)時(shí),根據(jù)高6位編碼的不同分辨是哪路通道的數(shù)據(jù);2)第一次通道分組第一層36路通道分別通過(guò)一個(gè)第一級(jí)FIFO存儲(chǔ)器緩存數(shù)據(jù),將36路第一級(jí)FIFO存儲(chǔ)器每6個(gè)分為一組,共分為6組,以組為單位分別匯集第一級(jí)FIFO存儲(chǔ)器的輸出到一個(gè)第二級(jí)FIFO存儲(chǔ)器,并且每組配置一個(gè)用于控制數(shù)據(jù)讀取的第一級(jí)控制器,第一級(jí)控制器每次讀取的數(shù)據(jù)為32個(gè),6個(gè)第二級(jí)FIFO存儲(chǔ)器的輸出作為第二層6個(gè)通道;3)第二次通道分組將第二層6個(gè)通道作為一組,以組為單位匯集第二級(jí)FIFO存儲(chǔ)器的輸出到一個(gè)第三級(jí)FIFO存儲(chǔ)器,并且配置一個(gè)用于控制數(shù)據(jù)讀取的第二級(jí)控制器,第二級(jí)控制器每次讀取的數(shù)據(jù)為64個(gè),4)DSP芯片與第三級(jí)FIFO存儲(chǔ)器之間直接連接,且第三級(jí)FIFO存儲(chǔ)器將半滿(mǎn)標(biāo)志位作為一個(gè)中斷信號(hào),DSP芯片根據(jù)此中斷信號(hào)讀取第三級(jí)FIFO存儲(chǔ)器內(nèi)的數(shù)據(jù)。
2.如權(quán)利要求1所述的多速率多通道數(shù)據(jù)采集方法,其特征在于所述各級(jí)FIFO存儲(chǔ) 器為基于FPGA的FIFO存儲(chǔ)器,所述各級(jí)控制器為基于FPGA的控制器。
3.如權(quán)利要求1所述的多速率多通道數(shù)據(jù)采集方法,其特征在于所述DSP芯片的型 號(hào)為 ADSP-TS201S。
4.如權(quán)利要求1或2或3所述的多速率多通道數(shù)據(jù)采集方法,其特征在于第一級(jí) FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為54X64,即數(shù)據(jù)寬度54位,存儲(chǔ)深度64 ;第二級(jí)FIFO存儲(chǔ)器的 存儲(chǔ)結(jié)構(gòu)為54X 128,即數(shù)據(jù)寬度54位,存儲(chǔ)深度128 ;第三級(jí)FIFO存儲(chǔ)器的存儲(chǔ)結(jié)構(gòu)為 54X2048,即數(shù)據(jù)寬度54位,存儲(chǔ)深度2048。
5.如權(quán)利要求4所述的多速率多通道數(shù)據(jù)采集方法,其特征在于,所述第一級(jí)控制器 的輸入信號(hào)包括1個(gè)運(yùn)行時(shí)鐘信號(hào)clk50M,頻率50MHz,6個(gè)半滿(mǎn)標(biāo)志信號(hào)flagl flag6,半滿(mǎn)標(biāo)志信號(hào)的數(shù)量與其管理的第一級(jí)FIFO存儲(chǔ) 器的數(shù)量相同,所述第一級(jí)控制器的輸出信號(hào)包括6個(gè)讀時(shí)鐘信號(hào)clkoutl clkout6,第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀時(shí)鐘信號(hào),運(yùn)行時(shí)鐘 信號(hào)clk50M取反后,分別和讀使能信號(hào)en_l en_6相與,輸出即為clkoutl clkout6,6個(gè)讀使能信號(hào)en_l en_6,第一級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀使能信號(hào),1個(gè)寫(xiě)時(shí)鐘信號(hào)clkout,第二級(jí)FIFO存儲(chǔ)器的寫(xiě)時(shí)鐘信號(hào),讀時(shí)鐘信號(hào)clkoutl clkout6相或,輸出即為寫(xiě)時(shí)鐘信號(hào)clkout。
6.如權(quán)利要求5所述的多速率多通道數(shù)據(jù)采集方法,其特征在于,所述第二級(jí)控制器 的輸入信號(hào)包括1個(gè)運(yùn)行時(shí)鐘信號(hào)clk50M,頻率50MHz,6個(gè)半滿(mǎn)標(biāo)志信號(hào)fIagl flag6,半滿(mǎn)標(biāo)志信號(hào)的數(shù)量與其管理的第二級(jí)FIFO存儲(chǔ) 器的數(shù)量相同,所述第二級(jí)控制器的輸出信號(hào)包括6個(gè)讀時(shí)鐘信號(hào)clkoutl clkout6,第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀時(shí)鐘信號(hào),運(yùn)行時(shí)鐘 信號(hào)clk50M取反后,分別和讀使能信號(hào)en_l en_6相與,輸出即為clkoutl clkout6, 6個(gè)讀使能信號(hào)en_l en_6,第二級(jí)FIFO存儲(chǔ)器對(duì)應(yīng)的讀使能信號(hào), 1個(gè)寫(xiě)時(shí)鐘信號(hào)clkout,第三級(jí)FIFO存儲(chǔ)器的寫(xiě)時(shí)鐘信號(hào),讀時(shí)鐘信號(hào)clkoutl clkout6相或,輸出即為寫(xiě)時(shí)鐘信號(hào)clkout。
7.如權(quán)利要求6所述的多速率多通道數(shù)據(jù)采集方法,其特征在于,所述各級(jí)控制器的 檢測(cè)控制進(jìn)程的步驟為步驟1,以運(yùn)行時(shí)鐘信號(hào)clk50M的上升沿為觸發(fā),按優(yōu)先級(jí)為f Iagl f lag6對(duì)半滿(mǎn)標(biāo) 志信號(hào)flagl flag6以?xún)?yōu)先級(jí)從高向低檢測(cè)flagl flag6信號(hào)的電平; 步驟2,判斷半滿(mǎn)標(biāo)志信號(hào)flagl flag6是否存在高電平;步驟3,當(dāng)檢測(cè)到半滿(mǎn)標(biāo)志信號(hào)flagl flag6之一為高電平時(shí),則屏蔽檢測(cè)功能,計(jì)數(shù) 器清零,轉(zhuǎn)步驟4,否則轉(zhuǎn)步驟1 ;步驟4,以運(yùn)行時(shí)鐘信號(hào)clk50M的上升沿為觸發(fā),計(jì)數(shù)器從零開(kāi)始計(jì)數(shù), 當(dāng)計(jì)數(shù)值為4時(shí),置與為高電平的半滿(mǎn)標(biāo)志信號(hào)相應(yīng)的讀使能信號(hào)en輸出為高電平, 例如當(dāng)檢測(cè)到半滿(mǎn)標(biāo)志信號(hào)flag3為高電平,那么此時(shí)應(yīng)該執(zhí)行以下操作置與為高電平 的半滿(mǎn)標(biāo)志信號(hào)flag3相應(yīng)的讀使能信號(hào)en_3輸出為高電平,當(dāng)計(jì)數(shù)值為36時(shí),置與為高電平的半滿(mǎn)標(biāo)志信號(hào)相應(yīng)的讀使能信號(hào)en輸出為高電平 當(dāng)計(jì)數(shù)值計(jì)數(shù)為38時(shí),解除檢測(cè)功能的屏蔽。
全文摘要
本發(fā)明涉及一種多速率多通道數(shù)據(jù)采集方法,步驟為1)先將36路通道的數(shù)據(jù)由48位拓展為54位,高6位用于通道編碼;2)36路通道與第一級(jí)FIFO存儲(chǔ)器一對(duì)一緩存數(shù)據(jù),第一級(jí)FIFO存儲(chǔ)器6個(gè)為一組,以組為單位匯集到一個(gè)第二級(jí)FIFO存儲(chǔ)器,并按組配置一個(gè)第一級(jí)控制器;3)將6個(gè)第二級(jí)FIFO存儲(chǔ)器為一組,以組為單位匯集到一個(gè)第三級(jí)FIFO存儲(chǔ)器,并配置一個(gè)第二級(jí)控制器,4)DSP芯片與第三級(jí)FIFO存儲(chǔ)器直接連接,且根據(jù)第三級(jí)FIFO存儲(chǔ)器的半滿(mǎn)標(biāo)志位讀取數(shù)據(jù)。本發(fā)明所述的方法,在通過(guò)DSP讀取數(shù)據(jù)時(shí)可同時(shí)直接對(duì)36路音頻數(shù)據(jù)進(jìn)行搜集,36路數(shù)據(jù)每路的數(shù)據(jù)率可不同,每路數(shù)據(jù)的最大數(shù)據(jù)率為500kHz,數(shù)據(jù)為復(fù)數(shù),I、Q數(shù)據(jù)位寬各為24位。
文檔編號(hào)G06F17/40GK101937475SQ20101026424
公開(kāi)日2011年1月5日 申請(qǐng)日期2010年8月27日 優(yōu)先權(quán)日2010年8月27日
發(fā)明者周東明, 張志 , 張文東, 李高升, 楊東營(yíng), 覃宇建 申請(qǐng)人:中國(guó)電子科技集團(tuán)公司第四十一研究所;中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)