異步FIFO和PLL在高速雷達(dá)數(shù)據(jù)采集系統(tǒng)中的應(yīng)用
掃描二維碼
隨時(shí)隨地手機(jī)看文章
隨著雷達(dá)系統(tǒng)中數(shù)字處理技術(shù)的飛速發(fā)展,需要對(duì)雷達(dá)回波信號(hào)進(jìn)行高速數(shù)據(jù)采集。在嵌入式條件下,要求獲取數(shù)據(jù)的速度越來(lái)越快。精度越來(lái)越高,以致數(shù)據(jù)量及處理速度要求大增。為避免數(shù)據(jù)處理不及時(shí),發(fā)生數(shù)據(jù)丟失,影響系統(tǒng)可靠性,要進(jìn)一步提高系統(tǒng)實(shí)時(shí)性,必須研究開發(fā)高速嵌入式雷達(dá)信號(hào)采集系統(tǒng)。這里結(jié)合高速嵌入式數(shù)據(jù)采集系統(tǒng),提出一種基于CvcloneⅢFPGA實(shí)現(xiàn)的異步FIFO和鎖相環(huán)(PLL)結(jié)構(gòu)來(lái)實(shí)現(xiàn)高速緩存,該結(jié)構(gòu)可成倍提高數(shù)據(jù)流通速率,增加數(shù)據(jù)采集系統(tǒng)的實(shí)時(shí)性。采用FPGA設(shè)計(jì)高速緩存,能針對(duì)外部硬件系統(tǒng)的改變,通過(guò)修改片內(nèi)程序以應(yīng)用于不同的硬件環(huán)境。由于FPGA可重配置,可通過(guò)對(duì)其編程修改其電路功能,方便后續(xù)的系統(tǒng)升級(jí)。
2 高速雷達(dá)數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)
圖1為高速雷達(dá)數(shù)據(jù)采集系統(tǒng)結(jié)構(gòu)框。
通過(guò)下變頻將接收的射頻信號(hào)變換為適合A/D采樣的中頻信號(hào)。再經(jīng)A/D轉(zhuǎn)換器轉(zhuǎn)換為數(shù)字信號(hào),然后FPGA中異步FIFO構(gòu)成的高速緩存將中頻采樣數(shù)據(jù)變換為與存儲(chǔ)器寫時(shí)間相匹配的低速數(shù)據(jù)并存儲(chǔ)到RAM中。DSP及其他數(shù)據(jù)處理器通過(guò)與RAM或FIFO間進(jìn)行數(shù)據(jù)傳遞,分析處理雷達(dá)回波信號(hào),就可獲取信號(hào)的特征和特征參數(shù)。如果DSP不通過(guò)緩存而直接與A/D相連,在采樣過(guò)程中,若A/D連續(xù)采樣數(shù)據(jù),DSP一直處于連續(xù)的間隔讀數(shù)狀態(tài),這將占用DSP大部分處理時(shí)間,導(dǎo)致DSP不能進(jìn)行其他工作。也可能出現(xiàn)上一次的數(shù)據(jù)還沒(méi)被DSP處理完,下一次采集過(guò)程就開始的情況。如果選取更高速的A/D轉(zhuǎn)換器,甚至?xí)l(fā)生數(shù)據(jù)丟失,破壞系統(tǒng)的可靠性。同時(shí)由于DSP不直接與A/D轉(zhuǎn)換器相連,所以A/D轉(zhuǎn)換器的升級(jí)或替代都不會(huì)影響原來(lái)的數(shù)據(jù)采集系統(tǒng),且使用高速緩存后數(shù)據(jù)采集速率可達(dá)所采用的A/D轉(zhuǎn)換器輸出的最高速率,能充分發(fā)揮DSP算法處理功能強(qiáng)大、速度高的優(yōu)勢(shì)。而采用CycloneⅢFPGA設(shè)計(jì)高速緩存,設(shè)計(jì)靈活、通用性強(qiáng)。整個(gè)系統(tǒng)具有實(shí)時(shí)性高、體積小、開發(fā)周期短、易于維護(hù)和擴(kuò)展、適于實(shí)時(shí)信號(hào)處理等多個(gè)優(yōu)點(diǎn)。高速雷達(dá)數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)主要包括高速A/D轉(zhuǎn)換電路、讀寫控制邏輯電路、由雙時(shí)鐘FIFO構(gòu)成的高速緩存電路、鎖相環(huán)、外部有源品振等,盡量選用高速器件以提高數(shù)據(jù)采集系統(tǒng)的瞬時(shí)帶寬和存儲(chǔ)深度。
高速A/D轉(zhuǎn)換器采用MAX101A,其最高采樣速率可達(dá)到500 Ms/s,采樣精度為8 bit,該器件屬于直接轉(zhuǎn)換式模數(shù)轉(zhuǎn)換器即Flash A/D轉(zhuǎn)換器,其特點(diǎn)是速度快,內(nèi)置1.2 GHz帶寬的采樣保持放大器,特有的量化設(shè)計(jì)使其具有較好的動(dòng)態(tài)特性。如果采集系統(tǒng)需更高的采樣速率,可使用多片A/D交替采樣。FPGA采用EP3C120,EP3C120利用65 nm低功耗工藝,不但實(shí)現(xiàn)低功耗,還具有豐富的邏輯(120 KB邏輯單元)、存儲(chǔ)器(高達(dá)4 Mbit),及數(shù)字信號(hào)處理資源(288個(gè)DSP乘法器)。EP3C120的低功耗特性和其大容量的存儲(chǔ)器使其非常適合嵌入式高速雷達(dá)數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)。采用異步FIFO構(gòu)成的高速緩存即是使用FPGA巾高達(dá)4 Mbit容量的存儲(chǔ)器。由于該器件具有乘法器,可輔助DSP器件完成一些計(jì)算密集型的算法。
由于一般采用品振作為時(shí)鐘源,通過(guò)上下變頻得到各個(gè)單元需要的時(shí)鐘,但這又提高了系統(tǒng)的復(fù)雜度。這里采用CycloneⅢ系列FPGA可方便地解決此問(wèn)題.EP3C120內(nèi)部集成有4個(gè)PLL單元,各個(gè)PLL可為不同模塊提供不同的時(shí)鐘,只需為系統(tǒng)提供一個(gè)高穩(wěn)定的晶振,通過(guò)PLL單元進(jìn)行時(shí)鐘上下變頻即可。
3 基于FPGA實(shí)現(xiàn)異步FIFO設(shè)計(jì)
異步FIFO是在兩個(gè)相互獨(dú)立的時(shí)鐘域下,數(shù)據(jù)在一個(gè)時(shí)鐘域?qū)懭隖IFO而在另一個(gè)時(shí)鐘域又從該FIFO中將數(shù)據(jù)讀出。異步FIFO通常被用來(lái)將數(shù)據(jù)從一個(gè)時(shí)鐘域安全地傳送到另一個(gè)時(shí)鐘域。FIFO可作為A/D轉(zhuǎn)換器件和DSP間的橋梁。使用FIFO作為輸入緩沖,由A/D轉(zhuǎn)換器件把采樣轉(zhuǎn)換的值同步寫入FIFO,每寫入一塊數(shù)據(jù)便向DSP發(fā)出一個(gè)信號(hào),以提醒DSP從FIFO中讀取數(shù)據(jù)塊。這樣比單次讀的效率要高的多,不會(huì)有數(shù)據(jù)丟失,且僅占用少量的系統(tǒng)資源。設(shè)計(jì)一個(gè)異步FIFO,讀寫使能由不同的時(shí)鐘激勵(lì)控制輸入和輸出數(shù)據(jù),空/滿標(biāo)志既用來(lái)防止數(shù)據(jù)的上溢和下溢,也作為寫入/讀出控制邏輯的輸入信號(hào),用來(lái)控制A/D數(shù)據(jù)采樣過(guò)程和對(duì)DSP數(shù)據(jù)的傳輸。當(dāng)FIFO輸出滿標(biāo)志時(shí),寫入控制邏輯停止A/D采樣,等待滿標(biāo)志無(wú)效時(shí)恢復(fù)數(shù)據(jù)采樣。從而防止數(shù)據(jù)丟失。當(dāng)FIFO輸出空標(biāo)志時(shí),讀出控制邏輯停止DSP的數(shù)據(jù)讀取,等待空標(biāo)志無(wú)效時(shí)恢復(fù)數(shù)據(jù)讀取。圖1中FPGA內(nèi)的寫入/讀出控制邏輯使用有限狀態(tài)機(jī)設(shè)計(jì),有限狀態(tài)機(jī)能有效的進(jìn)行讀寫時(shí)序控制,根據(jù)A/D和處理器的時(shí)序控制原理畫出狀態(tài)轉(zhuǎn)移圖,進(jìn)行編程設(shè)定。
FIFO的參數(shù)指標(biāo)直接影響數(shù)據(jù)采集速度。首先,F(xiàn)IFO的讀寫速度要足夠快,其工作頻率至少要大于等于A/D轉(zhuǎn)換器件的采樣率,才能充分發(fā)揮A/D轉(zhuǎn)換器件的高采樣率并保證無(wú)數(shù)據(jù)丟失。其次,F(xiàn)IFO的存儲(chǔ)容量要適宜,容量過(guò)大會(huì)造成資源浪費(fèi),容量過(guò)小會(huì)造成溢出或數(shù)據(jù)采集速度過(guò)慢。系統(tǒng)FIFO采用EP3C120實(shí)現(xiàn)。由FPGA實(shí)現(xiàn)異步FIFO時(shí),可方便的根據(jù)A/D轉(zhuǎn)換器的采樣精度和DSP數(shù)據(jù)寬度設(shè)計(jì)FIFO的輸人數(shù)據(jù)寬度和輸出數(shù)據(jù)寬度,且采用PLL設(shè)計(jì)后,可方便的調(diào)整FIFO寫入端和讀出端的時(shí)鐘頻率,使FIFO設(shè)計(jì)的高速緩存具有一定的通用性。異步FIFO是在QuartusⅡ開發(fā)環(huán)境下利用其IP核設(shè)計(jì)的,該設(shè)計(jì)的異步FIFO可支持高達(dá)256位的數(shù)據(jù)寬度;支持存儲(chǔ)的最大深度可達(dá)131 072words,同時(shí)支持空滿標(biāo)志位。表1給出系統(tǒng)在不同存儲(chǔ)深度時(shí)消耗FPGA片內(nèi)資源的情況??梢?,針對(duì)不同的數(shù)據(jù)采集需求,可利用Ahera公司提供的參數(shù)化的IP核方便的選擇FIFO的數(shù)據(jù)位寬度及存儲(chǔ)深度,避免資源浪費(fèi)。
[!--empirenews.page--]
考慮到前端A/D轉(zhuǎn)換速度快,精度為8位,后端DSP的處理位數(shù)一般可做到32位,為提高系統(tǒng)實(shí)時(shí)性,采用輸入數(shù)據(jù)寬度為8位,輸出寬度為32位的雙時(shí)鐘FIFO,如圖2所示。
圖3為對(duì)FIFO仿真的結(jié)果。雙時(shí)鐘FIFO輸入為8位、輸出為32位,且FIFO兩端的讀寫時(shí)鐘頻率不同。
分析系統(tǒng)的吞吐率:由于A/D數(shù)據(jù)輸入端口的速度固定,數(shù)據(jù)按采樣頻率輸入FIFO,因此輸入數(shù)據(jù)的時(shí)間是不變的,而DSP一次訪問(wèn)可取走4個(gè)有效數(shù)據(jù),大大增加DSP讀取數(shù)據(jù)的吞吐率,提高系統(tǒng)實(shí)時(shí)處理能力。
4 基于FPGA的PLL設(shè)計(jì)
Cyclone FPGA具有鎖相環(huán)(PLL)和全局時(shí)鐘網(wǎng)絡(luò),提供完整的時(shí)鐘管理方案。Cyclone PLL具有時(shí)鐘倍頻和分頻、相位偏移、可編程占空比和外部時(shí)鐘輸出,進(jìn)行系統(tǒng)級(jí)的時(shí)鐘管理和偏移控制。Altera Quattus II軟件無(wú)需任何外部器件,就可啟用Cyclone PLL和相關(guān)功能。PLL常用于同步內(nèi)部器件時(shí)鐘和外部時(shí)鐘,使內(nèi)部工作的時(shí)鐘頻率比外部時(shí)鐘更高,時(shí)鐘延遲和時(shí)鐘偏移最小,減小或調(diào)整時(shí)鐘到輸出(TCO)和建立(TSU)時(shí)間。PLL主要部分的框架如圖4所示。
PLL模塊接收來(lái)自全局時(shí)鐘輸入引腳的時(shí)鐘信號(hào),經(jīng)鎖相環(huán)分/倍頻后作為異步FIFO的讀寫時(shí)鐘,也可以作為外部A/D轉(zhuǎn)換器采樣時(shí)鐘。Cyclone PLL中包含一個(gè)前置分頻器N和一個(gè)倍頻器M,設(shè)定范圍為1~32。輸入時(shí)鐘fin經(jīng)預(yù)分頻N后得到參考時(shí)鐘fref:
通過(guò)設(shè)置后置分頻器的G0、G1和E值實(shí)現(xiàn)分頻和倍頻。輸出的頻率為:
式中,fc0和fc1是全局時(shí)鐘,為邏輯陣列塊(LAB)提供時(shí)鐘;fE則通過(guò)I/O單元輸出。
圖5為對(duì)PLL模塊仿真結(jié)果。外部晶振輸入高穩(wěn)定時(shí)鐘到inclk0引腳,經(jīng)PLL產(chǎn)生2倍頻時(shí)鐘c0、3倍頻時(shí)鐘cl及經(jīng)分頻的時(shí)鐘e0。
可見使用FPGA內(nèi)部鎖相環(huán)能為高速雷達(dá)數(shù)據(jù)采集系統(tǒng)各部分產(chǎn)生時(shí)鐘源,也使作為高速緩存的雙時(shí)鐘FIF0可應(yīng)用于各種時(shí)鐘域場(chǎng)合。
5 結(jié)論
本文在CycloneⅢFPGA中實(shí)現(xiàn)異步FIFO和鎖相環(huán)(PLL)結(jié)構(gòu)的設(shè)計(jì),避免復(fù)雜的時(shí)鐘管理,簡(jiǎn)化電路設(shè)計(jì),方便采集系統(tǒng)進(jìn)行升級(jí)維護(hù)。高速緩存的設(shè)計(jì)使采集數(shù)據(jù)能的安全地實(shí)現(xiàn)數(shù)據(jù)跨時(shí)鐘域的傳遞,提高了數(shù)據(jù)采集系統(tǒng)的可靠性。