基于DDS的高精度任意波形發生器設計
用A代表命令控制字,A[n]代表命令控制字的第n位數據,則:
當A[15]為1時表示存儲用戶自定義波形數據,為0時表示任意波形的產生。當為波形存儲時,A[14:8]為0表示將波形數據存入用戶自定義1區,為1表示存入2區,為3表示存入3區,為4表示存入4區。從讀取的第4個數據開始即為用戶自定義波形數據,共65 536個,再以16'h65 80和16'h0856作為結尾,其存儲形式如圖12所示。本文引用地址:http://cqxgywz.com/article/191578.htm

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

4.3 Flash數據存取模塊設計

此模塊用于波形數據的存儲和讀取。在信號產生模式時,它根據Sig_Type[3:0]輸入的數據判斷需產生的波形,再從Flash中讀取對應波形的數據信息并存入RAM中。當Sig_Type[3:0]為1時表示產生正弦波;為2時表示產生方波;為3時表示產生三角波;為4時表示產生鋸齒波;為5時表示產生高斯白噪聲;為6時表示產生用戶自定義l區波形;為7時表示產生用戶自定義2區波形;為8時表示產生用戶自定義3區波形;為9時表示產生用戶自定義4區波形。
4.4 波形產生控制模塊
模塊利用DDS技術控制AD768產生任意波形信號,如圖15所示。

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

![]()
5 結束語
完成了任意波形發生器的設計,完成了系統硬件路的設計及軟件編程,經測試,系統可產生50Hz~200kHz頻帶內的正弦波、方波、鋸齒波、三角波、高斯白噪聲等常用信號,該信號發生器具有頻率分辨率高,頻率轉換速度快、信號純度高、產生信號種類多等優點。可廣泛應用于通信系統、自動控制系統、儀器儀表、電子對抗及遙控遙測等領域。









評論