前言
調(diào)相脈沖信號可以獲得較大的壓縮比,它作為一種常用的脈沖壓縮信號,在現(xiàn)代雷達(dá)及通信系統(tǒng)中獲得了廣泛應(yīng)用。隨著近年來軟件無線電技術(shù)和電子技術(shù)的發(fā)展,DDS(直接數(shù)字頻率合成)用于實(shí)現(xiàn)信號產(chǎn)生的應(yīng)用越來越廣。DDS技術(shù)從相位的概念出發(fā)進(jìn)行頻率合成,它采用數(shù)字采樣存儲(chǔ)技術(shù),可以產(chǎn)生點(diǎn)頻、線性調(diào)頻、ASK、PSK及FSK等各種形式的信號,其幅度和相位一致性好,具有電路控制簡單、相位精確、頻率分辨率高、頻率切換速度快、輸出信號相位噪聲低、易于實(shí)現(xiàn)全數(shù)字化設(shè)計(jì)等突出優(yōu)點(diǎn)。
目前,DDS的ASIC芯片如AD公司的AD9852、AD9854等,對于相位調(diào)制信號,可方便地產(chǎn)生BPSK,但是,對QPSK或8PSK等則實(shí)現(xiàn)困難,它們對控制更新脈沖要求極高,一旦偏差超過DDS內(nèi)極高的系統(tǒng)時(shí)鐘,輸出相位就會(huì)錯(cuò)誤。本文介紹了一種通過FPGA實(shí)現(xiàn)QPSK或更高階PSK信號的方法,可靈活地通過上位機(jī)的PCI總線控制參數(shù),產(chǎn)生不同載波頻率、不同脈沖寬度、不同占空比、不同重復(fù)周期等的QPSK信號,對雷達(dá)等系統(tǒng)的設(shè)計(jì)者具有很好的借鑒意義。
QPSK信號源的設(shè)計(jì)方案
DDS原理
DDS是一種全數(shù)字化的頻率合成器,由相位累加器、正弦波形ROM存儲(chǔ)器、D/A轉(zhuǎn)換器和低通濾波器構(gòu)成,其基本原理如圖1。
輸出信號的頻率為fout=fclk·Δφ/2N,而最小頻率分辨率為Δfo=fomin=fo/2N,可見改變頻率控制字N即可改變輸出信號的頻率。當(dāng)參考時(shí)鐘頻率給定后,輸出信號的頻率取決于頻率的控制字,頻率分辨率取決于累加器的位數(shù),相位分辨率取決于ROM的地址線位數(shù),幅度量化取決于ROM的數(shù)據(jù)字長和D/A轉(zhuǎn)換器的位數(shù)。
為了提高DDS輸出信號的頻譜指標(biāo)和降低正弦的ROM存儲(chǔ)器,近來發(fā)展了如在相位截?cái)嗪蠹訑?shù)字反sinc濾波,利用三角函數(shù)對稱性只存取1/4周期查找表,基于CORDIC、泰勒級數(shù)加權(quán)的頻率合成方法等技術(shù)。
QPSK信號源的設(shè)計(jì)方案
在FPGA中,通過正弦查找表和相位累加器實(shí)現(xiàn)DDS,通過計(jì)數(shù)器實(shí)現(xiàn)QPSK信號的起??刂?。在計(jì)數(shù)器計(jì)數(shù)到零時(shí),設(shè)置標(biāo)志位,讀取寄存器中的QPSK控制碼,從而設(shè)置初始相位。在計(jì)數(shù)到根據(jù)QPSK脈沖寬度設(shè)定的值后,計(jì)數(shù)器置0并重新開始計(jì)數(shù)。運(yùn)行完設(shè)置碼元的個(gè)數(shù)及次數(shù)后,使能輸出禁止標(biāo)志位。
QPSK信號的重復(fù)周期也通過計(jì)數(shù)器實(shí)現(xiàn)。根據(jù)周期的范圍和系統(tǒng)時(shí)鐘,設(shè)置計(jì)數(shù)器的位數(shù)并使其滿足要求。在計(jì)數(shù)器計(jì)數(shù)到設(shè)定值后,清除輸出禁止的標(biāo)志位。需要注意的是周期計(jì)數(shù)器應(yīng)該與QPSK碼元寬度計(jì)數(shù)器同步。
QPSK信號參數(shù)控制通過PCI總線實(shí)現(xiàn),包括QPSK信號的開始、結(jié)束、碼元個(gè)數(shù)、次數(shù)、碼字以及QPSK信號重復(fù)周期等。在FPGA內(nèi)通過寄存器讀取、保存參數(shù)。
硬件設(shè)計(jì)
系統(tǒng)組成與結(jié)構(gòu)
FPGA選用XILINX公司Spartan3系列的XC3S1000,為100萬門大規(guī)??删幊唐骷?。它內(nèi)部具有432kbit的Block Ram和120kbit的Distributed Ram;4個(gè)時(shí)鐘管理單元DCM;24個(gè)乘法器。配置采用XILINX的專用PROM XCF04S,4M位的串行Flash PROM。XC3S1000通過XCF04S實(shí)現(xiàn)主串配置,M0、M1、M2均置低。系統(tǒng)框圖如圖2。
高速DAC選用AD公司的AD9767,它是雙通道14位精度的高速CMOS DAC。它內(nèi)部集成1.2V的電壓基準(zhǔn),SFDR和IMR可達(dá)83dBc,最高轉(zhuǎn)換率為125MSPS,滿量程電流可調(diào)范圍為2mA~20mA,兩路D/A輸出后經(jīng)兩片高速、寬帶放大器AD8047放大,然后經(jīng)濾波器輸出,AD8047增益為1,實(shí)現(xiàn)電流到電壓的轉(zhuǎn)換。
PCI接口芯片采用PCI9054,是PlX公司應(yīng)用廣泛的32位、33MHz的PCI橋芯片,實(shí)現(xiàn)PCI總線和本地總線的轉(zhuǎn)換。PCI9054可工作在主、從模式,支持DMA,支持猝發(fā)操作。PCI9054的上電通過2k位的EEPROM NM93CS56配置,包括PCI9054的本地總線控制、PCI配置空間寄存器的配置等。PCI9054在PCB設(shè)計(jì)中應(yīng)注意PCI總線和時(shí)鐘的長度約束。
為了提高板上的存儲(chǔ)容量,F(xiàn)PGA通過CYPRESS的CY7C1372C-200擴(kuò)展了(512k×36)/1M×18位的ZBT SRAM。以零等待狀態(tài)讀寫速率可達(dá)200MHz,最大訪問時(shí)間為3ns,支持Burst操作,適用高速的數(shù)據(jù)讀寫。
系統(tǒng)通過SMA外接時(shí)鐘,同時(shí)內(nèi)部50MHz晶振經(jīng)時(shí)鐘緩沖芯片CY2308輸出,分別作為PCI9054和FPGA的本地時(shí)鐘。外接時(shí)鐘的輸入阻抗為50Ω,注意通過信號源提供時(shí)鐘時(shí)應(yīng)使其峰峰值在2V以上。
復(fù)位電路采用MAXIM的看門狗及電壓監(jiān)控芯片MAX708實(shí)現(xiàn)。
電源由PCI總線提供,3.3V電壓直接從PCI總線的3.3V引出,通過凌特公司的LT1764實(shí)現(xiàn)2.5V電壓,采用TI公司的TPS54612實(shí)現(xiàn)1.2V電壓,分別作為FPGA的輔助電壓Vccaux和核電壓Vccint。TPS54612輸入電壓為3-6V,在3.3V、5V均可使用,輸出可高達(dá)6A,且開關(guān)控制器內(nèi)部集成FET場效應(yīng)管,方便應(yīng)用。AD8047的正負(fù)電壓輸入分別為+5V和-5V,分別由從PCI總線接入的+12V和-12V電壓經(jīng)穩(wěn)壓器7805和7905提供。
軟件設(shè)計(jì)
QPSK信號的生成
QPSK信號產(chǎn)生的原理在前面已作詳述,F(xiàn)PGA的外接60MHz時(shí)鐘通過內(nèi)部的時(shí)鐘管理器倍頻實(shí)現(xiàn)120MHz時(shí)鐘,通過Block RAM資源實(shí)現(xiàn)只讀ROM,然后通過累加器進(jìn)程、讀QPSK碼字進(jìn)程、重復(fù)周期計(jì)數(shù)進(jìn)程等實(shí)現(xiàn)DDS功能,通過乘法器還可實(shí)現(xiàn)輸出信號的幅度控制。以下是部分源程序,采用Verilog HDL語言編寫。
時(shí)鐘管理單元,使用XILINX的DCM實(shí)現(xiàn)倍頻,由60MHz變?yōu)?20MHz。
單口只讀ROM,使用IP核,實(shí)現(xiàn)正弦查找表,數(shù)據(jù)寬度為14位,深度為16384字(14地址位)。ROM核接收的數(shù)據(jù)文件為COE文件,然后轉(zhuǎn)換為mif二進(jìn)制文件格式,COE文件可通過C語言或MATLAB生成。ROM核的實(shí)現(xiàn)如下:
相位累加器位數(shù)設(shè)置為32位,系統(tǒng)時(shí)鐘120MHz,這樣可實(shí)現(xiàn)小于0.03Hz的頻率分辨率,查找表相位截取低14位。累加器進(jìn)程如下:
DDS信號的控制實(shí)現(xiàn)
上位機(jī)通過PCI總線實(shí)現(xiàn)信號參數(shù)的讀寫控制。因本系統(tǒng)中只需PCI實(shí)現(xiàn)信號參數(shù)的控制,數(shù)據(jù)量不大,故配置PCI9054為PCI的從目標(biāo)(Slave),C模式。
在FPGA中實(shí)現(xiàn)參數(shù)寄存器,實(shí)時(shí)讀取PCI總線的數(shù)據(jù)并更新。FPGA本地總線的讀寫通過三態(tài)門控制。實(shí)現(xiàn)代碼如下:
讀寫實(shí)現(xiàn)通過狀態(tài)機(jī)程序?qū)崿F(xiàn),讀寫狀態(tài)流程圖如圖3。
上位機(jī)程序設(shè)計(jì)
上位機(jī)安裝Windows系統(tǒng),傳統(tǒng)上,PCI的驅(qū)動(dòng)通過微軟的DDK實(shí)現(xiàn)WDM驅(qū)動(dòng)程序,本信號源設(shè)計(jì)中采用Windriver軟件,可方便地讀寫主機(jī)給PCI9054系統(tǒng)板分配的內(nèi)存及I/O資源,并可生成inf文件和基于VC等開發(fā)環(huán)境的程序文件。
結(jié)論
試驗(yàn)表明,以本文所介紹的方法產(chǎn)生的信號源具有很好的性能,5MHz時(shí)連續(xù)波點(diǎn)頻的雜散SFDR達(dá)到70dB以上,輸出信號的頻率覆蓋短波波段,可達(dá)30MHz以上。在實(shí)際應(yīng)用中,還可以加上線性調(diào)頻等其他信號形式。若信號頻段在超短波以上,可用DDS產(chǎn)生固定中頻,經(jīng)數(shù)字上變頻和DAC芯片(如AD公司的AD9857)上變頻后輸出,該方法具有很強(qiáng)的可擴(kuò)展性。