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