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

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


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

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

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

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

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


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

試驗(yàn)結(jié)果表明,對(duì)于從上位機(jī)輸入的公式形式的波形,系統(tǒng)可以進(jìn)行的輸出。利用鼠標(biāo)輸入面板得到的任意波形輸出失真較小,波形質(zhì)量較好。
本文采用SOPC技術(shù)將任意波形發(fā)生器的DDS模塊與控制模塊集成到單片F(xiàn)PGA芯片中。結(jié)果表明,設(shè)計(jì)的任意波形發(fā)生器實(shí)現(xiàn)了系統(tǒng)所要求的功能,技術(shù)指標(biāo)也達(dá)到了要求。因此,在單片F(xiàn)PGA上實(shí)現(xiàn)任意波形發(fā)生器是可行的。與傳統(tǒng)的采用控制器與FPGA結(jié)合的設(shè)計(jì)方法相比,它有效地簡(jiǎn)化了系統(tǒng)電路結(jié)構(gòu),提高了集成度。
參考文獻(xiàn):
[1]. ROM datasheet http://www.hbjingang.com/datasheet/ROM_1188413.html.
[2]. fc datasheet http://www.hbjingang.com/datasheet/fc+_2043341.html.
[3]. EP1C12 datasheet http://www.hbjingang.com/datasheet/EP1C12_527237.html.
[4]. RS232 datasheet http://www.hbjingang.com/datasheet/RS232_585128.html.
[5]. SP3232ECA datasheet http://www.hbjingang.com/datasheet/SP3232ECA_1044880.html.
[6]. AD768 datasheet http://www.hbjingang.com/datasheet/AD768_1055462.html.
[7]. AD811 datasheet http://www.hbjingang.com/datasheet/AD811_1055521.html.
[8]. LM318D datasheet http://www.hbjingang.com/datasheet/LM318D_451478.html.
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫(kù)電子市場(chǎng)網(wǎng)”的所有作品,版權(quán)均屬于維庫(kù)電子市場(chǎng)網(wǎng),轉(zhuǎn)載請(qǐng)必須注明維庫(kù)電子市場(chǎng)網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問(wèn)題,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- 什么是氫氧燃料電池,氫氧燃料電池的知識(shí)介紹2025/8/29 16:58:56
- SQL核心知識(shí)點(diǎn)總結(jié)2025/8/11 16:51:36
- 等電位端子箱是什么_等電位端子箱的作用2025/8/1 11:36:41
- 基于PID控制和重復(fù)控制的復(fù)合控制策略2025/7/29 16:58:24
- 什么是樹(shù)莓派?一文快速了解樹(shù)莓派基礎(chǔ)知識(shí)2025/6/18 16:30:52
- 高速PCB信號(hào)完整性(SI)設(shè)計(jì)核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計(jì)算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對(duì)系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計(jì)
- 連接器耐腐蝕性能測(cè)試方法
- PCB電磁兼容(EMC)設(shè)計(jì)與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測(cè)量的低通濾波器設(shè)計(jì)與本振凈化技術(shù)
- MOSFET在高頻開(kāi)關(guān)中的EMI問(wèn)題
- 電源IC在便攜式設(shè)備中的設(shè)計(jì)要點(diǎn)
- 連接器結(jié)構(gòu)設(shè)計(jì)常見(jiàn)問(wèn)題分析









