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