1 引言
數(shù)控振蕩器是數(shù)字通信中調(diào)制解調(diào)單元必不可少的部分,,同時(shí)也是各種數(shù)字頻率合成器和數(shù)字信號(hào)發(fā)生器的核心。隨著數(shù)字通信技術(shù)的發(fā)展,。對(duì)傳送數(shù)據(jù)的精度和速率要求越來(lái)越高,。如何得到可數(shù)控的高精度的高頻載波信號(hào)是實(shí)現(xiàn)高速數(shù)字通信系統(tǒng)必須解決的問(wèn)題??删幊踢壿嬈骷痛笕萘看鎯?chǔ)器的發(fā)展為這一問(wèn)題的解決帶來(lái)了曙光,。本文介紹如何用FPGA(現(xiàn)場(chǎng)可編程邏輯門(mén)陣列)和SRAM(靜態(tài)隨機(jī)存儲(chǔ)器)實(shí)現(xiàn)高精度數(shù)控振蕩器。
2 NCO概述
NCO(Numerical Controlled Oscillator)即數(shù)控振蕩器用于產(chǎn)生可控的正弦波或余弦波,。其實(shí)現(xiàn)的方法目前主要有計(jì)算法和查表法等,。計(jì)算法以軟件編程的方式通過(guò)實(shí)時(shí)計(jì)算產(chǎn)生正弦波樣本.該方法耗時(shí)多且只能產(chǎn)生頻率相對(duì)較低的正弦波.而需要產(chǎn)生高速的正交信號(hào)時(shí),用此方法無(wú)法實(shí)現(xiàn),。因此,,在實(shí)際應(yīng)用中一般采用最有效,、最簡(jiǎn)單的查表法,即事先根據(jù)各個(gè)NCO正弦波相位計(jì)算好相位的正弦值,。并以相位角度作為地址把該相位的正弦值數(shù)據(jù)存儲(chǔ)在表中,,然后通過(guò)相位累加產(chǎn)生地址信息讀取當(dāng)前時(shí)刻的相位值在表中對(duì)應(yīng)的正弦值,從而產(chǎn)生所需頻率的正弦波,。
用查表法實(shí)現(xiàn)NCO的性能指標(biāo)取決于查表的深度和寬度,,即取決于表示相位數(shù)據(jù)的位數(shù)(查表存儲(chǔ)器地址線的位數(shù))和表示正弦值數(shù)據(jù)的位數(shù)(查表存儲(chǔ)器數(shù)據(jù)線的位數(shù))。改善NCO性能最簡(jiǎn)單和最根本的方法是加大查找表的深度和寬度,。目前,,用查找表法實(shí)現(xiàn)NCO的普遍做法是用片內(nèi)ROM作為查找表,由于片內(nèi)資源的限制,,查找表的深度和寬度一般不會(huì)很大(通常為256x8 bits),,大大限制了NCO性能的提高。用獨(dú)立的大容量SRAM作為查找表,,把查找表從片內(nèi)移到片外,,可以較好解決這個(gè)問(wèn)題?;谶@種思想,,筆者成功地用FPGA(Xilinx公司的XC2V1000型門(mén)陣列)和SRAM(Cypress公司的CY7C1021型存儲(chǔ)器)實(shí)現(xiàn)了NCO。
3 NCo的實(shí)現(xiàn)
3.1 結(jié)構(gòu)設(shè)計(jì)
用FPGA和SRAM實(shí)現(xiàn)的NCO的結(jié)構(gòu)如圖1所示,。大框內(nèi)部分是由FPGA完成.主要部件分為頻率控制字寄存器,、相位控制字寄存器、通道控制字寄存器,、累加器,、加法器、通道選擇器和鎖存器等,。微處理器對(duì)NC()進(jìn)行控制,,可用單片機(jī)或DSt,(數(shù)字信號(hào)處理器)實(shí)現(xiàn),。
3.1.1 頻率控制字寄存器,、相位控制字寄存器、累加器和加法器
頻率控制字寄存器和相位控制字寄存器都是32位并行輸入,,并行輸出寄存器,,它們通過(guò)微處理器接口進(jìn)行讀寫(xiě)。頻率控制字寄存器確定載波的頻率.相位控制字寄存器確定載波的初始相位,。32位累加器對(duì)代表頻率的頻率控制字進(jìn)行累加運(yùn)算,,累加結(jié)果與代表初始相位的相位控制字通過(guò)32位加法器進(jìn)行相加運(yùn)算.相加結(jié)果的高16位數(shù)據(jù)讀取查找表的地址信息。頻率控制字寄存器,、相位控制字寄存器,、累加器和加法器可以用VHD[.語(yǔ)言描述,,集成在一個(gè)模塊中,其VHDL源程序如下:
3.1.2通道控制字寄存器和通道選擇器
通道控制字寄存器和頻率控制字寄存器與相位控制字寄存器的結(jié)構(gòu)完全一樣.都是32位并行輸入/并行輸出寄存器,,通過(guò)微處理器接口進(jìn)行讀寫(xiě),。通道控制字寄存器僅用最后一位對(duì)通道選擇器進(jìn)行控制。通道選擇器是二選一復(fù)用器.當(dāng)Sel控制端為O時(shí)選擇通道l,,當(dāng)Sel控制端為1時(shí)選擇通道2,。通道選擇器作為SRAM與FPGA的接口.每個(gè)通道不僅包括16條地址線,而且還有3條控制線和32條數(shù)據(jù)線,。在圖l中,,為了使NCO的結(jié)構(gòu)更加清晰,通道選擇器的控制線和數(shù)據(jù)線沒(méi)有表示出來(lái),。
3.1.3 SRAM和鎖存器
SRAM是64Kx32的高性能靜態(tài)RAM.由2個(gè)CY7C102l(64KXl6)并聯(lián)構(gòu)成,,用作查找表,。SRAM通過(guò)微處理器進(jìn)行配置,,直接存放2路、1個(gè)周期,、65 536個(gè)16位載波樣本(高16位存放正弦波,,低16位存放余弦波)。雖然SRAM是異步器件,,但由于工作速度極高,,在簡(jiǎn)單控制邏輯配合下完全可以工作在同步模式下。NCO工作時(shí).控制邏輯(用VHDL語(yǔ)言描述)通過(guò)通道l使SRAM的控制信號(hào)線處于讀有效電平,,用相位地址直接驅(qū)動(dòng)SRAM.從SRAM讀出的數(shù)據(jù)進(jìn)入32位鎖存器.分2路直接輸出.不需要任何地址和數(shù)據(jù)轉(zhuǎn)換邏輯,。用于鎖存器的時(shí)鐘和用于累加器、加法器的時(shí)鐘在相位上相差180°,,這是由SRAM的開(kāi)關(guān)特性決定的,。
3.2 NCO的工作過(guò)程
NCO工作前必須對(duì)SRAM進(jìn)行初始化.圖2示出NCO的工作流程。首先,,微處理器向通道控制字寄存器寫(xiě)入1,,使通道選擇器選擇微處理器接口。然后.微處理器對(duì)SRAM進(jìn)行配置.向SRAM中寫(xiě)入載波樣本.接著,,微處理器向頻率控制字寄存器和相位控制字寄存器寫(xiě)入頻率控制字和相位控制字,,確定載波的頻率和初始相位.最后,向通道控制字寄存器寫(xiě)入0.通道選擇器選擇通道l,,使NCO處于工作狀態(tài),。此時(shí)微處理器可以對(duì)頻率控制字寄存器和相位控制字寄存器進(jìn)行動(dòng)態(tài)讀寫(xiě),實(shí)現(xiàn)對(duì)NCO的動(dòng)態(tài)實(shí)時(shí)控制.完成NCO頻率與初始相位的調(diào)整,。
3.3 NCO性能評(píng)估
按照上述結(jié)構(gòu).筆者設(shè)計(jì)了一種NCO系統(tǒng),。該系統(tǒng)的工作時(shí)鐘為80MHz.用DSP作為微處理器,。通過(guò)系統(tǒng)測(cè)試.該NCO的性能指標(biāo)達(dá)到了設(shè)計(jì)要求,頻率分辨率△f=O.0186Hz,,信噪比(SNR)在100dB以上.圖3示出NCO的典型特性曲線,。
4 結(jié)構(gòu)特點(diǎn)
用FPGA和SRAM實(shí)現(xiàn)數(shù)控振蕩器有許多特點(diǎn)。
首先,,查找表的容量可以進(jìn)一步加大,。此設(shè)計(jì)的結(jié)構(gòu)把相位累加部分和查找表分開(kāi)單獨(dú)實(shí)現(xiàn).由于FPGA具有可重復(fù)編程性且有豐富的I/O資源,因此只要稍加改動(dòng)FPGA內(nèi)的邏輯設(shè)計(jì)就可以外掛更大容量的SRAM,。
其次,,載波樣本的數(shù)據(jù)位數(shù)可以靈活控制。在查找表容量一定的情況下,,可以根據(jù)具體應(yīng)用調(diào)整載波樣本的數(shù)據(jù)寬度,。實(shí)現(xiàn)的手段有二:一是在對(duì)SRAM配置時(shí)通過(guò)微處理器以軟件編程的方式直接調(diào)整SRAM的數(shù)據(jù)寬度:二是在FPGA內(nèi)對(duì)SRAM輸出數(shù)據(jù)的位數(shù)進(jìn)行截位處理.可通過(guò)調(diào)整FPGA中鎖存器的輸出實(shí)現(xiàn)。
第三,,能夠靈活應(yīng)用到其他領(lǐng)域中,。該NCO只消耗FPGA中6%的Slices資源,大量資源包括片內(nèi)RAM和硬件乘法器都沒(méi)有用到,,利用這些資源可以對(duì)NCO進(jìn)行功能擴(kuò)展,,實(shí)現(xiàn)數(shù)字下變頻器(Digital Down Converter-DDC)、數(shù)字頻率合成器(Direct Digital Synthesizer-DDS)和調(diào)制解調(diào)器等,。
5 結(jié)束語(yǔ)
本文介紹了一種新的NCO實(shí)現(xiàn)方法,,用該方法設(shè)計(jì)的NCO可實(shí)現(xiàn)對(duì)載波的頻率、相位和幅度的完全控制,。由于用獨(dú)立的大容量SRAM作為查找表,,使得NCO有較高的精度。同時(shí)該NCO有很大的發(fā)揮空間,,能夠靈活地運(yùn)用到其他領(lǐng)域,。