摘要:提出了一種基于TMS320C5402實現(xiàn)正弦信號發(fā)生器" title="正弦信號發(fā)生器">正弦信號發(fā)生器的設(shè)計原理與方法,介紹了所設(shè)計的正弦信號發(fā)生器硬件電路結(jié)構(gòu)和軟件程序流程圖。結(jié)合DSP" title="DSP">DSP硬件特性,通過使用泰勒級數(shù)展開法得到設(shè)定參數(shù)的正弦波形輸出,達到設(shè)計目的。該信號發(fā)生器彌補了通常信號發(fā)生器模式固定,波形不可編程的缺點,其具有實時性強,波形精度高,可方便調(diào)節(jié)頻率和幅度、穩(wěn)定性好等優(yōu)點。
關(guān)鍵詞:數(shù)字信號處理器;信號發(fā)生器;多通道緩沖串行口;獨立鍵盤
隨著計算機技術(shù)的飛速發(fā)展,對信號發(fā)生器波形的要求越來越高。目前,常用信號發(fā)生器大部分是由模擬電路構(gòu)成,當這種模擬信號發(fā)生器用于低頻輸出時,由于需要較大的RC值,導致參數(shù)準確度難以保證,且造成體積和功耗偏大,而數(shù)字式波形發(fā)生器,因其輸出幅值穩(wěn)定、輸出頻率連續(xù)可調(diào)的優(yōu)點,已逐漸取代了模擬電路信號發(fā)生器。由于其運算速度高,系統(tǒng)集成度強的優(yōu)勢,可以設(shè)計基于DSP的正弦信號發(fā)生器,該發(fā)生器實時性強、可擴展性好、波形精度高、可調(diào)節(jié)頻率和幅度、穩(wěn)定性好、用途廣泛,各方面均優(yōu)于模擬信號發(fā)生器和數(shù)字信號發(fā)生器。因此,本文提出了一種基于TMS320C5402的正弦信號發(fā)生器的設(shè)計方法。
1 系統(tǒng)硬件設(shè)計
1.1 系統(tǒng)硬件框圖
該正弦信號發(fā)生器的硬件結(jié)構(gòu)框圖如圖1所示,主要由TMS320C5402芯片,D/A轉(zhuǎn)換器,獨立鍵盤等幾部分組成。
1.2 TMS320C5402簡介
TMS320C5402芯片采用先進的修正哈佛結(jié)構(gòu),片內(nèi)有8條總線、在片存儲器和在片外圍電路等硬件,同時還有高度專業(yè)化的指令系統(tǒng),具有功耗小、高度并行等優(yōu)點。此外,其支持C語言和匯編語言混合編程,高效的流水線操作和靈活的尋址方式使其適合高速實時信號處理。
1.3 數(shù)模轉(zhuǎn)換部分設(shè)計
McBSP(Multi-channel Buffered Serial)即多通道緩沖串口,包括一個數(shù)據(jù)通道和一個控制通道。數(shù)據(jù)通道通過DX引腳發(fā)送數(shù)據(jù)、DR引腳接收數(shù)據(jù)??刂仆ǖ劳瓿傻娜蝿?wù)包括內(nèi)部時鐘的產(chǎn)生、幀同步信號的產(chǎn)生、對這些信號的控制以及多通路的選擇等。此外還負責產(chǎn)生中斷信號送往CPU,產(chǎn)生同步事件信號通知DMA控制器??刂菩畔t是通過控制通道以時鐘和幀同步信號的形式傳送。
數(shù)模轉(zhuǎn)換芯片采用TLC320AD50C,其是TI公司出品的一塊將A/D和D/A轉(zhuǎn)換功能集成在一起的接口芯片,采用∑-△技術(shù)在低系統(tǒng)成本下實現(xiàn)高精度的A/D和D/A轉(zhuǎn)換。該芯片由一對16 bit同步串行轉(zhuǎn)換通道組成,在A/D之后有一個抽取濾波器,在D/A之前有一個插值濾波器。
TLC320AD50C可以與TMS320C5402 DSP的McBSP無縫串行連接進行數(shù)據(jù)采集、存儲和處理。SCLK輸出時鐘,M/S主從模式選擇(H為高電平,為主機模式),DIN串行輸入,DOUT串行輸出,F(xiàn)S幀同步信號輸出,對應(yīng)DSP的各相應(yīng)引腳。McBSP和D/A芯片的硬件電路連接如圖2所示。
1.4 獨立鍵盤的設(shè)計
本信號發(fā)生器采用獨立鍵盤作為人機接口部分,即各個按鍵相互獨立,按下相應(yīng)的按鍵,就能輸出對應(yīng)幅度和頻率的正弦波。
圖3所示為中斷方式工作的獨立式鍵盤的連接圖,每個按鍵各接一根I/O接口線,每根I/O接口線上的按鍵都不影響其它的I/O接口線。因此,可以通過檢測I/O的電平狀態(tài)判斷出哪個鍵按下。這4個獨立按鍵分別接HD0~HD3口,并且使用4個220 Ω的上拉電阻接Vcc。
當沒有按下鍵時,對應(yīng)的I/O接口線輸入為高電平,當按下鍵時,對應(yīng)的I/O接口線輸入為低電平,則請求中斷INT1。而在讀鍵時,每一個鍵的狀態(tài)通過讀入鍵值的高低電平來反應(yīng)。在中斷服務(wù)程序中通過執(zhí)行判鍵程序,判斷是哪個鍵按下,從而設(shè)置對應(yīng)的幅度和頻率,執(zhí)行產(chǎn)生正弦波形的程序。
獨立式鍵盤的電路配置靈活、軟件簡單。但每個按鍵要占用1根I/O接口線,在按鍵較多時,I/O接口線浪費較大。故在按鍵數(shù)量不多時采用這種方法,本系統(tǒng)采用4個獨立按鍵,而DSP芯片有足夠的I/O接口可供使用,設(shè)計時可以充分利用這一特點來連接硬件,至于對按鍵時抖動的消除可在軟件中完成。使用中斷,可提高CPU的效率,實現(xiàn)資源共享和并行處理,同時也可以在芯片運行過程中對突發(fā)故障做出及時發(fā)現(xiàn)和處理。
2 系統(tǒng)軟件設(shè)計
2.1 正弦波形產(chǎn)生原理
常見產(chǎn)生正弦波的方法有6種:(1)采樣回放法;(2)實時計算法;(3)查表法;(4)查表結(jié)合插值法;(5)數(shù)值迭代法;(6)泰勒級數(shù)展開法。
采樣回放法容易實現(xiàn),但系統(tǒng)的擴展性差,且并沒有充分利用DSP的數(shù)據(jù)計算處理能力。實時計算法需要花費較多時間,只能產(chǎn)生較低頻率的正弦波,而且存在計算精度與計算時間的矛盾。查表法的精度受表的大小影響較大,表越大精度越高,但是存儲量也越大。查表結(jié)合插值法亦稱混合法,用它產(chǎn)生的正弦波達不到理想的精度。數(shù)值迭代法較難編寫出清晰的程序來。泰勒級數(shù)展開法是一種有效的方法,與查表法和查表結(jié)合插值法相比,該方法需要的存儲單元很少,而且精度更高。一個角度為的正弦和余弦函數(shù),展開成5項泰勒級數(shù)如下
式中,x為θ的弦度值,正弦波的波形可以看成是由無數(shù)個點組成,這些點與x軸的每個角度值相對應(yīng),利用DSP可大量重復計算的優(yōu)勢來計算出x軸每一點對應(yīng)的y值,然后通過D/A轉(zhuǎn)換即可輸出連續(xù)的正弦模擬信號。
2.2 變頻調(diào)幅的方法
(1)16位定時模塊。
C5402 DSP芯片片內(nèi)定時器是一個軟件可編程的計數(shù)器,它包括以下3個16位存儲器映射寄存器:定時寄存器TIM,定時器周期寄存器PRD和定時控制寄存器TCR。片內(nèi)定時器中,4位的預定標計數(shù)器PSC和16位定時計數(shù)器TIM組成一個20位的計數(shù)器,定時器每個CPU時鐘周期減1,每次計數(shù)器減到0將產(chǎn)生定時器中斷(TINT),同時PSC和TIM重新載入預設(shè)的值。定時器中斷TINT的速率可由式(3)計算。
(2)變頻調(diào)幅實現(xiàn)方法。
調(diào)幅的實現(xiàn)相對簡單,只需在所有采樣值前乘以一個調(diào)幅因子A1就可得到相應(yīng)的正弦波幅值A(chǔ)。而調(diào)頻的實現(xiàn)必須依賴于C5402芯片內(nèi)的16位定時器。DSP芯片不斷向D/A芯片送出采樣值,然后經(jīng)模數(shù)轉(zhuǎn)換后可在示波器上觀察到連續(xù)的正弦波形。先預設(shè)要產(chǎn)生的正弦信號頻率為f,根據(jù)正弦波生成原理可知,向D/A送出采樣值的間隔,即向D/A送值的周期T1=T/N(N為采樣點數(shù)),那么向D/A送值的頻率為f1=N×f,即向D/A送值的頻率是期待產(chǎn)生的正弦波信號頻率的N倍。
因此,為了能夠調(diào)節(jié)產(chǎn)生正弦信號的頻率,實際上改變向D/A芯片送值的頻率即可。而改變向D/A芯片送值的頻率就得用到C5402芯片內(nèi)的16位定時器。根據(jù)式(3)將需要的頻率值換算成PRD內(nèi)的初值和TDDR的初值,并將該初值分別置入PRD和TDDR。
2.3 軟件設(shè)計
軟件系統(tǒng)采用模塊化結(jié)構(gòu)設(shè)計,主要包括DSP主程序,中斷程序和鍵盤驅(qū)動程序。DSP系統(tǒng)的主程序流程圖如圖4所示。先對系統(tǒng)進行檢測、配置MeBSP端口等,開啟中斷調(diào)用鍵盤驅(qū)動程序讀取鍵值并處理,進入中斷后根據(jù)相應(yīng)的鍵值設(shè)置相應(yīng)的信號參數(shù),并通過D/A轉(zhuǎn)換,產(chǎn)生不同幅度、頻率的正弦波。
中斷程序流程圖如圖5所示。首先根據(jù)鍵盤的按鍵值選擇已設(shè)置好的正弦波的幅度與頻率,然后按以下步驟執(zhí)行:(1)計算0°~45°的正弦和余弦值;(2)利用正弦函數(shù)倍角公式sin2x=2sinx cosx,計算0°~90°的正弦值;(3)通過復制,獲得0~359°的正弦值;(4)將0°~359°的正弦值重復輸出,便可以得到正弦波。
在CCS開發(fā)環(huán)境下編程,通過仿真器將程序下載到DSP芯片中,選擇不同的按鍵產(chǎn)生相應(yīng)的中斷,即可在示波器中觀察到相應(yīng)的正弦波形。所產(chǎn)生的波形具有精度高,幅值穩(wěn)定的特點,同時具有較強的實時性和靈活性。
3 結(jié)束語
DSP芯片具有的特殊軟硬件結(jié)構(gòu)和指令系統(tǒng),使其能高速處理各種數(shù)字信號處理算法?;诖嗽O(shè)計的正弦信號發(fā)生器具有速度高、精度高的特點。同時該系統(tǒng)依靠簡潔的外部硬件電路設(shè)計和合理的軟件程序設(shè)計,能夠產(chǎn)生幅度和頻率可調(diào)的高穩(wěn)定度正弦波。而且該系統(tǒng)的可擴展性良好,只需要在中斷服務(wù)程序中改變送往D/A芯片中的采樣值,而不改動任何硬件電路,就可以實現(xiàn)三角波、方波乃至更復雜波形的輸出。鑒于DSP不斷提高的性價比,故在傳統(tǒng)產(chǎn)品中采用DSP作為主控制器已成為一種趨勢。