国产专区欧美精品,911国产精品,国产精品人人爽人人做我的可爱,欧美午夜影院一区

基于單片機(jī)的直接數(shù)字頻率合成器的設(shè)計(jì)

2012-11-15 來源:現(xiàn)代電子技術(shù) 字號:

作者:丁小汀
(北京交通大學(xué)電子信息工程學(xué)院北京100044)

摘要:直接數(shù)字頻率合成具有一系列優(yōu)點(diǎn),如頻率切換速度快、頻率分辨力高、頻率和相位易于控制等。DDFS可以產(chǎn)生各種所需要的波形。根據(jù)直接數(shù)字頻率合成的原理,利用80C51單片機(jī)、數(shù)/模轉(zhuǎn)換器DAC0832以及一些外圍電路設(shè)計(jì)了一種正弦波發(fā)生器。該系統(tǒng)電路設(shè)計(jì)簡單、頻率控制靈活,具有良好的實(shí)用性和可擴(kuò)展性,不僅可用于正弦波的發(fā)生,還可根據(jù)存儲器中存放的不同波形數(shù)據(jù),輸出其他波形。

關(guān)鍵詞:直接數(shù)字頻率合成;單片機(jī);正弦信號;頻率控制

1

頻率合成技術(shù)迄今已經(jīng)歷了三代:直接頻率合成技術(shù)、鎖相環(huán)頻率合成技術(shù)、直接數(shù)字式頻率合成技術(shù)。直接數(shù)字式頻率合成(Direct Digital Frequency Synthesis,DDFS或DDS)是第三代頻率合成技術(shù)的標(biāo)志,他的主要特點(diǎn)是計(jì)算機(jī)參與頻率合成,既可以用軟件來實(shí)現(xiàn),也可以用硬件來實(shí)現(xiàn),或二者結(jié)合。直接數(shù)字式頻率合成器的最大優(yōu)點(diǎn)就是頻率切換的速度極快(可達(dá)幾微秒),并且頻率、相位和幅度都可控,輸出頻率穩(wěn)定度可達(dá)系統(tǒng)時(shí)鐘的穩(wěn)定度量級,易于集成化,更主要的是由于計(jì)算機(jī)參與頻率合成,故可充分發(fā)揮軟件的作用。雖然現(xiàn)有的專用DDFS芯片的功能也比較多,但控制方式卻是固定的,因此不一定是我們所需要的。本文利用80C51單片機(jī)、D/A轉(zhuǎn)換器以及一些外圍寄存器設(shè)計(jì)的直接數(shù)字頻率合成器,電路設(shè)計(jì)簡單、頻率控制靈活,具有良好的實(shí)用性,信號精度誤差也在允許范圍之內(nèi)。

 

2 DDFS的基本原理和總體框圖

DDFS基本上由5部分組成,如圖1所示:頻率碼鎖存器(FR)、相位累加器(PA)、ROM(正弦表)、數(shù)/模變換器(D/A)、低通濾波器(LPF),他們在時(shí)鐘的統(tǒng)調(diào)下工作。首先,把一個(gè)單位幅度的正弦函數(shù)的相位在0~2 弧度內(nèi)分成盡可能小的等間隔點(diǎn),若用A位二進(jìn)制數(shù)表示,分成2 個(gè)間隔點(diǎn),則最小相位間隔應(yīng)是:

算出相應(yīng)相位點(diǎn)的單位正弦函數(shù)值,并用D位二進(jìn)制數(shù)表示,寫入有A位地址線、D位數(shù)據(jù)線的ROM 中,構(gòu)成一個(gè)所謂正弦表。合成頻率的過程是控制改變相位增量(即相位跳過的最小相位間隔的數(shù)目),由于相位增量不同,在一個(gè)正弦周期內(nèi)的取樣點(diǎn)就不同,而取樣是在系統(tǒng)時(shí)鐘控制下進(jìn)行的,即取樣周期是一定的,這樣,根據(jù)相位增量的累加和所對應(yīng)的點(diǎn)(代表相位值)從ROM 中讀出相應(yīng)的函數(shù)值所形成的量化正弦波的周期也隨相位增量的改變而改變,從而達(dá)到合成所需頻率的目的。

在圖1中,相位累加器根據(jù)頻率碼鎖存器中的頻率碼k每個(gè)時(shí)鐘累加一次,其輸出一方面(N位)回到加法器的另一個(gè)輸入端作為下一次累加的被加數(shù),另一方面(A位)作為ROM 的地址碼對R0M 尋址,讀出相應(yīng)的正弦函數(shù)值(二進(jìn)制代碼),經(jīng)過數(shù)據(jù)緩沖器穩(wěn)定之后送到D/A變換器,得到一個(gè)幅值對應(yīng)于PA輸出相位點(diǎn)的正弦函數(shù)值。下一個(gè)時(shí)鐘到來,累加器再增加一個(gè)k值,ROM 同樣讀出累加器輸出的A位地址碼所對應(yīng)的正弦值,再送至D/A變換器。如此下去,相位累加器輸出值是一個(gè)階梯式的,相應(yīng)地,D/A 的輸出是一個(gè)以正弦為包絡(luò)的階梯波。相位累加器的溢出正好對應(yīng)著階梯正弦波的一個(gè)周期結(jié)束,再開始下一個(gè)周期。經(jīng)低通濾波器的平滑濾波得到頻率為,f0的正弦波。由于時(shí)鐘周期Tc= (1/fc)是定值,而且是高穩(wěn)定的,所以輸出頻率亦很穩(wěn)定。
頻率分辨率為:
   
輸出頻率為:

式中N為相位累加器的位數(shù),k為頻率碼。如果N=A,設(shè)定的k就是每個(gè)時(shí)鐘PA所跳過的最小相位間隔數(shù)。N 的增加意味著頻率分辨率的提高,但是A的增加卻意味著ROM 容量的增加,使設(shè)備復(fù)雜化,故一般N> A。本設(shè)計(jì)中的參數(shù)設(shè)置:N =12,A =10,D=8。

3 系統(tǒng)主要功能模塊的具體實(shí)現(xiàn)

3.1 頻率碼鎖存器(FR)、相位累加器(PA) 

如圖2所示,頻率碼鎖存器由2片8位D型鎖存器74LS373構(gòu)成,第Ⅱ片只使用D0~D3 ,形成12位的頻率碼。相位累加器由3片4位全加器74LS283構(gòu)成,形成12位的加法器。加法器的輸出經(jīng)過2片寄存器74LS273后一方面(12位)反饋到全加器的輸入端作為被加數(shù),另一方面(10位,舍棄低2位)作為地址碼對ROM 尋址,而頻率碼鎖存器輸出的頻率碼k作為加數(shù)。此處寄存器74LS273主要起數(shù)據(jù)緩沖的作用,他們都是在時(shí)鐘上升沿作。

3.2 ROM 正弦表

R0M正弦表用單片機(jī)80C51內(nèi)部的程序存儲器來實(shí)現(xiàn)。由于相位累加器輸出的地址A是10位,而每個(gè)正弦函數(shù)值用8位二進(jìn)制數(shù)來表示,所以正弦表的容量是1 kB。80C51的片內(nèi)程序存儲器容量為4 kB,完全足夠,因此不用再擴(kuò)充片外程序存儲器了。用80C51的P3.1,P3.0以及P1.7~P1.0作為10位地址的輸入口,用查表程序根據(jù)地址讀出相應(yīng)的函數(shù)值,再由P0口輸出,送至D/A轉(zhuǎn)換。

所謂查表法,就是預(yù)先將滿足一定精度要求的表示變量與函數(shù)值之間關(guān)系的一張表求出,然后把這張表存于單片機(jī)的程序存儲器中。這時(shí)自變量為單元地址,相應(yīng)的函數(shù)值為該地址單元中的內(nèi)容。在微機(jī)應(yīng)用系統(tǒng)中,一般使用的表均為線性表,他是一種最常用的數(shù)據(jù)結(jié)構(gòu),是個(gè)數(shù)據(jù)元素a1 ,a2,?a n的集合,各元素之間具有線性的位置關(guān)系。每次查表時(shí),首先將P3.1,P3.0以及P1.7~P1.0,輸入的10位地址存放在20H,21H兩個(gè)單元中(高字節(jié)在20H),他將作為查表時(shí)的地址偏移量(函數(shù)值存放在程序存儲器的實(shí)際地址=表首地址+偏移量)。

 

3.3 數(shù)/模轉(zhuǎn)換器(D/A)

數(shù)/模轉(zhuǎn)換器DAC0832輸入數(shù)字量是8位,參考電壓V 的工作范圍是一10~+10 V,通過他將外加高精度電壓源與內(nèi)部的電阻網(wǎng)絡(luò)相連接。芯片內(nèi)有一個(gè)8位輸入寄存器和一個(gè)8位DAC寄存器,形成兩級緩沖結(jié)構(gòu)。這樣可使DAC轉(zhuǎn)換輸出前一個(gè)數(shù)據(jù)的同時(shí),將下一個(gè)數(shù)據(jù)傳送到8位輸入寄存器,以提高數(shù)/模轉(zhuǎn)換的速度。DAC0832與80C51的接口電路如圖3所示,80C51的P0口直接與DAC0832的數(shù)字輸入DI7~DI0相接,8OC51的WR與DAC0832的WR1相接,P2.7與片選端CS連接,芯片采用的是單緩沖方式。這時(shí)芯片的地址為7FFFH。

3.4 系統(tǒng)時(shí)鐘的產(chǎn)生

系統(tǒng)時(shí)鐘可利用80C51的定時(shí)/計(jì)數(shù)器產(chǎn)生。時(shí)鐘頻率要根據(jù)最高輸出頻率確定,一般fc≥ 4f0max ,而低通濾波器的截止頻率為最高輸出頻率。本設(shè)計(jì)中時(shí)鐘頻率要求為50 kHz,則要用定時(shí)器輸出周期為20 us方波。選用定時(shí)/計(jì)數(shù)器T0,工作于方式0,輸出為P2.0引腳。20us的方波可由間隔10us的高低電平相間而成,因而只要每隔10us對P2.0取反一次。由于實(shí)驗(yàn)用80C51的時(shí)鐘頻率為12 MHz,因此計(jì)數(shù)初值:

4 軟件設(shè)計(jì)

4.1 ROM 查表程序
 
4.2 用定時(shí)器產(chǎn)生系統(tǒng)時(shí)鐘的程序
 
 
 
5 結(jié)
 
經(jīng)過示波器觀察可以看到清晰的正弦波形,通過計(jì)算機(jī)改變頻率碼k,可以得到不同頻率的波形,且輸出頻率隨頻率控制字的增大而增大。但輸出頻率超過13 kHz時(shí),輸出波形明顯失真,這主要由D/A轉(zhuǎn)換、低通濾波等部分產(chǎn)生的雜散所致。由于DDFS采用全數(shù)字結(jié)構(gòu),不可避免地引人了雜散。其來源主要有3個(gè):相位累加器相位舍位誤差造成的雜散,幅度量化誤差(由存儲器有限字長引起)造成的雜散和DAC非理想特性造成的雜散。
 
本文的設(shè)計(jì)是以產(chǎn)生正弦波為例,實(shí)際上只要在DDFS的波形存儲器存放不同的波形數(shù)據(jù),就可以實(shí)現(xiàn)各種波形輸出,如三角波、鋸齒波和矩形波,甚至是任意波形。另外只要在DDFS內(nèi)部加上相應(yīng)控制,如調(diào)頻控制FM、調(diào)相控制PM 和調(diào)幅控制AM,即可以方便靈活地實(shí)現(xiàn)調(diào)頻、調(diào)相和調(diào)幅功能,產(chǎn)生FSK,PSK,ASK和MSK等信號。在通信、雷達(dá)、電子對抗、導(dǎo)航、廣播電視、遙控遙測、儀器儀表等領(lǐng)域具有廣泛的應(yīng)用前景。
 

主站蜘蛛池模板: 博客| 安义县| 绵竹市| 黄梅县| 民乐县| 昌图县| 红河县| 香港| 江北区| 文昌市| 元谋县| 岚皋县| 阜城县| 鹤庆县| 陇川县| 湘阴县| 汉沽区| 甘肃省| 东台市| 郧西县| 屯留县| 朝阳县| 正镶白旗| 峨山| 称多县| 陕西省| 青阳县| 汝阳县| 崇阳县| 侯马市| 微山县| 曲麻莱县| 清水河县| 溧水县| 大邑县| 棋牌| 滁州市| 沛县| 张家界市| 类乌齐县| 射洪县|