基于DDS的高精度任意波形發(fā)生器設(shè)計(jì)
用A代表命令控制字,A[n]代表命令控制字的第n位數(shù)據(jù),則:
當(dāng)A[15]為1時(shí)表示存儲用戶自定義波形數(shù)據(jù),為0時(shí)表示任意波形的產(chǎn)生。當(dāng)為波形存儲時(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é)尾,其存儲形式如圖12所示。本文引用地址:http://m.butianyuan.cn/article/191578.htm
當(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ù)存儲形式如圖13所示。
4.3 Flash數(shù)據(jù)存取模塊設(shè)計(jì)
此模塊用于波形數(shù)據(jù)的存儲和讀取。在信號產(chǎn)生模式時(shí),它根據(jù)Sig_Type[3:0]輸入的數(shù)據(jù)判斷需產(chǎn)生的波形,再從Flash中讀取對應(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)生任意波形信號,如圖15所示。
fre_ctrl,amp_ctrl,phase_ctrl分別為波形的頻率控制字、幅度控制字和相位控制字。clk為此模塊的控制時(shí)鐘,它的6分頻時(shí)鐘為32位相位累加器時(shí)鐘。在一個(gè)相位累加器時(shí)鐘周期內(nèi),模塊以累加器的高16位累加值、相位控制字及18'h20000之和作為RAM地址,從RAM中讀取波形信號的數(shù)據(jù),設(shè)此數(shù)據(jù)為data,則D/A輸出的數(shù)據(jù)為,然后再在clk_da的上升沿將此數(shù)據(jù)送入AD768,依次循環(huán),則AD768的輸出將產(chǎn)生階梯狀的信號波形,再經(jīng)過低通濾波器和功率放大器即可得要產(chǎn)生的波形,圖16為系統(tǒng)產(chǎn)生的5V、200kHz正弦信號。
5 結(jié)束語
完成了任意波形發(fā)生器的設(shè)計(jì),完成了系統(tǒng)硬件路的設(shè)計(jì)及軟件編程,經(jīng)測試,系統(tǒng)可產(chǎn)生50Hz~200kHz頻帶內(nèi)的正弦波、方波、鋸齒波、三角波、高斯白噪聲等常用信號,該信號發(fā)生器具有頻率分辨率高,頻率轉(zhuǎn)換速度快、信號純度高、產(chǎn)生信號種類多等優(yōu)點(diǎn)??蓮V泛應(yīng)用于通信系統(tǒng)、自動控制系統(tǒng)、儀器儀表、電子對抗及遙控遙測等領(lǐng)域。
評論