一種可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)緩存方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明數(shù)據(jù)信號(hào)處理技術(shù)領(lǐng)域,具體是指應(yīng)用于基帶可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)的緩 存。
【背景技術(shù)】
[0002] 數(shù)據(jù)緩存是信號(hào)處理領(lǐng)域的一種基本操作,在對(duì)大量實(shí)時(shí)數(shù)據(jù)進(jìn)行存儲(chǔ)或運(yùn)算 時(shí),通常要先進(jìn)行緩存,從而確保數(shù)據(jù)的正確處理。
[0003] 在雷達(dá)及其模擬回波信號(hào)的實(shí)時(shí)存儲(chǔ)中,傳統(tǒng)方法是用固定長(zhǎng)度的兵鳥(niǎo)緩存區(qū)域 對(duì)數(shù)據(jù)進(jìn)行兵鳥(niǎo)緩沖存儲(chǔ),然后將緩存的數(shù)據(jù)傳輸至大容量存儲(chǔ)設(shè)備中。緩存兵鳥(niǎo)操作是 將數(shù)據(jù)流等時(shí)分配到兩個(gè)大小相同的數(shù)據(jù)緩沖存儲(chǔ)區(qū):第一個(gè)緩存周期將輸入數(shù)據(jù)存儲(chǔ)到 緩沖存儲(chǔ)區(qū)A。第二個(gè)緩沖周期將數(shù)據(jù)輸入到緩沖存儲(chǔ)區(qū)B,同時(shí)將緩沖存儲(chǔ)區(qū)A中的緩存 數(shù)據(jù)傳輸至大容量數(shù)據(jù)存儲(chǔ)單元。第=個(gè)周期將再將輸入數(shù)據(jù)存儲(chǔ)到緩沖存儲(chǔ)區(qū)A,同時(shí)將 上一個(gè)周期存儲(chǔ)在緩沖存儲(chǔ)區(qū)B的數(shù)據(jù)送入到下一個(gè)數(shù)據(jù)處理單元,如此循環(huán)。如圖1所 /J、- 〇
[0004] 運(yùn)種傳統(tǒng)的雷達(dá)及其模擬回波信號(hào)的兵鳥(niǎo)緩存方法只設(shè)及數(shù)據(jù)的寫(xiě)入和讀取,沒(méi) 有緩存清零的操作,在雷達(dá)信號(hào)脈沖重復(fù)周期固定時(shí)能有效的實(shí)現(xiàn)數(shù)據(jù)緩存功能。但是,當(dāng) 雷達(dá)脈沖信號(hào)的脈沖重復(fù)周期長(zhǎng)度不固定時(shí),導(dǎo)致存儲(chǔ)一組脈沖數(shù)據(jù)的時(shí)間不固定,導(dǎo)致 傳統(tǒng)的兵鳥(niǎo)緩存方法就不能滿足準(zhǔn)確存儲(chǔ)數(shù)據(jù)的要求。通常會(huì)出現(xiàn)兩種錯(cuò)誤:當(dāng)正在寫(xiě)入 的兵鳥(niǎo)緩沖存儲(chǔ)區(qū)A中的數(shù)據(jù)長(zhǎng)度小于從兵鳥(niǎo)緩沖存儲(chǔ)區(qū)B中讀出的數(shù)據(jù)長(zhǎng)度時(shí),在沒(méi)有 緩沖區(qū)B中的數(shù)據(jù)沒(méi)有讀完的情況下,兵鳥(niǎo)緩存的讀寫(xiě)開(kāi)關(guān)將進(jìn)行切換,運(yùn)樣就造成了數(shù) 據(jù)丟失;當(dāng)上一組存儲(chǔ)在存儲(chǔ)區(qū)A中的數(shù)據(jù)長(zhǎng)度大于下一組存儲(chǔ)在存儲(chǔ)區(qū)A中的數(shù)據(jù)長(zhǎng)度 時(shí),傳輸?shù)酱笕萘看鎯?chǔ)器中的數(shù)據(jù)可能因?yàn)閮纱螖?shù)據(jù)的疊加從而造成數(shù)據(jù)存儲(chǔ)錯(cuò)誤。因此, 如何能在實(shí)現(xiàn)變長(zhǎng)雷達(dá)回波數(shù)據(jù)存儲(chǔ)的同時(shí)保證數(shù)據(jù)的正確存儲(chǔ)顯得尤為重要。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明所要解決的技術(shù)問(wèn)題是針對(duì)背景緩存技術(shù)的不足之處提供一種既能實(shí)現(xiàn) 雷達(dá)脈沖信號(hào)的脈沖重復(fù)周期長(zhǎng)度不固定時(shí)的數(shù)據(jù)緩存,還能夠保證數(shù)據(jù)完整。
[0006] 本發(fā)明一種基于FPGA的可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)緩存方法,該方法通過(guò)提高數(shù)據(jù) 緩存的讀取速度,導(dǎo)致數(shù)據(jù)寫(xiě)入和讀取存在時(shí)間差,從而可W避免該時(shí)間差范圍內(nèi)的一個(gè) 數(shù)據(jù)緩存的讀寫(xiě)沖突,從而實(shí)現(xiàn)發(fā)明目的。因而本發(fā)明一種基于FPGA的可變長(zhǎng)度雷達(dá)脈沖 數(shù)據(jù)緩存方法,該方法包括:
[0007] 步驟1 :接收雷達(dá)數(shù)據(jù),檢測(cè)該數(shù)據(jù)的脈沖情況,當(dāng)檢測(cè)到脈沖后,立即向緩存1寫(xiě) 入該雷達(dá)數(shù)據(jù);
[000引步驟2 :當(dāng)檢測(cè)到雷達(dá)數(shù)據(jù)再次出現(xiàn)脈沖后,立即停止向緩存1寫(xiě)入數(shù)據(jù),轉(zhuǎn)向?qū)?緩存2寫(xiě)入收到的雷達(dá)數(shù)據(jù),同時(shí)將緩存1中的數(shù)據(jù)進(jìn)行讀出,轉(zhuǎn)存入大存儲(chǔ)設(shè)備,緩存1 中的數(shù)據(jù)的讀出速度高于寫(xiě)入速度的;
[0009] 步驟3:再次檢測(cè)到雷達(dá)數(shù)據(jù)出現(xiàn)脈沖后,立即停止緩存2的數(shù)據(jù)寫(xiě)入,轉(zhuǎn)向?qū)?存1寫(xiě)入數(shù)據(jù),同時(shí)讀出緩存2的數(shù)據(jù),轉(zhuǎn)存入大存儲(chǔ)設(shè)備,緩存2的數(shù)據(jù)讀出速度高于寫(xiě) 入速度;
[0010] 步驟4 :采用上述方法對(duì)雷達(dá)接收數(shù)據(jù)進(jìn)行存儲(chǔ)。
[0011] 進(jìn)一步的在對(duì)緩存寫(xiě)入數(shù)據(jù)時(shí),首先將收到的第1個(gè)單元數(shù)據(jù)寫(xiě)入緩存的第1個(gè) 存儲(chǔ)地址,在將0寫(xiě)入緩存的第n+1個(gè)存儲(chǔ)地址,在將第2個(gè)單元數(shù)據(jù)寫(xiě)入緩存的第2個(gè)存 儲(chǔ)地址,再將0寫(xiě)入緩存的第n巧個(gè)存儲(chǔ)地址,按照上述方法依次寫(xiě)入該組雷達(dá)數(shù)據(jù)的全部 單元數(shù)據(jù),其中n為讀取數(shù)據(jù)位寬與寫(xiě)入數(shù)據(jù)的位寬之比,且為整數(shù)。
[0012] 本發(fā)明的有益效果是:
[0013] 寫(xiě)入緩存通過(guò)采用寄存寫(xiě)入結(jié)束地址,在數(shù)據(jù)讀取時(shí)根據(jù)運(yùn)個(gè)地址計(jì)算出緩存結(jié) 束地址,讀緩存控制器在結(jié)束地址時(shí)結(jié)束讀取工作。運(yùn)保證了數(shù)據(jù)讀取時(shí)沒(méi)有因?qū)懭腴L(zhǎng)度 變化而導(dǎo)致的前次遺留數(shù)據(jù)的干擾。
[0014] 寫(xiě)入緩存采用雙倍輸入數(shù)據(jù)時(shí)鐘實(shí)現(xiàn)清零操作和數(shù)據(jù)寫(xiě)入操作交替進(jìn)行,可W清 零后n個(gè)地址數(shù)據(jù),消除了由于位寬增加而產(chǎn)生的遺留數(shù)據(jù)的干擾。
[0015] 通過(guò)改變讀取時(shí)鐘頻率和增加讀取位寬的方法提高了緩存數(shù)據(jù)讀取速度,大大減 少了緩存數(shù)據(jù)讀取時(shí)間。減少的讀取時(shí)間用來(lái)滿足雷達(dá)脈沖周期長(zhǎng)度的減少量。根據(jù)雷達(dá) 變長(zhǎng)脈沖信號(hào)的長(zhǎng)度變化范圍確定時(shí)鐘增加的倍數(shù)m和位寬增加的倍數(shù)n,使本裝置滿足 變化要求。
[0016] 本方法沒(méi)有整段時(shí)間的數(shù)據(jù)清零操作,避免了整段時(shí)間的數(shù)據(jù)清零造成的實(shí)時(shí)數(shù) 據(jù)流中雷達(dá)脈沖數(shù)據(jù)的丟失。
【附圖說(shuō)明】
[0017] 圖1是傳統(tǒng)兵鳥(niǎo)緩存方法示意圖。
[0018] 圖2是一種基于FPGA的可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)無(wú)損緩存方法結(jié)構(gòu)示意圖。
[0019] 圖3是緩存區(qū)寫(xiě)入時(shí)序圖。
[0020] 圖4是緩存區(qū)與入和讀取內(nèi)存不意圖。
[0021] 圖5是雷達(dá)脈沖數(shù)據(jù)開(kāi)始緩存示意圖
[0022] 圖6是雷達(dá)脈沖周期長(zhǎng)度不變時(shí)緩存示意圖。
[0023] 圖7是雷達(dá)脈沖周期長(zhǎng)度變長(zhǎng)時(shí)緩存示意圖。
[0024] 圖8是雷達(dá)脈沖周期長(zhǎng)度變長(zhǎng)后下一次緩存示意圖。
[00巧]圖9是雷達(dá)脈沖周期長(zhǎng)度變短時(shí)緩存示意圖。
[0026] 圖10是最后一個(gè)緩存周期緩存不意圖。
[0027] 圖3中叩ulse"表示雷達(dá)脈沖數(shù)據(jù)到來(lái)標(biāo)志;"clock"表示系統(tǒng)輸入時(shí)鐘, "Double_clock"表示輸入給緩存區(qū)的時(shí)鐘,時(shí)鐘頻率是系統(tǒng)輸入時(shí)鐘的2倍,上升沿和系 統(tǒng)時(shí)鐘相對(duì)齊;"I噸ut_data"表示輸入數(shù)據(jù)流;"Write_data"表示寫(xiě)入緩存區(qū)中的數(shù)據(jù); "Write_acMreSS"表示寫(xiě)入到緩存區(qū)中的數(shù)據(jù)"Write_data"對(duì)應(yīng)的地址。
【具體實(shí)施方式】
[0028] 基于FPGA的可變長(zhǎng)度雷達(dá)回波數(shù)據(jù)無(wú)損緩存方法用于模擬雷達(dá)發(fā)射脈沖信號(hào)的 環(huán)境中脈沖信號(hào)的周期不變、變長(zhǎng)和變短的情況。步驟如下:
[0029] 步驟1、設(shè)置單口RAM緩存區(qū)A和B的大小,用W滿足雷達(dá)脈沖周期最大的情況。 寫(xiě)入控制模塊將輸入數(shù)據(jù)接口接至緩存區(qū)A,讀取控制模塊將輸出數(shù)據(jù)接口連接至緩存區(qū) B。根據(jù)雷達(dá)性能確定參數(shù)m和n,使得雷達(dá)脈沖周期長(zhǎng)度減小量f< ^^,:則讀取時(shí)間 t-At> 之后等待脈沖檢測(cè)信號(hào)的到來(lái)。其中1為雷達(dá)脈沖周期長(zhǎng)度,A1時(shí)雷達(dá)脈 沖周期長(zhǎng)度的變化量;t是在系統(tǒng)時(shí)鐘Clock下讀取雷達(dá)脈沖周期長(zhǎng)度為1的數(shù)據(jù)需要的 時(shí)間;At是讀取雷達(dá)脈沖周期長(zhǎng)度所需時(shí)間的變化量。
[0030] 步驟2、當(dāng)雷達(dá)脈沖檢測(cè)信號(hào)到來(lái)時(shí),緩存寫(xiě)入控制模塊開(kāi)始向緩存區(qū)A中寫(xiě)入數(shù) 據(jù)并實(shí)時(shí)記錄數(shù)據(jù)的長(zhǎng)度(寫(xiě)入地址)。緩存區(qū)B為空,讀取模塊不進(jìn)行任何操作。如圖5 所示。
[0031] 步驟3、當(dāng)雷達(dá)脈沖檢測(cè)信號(hào)再次到來(lái)時(shí),輸入數(shù)據(jù)存入緩存區(qū)B中,讀控制模塊 從緩存區(qū)A中讀取前次緩存的數(shù)據(jù)。如圖6所示。
[0032] 步驟4、當(dāng)雷達(dá)脈沖檢測(cè)信號(hào)到來(lái)時(shí)間拖后(雷達(dá)脈沖周期長(zhǎng)度變長(zhǎng))時(shí),緩存區(qū) A中寫(xiě)入的數(shù)據(jù)長(zhǎng)度變長(zhǎng),緩存區(qū)A寫(xiě)入的時(shí)間為上次寫(xiě)入的時(shí)間t和多出的部分的寫(xiě)入時(shí) 間At之和為t+At;緩存區(qū)B中的數(shù)據(jù)讀取時(shí)間為t/(m+n),小于寫(xiě)入時(shí)間。讀取完成之 后等待下一個(gè)脈沖。如圖7所示。當(dāng)下一個(gè)相同雷達(dá)周期長(zhǎng)度的脈沖到來(lái)的時(shí)候,數(shù)據(jù)讀 寫(xiě)長(zhǎng)度又保持一致。如圖8所示。
[0033] 步驟5、當(dāng)雷達(dá)脈沖檢測(cè)信號(hào)到來(lái)提前(雷達(dá)脈沖周期長(zhǎng)度變短)時(shí)。原緩存區(qū)的 讀取時(shí)間為t/(m+n)。緩存區(qū)寫(xiě)入時(shí)間為t-At。由第一步的設(shè)置可確定,緩存區(qū)的寫(xiě)入 時(shí)間大于讀取時(shí)間,緩存區(qū)讀取結(jié)束后等待下一個(gè)脈沖周期的到來(lái)。如圖9所示。
[0034] 步驟6、當(dāng)最后一個(gè)雷達(dá)脈沖數(shù)據(jù)緩存結(jié)束后(假設(shè)為存儲(chǔ)在緩存區(qū)A中),數(shù)據(jù) 讀取模塊從緩存區(qū)A中讀取數(shù)據(jù),同時(shí)數(shù)據(jù)寫(xiě)入模塊不再進(jìn)行寫(xiě)緩存操作。如圖10所示。
【主權(quán)項(xiàng)】
1. 一種基于FPGA的可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)緩存方法,該方法包括: 步驟1 :接收雷達(dá)數(shù)據(jù),檢測(cè)該數(shù)據(jù)的脈沖情況,當(dāng)檢測(cè)到脈沖后,立即向緩存1寫(xiě)入該 雷達(dá)數(shù)據(jù); 步驟2:當(dāng)檢測(cè)到雷達(dá)數(shù)據(jù)再次出現(xiàn)脈沖后,立即停止向緩存1寫(xiě)入數(shù)據(jù),轉(zhuǎn)向?qū)彺? 寫(xiě)入收到的雷達(dá)數(shù)據(jù),同時(shí)將緩存1中的數(shù)據(jù)進(jìn)行讀出,轉(zhuǎn)存入大存儲(chǔ)設(shè)備,緩存1中的數(shù) 據(jù)的讀出速度高于寫(xiě)入速度的; 步驟3 :再次檢測(cè)到雷達(dá)數(shù)據(jù)出現(xiàn)脈沖后,立即停止緩存2的數(shù)據(jù)寫(xiě)入,轉(zhuǎn)向?qū)彺? 寫(xiě)入數(shù)據(jù),同時(shí)讀出緩存2的數(shù)據(jù),轉(zhuǎn)存入大存儲(chǔ)設(shè)備,緩存2的數(shù)據(jù)讀出速度高于寫(xiě)入速 度; 步驟4 :采用上述方法對(duì)雷達(dá)接收數(shù)據(jù)進(jìn)行存儲(chǔ)。2. 如權(quán)利要求1所述的一種基于FPGA的可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)緩存方法,其特征在 于對(duì)緩存寫(xiě)入數(shù)據(jù)時(shí),首先將收到的第1個(gè)單元數(shù)據(jù)寫(xiě)入緩存的第1個(gè)存儲(chǔ)地址,在將〇寫(xiě) 入緩存的第n+1個(gè)存儲(chǔ)地址,在將第2個(gè)單元數(shù)據(jù)寫(xiě)入緩存的第2個(gè)存儲(chǔ)地址,再將O寫(xiě)入 緩存的第n+2個(gè)存儲(chǔ)地址,按照上述方法依次寫(xiě)入該組雷達(dá)數(shù)據(jù)的全部單元數(shù)據(jù),其中n為 讀取數(shù)據(jù)位寬與寫(xiě)入數(shù)據(jù)的位寬之比,且為整數(shù)。
【專(zhuān)利摘要】該發(fā)明公開(kāi)了一種可變長(zhǎng)度雷達(dá)脈沖數(shù)據(jù)緩存方法,屬于信號(hào)處理技術(shù),特別涉及數(shù)據(jù)緩存技術(shù)。該方法使用的裝置包括一個(gè)雷達(dá)脈沖檢測(cè)模塊,寫(xiě)數(shù)據(jù)控制模塊,讀數(shù)據(jù)控制模塊,單口RAM緩存區(qū)和寫(xiě)地址寄存器。該方法寫(xiě)緩存的時(shí)鐘是輸入時(shí)鐘的2倍,寫(xiě)數(shù)據(jù)與清零交替進(jìn)行,并將數(shù)據(jù)末端的地址存儲(chǔ)在寫(xiě)地址寄存器中作為讀取模塊結(jié)束地址的計(jì)算來(lái)源。讀取的時(shí)鐘為輸入時(shí)鐘的m倍,讀取位寬為數(shù)據(jù)位寬的n倍。從而使讀取的速度大大高于寫(xiě)入速度。由此來(lái)實(shí)現(xiàn)雷達(dá)脈沖周期變化后不用整塊清零就能達(dá)到正確緩存的方法。
【IPC分類(lèi)】G06F12/08
【公開(kāi)號(hào)】CN105183664
【申請(qǐng)?zhí)枴緾N201510494682
【發(fā)明人】周云, 祖東輝, 盧霞霞, 周楊鵬, 汪學(xué)剛
【申請(qǐng)人】電子科技大學(xué)
【公開(kāi)日】2015年12月23日
【申請(qǐng)日】2015年8月13日