新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP正弦信號(hào)發(fā)生器設(shè)計(jì)

基于DSP正弦信號(hào)發(fā)生器設(shè)計(jì)

作者: 時(shí)間:2011-03-21 來(lái)源:網(wǎng)絡(luò) 收藏

1.4 獨(dú)立鍵盤的
采用獨(dú)立鍵盤作為人機(jī)接口部分,即各個(gè)按鍵相互獨(dú)立,按下相應(yīng)的按鍵,就能輸出對(duì)應(yīng)幅度和頻率的正弦波。
圖3所示為中斷方式工作的獨(dú)立式鍵盤的連接圖,每個(gè)按鍵各接一根I/O接口線,每根I/O接口線上的按鍵都不影響其它的I/O接口線。因此,可以通過(guò)檢測(cè)I/O的電平狀態(tài)判斷出哪個(gè)鍵按下。這4個(gè)獨(dú)立按鍵分別接HD0~HD3口,并且使用4個(gè)220 Ω的上拉電阻接Vcc。

本文引用地址:http://m.butianyuan.cn/article/150945.htm

c.jpg


當(dāng)沒(méi)有按下鍵時(shí),對(duì)應(yīng)的I/O接口線輸入為高電平,當(dāng)按下鍵時(shí),對(duì)應(yīng)的I/O接口線輸入為低電平,則請(qǐng)求中斷INT1。而在讀鍵時(shí),每一個(gè)鍵的狀態(tài)通過(guò)讀入鍵值的高低電平來(lái)反應(yīng)。在中斷服務(wù)程序中通過(guò)執(zhí)行判鍵程序,判斷是哪個(gè)鍵按下,從而設(shè)置對(duì)應(yīng)的幅度和頻率,執(zhí)行產(chǎn)生正弦波形的程序。
獨(dú)立式鍵盤的電路配置靈活、軟件簡(jiǎn)單。但每個(gè)按鍵要占用1根I/O接口線,在按鍵較多時(shí),I/O接口線浪費(fèi)較大。故在按鍵數(shù)量不多時(shí)采用這種方法,本系統(tǒng)采用4個(gè)獨(dú)立按鍵,而芯片有足夠的I/O接口可供使用,時(shí)可以充分利用這一特點(diǎn)來(lái)連接硬件,至于對(duì)按鍵時(shí)抖動(dòng)的消除可在軟件中完成。使用中斷,可提高CPU的效率,實(shí)現(xiàn)資源共享和并行處理,同時(shí)也可以在芯片運(yùn)行過(guò)程中對(duì)突發(fā)故障做出及時(shí)發(fā)現(xiàn)和處理。

2 系統(tǒng)軟件
2.1 正弦波形產(chǎn)生原理
常見產(chǎn)生正弦波的方法有6種:(1)采樣回放法;(2)實(shí)時(shí)計(jì)算法;(3)查表法;(4)查表結(jié)合插值法;(5)數(shù)值迭代法;(6)泰勒級(jí)數(shù)展開法。
采樣回放法容易實(shí)現(xiàn),但系統(tǒng)的擴(kuò)展性差,且并沒(méi)有充分利用的數(shù)據(jù)計(jì)算處理能力。實(shí)時(shí)計(jì)算法需要花費(fèi)較多時(shí)間,只能產(chǎn)生較低頻率的正弦波,而且存在計(jì)算精度與計(jì)算時(shí)間的矛盾。查表法的精度受表的大小影響較大,表越大精度越高,但是存儲(chǔ)量也越大。查表結(jié)合插值法亦稱混合法,用它產(chǎn)生的正弦波達(dá)不到理想的精度。數(shù)值迭代法較難編寫出清晰的程序來(lái)。泰勒級(jí)數(shù)展開法是一種有效的方法,與查
表法和查表結(jié)合插值法相比,該方法需要的存儲(chǔ)單元很少,而且精度更高。一個(gè)角度為的正弦和余弦函數(shù),展開成5項(xiàng)泰勒級(jí)數(shù)如下
d.jpg
e.jpg
式中,x為θ的弦度值,正弦波的波形可以看成是由無(wú)數(shù)個(gè)點(diǎn)組成,這些點(diǎn)與x軸的每個(gè)角度值相對(duì)應(yīng),利用可大量重復(fù)計(jì)算的優(yōu)勢(shì)來(lái)計(jì)算出x軸每一點(diǎn)對(duì)應(yīng)的y值,然后通過(guò)D/A轉(zhuǎn)換即可輸出連續(xù)的正弦模擬信號(hào)。
2.2 變頻調(diào)幅的方法
(1)16位定時(shí)模塊。
C5402 DSP芯片片內(nèi)定時(shí)器是一個(gè)軟件可編程的計(jì)數(shù)器,它包括以下3個(gè)16位存儲(chǔ)器映射寄存器:定時(shí)寄存器TIM,定時(shí)器周期寄存器PRD和定時(shí)控制寄存器TCR。片內(nèi)定時(shí)器中,4位的預(yù)定標(biāo)計(jì)數(shù)器PSC和16位定時(shí)計(jì)數(shù)器TIM組成一個(gè)20位的計(jì)數(shù)器,定時(shí)器每個(gè)CPU時(shí)鐘周期減1,每次計(jì)數(shù)器減到0將產(chǎn)生定時(shí)器中斷(TINT),同時(shí)PSC和TIM重新載入預(yù)設(shè)的值。定時(shí)器中斷TINT的速率可由式(3)計(jì)算。
f.jpg
(2)變頻調(diào)幅實(shí)現(xiàn)方法。
調(diào)幅的實(shí)現(xiàn)相對(duì)簡(jiǎn)單,只需在所有采樣值前乘以一個(gè)調(diào)幅因子A1就可得到相應(yīng)的正弦波幅值A(chǔ)。而調(diào)頻的實(shí)現(xiàn)必須依賴于C5402芯片內(nèi)的16位定時(shí)器。DSP芯片不斷向D/A芯片送出采樣值,然后經(jīng)模數(shù)轉(zhuǎn)換后可在示波器上觀察到連續(xù)的正弦波形。先預(yù)設(shè)要產(chǎn)生的正弦信號(hào)頻率為f,根據(jù)正弦波生成原理可知,向D/A送出采樣值的間隔,即向D/A送值的周期T1=T/N(N為采樣點(diǎn)數(shù)),那么向D/A送值的頻率為f1=N×f,即向D/A送值的頻率是期待產(chǎn)生的正弦波信號(hào)頻率的N倍。
因此,為了能夠調(diào)節(jié)產(chǎn)生正弦信號(hào)的頻率,實(shí)際上改變向D/A芯片送值的頻率即可。而改變向D/A芯片送值的頻率就得用到C5402芯片內(nèi)的16位定時(shí)器。根據(jù)式(3)將需要的頻率值換算成PRD內(nèi)的初值和TDDR的初值,并將該初值分別置入PRD和TDDR。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉