1 引言
一般的雷達(dá)信號(hào)源實(shí)現(xiàn)主要有三種方式:第一種方式是采用DDS和MCU控制器件結(jié)合的方式;第二種是DDS、MCU控制器件和FPGA等可編程器件結(jié)合的方式:第三種是由FPGA等可編程器件實(shí)現(xiàn)DDS的方式。第一種方式利用專用DDS器件可以產(chǎn)生具有較好的雜散抑制和諧波抑制性能的雷達(dá)波形??刂坪唵?。但不易于實(shí)現(xiàn)復(fù)雜波形的控制時(shí)序,靈活性差:第二種方式不僅可以產(chǎn)生有較好雜散抑制性能的雷達(dá)波形。還易于產(chǎn)生各種復(fù)雜的雷達(dá)信號(hào),但附加了控制器和時(shí)序生成器,增大了電路的復(fù)雜性:第三種方式適用于產(chǎn)生特定要求的信號(hào),但開發(fā)周期長,雜散抑制和諧波抑制指標(biāo)難以達(dá)到專用DDS的水平。
隨著FPGA工藝的不斷發(fā)展,設(shè)計(jì)人員在FPGA上嵌入軟核處理器成為可能,即所謂的SoPC(System on a Programmable Chip)解決方案,它是指在FPGA內(nèi)部嵌入包括CPU在內(nèi)的各種IP,組成一個(gè)完整系統(tǒng).在單片F(xiàn)PGA內(nèi)部實(shí)現(xiàn)一個(gè)完整系統(tǒng)功能。本文采用Altera公司提供的SoPC Builder工具將Nios II CPU軟核嵌入到Cyclone II系列FPGA內(nèi)部以控制高性能DDS器件AD9858,并采用該片F(xiàn)PGA產(chǎn)生其他控制時(shí)序。這樣既充分利用了專用DDS的良好特性和完備功能,同時(shí)又大大減少處理器外圍擴(kuò)展元件數(shù)目,提高系統(tǒng)集成度,降低外圍電路布局走線的復(fù)雜度,提高系統(tǒng)的抗干擾能力,便于今后升級(jí)擴(kuò)展。
2 器件簡介
2.1 CycloneⅡ系列FPGA及NiosⅡ簡介
Cyclone II系列FPGA采用TSMC 90 nm低k絕緣工藝,具有完備的性能和極低的功耗,而價(jià)格與ASIC相當(dāng)。它具有多達(dá)68 416個(gè)邏輯單元(LE)和1.1 Mbit嵌入式存儲(chǔ)器,具備很多優(yōu)化的特性,包括多達(dá)150個(gè)嵌入18×18乘法器、專用外部存儲(chǔ)器接口電路、4 Kbit嵌入存儲(chǔ)塊、鎖相環(huán)(PLL)和高速差分I/O能力。其差分I/O信號(hào)可提供更好的噪聲容限,產(chǎn)生更低的電子干擾(EMI),并降低了功耗。其增強(qiáng)型鎖相環(huán)(PLL)能提供先進(jìn)的時(shí)鐘管理能力。它還支持:Nios II系列32位RISC嵌入式處理器。
Nios II是Altera公司推出的第二代IP軟核處理器,具有超過200 DMIP的性能,并與其他IP核構(gòu)成SOPC系統(tǒng)的主要部分。用戶可以通過自定義邏輯的方法在SoPC設(shè)計(jì)中添加自己開發(fā)的IP核,充分體現(xiàn)了SoPC設(shè)計(jì)靈活和高效的優(yōu)越性。Nios II系列嵌入式處理器包括三種CPU內(nèi)核:高性能內(nèi)核(Nios II/f,快速)、低成本內(nèi)核(Nios II/e,經(jīng)濟(jì))和性價(jià)比均衡內(nèi)核(Nios II/s,標(biāo)準(zhǔn))。采用Quartus II設(shè)計(jì)軟件集成的SoPC Builder工具,可以在系統(tǒng)中輕松嵌入Nios II處理器。本系統(tǒng)設(shè)計(jì)采用該系列EP2C8Q208C7。
2.2 AD9858簡介
AD9858是ADI公司推出的直接數(shù)字頻率合成器(DDS),其10-bit DAC具有高達(dá)1 GS/s模擬輸出,頻率高達(dá)400 MHz。它具有快速調(diào)頻和精細(xì)調(diào)諧分辨率的特性,可快速產(chǎn)生單頻脈沖、線性調(diào)頻及相位編碼信號(hào)。AD9858的雜散抑制性能和諧波抑制性能也非常突出,當(dāng)輸出40 MHz信號(hào)時(shí),±1 MHz帶寬內(nèi)的數(shù)模轉(zhuǎn)換SFDR為一87 dBc;輸出180 MHz信號(hào)時(shí)。±1 MHz帶寬內(nèi)的數(shù)/模轉(zhuǎn)換SFDR為-84 dBc,能滿足高性能雷達(dá)低雜散、低相位噪聲的要求。AD9858內(nèi)部集成有電荷泵(CP)、相頻檢測(cè)器(PFD)和模擬混頻器,可以將高速DDS和鎖相環(huán)(PLL)及混頻器結(jié)合使用。AD9858具有對(duì)輸入時(shí)鐘二分頻功能,外部時(shí)鐘高達(dá)2 GHz。對(duì)AD9858進(jìn)行配置也非常容易,只需把控制字通過并行或串行方式寫入片上的控制寄存器即可。AD9858比先前的解決方案速度提高了3倍,功耗卻沒有增加,還具有可編程的全睡眠模式,因而適應(yīng)用于無線設(shè)備以及軍事系統(tǒng)的設(shè)計(jì)。
AD9858的優(yōu)勢(shì)在于其具有四套頻率調(diào)諧寄存器(FTW)及四個(gè)相位調(diào)整寄存器(POW),這使得它可以方便快速產(chǎn)生線性調(diào)頻信號(hào)以及相位編碼信號(hào),而且這四個(gè)控制寄存器的選擇是由外部選擇信號(hào)PS1、PS0實(shí)現(xiàn)的,可大大減少了子碼間的轉(zhuǎn)換時(shí)間。
3 系統(tǒng)設(shè)計(jì)方案
3.1 硬件結(jié)構(gòu)
本系統(tǒng)硬件框圖如圖1所示。FPGA和AD9858的并行數(shù)據(jù)/地址總線相連,提供讀/寫信號(hào)、復(fù)位信號(hào)和PS0、PS1信號(hào)。AD9858的輸入時(shí)鐘由外部時(shí)鐘源電路提供,采用差分電平標(biāo)準(zhǔn)。AD9858的輸出首先經(jīng)過放大電路,使其滿足功率要求,然后再經(jīng)過濾波電路。FPGA接收主機(jī)的波形選擇控制信號(hào),產(chǎn)生各種同步時(shí)序,并為內(nèi)嵌Nios II CPU提供中斷信號(hào)。Nios II CPU響應(yīng)不同的中斷,通過并行方式為AD9858提供各種控制字和初始化,從而產(chǎn)生不同的雷達(dá)波形。
其中Nios II CPU是由Quartus II設(shè)計(jì)軟件集成的SoPC Builder工具生成。用戶可以通過SoPCBuilder的圖形用戶界面從Ahera公司提供的IP元件庫中選取一些組件,如Nios II、DMA、SRAM、Flash等等,并根據(jù)實(shí)際需要設(shè)置這些IP的配置參數(shù)。用戶還可以自行編寫HDL代碼模塊作為用戶自定義邏輯添加到SoPC Builder中。由于本系統(tǒng)功能相對(duì)簡單,所以采用Cyclone II片內(nèi)的嵌入式RAM構(gòu)成Nios II的數(shù)據(jù)和程序存儲(chǔ)區(qū)。對(duì)于其他功能復(fù)雜、控制程序較大的設(shè)計(jì),應(yīng)擴(kuò)展片外SRAM和Flash作為Nios II的數(shù)據(jù)和程序存儲(chǔ)區(qū)。
對(duì)AD9858的控制實(shí)質(zhì)就是通過其并行數(shù)據(jù)和地址總線傳送控制字,可通過在SoPC Builder中為AD9858生成一個(gè)用戶自定義邏輯接口實(shí)現(xiàn)。但考慮到AD9858的讀寫時(shí)序比較簡單,也可以直接采用Nios II現(xiàn)有IP元件庫里的PIO來生成所需要的讀寫時(shí)序。PIO (Parallel Input/Output)是SoPCBuilder中最常用的IP之一,它有輸入、輸出以及雙向口三種類型。另外,它還支持中斷檢測(cè),不過中斷檢測(cè)及處理只在其作為輸入設(shè)備時(shí)可用。AD9858并行總線的寫時(shí)序如圖2所示。
需要注意的是,寫使能信號(hào)(低有效)的最小周期為9 ns,為低電平的時(shí)間最少是3 ns,為高電平的時(shí)間最少是6 ns,而地址和數(shù)據(jù)信號(hào)的建立時(shí)間分別為3 ns和3.5 ns。圖3為用嵌入式邏輯分析儀SignalTap II采樣的一段用PIO生成的AD9858并行總線寫時(shí)序。完全滿足設(shè)計(jì)要求。
最終生成的Nios II系統(tǒng)如圖4所示。其中,jtag_uart_0是為了調(diào)試時(shí)便于Nios II和主機(jī)通信而編寫的,也可以省去。外部中斷EX_IRQ0和EX_IRQ1也是用PIO實(shí)現(xiàn)。
DDS輸出信號(hào)的質(zhì)量取決于為AD9858提供工作時(shí)鐘的外部時(shí)鐘源,本系統(tǒng)采用40 MHz高性能晶體振蕩器,然后通過PLL倍頻電路獲得240 MHz參考時(shí)鐘。同時(shí)將時(shí)鐘轉(zhuǎn)換成符合AD9858要求的差分信號(hào),以降低共模干擾。輸出信號(hào)的濾波器設(shè)計(jì)好壞也直接影響到最終輸出信號(hào)的質(zhì)量。若采用單一的帶通濾波器抑制DDS輸出雜散,對(duì)頻率合成器帶內(nèi)雜散性能并沒有提高。采用濾波器組則會(huì)帶來電路復(fù)雜、增大體積以及延長頻率切換時(shí)間等問題。目前,一般是通過DDS輸出驅(qū)動(dòng)倍頻器鏈,達(dá)到提高輸出頻譜和拓展頻譜帶寬的要求,但同時(shí)也會(huì)導(dǎo)致DDS輸出帶內(nèi)頻譜純度惡化。印制板設(shè)計(jì)要滿足高速數(shù)?;旌想娐冯姶偶嫒莘矫娴脑O(shè)計(jì)原則,以使系統(tǒng)性能更佳。
3.2 軟件設(shè)計(jì)
本系統(tǒng)的軟件設(shè)計(jì)采用Altera公司提供的E-DA設(shè)計(jì)工具Quartus II,主要包括兩個(gè)部分:首先是由Ouartus II集成的SoPC Builder工具生成Nios IICPU并進(jìn)行相應(yīng)的設(shè)置,用原理圖和HDL語言設(shè)計(jì)。FPGA的其他時(shí)序控制程序;其次是用Quarus II集成的Nios II IDE綜合開發(fā)環(huán)境為Nios II CPU編寫控制AD9858的程序,采用C/C++語言編寫,分為主程序模塊和中斷響應(yīng)程序模塊。
因?yàn)楸驹O(shè)計(jì)只采用片內(nèi)RAM作為Nios II(CPU的程序和數(shù)據(jù)存儲(chǔ)區(qū),所以在Nios II IDE綜合開發(fā)環(huán)境下前先對(duì)項(xiàng)目進(jìn)行一些編譯設(shè)置,以使編譯器編譯出效率更高、占用空間更小的代碼。在用戶工程屬性對(duì)話框內(nèi)將Optimization Level設(shè)為“Opti-mize size(-Os)”,在系統(tǒng)庫工程屬性對(duì)話框內(nèi)也做同樣的設(shè)置,同時(shí)將Max file descriptors設(shè)為4,清除“Clean exit(flush buffers)”和“Link with profiling li-brary”前的選中框,選中“Reduced device drivers”和“Small C Library”。
AD9858有兩種工作模式:單頻模式和掃頻模式。單頻模式的配置比較簡單,只需將控制寄存器(CFR)、頻率調(diào)諧字(FTW)配置完畢,即可打開該功能。頻率掃描模式需要配置的寄存器有控制寄存器(CFR)、頻率調(diào)諧字(Frw)、增量頻率調(diào)諧字(DFTW)、增量頻率斜率控制字(DFRRW)和相位偏移字(POW)。其中,控制寄存器一共有4個(gè)字節(jié),地址分別為0x00、0x01、0x02和0x03。在本設(shè)計(jì)中,未用到PLL功能.故與PLL有關(guān)的控制字均置為無效。0x01的Bit7為掃頻使能位,將其置1打開掃頻功能。上電復(fù)位以后,Nios II CPU處于等待中斷狀態(tài),它根據(jù)FPGA的時(shí)序控制程序發(fā)出的中斷信號(hào)執(zhí)行相應(yīng)的中斷響應(yīng)程序,通過對(duì)各種寄存器賦值可產(chǎn)生線性調(diào)頻或相位編碼信號(hào)。
關(guān)于采用AD9858產(chǎn)生線性調(diào)頻信號(hào)還需進(jìn)一步說明,其工作原理是:指定頻率起始點(diǎn)和步進(jìn)頻率,頻率以系統(tǒng)時(shí)鐘的1/8或其整數(shù)倍累加,但是在沒有指定上限頻率的情況下,會(huì)一直掃到1/2參考時(shí)鐘頻率處,即奈奎斯特頻率,所以需要外部定時(shí)器控制何時(shí)停止頻率累加。通過FPGA的時(shí)序控制程序可以靈活地設(shè)定定時(shí)器,實(shí)現(xiàn)對(duì)上限頻率精確控制。
Nios II的中斷程序編程需要調(diào)用API函數(shù)alt_irq_register()向系統(tǒng)。ISR注冊(cè)用戶ISR。其原形為:
其中,id代表被服務(wù)的中斷向量號(hào);context是運(yùn)行參數(shù)指針,作為第一個(gè)參數(shù)傳給用戶。ISR;isr是函數(shù)指針。指向用戶。ISR入口。如果注冊(cè)成功,函數(shù)返回0,并允許全局中斷及被服務(wù)中斷;如果不成功則返回非0值。
用戶定義的用戶ISR程序要符合統(tǒng)一的原形定義,即:
其中,入口參數(shù)與返回值要嚴(yán)格按標(biāo)準(zhǔn)形式定義。否則系統(tǒng)ISR,將不能正確對(duì)其調(diào)用。
中斷程序的部分代碼如下:
4 結(jié)束語
系統(tǒng)通過一片F(xiàn)PGA實(shí)現(xiàn)內(nèi)嵌CPU軟核控制外圍DDS,同時(shí)形成各種系統(tǒng)所需的同步控制時(shí)序。實(shí)驗(yàn)證明其調(diào)頻性能和穩(wěn)定精度等各項(xiàng)指標(biāo)均達(dá)到設(shè)計(jì)要求。SoPC是目前嵌入式系統(tǒng)設(shè)計(jì)的一個(gè)新趨勢(shì),由于FPGA的可編程特性,可以在不改變?nèi)魏瓮鈬娐返那闆r下靈活地對(duì)系統(tǒng)進(jìn)行重新配置,軟硬件升級(jí)。此外,還可以實(shí)現(xiàn)對(duì)Nios II CPU的RTOS操作系統(tǒng)的移植,以實(shí)現(xiàn)更豐富的功能和產(chǎn)生更為復(fù)雜的雷達(dá)波形,從而簡化雷達(dá)信號(hào)源的設(shè)計(jì),提高系統(tǒng)的集成度。
責(zé)任編輯:gt
評(píng)論
查看更多