基于DSP和SOPC數(shù)字信號發(fā)生器的設(shè)計
摘 要:為了比較DSP和SOPC技術(shù)在電子設(shè)計領(lǐng)域的應(yīng)用,采用泰勒展開法和DDFS技術(shù),分別給出設(shè)計方案的硬件電路結(jié)構(gòu)和軟件流程圖,并通過集成開發(fā)環(huán)境CCS和DE2開發(fā)板實(shí)現(xiàn)正弦信號發(fā)生器。結(jié)果表明,采用SOPC技術(shù)設(shè)計的正弦信號發(fā)生器與使用DSP芯片實(shí)現(xiàn)相比,其高速的運(yùn)算能力以及內(nèi)部操作的靈活性,使得產(chǎn)生的波形具有控制方便,輸出相位連續(xù),精度高,穩(wěn)定性好等優(yōu)點(diǎn),具有很高的應(yīng)用價值。
關(guān)鍵詞:可編程片上系統(tǒng);DSP;集成開發(fā)環(huán)境CCS;信號發(fā)生器
O 引 言
數(shù)字信號發(fā)生器是在電子電路設(shè)計、自動控制系統(tǒng)和儀表測量校正調(diào)試中應(yīng)用很多的一種信號發(fā)生裝置和信號源。而正弦信號是一種頻率成分最為單一的常見信號源,任何復(fù)雜信號(例如聲音信號)都可以通過傅里葉變換分解為許多頻率不同、幅度不等的正弦信號的疊加,廣泛地應(yīng)用在電子技術(shù)試驗、自動控制系統(tǒng)和通信、儀器儀表、控制等領(lǐng)域的信號處理系統(tǒng)中及其他機(jī)械、電聲、水聲及生物等科研領(lǐng)域。
目前,常用的信號發(fā)生器絕大部分由模擬電路或數(shù)字電路構(gòu)成,體積和功耗都很大,價格也比較貴。隨著微電子技術(shù)和計算機(jī)技術(shù)的發(fā)展,以DSP微處理器及DSP軟硬件開發(fā)系統(tǒng)(例如集成開發(fā)環(huán)境CCS)及配套產(chǎn)品為內(nèi)容已形成了龐大并極具前途的高新技術(shù)產(chǎn)業(yè),而可編程邏輯器件、SOPC等新技術(shù)的應(yīng)用迅速滲透到電子、信息、通信等領(lǐng)域。這里分別借助DSP芯片運(yùn)算速度高,功耗低,實(shí)時分析的優(yōu)勢以及SOPC技術(shù)靈活的可配置性、較高的可靠性、硬件升級容易等優(yōu)點(diǎn)設(shè)計了正弦信號發(fā)生器,并對各自設(shè)計過程及優(yōu)缺點(diǎn)進(jìn)行了對比。
1 基于DSP設(shè)計正弦信號發(fā)生器
1.1 正弦波產(chǎn)生原理
一般情況,產(chǎn)生正弦波的方法有兩種:查表法和泰勒級數(shù)展開法。查表法是使用比較普遍的方法,優(yōu)點(diǎn)是處理速度快,調(diào)頻調(diào)相容易,精度高,但需要的存儲器容量很大。泰勒級數(shù)展開法需要的存儲單元少,具有穩(wěn)定性好,算法簡單,易于編程等優(yōu)點(diǎn),而且展開的級數(shù)越多,失真度就越小。本文采用了泰勒級數(shù)展開法。一個角度為θ的正弦和余弦函數(shù),可以展開成泰勒級數(shù),取其前5項進(jìn)行近似得:
式中:x為θ的弧度值,x=2πf/fs(fs是采樣頻率;f是所要發(fā)生的信號頻率)。[!--empirenews.page--]
1.2 硬件設(shè)計
系統(tǒng)硬件主要由微機(jī)、DSP芯片、數(shù)/模轉(zhuǎn)換模塊組成。其中,DSP芯片采用的是TI公司性價比良好的TMS320VC5402。它有一組程序總線和三組數(shù)據(jù)總線、高度并行性的算術(shù)邏輯單元ALU、專用硬件邏輯片內(nèi)存儲器、增強(qiáng)型HPI口和高達(dá)100 MHz的CPU頻率。它可以在一個周期里完成兩個讀和一個寫操作,并且具有專門的硬件乘法器,廣泛采用流水線操作,提供特殊的DSP指令,可以用來快速地實(shí)現(xiàn)各種數(shù)字信號處理算法。D/A采用了一種雙極型8位、低功耗數(shù)/模轉(zhuǎn)換器DAC08,實(shí)現(xiàn)了高速同步數(shù)/模轉(zhuǎn)換。硬件結(jié)構(gòu)框圖如圖1所示。
1.3 軟件設(shè)計
軟件設(shè)計是基于CCS開發(fā)環(huán)境的。CCS是TI公司推出的為開發(fā)TMS320系列DSP軟件的集成開發(fā)環(huán)境,是目前使用最為廣泛的DSP開發(fā)軟件之一。它提供了環(huán)境配置、源文件編譯、編譯連接、程序調(diào)試、跟蹤分析等環(huán)節(jié),并把軟、硬件開發(fā)工具集成在一起,使程序的編寫、匯編、程序的軟硬件仿真和調(diào)試等開發(fā)工作在統(tǒng)一的環(huán)境中進(jìn)行,從而加速軟件開發(fā)進(jìn)程。本文采用了與硬件開發(fā)板相結(jié)合的在線編程模式,通過CCS軟件平臺上應(yīng)用C語言及C54X匯編語言來實(shí)現(xiàn)正弦信號發(fā)生裝置。
軟件設(shè)計的思想是:正弦波的波形可以看作由無數(shù)點(diǎn)組成,這些點(diǎn)與x軸的每一個角度值相對應(yīng),可以利用DSP處理器處理大量重復(fù)計算的優(yōu)勢來計算x軸每一點(diǎn)對應(yīng)的y的值(在x軸取N個點(diǎn)進(jìn)行逼近)。整個系統(tǒng)軟件由主程序和基于泰勒展開法的SIN子程序組成,相應(yīng)的軟件流程圖如圖2和圖3所示。
程序中,N值為產(chǎn)生正弦信號一個周期的點(diǎn)數(shù),產(chǎn)生的正弦信號頻率與N數(shù)值大小及D/A轉(zhuǎn)換頻率fDA有關(guān),產(chǎn)生正弦波信號頻率f的計算公式為:
f=fDA/N
因此,選擇每個正弦周期中的樣點(diǎn)數(shù),改變每個采樣點(diǎn)之間的延遲,即通過調(diào)節(jié)N值產(chǎn)生不同頻率的波形,同時也可以利用軟件改變輸出的離散波形值乘以相應(yīng)的縮放因子A,從而調(diào)節(jié)波形的幅度。將程序裝載到DSP目標(biāo)芯片中,波形實(shí)現(xiàn)結(jié)果可以在CCS圖形顯示界面直觀地表示出來(見圖4)或者用示波器觀察輸出結(jié)果如圖5所示。[!--empirenews.page--]
輸出結(jié)果顯示,在CCS圖形觀察窗口得到了頻率穩(wěn)定,信號干擾小,波形失真度較小的正弦信號;利用示波器也可觀察到波形較好,穩(wěn)定的正弦信號。
2 基于SOPC技術(shù)設(shè)計正弦信號發(fā)生器
盡管DSP處理器(如TI的TMS320系列)在過去很長一段時間幾乎是DSP應(yīng)用系統(tǒng)核心器件的惟一選擇。但由于其自身的局限性,例如不靈活的硬件結(jié)構(gòu),使得其很難滿足當(dāng)今迅速發(fā)展的DSP應(yīng)用市場。現(xiàn)代大容量、高速度、內(nèi)嵌有各種DSP模塊的FPGA和相應(yīng)的SOPC技術(shù)出現(xiàn),使得數(shù)字信號處理的實(shí)現(xiàn)更加容易。
2.1 DDFS原理
直接數(shù)字頻率合成(DDFS)電路由系統(tǒng)時鐘、相位累加器、頻率累加器、波形查找表、D/A轉(zhuǎn)換器和信號調(diào)理電路構(gòu)成。DDFS的工作原理是在每個時鐘周期,用頻率累加器以輸入頻率字FW為步進(jìn)進(jìn)行自增累加,累加結(jié)果的高位送相位累加器,并與輸入的相位字PW進(jìn)行累加,相位累加的輸出作為波形查找表的地址,從查找表中讀出相應(yīng)的數(shù)據(jù)送給D/A轉(zhuǎn)換器,最后經(jīng)過低通濾波器、后級放大等信號調(diào)理電路,以形成模擬量波形輸出。圖6給出系統(tǒng)結(jié)構(gòu)框圖。
DDFS的頻率輸出公式:
式中:N為相位累加器的位寬;M為頻率字位寬;Fclk為系統(tǒng)時鐘信號。
DDFS通過數(shù)控振蕩器產(chǎn)生頻率、相位可控的正弦波。其優(yōu)點(diǎn)體現(xiàn)在無需相位反饋控制,頻率建立及頻率切換較快,可編程且全數(shù)字化,控制靈活方便,輸出相位連續(xù)。如果在相位累加器的位數(shù)N足夠大時,理論上可以獲得很高的分辨精度,應(yīng)用DDFS還可以產(chǎn)生其他多種調(diào)制信號,因此具有極高的性價比。
2.2 硬件模塊設(shè)計與仿真
利用DSP BuiIder進(jìn)行DSP模塊設(shè)計是SOPC技術(shù)的一個組成部分。關(guān)鍵設(shè)計過程在Matlab的圖形仿真環(huán)境Simulink中進(jìn)行,用圖形方式調(diào)用DSP Builder和其他Simulink庫中,圖形模塊,構(gòu)成系統(tǒng)級設(shè)計模塊,如圖7所示。[!--empirenews.page--]
模塊化設(shè)計的主要優(yōu)點(diǎn)在于只要改變模塊中的狀態(tài)字就可以輕松地控制正弦波的頻率和相位,不用到程序里修改了,也不需要理解復(fù)雜難于掌握的硬件描述語言,真正做到模塊化并充分節(jié)省設(shè)計時間和設(shè)計周期。
電路模型設(shè)計完成后,可以利用Simulink環(huán)境的強(qiáng)大的圖形化仿真驗證功能,直接進(jìn)行算法級模型仿真驗證,結(jié)果如圖8所示。由于在Matlab的Simulink中,模型仿真屬于系統(tǒng)驗證性質(zhì)的仿真,并不是RTL級仿真,與目標(biāo)器件和硬件系統(tǒng)沒有關(guān)系。因此采用Modelsim對設(shè)計電路進(jìn)行功能仿真。Modelsim是Mentor公司杰出的HDL仿真工具,以其強(qiáng)大的數(shù)字和模擬仿真功能而廣泛應(yīng)用,且仿真結(jié)果直觀、易懂,如圖9所示。
由圖8和圖9輸出波形結(jié)果可以看出,采用SOPC方案設(shè)計的正弦信號發(fā)生器產(chǎn)生的正弦波波形清晰、穩(wěn)定、相位變化比較連續(xù),且輸出相位噪聲低。
2.3 系統(tǒng)硬件驗證
通過SignaICompiler把設(shè)計模型文件轉(zhuǎn)成相應(yīng)的硬件描述語言VHDL設(shè)計文件。在QuartusⅡ集成環(huán)境中,對.vhd文件進(jìn)行編譯、時序仿真,對設(shè)計文件進(jìn)行仿真驗證,確定DE2開發(fā)板中PIO所對應(yīng)的輸入/輸出即引腳鎖定;對器件編程并最終下載到目標(biāo)芯片DE2EP2C35F672C6上,以實(shí)現(xiàn)硬件測試;調(diào)用Signal-TapⅡ觀察硬件測試結(jié)果,經(jīng)D/A轉(zhuǎn)換由示波器觀察波形輸出,其結(jié)果與系統(tǒng)仿真結(jié)果相同,從而驗證了系統(tǒng)設(shè)計的合理性。
3 結(jié) 語
從工程應(yīng)用的角度,提出了基于DSP及SOPC的結(jié)構(gòu)化、模塊化設(shè)計方法,該方法可以推廣到其他電子設(shè)計領(lǐng)域,使系統(tǒng)電路設(shè)計更加簡便直觀,且便于擴(kuò)展,具有較高的實(shí)用性和可靠性。通過對比DSP和SOPC設(shè)計的優(yōu)缺點(diǎn)表明,與DSP設(shè)計相比,SOPC技術(shù)可以大大縮短系統(tǒng)的設(shè)計周期,節(jié)省設(shè)計費(fèi)用,提高產(chǎn)品的性價比和競爭力,因此更具有良好的推廣和應(yīng)用前景。