999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于單片機(jī)的DDS算法的實(shí)現(xiàn)

2014-04-29 00:44:03付宗見江興盟
電子世界 2014年17期
關(guān)鍵詞:單片機(jī)

付宗見 江興盟

【摘要】通常DDS信號(hào)發(fā)生器設(shè)計(jì)主要分為兩類,一類是采用FPGA設(shè)計(jì),另一類采用單片機(jī)+DDS專用芯片實(shí)現(xiàn)。本文針對(duì)頻率及要求較低的應(yīng)用,提出一種更為簡單的解決方案,即通過單片機(jī)編程完成DDS算法,從而實(shí)現(xiàn)信號(hào)發(fā)生器功能。

【關(guān)鍵詞】單片機(jī);DDS;D/A轉(zhuǎn)換

1.引言

近年來,直接數(shù)字頻率合成(DDS)信號(hào)發(fā)生器,因具有輸出信號(hào)頻率穩(wěn)定、分辨率高、相位噪聲低等優(yōu)點(diǎn),逐漸取代了傳統(tǒng)的基于LC或RC振蕩電路的信號(hào)發(fā)生器,成為當(dāng)前信號(hào)發(fā)生器的主流。

DDS信號(hào)發(fā)生器的設(shè)計(jì)核心在于DDS算法的實(shí)現(xiàn),當(dāng)前主流的設(shè)計(jì)方案主要有兩種:

(1)采用FPGA實(shí)現(xiàn)DDS算法,即通過HDL語言自行設(shè)計(jì)DDS算法,產(chǎn)生波形數(shù)字序列,F(xiàn)PGA輸出驅(qū)動(dòng)D/A轉(zhuǎn)換器,實(shí)現(xiàn)信號(hào)輸出。

(2)采用專用DDS芯片實(shí)現(xiàn),單片機(jī)只需改寫DDS芯片相關(guān)寄存器,即可輸出相應(yīng)頻率及波形的模擬信號(hào)。整個(gè)芯片的DDS算法及D/A轉(zhuǎn)換都是出廠時(shí)已設(shè)計(jì)好,無需干預(yù)。

針對(duì)一些非主流的應(yīng)用,比如對(duì)輸出頻率和設(shè)計(jì)要求都較低時(shí),有沒有更簡單的解決方案?

本文將討論如何采用單片機(jī)代替FPGA及DDS專用芯片,采用C語言編程完成DDS算法,從而實(shí)現(xiàn)單片機(jī)完成DDS信號(hào)發(fā)生器的簡單設(shè)計(jì)方案。

2.DDS基本原理

直接數(shù)字合成(Direct Digital Synthesis、DDS)是一種從相位出發(fā)的新的頻率合成技術(shù)和信號(hào)產(chǎn)生的方法。

DDS主要由:相位累加器、正弦波形存儲(chǔ)器(ROM)、數(shù)模轉(zhuǎn)換器(D/A轉(zhuǎn)換)、低通濾波器、和時(shí)鐘五部分組成。如圖1所示。

圖1 DDS原理框圖

相位累加器本質(zhì)上是一個(gè)計(jì)數(shù)器。在時(shí)鐘脈沖的作用下,將頻率控制字(FTW)的相位增量M累加一次。累加器如果溢出,除溢出位外,累加器保留其它的數(shù)字位。

相位累加器輸出數(shù)據(jù)作為地址,查詢正弦查詢表,將取出的正弦數(shù)據(jù)通過D/A轉(zhuǎn)換器輸出模擬信號(hào)。

模擬信號(hào)再通過一個(gè)低通濾波器輸出純凈的正弦波信號(hào)[1]。

DDS算法包括了時(shí)鐘、相位累加器、正弦查詢部分,基本原理如圖2所示:

圖2 DDS算法示意圖

如圖2所示,采用32位的相位累加器,可輸出為數(shù)據(jù)范圍為0~(232-1)。取相位累加器的后8位作為正弦查詢表的地址。正弦表存放一個(gè)周期的正弦波數(shù)據(jù),由于采用于8位的D/A轉(zhuǎn)換器,正弦表采用采用256個(gè)點(diǎn)來描述一個(gè)完整的正弦波數(shù)據(jù)。

正弦表的輸出數(shù)據(jù)為fout,其輸出頻率由“頻率控制字FTW”進(jìn)行調(diào)節(jié):

fout=fclk/2MFTW ? ? ? ? ? ? ? ? ? (式1)

式中:

fout—輸出頻率

fclk—時(shí)鐘頻率

M—相位累加器位數(shù)

FTW—頻率控制字

最小頻率分辨率:

fmin=fclk/2M ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?(式2)

式中:

fmin—輸出頻率

fclk—時(shí)鐘頻率

M—相位累加器位數(shù)

式中M為相位累加器的位數(shù),本設(shè)計(jì)中采用32位相位累加器。

FTW是頻率步進(jìn)控制字,F(xiàn)TW的取值決定了輸出信號(hào)的頻率。

輸出信號(hào)頻率fout主要取決于頻率控制字FTW。增加FTW,可以使fout不斷增加,但綜合考慮Nyquist 采樣定理,最高輸出頻率應(yīng)小于fclk一半。但在實(shí)際使用中,工作頻率應(yīng)小于fclk的三分之一。

受單片機(jī)運(yùn)行速度的影響,本設(shè)計(jì)中選取的時(shí)鐘頻率為10KHz,因此最小頻率分辨率為:

fmin=fclk/2M=10×103/232=2.328306436538696×10-6 ? ? ? ? ?(式3)

根據(jù)上式,當(dāng)需要輸出1Hz的頻率時(shí),頻率控制字FTW取:

FTW=1/fmin=429496.7296

得到了頻率控制字FTW,如果需要輸出相應(yīng)的頻率只需要乘上頻率控制字就可以了。

3.C語言實(shí)現(xiàn)DDS算法

根據(jù)DDS算法的原理,在每個(gè)時(shí)鐘脈沖fclk的作用下,累加器加1,同時(shí),從正弦表得到一個(gè)波形數(shù)據(jù)。結(jié)合C語言的特點(diǎn),采用定時(shí)中斷代替時(shí)鐘脈沖,每個(gè)時(shí)鐘作用下的工作放在定時(shí)中斷中完成。具體實(shí)現(xiàn)如下:

(1)時(shí)鐘fclk

通過定時(shí)器初始化程序,設(shè)置100us的定時(shí)中斷。DDS算法在中斷服務(wù)子程序中完成。因此,fclk取值為10KHz。由于受STC89C52單片機(jī)運(yùn)行速度的限制,定時(shí)周期不能太短,最終影響輸出信號(hào)頻率。如果采用運(yùn)行速度更快的CPU,可通過設(shè)置更短的定時(shí)周期,即可提高輸出信號(hào)頻率。

(2)相位累加器

通過定義一個(gè)32位的寄存器,直接通過加法運(yùn)算實(shí)現(xiàn)。每次定時(shí)中斷,累加器與頻率控制字相加,并將結(jié)果放入累加器中。

(3)正弦查詢表

通過定義一個(gè)具有256個(gè)元素的一維數(shù)組,用于存放一個(gè)完整的正弦數(shù)據(jù)表。每次定時(shí)中斷,用累加器的后8位作為該數(shù)組的索引,讀出波形數(shù)據(jù)。

圖3 DDS算法在KEIL中的仿真波形

完整的程序代碼如下(采用STC89C51單片機(jī)):

#define OUT ? P0 //波形數(shù)據(jù)輸出

unsigned long ? Phaseacc=0; //相位累加器

unsigned long ?ftw1HZ=429497; ? //1Hz對(duì)應(yīng)的頻率控制字

unsigned long ftwacc=0; //當(dāng)前頻率控制字

unsigned char code Sin[256]={ //正弦查詢表

128,131,134,137,140,143,146,149 ,..此處省略,121,124 };

//----------------------------------定時(shí)器初始化

void InitTimer0(void)

{ ? TMOD = 0x01; //10KHZ的定時(shí)頻率

TH0 = 0xFF;

TL0 = 0x37;

EA = 1; ? ?ET0 = 1; ? ?TR0 = 1;

}

//----------------------------------定時(shí)器中斷程序

void Timer0Interrupt(void) interrupt 1

{ unsigned char i;

TH0 = 0x0FF; TL0 = 0x37; ?haseacc=Phaseacc+ftwacc; ? //累加器加FTW

i= Phaseacc>>24;

OUT = Sin[i]; ? //正弦查詢表取數(shù)

P17=!P17;

}

//----------------------------------主程序

void main(void)

{ ? InitTimer0(); //定時(shí)器初始化

ftwacc=100*ftw1HZ; //設(shè)置輸出波形頻率為100Hz

while(1){;} //等待定時(shí)中斷

}

4.結(jié)語

將C51實(shí)現(xiàn)的DDS算法的程序代碼放在KEIL軟件中仿真,通過該軟件提供的Logic Analyzer工具,得到波形如圖3所示。

將P0輸出外接8位D/A轉(zhuǎn)換器,再通過低通濾波器后就能得到正弦信號(hào)。

綜上,本文介紹了基于51單片機(jī)的DDS算法的實(shí)現(xiàn)方法。在頻率要求低,設(shè)計(jì)成本敏感的信號(hào)源的設(shè)計(jì)中,該方案具有明顯優(yōu)勢(shì)。

參考文獻(xiàn)

[1]蔣志勇.基于FPGA的DDS波形發(fā)生器設(shè)計(jì)[J].科技信息,2012(01).

[2]桂玲.基于AD9852和單片機(jī)的頻率合成器設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2012(15).

[3]常春波.一種基于FPGA的DDS算法的簡化實(shí)現(xiàn)[J].太原科技大學(xué)學(xué)報(bào),2006(05).

作者簡介:

付宗見(1975—),男,河南潢川人,助理講師,現(xiàn)供職于鄭州鐵路職業(yè)技術(shù)學(xué)院。

江興盟(1982—),男,陜西安康人,講師,現(xiàn)供職于鄭州鐵路職業(yè)技術(shù)學(xué)院。

猜你喜歡
單片機(jī)
基于單片機(jī)的SPWM控制逆變器的設(shè)計(jì)與實(shí)現(xiàn)
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機(jī)的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機(jī)的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機(jī)的便捷式LCF測(cè)量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機(jī)之間的串行通信及應(yīng)用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機(jī)在仿真中要注意的幾點(diǎn)問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機(jī)的平衡控制系統(tǒng)設(shè)計(jì)
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機(jī)的三維LED點(diǎn)陣設(shè)計(jì)
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個(gè)全新PIC單片機(jī)系列
基于Proteus的單片機(jī)控制系統(tǒng)的仿真設(shè)計(jì)
主站蜘蛛池模板: 综合五月天网| 伊人久久综在合线亚洲91| 亚洲欧美一区二区三区麻豆| 被公侵犯人妻少妇一区二区三区| 广东一级毛片| 国产激爽大片高清在线观看| 国产国拍精品视频免费看| 一本大道香蕉久中文在线播放| 国产成人狂喷潮在线观看2345| 国产精品不卡永久免费| 色偷偷av男人的天堂不卡| 免费xxxxx在线观看网站| 91精品国产麻豆国产自产在线| 国产精品丝袜在线| av在线无码浏览| 久久久久青草大香线综合精品| 日韩黄色精品| 国产精品.com| www欧美在线观看| 正在播放久久| 欧美区日韩区| 午夜激情福利视频| 97免费在线观看视频| 欧美成人午夜在线全部免费| 国产一级毛片在线| 免费无码AV片在线观看中文| 午夜在线不卡| 国产va在线观看免费| 国产精品护士| 91外围女在线观看| 色综合五月| 国产日本欧美亚洲精品视| 日韩欧美91| 国产日本欧美亚洲精品视| 香蕉蕉亚亚洲aav综合| 色妺妺在线视频喷水| 国产91丝袜在线观看| 日韩精品毛片| 特级aaaaaaaaa毛片免费视频| 91精品国产一区自在线拍| 亚洲国产理论片在线播放| 亚洲69视频| 久996视频精品免费观看| 亚洲swag精品自拍一区| 2021亚洲精品不卡a| 国产一级毛片在线| 亚洲不卡网| 在线观看国产网址你懂的| 国产成人精品男人的天堂下载| 亚洲第一中文字幕| 欧美激情第一欧美在线| 国产精品综合色区在线观看| 日本成人在线不卡视频| 国产精品免费入口视频| 欧美第九页| 国产麻豆永久视频| 国产一区二区三区日韩精品| 欧美日韩一区二区在线播放| 免费高清自慰一区二区三区| 在线观看免费AV网| av性天堂网| 精品无码人妻一区二区| 亚洲中文字幕日产无码2021| 亚洲午夜福利在线| 亚洲色图欧美在线| 国产高清在线精品一区二区三区| 成人伊人色一区二区三区| 亚洲久悠悠色悠在线播放| 亚洲AV无码乱码在线观看代蜜桃| 国产情精品嫩草影院88av| 亚洲一区二区日韩欧美gif| 国产精品亚洲欧美日韩久久| 内射人妻无套中出无码| 国产精品区网红主播在线观看| 国产v精品成人免费视频71pao| 亚洲欧美一区二区三区麻豆| 人妻无码中文字幕一区二区三区| 日韩性网站| 精品自拍视频在线观看| 美女国产在线| 在线国产毛片手机小视频| 欧美亚洲国产日韩电影在线|