《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于DDS的高精度任意波形發(fā)生器設(shè)計(jì)
基于DDS的高精度任意波形發(fā)生器設(shè)計(jì)
單片機(jī)與嵌入式系統(tǒng)
王晨
西安電子科技大學(xué)
摘要: 系統(tǒng)利用直接數(shù)字頻率合成技術(shù)(DDS)完成任意波形發(fā)生器設(shè)計(jì),以FPGA作為核心控制器件,用F
關(guān)鍵詞: DDS 波形發(fā)生器
Abstract:
Key words :

摘要:系統(tǒng)利用直接數(shù)字頻率合成技術(shù)(DDS)完成任意波形發(fā)生器設(shè)計(jì),,以FPGA作為核心控制器件,,用FLASH和RAM作為波形數(shù)據(jù)存儲(chǔ)模塊,在上位機(jī)軟件的控制下,,利用高精度D/A轉(zhuǎn)換器,,實(shí)現(xiàn)正弦波,、方波,、三角波,、鋸齒波、高斯白噪聲等任意波形輸出,。系統(tǒng)可廣泛用于通訊,、遙控遙測(cè)、震動(dòng)激勵(lì)和儀器儀表等領(lǐng)域,。

隨著數(shù)字信號(hào)處理技術(shù)的飛速發(fā)展,,高精度大動(dòng)態(tài)范圍D/A轉(zhuǎn)換器的出現(xiàn)和廣泛應(yīng)用,基于取樣技術(shù)和計(jì)算技術(shù),,通過數(shù)字方法生成頻率和相位相對(duì)固定且可調(diào)的合成技術(shù),,即直接數(shù)字頻率合成(DDS)技術(shù)日益成熟,它采用全數(shù)字化結(jié)構(gòu),,具有頻率分辨率高,、相對(duì)帶寬寬、頻率轉(zhuǎn)換速度快,、相位噪聲低,、信號(hào)純度高等優(yōu)點(diǎn)。因此,,本系統(tǒng)采用DDS技術(shù)來完成任意波形發(fā)生器設(shè)計(jì),。

1 DDS工作原理

直接數(shù)字頻率合成(DDS)技術(shù)是一種以采樣定理為基礎(chǔ)的全數(shù)字化波形產(chǎn)生方法。DDS頻率合成器主要由相位累加器,、波形數(shù)據(jù)存儲(chǔ)器,、D/A轉(zhuǎn)換器和低通濾波器組成,其原理框圖如圖1所示,。在一個(gè)系統(tǒng)時(shí)鐘周期內(nèi),,相位累加器將前一次的累加值與頻率控制字相加,得到新的累加值,,將新的累加值作為地址,,從波形數(shù)據(jù)存儲(chǔ)器中讀取信號(hào)的幅度值,送入D/A轉(zhuǎn)換器將數(shù)字信號(hào)轉(zhuǎn)換為模擬信號(hào),,最后再經(jīng)低通濾波器生成需要波形,。其中波形數(shù)據(jù)存儲(chǔ)器中存儲(chǔ)了周期信號(hào)單個(gè)周期的幅度值,相位累加器每溢出1次,,可從波形數(shù)據(jù)存儲(chǔ)器中讀取1個(gè)周期的信號(hào)幅度值,。因此,若假設(shè)頻率控制字為K,,相位累加器為N位,,則經(jīng)過個(gè)系統(tǒng)時(shí)鐘周期,,可產(chǎn)生1個(gè)周期的輸出信號(hào),再設(shè)系統(tǒng)時(shí)鐘頻率為fsclk,,則輸出信號(hào)頻率,。

2 系統(tǒng)總體框圖

系統(tǒng)總體框圖如圖2所示。其中,,上位機(jī)軟件由LabWindows軟件編寫,,用于控制信號(hào)的產(chǎn)生,下位機(jī)以FPGA作為核心控制器件,,主要用于接收上位機(jī)發(fā)送的控制命令和信號(hào)參數(shù),并控制下位機(jī)系統(tǒng)產(chǎn)生對(duì)應(yīng)波形,。下位機(jī)系統(tǒng)主要分為FPGA控制單元,、波形存儲(chǔ)單元、波形產(chǎn)生單元,。波形存儲(chǔ)單元主要包括FLASH和SRAM,,F(xiàn)LASH用于存儲(chǔ)各種波形數(shù)據(jù),波形產(chǎn)生時(shí),,F(xiàn)PGA先將要產(chǎn)生的波形數(shù)據(jù)從FLASH讀入SRAM,,再利用相位累加器的累加值從SRAM中讀取波形數(shù)據(jù)。波形產(chǎn)生單元主要完成波形數(shù)據(jù)的產(chǎn)生,,首先將SRAM讀出的波形幅度數(shù)據(jù)送入D/A轉(zhuǎn)換器,,產(chǎn)生信號(hào)的階梯序列波,再通過低通濾波器和功率放大電路產(chǎn)生輸出信號(hào),。

3 系統(tǒng)硬件設(shè)計(jì)

3.1 FLASH連接電路圖

FLASH采用美國飛索半導(dǎo)體公司的S29AL032D,,其容量為32 MB,它用于存儲(chǔ)各種波形的幅度信息,,其存儲(chǔ)形式如圖4所示,。

由圖4可知,地址區(qū)間0x000000~0x01FFFF存儲(chǔ)正弦波幅度值,,地址區(qū)間0x020000~0x03FFFF存儲(chǔ)三角波數(shù)據(jù),,地址區(qū)間0x040000~0x05FFFF存儲(chǔ)鋸齒波數(shù)據(jù),地址區(qū)間0x060000~0x07FFFF存儲(chǔ)白噪聲數(shù)據(jù),,地址區(qū)間0x080000~0x0FFFFF為4個(gè)用戶自定義區(qū),,存儲(chǔ)4種用戶需產(chǎn)生的周期波形數(shù)據(jù)。

 3.2 RAM連接電路圖

RAM采用美國芯成半導(dǎo)體公司的IS61LV25616AL-10T,,其容量為256×103×16 bit,,主要用于存儲(chǔ)上位機(jī)發(fā)送的控制命令及波形產(chǎn)生時(shí)信號(hào)的幅度值,其存儲(chǔ)形式如圖6所示,。

地址區(qū)間Ox00000~0x1FFFF存儲(chǔ)上位機(jī)發(fā)送給下位機(jī)的控制命令和數(shù)據(jù)參數(shù),,地址區(qū)間Ox20000~Ox2FFFF存儲(chǔ)系統(tǒng)要產(chǎn)生信號(hào)的波形幅度值。

3.3 信號(hào)產(chǎn)生電路連接圖

圖7為任意信號(hào)產(chǎn)生的電路連接圖,產(chǎn)生信號(hào)頻率范圍為50 Hz~200 kHz,。其中,,AD768為16位高精度D/A轉(zhuǎn)換器,其最大更新速率可達(dá)40Msps,,滿足設(shè)計(jì)要求,。

4 系統(tǒng)軟件設(shè)計(jì)

4.1 上位機(jī)軟件設(shè)計(jì)

上位機(jī)部分由Labwindows軟件編寫,主要負(fù)責(zé)對(duì)下位機(jī)系統(tǒng)的控制,,包括對(duì)信號(hào)頻率,、幅度、相位(占空比)的設(shè)置,,信號(hào)波形的選擇,,用戶自定義波形數(shù)據(jù)的輸入等,其控制面板如圖8所示,。

4.2 FPGA軟件設(shè)計(jì)

FPGA為系統(tǒng)的核心控制單元,,負(fù)責(zé)與上位機(jī)軟件通信及控制下位機(jī)系統(tǒng)產(chǎn)生任意波形。

4.2.1 與上位機(jī)通信模塊設(shè)計(jì)

上位機(jī)與下位機(jī)的通信是通過RS232來實(shí)現(xiàn)的,,F(xiàn)PGA主要用于接收RS232發(fā)送過來的數(shù)據(jù)并將其存入外部RAM中,,通信模塊如圖9所示。

RS232_Controller模塊用于接收上位機(jī)發(fā)送過來的數(shù)據(jù),,RS232的速率為115.200 kB/s,,8位數(shù)據(jù)位,1位停止位,,無校驗(yàn)位,。data_bu-ffer將RS232_Controller接收的數(shù)據(jù)緩存,并按接收先后順序組合成16位數(shù)據(jù)后送入RamWrite,。RamWrite再將這些16位數(shù)據(jù)從地址0x00000開始存入外部RAM中,。

4.2.2 接收數(shù)據(jù)處理模塊

本模塊主要用于分析和處理接收到的上位機(jī)數(shù)據(jù),從中提取出信號(hào)的數(shù)據(jù)信息,、各項(xiàng)參數(shù)及控制命令,,如圖10所示。

當(dāng)RS232發(fā)送數(shù)據(jù)完成時(shí),,接收數(shù)據(jù)處理模塊立即從地址0x00000開始讀取RAM中的數(shù)據(jù),。當(dāng)?shù)?個(gè)數(shù)據(jù)和第2個(gè)數(shù)據(jù)分別為16'hAAF0和16' hBB55時(shí),則第3個(gè)數(shù)據(jù)的高8位為命令控制字,,否則接收數(shù)據(jù)處理模塊停止讀取RAM中的數(shù)據(jù),。8位命令控制字各位所代表含義如下

 

 

用A代表命令控制字,A[n]代表命令控制字的第n位數(shù)據(jù),,則:

當(dāng)A[15]為1時(shí)表示存儲(chǔ)用戶自定義波形數(shù)據(jù),,為0時(shí)表示任意波形的產(chǎn)生,。當(dāng)為波形存儲(chǔ)時(shí),A[14:8]為0表示將波形數(shù)據(jù)存入用戶自定義1區(qū),,為1表示存入2區(qū),,為3表示存入3區(qū),為4表示存入4區(qū),。從讀取的第4個(gè)數(shù)據(jù)開始即為用戶自定義波形數(shù)據(jù),,共65 536個(gè),再以16'h65 80和16'h0856作為結(jié)尾,,其存儲(chǔ)形式如圖12所示,。

當(dāng)為任意波形產(chǎn)生時(shí),A[14:11]為0表示產(chǎn)生正弦波,;為2表示產(chǎn)生方波,;為3表示產(chǎn)生三角波;為4表示產(chǎn)生鋸齒波,;為5表示產(chǎn)生高斯白噪聲;為6表示產(chǎn)生用戶自定義1區(qū)波形,;為7表示產(chǎn)生用戶自定義2區(qū)波形,;為8表示產(chǎn)生用戶自定義3區(qū)波形;為9表示產(chǎn)生用戶自定義4區(qū)波形,。從RAM中讀取的4個(gè)16位數(shù)據(jù)分別代表要產(chǎn)生波形的頻率(32位),、幅度、相位(方波時(shí)為占空比)控制字,。其數(shù)據(jù)存儲(chǔ)形式如圖13所示,。

4.3 FLASH數(shù)據(jù)存取模塊設(shè)計(jì)

此模塊用于波形數(shù)據(jù)的存儲(chǔ)和讀取。在信號(hào)產(chǎn)生模式時(shí),,它根據(jù)Sig_Type[3:0]輸入的數(shù)據(jù)判斷需產(chǎn)生的波形,,再從FLASH中讀取對(duì)應(yīng)波形的數(shù)據(jù)信息并存入RAM中。當(dāng)Sig_Type[3:0]為1時(shí)表示產(chǎn)生正弦波,;為2時(shí)表示產(chǎn)生方波,;為3時(shí)表示產(chǎn)生三角波;為4時(shí)表示產(chǎn)生鋸齒波,;為5時(shí)表示產(chǎn)生高斯白噪聲,;為6時(shí)表示產(chǎn)生用戶自定義l區(qū)波形;為7時(shí)表示產(chǎn)生用戶自定義2區(qū)波形,;為8時(shí)表示產(chǎn)生用戶自定義3區(qū)波形,;為9時(shí)表示產(chǎn)生用戶自定義4區(qū)波形。

4.4 波形產(chǎn)生控制模塊

模塊利用DDS技術(shù)控制AD768產(chǎn)生任意波形信號(hào),,如圖15所示,。

fre_ctrl,,amp_ctrl,phase_ctrl分別為波形的頻率控制字,、幅度控制字和相位控制字,。clk為此模塊的控制時(shí)鐘,它的6分頻時(shí)鐘為32位相位累加器時(shí)鐘,。在一個(gè)相位累加器時(shí)鐘周期內(nèi),,模塊以累加器的高16位累加值、相位控制字及18'h20000之和作為RAM地址,,從RAM中讀取波形信號(hào)的數(shù)據(jù),,設(shè)此數(shù)據(jù)為data,則D/A輸出的數(shù)據(jù)為,,然后再在clk_da的上升沿將此數(shù)據(jù)送入AD768,,依次循環(huán),則AD768的輸出將產(chǎn)生階梯狀的信號(hào)波形,,再經(jīng)過低通濾波器和功率放大器即可得要產(chǎn)生的波形,,圖16為系統(tǒng)產(chǎn)生的5V、200kHz正弦信號(hào),。

5 結(jié)束語

完成了任意波形發(fā)生器的設(shè)計(jì),,完成了系統(tǒng)硬件路的設(shè)計(jì)及軟件編程,經(jīng)測(cè)試,,系統(tǒng)可產(chǎn)生50Hz~200kHz頻帶內(nèi)的正弦波,、方波、鋸齒波,、三角波,、高斯白噪聲等常用信號(hào),該信號(hào)發(fā)生器具有頻率分辨率高,,頻率轉(zhuǎn)換速度快,、信號(hào)純度高、產(chǎn)生信號(hào)種類多等優(yōu)點(diǎn),??蓮V泛應(yīng)用于通信系統(tǒng)、自動(dòng)控制系統(tǒng),、儀器儀表,、電子對(duì)抗及遙控遙測(cè)等領(lǐng)域。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。