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