基于VXI總線的四通道智能化任意波發(fā)生器的研制
摘要:介紹了一種基于VXI總線的四通道智能化任意波發(fā)生器及波形調(diào)制模塊。本模塊采用DSP+FPGA實現(xiàn)智能控制,應用先進的DDS(直接數(shù)字頻率合成器)技術(shù)產(chǎn)生任意波,輸出波形可加載波進行調(diào)制;本模塊具有四個獨立的通道,相互之間進行電氣隔離,可輸出幅度連續(xù)可調(diào)的電壓和電流信號。
VXI總線是VMEbus extensions for Instrumentation的縮寫。VXI主機箱有13個插槽,其中,零槽控制器為系統(tǒng)的管理者。VXI模塊根據(jù)其本身的性質(zhì)、特點和所支持的通信規(guī)程可以分為寄存器基、消息基、存儲器和擴展模塊四種類型。每個模塊的地址空間有A16、A16/A24和A16/A32三種類型。
本文介紹利用DDS(直接數(shù)字頻率合成器)技術(shù)實現(xiàn)具有任意波發(fā)生以及調(diào)幅功能的模塊。與傳統(tǒng)的頻率合成技術(shù)相比,DDS技術(shù)具有很多優(yōu)點:頻率切換時間短、工作頻率范圍寬、頻率分辨率高、相位變化連續(xù)和容易對輸出信號實現(xiàn)調(diào)制等。一些公司先后推出了各種各樣的DDS專用芯片,這些DDS專用芯片為電路設(shè)計提供了很大方便,但是并不能滿足所有要求。例如,在實現(xiàn)調(diào)頻及調(diào)幅等復雜功能時,利用現(xiàn)有的DDS專用芯片就會很不方便。利用可編程邏輯器件(CPLD)或現(xiàn)場可編程門陣列(FPGA)實現(xiàn)DDS具有很大的靈活性,能夠很好地滿足電路設(shè)計要求。
1 DDS基本原理
DDS在基本原理框圖如圖1所示。它主要由標準參考頻率源、相位累加器、波形存儲器、數(shù)/模轉(zhuǎn)換器、低通平滑濾波器等構(gòu)成。其中,參考頻率源一般是一個高穩(wěn)定度的晶體振蕩器,其輸出信號用于DDS中各部件同步工作。DDS的實質(zhì)是對相位進行可控等間隔的采樣。
相位累加器的結(jié)構(gòu)如圖2所示。它是實現(xiàn)DDS的核心,由一個N位字長的加法器和一個由固定時鐘脈沖取樣的N位相位寄存器組成。將相位寄存器的輸出和外部輸入的頻率控制字K作為加法器的輸入,在時鐘脈沖到達時,相位寄存器對上一個時鐘周期內(nèi)相位加法器的值與頻率控制字K之和進行采樣,作為相位累加器在此刻時鐘的輸出。相位累加器輸出的高M位作為波形存儲器查詢表的地址,從波形存儲器中讀出相應的幅度值送到數(shù)/模轉(zhuǎn)換器。
當DDS正常工作時,在標準參考頻率源的控制下,相位累加器不斷進行相位線性累加(每次累加值為頻率控制字K),當相位累加器積滿時就會產(chǎn)生一次溢出,從而完成一個周期性的動作,這個周期就是DDS合成信號的頻率周期。輸出信號波形的頻率為:
顯而易見,當K=1時輸出最小頻率,即頻率分辨率為fmin=fc/2N。式中,fout為輸出信號頻率;K為頻率控制字;N為相位累加器字長;fc為標準參考頻率源工作頻率。
2 波形發(fā)生器模塊的實現(xiàn)
2.1 硬件部分
波形發(fā)生器模塊結(jié)構(gòu)框圖如圖3所示。
硬件主要可分為總線接口、DSP及邏輯控制電路、四通道DDS波形發(fā)生及調(diào)制電路、信號調(diào)理和輸出接口等幾部分。其中,零槽控制器與DSP之間用雙口RAM作為通訊中介,雙口RAM采用IDT709289L,其容量為64K×16Bit。
根據(jù)零槽控制器和模塊交換信息的特點,本模塊采用寄存器基的A16/A24的操作模式,數(shù)據(jù)為16Bit。在A16的尋址方式下,每個模塊都具有一組配置寄存器,系統(tǒng)可以通過訪問這些寄存器來獲得器件的種類、型號、生產(chǎn)廠家、地址空間及存儲器需求等。在A24模式下,零槽控制器可為一個模塊配置的存儲空間,最大為256n×2 23-m,其中,n在A32模式下為1,在A24模式下為0,m為器件型號寄存器高四位所定義的數(shù)值。在本模塊中,m取值為6,存儲器地址空間為128Kbyte??偩€接口采用ALTERA公司的EPM3256A實現(xiàn)。板內(nèi)接口邏輯和所有控制邏輯均采用Verilog硬件描述語言完成。
接口電路中的雙口RAM用作命令、參數(shù)和數(shù)據(jù)傳輸,分為命令參數(shù)區(qū)和數(shù)據(jù)區(qū)。雙口RAM被均分為16頁,每頁為4K×16Bit,前15頁作為自定義的波形傳輸區(qū),第16頁為命令參數(shù)區(qū)。雙口RAM的采用使模塊的設(shè)計相對于VXI系統(tǒng)而言具有很大的獨立性,從而使波形發(fā)生電路能夠方便地移植到其它總線上。
板內(nèi)主控CPU芯片選用了TI公司的TMS320F206。它主要起智能控制作用,接收通過VXI總線發(fā)來的各種命令,然后分析命令,執(zhí)行命令,協(xié)調(diào)模塊各部分的工作。與非智能模塊相比,本模塊具有明顯的優(yōu)越性。除了自定義波形以外,零槽控制器只需向模塊發(fā)簡單的命令和參數(shù),DSP就能完成所有的功能。這樣就大大減少了上位機和控制器的時間開銷,使它們有更多的時間處理其它事件,有利于保證整個VXI系統(tǒng)可靠、協(xié)調(diào)地工作。
DSP外擴數(shù)據(jù)存儲器包括一片IDT709289L和四片IDT7025S,IDT9289L的每一頁映射到DSP數(shù)據(jù)區(qū)0x7000~0x7FFF,用于接口電路,頁面的切換用DSP的I/O譯碼控制。4個IDT7025S均映射到DSP數(shù)據(jù)區(qū)0x8000~0x9FFF,分別用作四路DDS的波形存儲器,4個IDT7025S的片選由DSP進行控制。DSP相關(guān)的譯碼及控制電路用一片EP1K10來實現(xiàn)。
圖3
單個通道DDS波形發(fā)生及輸出部分功能框圖如圖4所示。 (2)用作函數(shù)發(fā)生器,第一級DAC參考電壓源接內(nèi)部基,第二級DAC參考電壓源接第一級DAC電壓輸出,波形存儲器存放不同函數(shù)波形數(shù)據(jù)可輸出不同的函數(shù)波形。此時,第一級DAC輸出電壓為:V1out=Vref×(Din1-2048)/2 12,其中,Vlout為第一級DAC雙向輸出電壓,Vref為DAC參考電壓源,Dinl為第一級DAC輸入數(shù)據(jù)。在這里Vref為常值2V,式中只有Dinl為變量,Din1對應波形存儲器中4096個波形幅值數(shù)據(jù)(一個周期)。當波形數(shù)據(jù)以500kHz的速率依次裝載到DAC時,由公式(1)得DAC輸出波形的頻率為:fout=K×(10 6/2 33)。第二級DAC輸出電壓為:V2out=Vlout×(Din2-2048)/2 12,其中,V2out為第二級DAC輸出電壓,Din2為第二級DAC輸入數(shù)據(jù)。
每通道的累加器及邏輯控制電路均采用一片EP1K30,用于實現(xiàn)累加器和步長控制字寄存器并完成板上地址譯碼、兩級DAC控制、波形抖動補償以及本通道的繼電器控制等功能。累加器字長32位,時鐘基準源頻率為DSP輸出頻率的兩倍頻。第一級DAC用于波形的產(chǎn)生,第二級DAC用于控制輸出幅度和波形正反相,并對第二級DAC輸出進行了平滑濾波和放大處理。
根據(jù)系統(tǒng)的性能要求,輸出端采用了電壓隔離放大器,與總線隔離,并且四個通道各自獨立。本模塊總共有一個數(shù)字地和四個模擬輸出地。這樣,既可以保證VXI系統(tǒng)和其它通道的安全,又減少了模塊負載和VXI系統(tǒng)的相互干擾。
波形數(shù)據(jù)存儲器IDT7025S被等分為A、B兩頁,可以實現(xiàn)不同波形之間的無抖動切換,每頁為4k×16bit。當DDS開始工作時,DSP先鋒主A頁寫入波形數(shù)據(jù),并在DSP的控制下產(chǎn)生波形;當要切換到另一種波形時,只需往B頁寫入另一種波形的數(shù)據(jù),將32位累加器所產(chǎn)生的地址(累加器高12位)切換到B頁即可。這樣,可實現(xiàn)幅值和相位均連續(xù)的波形無抖動切換。
每個通道采用兩級12Bit DAC,它們均設(shè)置為雙極性電壓輸出。第一級DAC的參考電壓源可以接內(nèi)部基準或外部載波,第二級DAC的參考電壓源可以接內(nèi)部基準、外部載波或第一級DAC電壓輸出。通過對兩級DAC所接參考電壓源的不能設(shè)置(通過繼電器進行切換),可以分別實現(xiàn)如下功能:
(1)用作直接輸出,第二級DAC的參考電壓源接內(nèi)部基站。第二級DAC電壓輸出為:V2out=(Din2-2048)/2 12,可通過輸入不同的Din2控制直流輸出幅值和正負極性。
(3)用作自定義波形發(fā)生器,第一級DAC和第二級DAC的設(shè)置為(2)所述,不同的是波形存儲器的內(nèi)容。零槽控制器按一定的規(guī)約向雙口RAM(IDT709289L)的前15頁寫入自定義的波形數(shù)據(jù),DSP亦按一定的規(guī)約取出數(shù)據(jù)并送往指定通道的IDT7025S,IDT7025S的A和B兩頁進行交替切換,從而連接輸出自定義波形。
(4)外加載波進行調(diào)制,第一級DAC參考電壓源接外部載波,第二級DAC參考電壓源接第一級DAC電壓輸出。外加載波為正弦信號Vsin(αx+θ) ,其中,V為載波最大電壓值,α為自變量x的系數(shù),θ為初始相位。第一級DAC電壓輸出為:Vlout=Vsin(αx+θ) ×Dinl/2 12,這樣即實現(xiàn)了載波的幅度調(diào)制。第二級DAC用來控制整個幅度,其輸出電壓V2out=Vsin(αx+θ) ×Din1/2 12×(Din2-2048)/ 2 12,Din2為第二級DAC的輸入數(shù)據(jù)。
(5)載波直接輸出,只需第二級DAC的參考電壓源接外部載波,第二級DAC電壓輸出為:V2out=Vsin(αx+θ) ×(Din2-2048)/2 12。
由于隔離放大器有一定的輸出噪聲,所以把信號放大器放在隔離放大器之前,低通濾波器放在隔離放大器之后,這樣,既避免把隔離入大器的噪聲放大,又有效地進行了平滑濾波。
電壓輸出采用功率運放OPA445進行放大,實現(xiàn)±12V輸出。而電流輸出則采用電壓/電流轉(zhuǎn)換器AD694實現(xiàn),電流輸出量程為0~20mA或4~20mA。
2.2 軟件部分
軟件主要包括兩部分:DSP程序和VXI系統(tǒng)主機底層驅(qū)動函數(shù)及測試程序。
DSP程序采用C語言和匯編語言混合編程。控制部分的程序采用了匯編語言,提高了程序的效率。而數(shù)據(jù)的產(chǎn)生部分采用了實現(xiàn)起來比較簡單的C語言,避免了采用匯編處理數(shù)據(jù)的復雜編程。
上位機測試程序采用NI公司的LabWindows/CVI編制。LabWindows/CVI基于C語言的編程環(huán)境,具有豐富的用戶界面控件和VXI總線系統(tǒng)函數(shù),使編程簡捷方便。面向本模塊的操作函數(shù)打包生成.dll文件即可供系統(tǒng)調(diào)用。
3 實現(xiàn)結(jié)果及分析
圖5所示為輸出頻率為10kHz的方波、鋸齒波、正弦波和三角波的輸出波形,其峰-峰值均為24V。圖6所示為調(diào)制波輸出波形,10kHz外部正弦波作為載波信號,1kHz正弦波信號作為調(diào)制信號,峰-峰值為24V。圖5和圖6均由Tektronix公司的TDS210型示波器采樣所得。
經(jīng)實驗所得的波形輸出的頻率分辨率為0.1%左右,顯然大于理論的頻率分辨率fmin=10 6/2 33=0.0001164Hz。經(jīng)分析,系統(tǒng)誤差包括:(1)相位截尾誤差;(2)電路板布局布線因素帶來的干擾而導致的誤差;(3)標準參考頻率源穩(wěn)定性的影響帶來的誤差;(4)D/A轉(zhuǎn)換器引入的誤差;(5)波形幅值存儲數(shù)據(jù)有限字長引入的量化誤差。
本模塊中實現(xiàn)的DDS相對于傳統(tǒng)方法具有種種優(yōu)點。由于DSP強大的數(shù)據(jù)處理能力和靈活的控制功能,再加上FGPA具有的高性能、高集成度等特點,使模塊具有優(yōu)良的性能。另外,DDS的這種實現(xiàn)方法有很大的靈活性,可以進行復雜的濾形調(diào)制。
由于DDS數(shù)字化實現(xiàn)過程的固有特點,如累加器相位截斷、波形幅度量化和數(shù)/模轉(zhuǎn)換器的非線性等特性,使得輸出信號頻譜的雜散性較大,這一點當輸出頻率較高時尤為突出。因此,在設(shè)計的過程中要采取一定的改進措施。如對DDS的結(jié)構(gòu)加以改進、優(yōu)化波形存儲器的結(jié)構(gòu)、選擇合適的數(shù)/模轉(zhuǎn)換器件、使用抖動注入技術(shù)等,盡量減少其雜散性,從而使DDS系統(tǒng)具有更優(yōu)良的性能。