基于Nios II與LabVIEW的任意波形系統(tǒng)的設計和實現(xiàn)
出處:林青松,王應麗 發(fā)布于:2011-08-28 10:06:36
目前,基于直接數(shù)字頻率合成DDS(Direct Digital Frequency Synthesis) 是一種以固定的時鐘源為基準,利用數(shù)字處理模塊產(chǎn)生頻率和相位均可調的輸出信號的技術。DDS部分功能由FPGA來實現(xiàn),微處理器芯片用于完成控制功能,這種結構電路復雜,開發(fā)周期長,系統(tǒng)的軟硬件升級也存在困難。用戶通過撥碼開關輸入所需頻率信號的數(shù)據(jù),利用單片機尋址相應的頻率控制字,輸入DDS芯片內(nèi)核,通過改變調用ROM表中頻率控制字的地址,來實現(xiàn)輸出頻率跳變的目的,同時在DDS輸出端增加一個低通濾波器和放大器,可達到抑制雜散同時對輸出信號進行放大,終得到所要求的輸出波形。
1 基于DDS的任意波形發(fā)生器組成原理
DDS技術建立在采樣定理的基礎上,其基本原理如圖1所示,DDS 由相位累加器,只讀存儲器,數(shù)模轉換器 DAC 及低通濾波器組成。 以合成正弦波為例,幅值表 ROM 中存有正弦波的幅值碼,相位累加器在時鐘 fc 的觸發(fā)下,對頻率控制字 K 進行累加,相位累加器輸出的相位序列(即相碼) 作為地址去尋址 ROM, 得到一系列離散的幅度編碼 (即幅碼) 該幅碼經(jīng)過 DAC。變換后得到模擬的階梯電壓, 再經(jīng)過低通濾波器平滑后, 即得到所需的正弦信號;位累加器的高位輸出作為波形ROM的地址,實現(xiàn)波形相位到幅值的轉換;波形數(shù)據(jù)經(jīng)DAC轉換成模擬量,通過濾波器輸出相對平滑的波形。輸出頻率fout與時鐘頻率fclk、相位累加器的位數(shù)N及頻率控制字K的關系為fout=K×fclk/2N。

每來一個時鐘脈沖,加法器將頻率控制數(shù)據(jù)與累加寄存器輸出的累加相位數(shù)據(jù)相加,把相加后的結果送至累加寄存器的數(shù)據(jù)輸入端。累加寄存器將加法器在上一 個時鐘作用后所產(chǎn)生的新相位數(shù)據(jù)反饋到加法器的輸入端,以使加法器在下一個時鐘的作用下繼續(xù)與頻率控制數(shù)據(jù)相加。 這樣,相位累加器在參考時鐘的作用下, 進行線性相位累加,當相位累加器累加滿是就會產(chǎn)生溢出,完成一個周期性 的動作,這個周期就是DDS合成信號的一個頻率周期,累加器的溢出頻率就是DDS輸出的信號頻率。用DDS實現(xiàn)任意波形發(fā)生器的途徑是把存放波形量化表的ROM換成可以改寫的RAM,利用上位機生成所需波形的數(shù)據(jù)來改變存放在波形RAM中的數(shù)據(jù),再由DDS系統(tǒng)將波形合成出來,就可以產(chǎn)生出所需的任意波形。
2 系統(tǒng)硬件電路的設計
在輸出波形的同時,可以從上位機對波形參數(shù)進行實時調整。頻率調制的范圍是0.1Hz~2.5MHz,調頻步長為0.1Hz。輸出幅度范圍:-10V~功能要求是:接收從上位機傳來的控制信息和數(shù)據(jù),然后經(jīng)DDS輸出相應參數(shù)的波形。系統(tǒng)通過這種方式可輸出規(guī)則波+10V。
根據(jù)功能將系統(tǒng)分為控制部分、波形產(chǎn)生部分以及通信部分??刂撇糠止δ苤饕奢敗G度隖PGA內(nèi)部的軟核處理器Nios II來完成,同時在FPGA剩余的邏輯單元上設計DDS主通道部分,實現(xiàn)波形生成。Nios II的UART IP實現(xiàn)與上位機的波形數(shù)據(jù)傳輸。
系統(tǒng)硬件電路結構框圖如圖2所示,選用了Altera公司Cyclone系列FPGA,型號為EP1C12,有高達20 060個邏輯單元和288Kbit的RAM。它提供了全功能的鎖相環(huán)(PLL),Altera的Nios II嵌入式處理器的IP資源可以用于Cyclone系列FPGA的開發(fā)。Nios II系統(tǒng)通過串口與其他RS232設備相連,要遵循RS232C標準中定義的電平規(guī)范,不能直接使用FPGA I/O端口上的LVTTL(一般為3.3V)電平,需要有電平轉換芯片來完成從LVTTL電平到RS232C電平的轉換。電平轉換芯片采用了SP3232ECA芯片。D/A轉換部分電路如圖3所示,由AD768芯片結合起緩沖作用的AD811來完成。為了達到終±10V的輸出電壓,在AD811的輸出端添加了功放芯片LM318D進行電壓放大。


3 FPGA芯片中Nios II系統(tǒng)硬件部分的構建
FPGA芯片總體設計如圖4所示。根據(jù)所設計的任意波形發(fā)生器的要求,在Quartus II的SOPC Builder中構建Nios II系統(tǒng)。該系統(tǒng)包括以下組件:

?。?)Nios II標準型內(nèi)核。不選用硬件乘法器,指令緩存為4KB,選用level 1的調試模式。這種內(nèi)核約占1 200個LE(邏輯單元)。
?。?)PIO接口。系統(tǒng)中為Nios II處理器共設計了三個PIO接口:PIO_fkey、PIO_pkey、PIO_sel。其中,PIO_fkey作為Nios II處理器從上位機獲得的頻率控制字到DDS的接口,設計為28位;PIO_pkey為相位控制字接口,設計為10位;3位的 PIO_sel接口作為多路選擇器的控制信號用。
(3)顯示與鍵盤。LCD控制器使用Nios II提供的IP Core;鍵盤接口使用基于Alvon總線的自定義接口。
另外,還需要添加SDRAM控制器、FLASH控制器、Avalon三態(tài)總線橋、JTAG UART core(提供給主機通過FPGA上的JTAG管腳訪問芯片的功能)、UART接口控制器(使用時,在彈出的對話框中需設置好波特率、數(shù)據(jù)位等參數(shù))、timer_0計時器、system ID和用戶邏輯接口(實現(xiàn)Nios II與片上RAM的通信)。
在FPGA的剩余LE上,還需用Verilog語言編程實現(xiàn)DDS部分的電路。DDS模塊在傳統(tǒng)的DDS結構之上進行了改進,使用了雙端口RAM以達到波形的過零切換,使得任意波形發(fā)生器可以使用在一些要求苛刻的場合。改進后的DDS模塊包含相位累加器、波形存儲RAM 和D/A等幾個部分。DDS用Verilog HDL實現(xiàn)之后的仿真結果如圖5所示。

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

4 任意波形發(fā)生器系統(tǒng)軟件的設計
整個DDS任意波形發(fā)生器的軟件包括兩個部分:下位機的運行于Nios II系統(tǒng)上基于功能實現(xiàn)的軟件;上位機運行的基于儀器操作的人機界面的軟件。
用戶可以在Nios II IDE中完成所有的軟件開發(fā)任務,如編輯、編譯、、調試和閃存編程。
下位機程序流程如圖7所示。上電以后,進行系統(tǒng)各部分的初始化,然后等待從上位機串口發(fā)來的信息,Nios II處理器在收到消息之后,產(chǎn)生串口中斷,將收到的數(shù)據(jù)依次放入緩沖區(qū),之后要對收到的數(shù)據(jù)根據(jù)通信協(xié)議進行數(shù)據(jù)的處理和解釋工作,并根據(jù)發(fā)來的命令調用相應的功能子程序,終將數(shù)據(jù)送往D/A進行轉換。串口中斷程序主要完成串口的中斷響應,將串口接收寄存器的數(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設計了兩種控制界面,一種用于以公式形式的波形輸入,用戶直接輸入波形公式,系統(tǒng)采集相應的波形數(shù)據(jù)點,通過串口送入下位機,同時可以在控制面板上進行波形參數(shù)的調節(jié)。使用公式輸出用戶需要的波形,雖然波形非常,但卻不能囊括現(xiàn)實世界中遇到的一些無法用公式來表達的波形,為彌補使用公式輸出的缺憾,設計了另一種采用鼠標繪制波形的方式,用戶移動鼠標可繪制出自己需要的任意波形,系統(tǒng)采集相應的波形數(shù)據(jù)點,通過串口送入下位機中。兩種控制界面分別如圖8、圖9所示。


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

試驗結果表明,對于從上位機輸入的公式形式的波形,系統(tǒng)可以進行的輸出。利用鼠標輸入面板得到的任意波形輸出失真較小,波形質量較好。
本文采用SOPC技術將任意波形發(fā)生器的DDS模塊與控制模塊集成到單片F(xiàn)PGA芯片中。結果表明,設計的任意波形發(fā)生器實現(xiàn)了系統(tǒng)所要求的功能,技術指標也達到了要求。因此,在單片F(xiàn)PGA上實現(xiàn)任意波形發(fā)生器是可行的。與傳統(tǒng)的采用控制器與FPGA結合的設計方法相比,它有效地簡化了系統(tǒng)電路結構,提高了集成度。
參考文獻:
[1]. ROM datasheet http://m.58mhw.cn/datasheet/ROM_1188413.html.
[2]. fc datasheet http://m.58mhw.cn/datasheet/fc+_2043341.html.
[3]. EP1C12 datasheet http://m.58mhw.cn/datasheet/EP1C12_527237.html.
[4]. RS232 datasheet http://m.58mhw.cn/datasheet/RS232_585128.html.
[5]. SP3232ECA datasheet http://m.58mhw.cn/datasheet/SP3232ECA_1044880.html.
[6]. AD768 datasheet http://m.58mhw.cn/datasheet/AD768_1055462.html.
[7]. AD811 datasheet http://m.58mhw.cn/datasheet/AD811_1055521.html.
[8]. LM318D datasheet http://m.58mhw.cn/datasheet/LM318D_451478.html.
版權與免責聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權均屬于維庫電子市場網(wǎng),轉載請必須注明維庫電子市場網(wǎng),http://m.58mhw.cn,違反者本網(wǎng)將追究相關法律責任。
本網(wǎng)轉載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點或證實其內(nèi)容的真實性,不承擔此類作品侵權行為的直接責任及連帶責任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉載時,必須保留本網(wǎng)注明的作品出處,并自負版權等法律責任。
如涉及作品內(nèi)容、版權等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關權利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識介紹2025/8/29 16:58:56
- SQL核心知識點總結2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復控制的復合控制策略2025/7/29 16:58:24
- 什么是樹莓派?一文快速了解樹莓派基礎知識2025/6/18 16:30:52









