
整個SOPC系統(tǒng)的片上硬件構(gòu)建完成后,在Quartus II中對頂層設(shè)計進行編譯,編譯的結(jié)果如圖6所示,從使用情況可以看出選用的FPGA芯片是非常合理的,既滿足了當前的需要,又有一定的冗余,為系統(tǒng)以后的升級提供了條件。

4 任意波形發(fā)生器系統(tǒng)軟件的設(shè)計
整個DDS任意波形發(fā)生器的軟件包括兩個部分:下位機的運行于Nios II系統(tǒng)上基于功能實現(xiàn)的軟件;上位機運行的基于儀器操作的人機界面的軟件。
下位機的軟件開發(fā)使用Altera公司的Nios II IDE集成開發(fā)環(huán)境。Nios II IDE是Nios II系列嵌入式處理器的主要軟件開發(fā)工具。用戶可以在Nios II IDE中完成所有的軟件開發(fā)任務,如編輯、編譯、下載、調(diào)試和閃存編程。
下位機程序流程如圖7所示。上電以后,進行系統(tǒng)各部分的初始化,然后等待從上位機串口發(fā)來的信息,Nios II處理器在收到消息之后,產(chǎn)生串口中斷,將收到的數(shù)據(jù)依次放入緩沖區(qū),之后要對收到的數(shù)據(jù)根據(jù)通信協(xié)議進行數(shù)據(jù)的處理和解釋工作,并根據(jù)發(fā)來的命令調(diào)用相應的功能子程序,最終將數(shù)據(jù)送往D/A進行轉(zhuǎn)換。串口中斷程序主要完成串口的中斷響應,將串口接收寄存器的數(shù)據(jù)放入接收緩沖區(qū),并修改緩沖區(qū)的指針,同時如果發(fā)送緩沖區(qū)中有待發(fā)送數(shù)據(jù),而發(fā)送寄存器又為空的話,就發(fā)送緩沖區(qū)中數(shù)據(jù)。串口處理和解釋程序主要根據(jù)協(xié)議內(nèi)容對緩沖區(qū)中接收過來的數(shù)據(jù)進行判斷,如果是起始碼,則將其后的數(shù)據(jù)認為是命令碼,命令碼后的數(shù)據(jù)為命令參數(shù),然后再根據(jù)命令碼的具體形式,依據(jù)制定的協(xié)議執(zhí)行相應的代碼,完成來自上位機的命令。

上位機軟件的開發(fā)環(huán)境采用NI(美國國家儀器公司)的LabVIEW 8.0。根據(jù)上位機所要完成的任務,采用LabVIEW 8.0設(shè)計了兩種控制界面,一種用于以公式形式的波形輸入,用戶直接輸入波形公式,系統(tǒng)采集相應的波形數(shù)據(jù)點,通過串口送入下位機,同時可以在控制面板上進行波形參數(shù)的調(diào)節(jié)。使用公式輸出用戶需要的波形,雖然波形非常精確,但卻不能囊括現(xiàn)實世界中遇到的一些無法用公式來表達的波形,為彌補使用公式輸出的缺憾,設(shè)計了另一種采用鼠標繪制波形的方式,用戶移動鼠標可繪制出自己需要的任意波形,系統(tǒng)采集相應的波形數(shù)據(jù)點,通過串口送入下位機中。兩種控制界面分別如圖8、圖9所示。

5 試驗結(jié)果
圖10(a)為正弦波的輸出波形,頻率為100Hz, 圖10 (b)波形頻率為1MHz。兩個波形的輸出幅度給定值均為-1V~+1V。試驗表明,輸出正弦波的幅度誤差很小,基本上在±1.5%左右。圖10(c)、圖10(d)分別為利用公式輸入面板和鼠標輸入面板得到的波形。

試驗結(jié)果表明,對于從上位機輸入的公式形式的波形,系統(tǒng)可以進行精確的輸出。利用鼠標輸入面板得到的任意波形輸出失真較小,波形質(zhì)量較好。
本文采用SOPC技術(shù)將任意波形發(fā)生器的DDS模塊與控制模塊集成到單片F(xiàn)PGA芯片中。結(jié)果表明,設(shè)計的任意波形發(fā)生器實現(xiàn)了系統(tǒng)所要求的功能,技術(shù)指標也達到了要求。因此,在單片F(xiàn)PGA上實現(xiàn)任意波形發(fā)生器是可行的。與傳統(tǒng)的采用控制器與FPGA結(jié)合的設(shè)計方法相比,它有效地簡化了系統(tǒng)電路結(jié)構(gòu),提高了集成度。
參考文獻
[1] 潘松,黃繼業(yè),曾毓.SOPC技術(shù)實用教程[M].北京:清華大學出版社,2005:1-328.
[2] 吳繼華,王城. Altera FPGA/CPLD 設(shè)計(基礎(chǔ)篇)[M].北京:人民郵電出版社,2005:1-236.
[3] 張福貴,姚振東.基于DDS的高性能信號發(fā)生器的實現(xiàn)[J].成都信息工程學院學報,2006,21(1):12-17.
[4] 崔建鵬,趙敏,江帆.采用DDS 技術(shù)實現(xiàn)的虛擬任意波形發(fā)生器[J].計算機測量與控制,2003,11(7):533-555.





