基于DDS的高精度任意波形發(fā)生器設(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位命令控制字各位所代表含義如下
評(píng)論